超级币商发货更改
This commit is contained in:
parent
4046be18ed
commit
e1081f89b6
@ -117,14 +117,8 @@ public class SendFreightShipCmdExe {
|
|||||||
|
|
||||||
// 判断发送者和接收者的代理类型
|
// 判断发送者和接收者的代理类型
|
||||||
boolean senderIsSuperFreight = freightBalanceService.checkSuperFreightAgent(cmd.requiredReqUserId());
|
boolean senderIsSuperFreight = freightBalanceService.checkSuperFreightAgent(cmd.requiredReqUserId());
|
||||||
boolean acceptIsSuperFreight = freightBalanceService.checkSuperFreightAgent(cmd.getAcceptUserId());
|
|
||||||
boolean acceptIsFreight = freightBalanceService.checkFreightAgent(cmd.getAcceptUserId());
|
boolean acceptIsFreight = freightBalanceService.checkFreightAgent(cmd.getAcceptUserId());
|
||||||
|
|
||||||
// 权限校验:超级经销商才可以发货给经销商和超级经销商,普通经销商不能发货给经销商或超级经销商
|
|
||||||
if (acceptIsFreight || acceptIsSuperFreight) {
|
|
||||||
ResponseAssert.isTrue(FreightErrorCode.NOT_SUPER_FREIGHT, senderIsSuperFreight);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 扣款失败
|
// 扣款失败
|
||||||
ResponseAssert.isTrue(WalletErrorCode.DEDUCTION_FAILED,
|
ResponseAssert.isTrue(WalletErrorCode.DEDUCTION_FAILED,
|
||||||
freightBalanceService
|
freightBalanceService
|
||||||
@ -137,13 +131,24 @@ public class SendFreightShipCmdExe {
|
|||||||
FreightBalanceRunningWater runningWater = saveRunningWater(cmd, balance);
|
FreightBalanceRunningWater runningWater = saveRunningWater(cmd, balance);
|
||||||
|
|
||||||
// 发货:目标是普通经销商 → incrCandyBalance 进货运钱包;目标是超级经销商(或普通用户) → changeBalance 进金币钱包
|
// 发货:目标是普通经销商 → incrCandyBalance 进货运钱包;目标是超级经销商(或普通用户) → changeBalance 进金币钱包
|
||||||
if (acceptIsFreight && !acceptIsSuperFreight) {
|
if (senderIsSuperFreight && acceptIsFreight) {
|
||||||
// 目标是经销商,入货运余额
|
// 目标是经销商,入货运余额
|
||||||
ResponseAssert.isTrue(WalletErrorCode.DEDUCTION_FAILED,
|
ResponseAssert.isTrue(WalletErrorCode.DEDUCTION_FAILED,
|
||||||
freightBalanceService.incrCandyBalance(
|
freightBalanceService.incrCandyBalance(
|
||||||
cmd.requireReqSysOriginEnum(),
|
cmd.requireReqSysOriginEnum(),
|
||||||
cmd.getAcceptUserId(),
|
cmd.getAcceptUserId(),
|
||||||
cmd.getQuantity()));
|
cmd.getQuantity()));
|
||||||
|
|
||||||
|
String noticeContent = getNoticeContent2(cmd, cmd.getQuantity());
|
||||||
|
officialNoticeClient.send(
|
||||||
|
NoticeExtTemplateCustomizeCmd.builder()
|
||||||
|
.toAccount(cmd.getAcceptUserId())
|
||||||
|
.noticeType(OfficialNoticeTypeEnum.COIN_SELLER_COINS_RECEIVED)
|
||||||
|
.content(noticeContent)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// 目标是超级经销商(或普通用户),入金币钱包
|
// 目标是超级经销商(或普通用户),入金币钱包
|
||||||
walletGoldGateway.changeBalance(new WalletReceipt()
|
walletGoldGateway.changeBalance(new WalletReceipt()
|
||||||
@ -158,19 +163,19 @@ public class SendFreightShipCmdExe {
|
|||||||
.setOpUserType(OpUserType.APP)
|
.setOpUserType(OpUserType.APP)
|
||||||
.setCreateTime(cmd.reqTimeElseNow())
|
.setCreateTime(cmd.reqTimeElseNow())
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String noticeContent = getNoticeContent(cmd, cmd.getQuantity());
|
String noticeContent = getNoticeContent(cmd, cmd.getQuantity());
|
||||||
officialNoticeClient.send(
|
officialNoticeClient.send(
|
||||||
NoticeExtTemplateCustomizeCmd.builder()
|
NoticeExtTemplateCustomizeCmd.builder()
|
||||||
.toAccount(cmd.getAcceptUserId())
|
.toAccount(cmd.getAcceptUserId())
|
||||||
.noticeType(OfficialNoticeTypeEnum.USER_COINS_RECEIVED)
|
.noticeType(OfficialNoticeTypeEnum.USER_COINS_RECEIVED)
|
||||||
.content(noticeContent)
|
.content(noticeContent)
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("send freight balance failed: {}", e.getMessage());
|
log.error("send freight balance failed: {}", e.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 累计充值
|
// 累计充值
|
||||||
@ -212,6 +217,21 @@ public class SendFreightShipCmdExe {
|
|||||||
return String.format(noticeTemplate, agencyAccount, goldCoins);
|
return String.format(noticeTemplate, agencyAccount, goldCoins);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getNoticeContent2(FreightShipSendCmd cmd, BigDecimal goldQuantity) {
|
||||||
|
// 获取发送者(代理)的 account
|
||||||
|
String agencyAccount = resolveAccount(cmd.getReqUserId());
|
||||||
|
|
||||||
|
// 获取接收者的区域判断是否为阿拉伯语
|
||||||
|
ResultResponse<String> regionResponse = userRegionClient.getRegionCode(cmd.getAcceptUserId());
|
||||||
|
boolean arRegion = regionResponse.checkSuccess() && "AR".equals(regionResponse.getBody());
|
||||||
|
|
||||||
|
long goldCoins = goldQuantity.longValue();
|
||||||
|
String noticeTemplate = arRegion
|
||||||
|
? "لقد استلمت %,d عملة. تم تحويل الأموال من المستخدم (ID: %s) إلى محفظة وكالة الشحن الخاصة بك. يرجى تأكيد الاستلام."
|
||||||
|
: "You have received %,d Coins. The funds have been transferred from user (ID: %s) to your recharge agency wallet. Please confirm receipt.";
|
||||||
|
return String.format(noticeTemplate, goldCoins, agencyAccount);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户展示的 account,优先取专属号(ownSpecialId),否则取普通 account
|
* 获取用户展示的 account,优先取专属号(ownSpecialId),否则取普通 account
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user