Просмотр исходного кода

businessCircle tran

release_toaliyun_real
xhxu 5 лет назад
Родитель
Сommit
b7a6558cab
3 измененных файлов: 49 добавлений и 22 удалений
  1. +3
    -3
      mallinkPublicApi/src/main/java/com/iformall/controller/UserThirdCircleOrderController.java
  2. +18
    -5
      mallinkPublicApi/src/main/java/com/iformall/utils/AppTest.java
  3. +28
    -14
      mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java

+ 3
- 3
mallinkPublicApi/src/main/java/com/iformall/controller/UserThirdCircleOrderController.java Просмотреть файл

@@ -79,7 +79,7 @@ public class UserThirdCircleOrderController extends BaseController {
if(StringUtils.isBlank(amount)){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL,"amount为空");
}
if(!NumberUtils.isCreatable(amount)){
if(!NumberUtils.isCreatable(amount) || Integer.parseInt(amount) <= 0){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,"amount为非数字");
}

@@ -138,7 +138,7 @@ public class UserThirdCircleOrderController extends BaseController {
} catch (ParseException e) {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,"timeEnd格式不正确");
}
if(StringUtils.isNotBlank(refundAmount) && !NumberUtils.isCreatable(refundAmount)){
if(StringUtils.isNotBlank(refundAmount) && (!NumberUtils.isCreatable(refundAmount) || Integer.parseInt(refundAmount) <= 0)){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,"refundAmount为非数字");
}

@@ -214,7 +214,7 @@ public class UserThirdCircleOrderController extends BaseController {
if(StringUtils.isBlank(amount)){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL,"amount为空");
}
if(!NumberUtils.isCreatable(amount)){
if(!NumberUtils.isCreatable(amount) || Integer.parseInt(amount) <= 0){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,"amount为非数字");
}



+ 18
- 5
mallinkPublicApi/src/main/java/com/iformall/utils/AppTest.java Просмотреть файл

@@ -49,12 +49,25 @@ public class AppTest {
/**
* 交易退款信息 参数
*/
// IdWorker idWorker = IdWorker.get();
// paramMap.put("transactionId","547662852896411648");//***订单Id
// paramMap.put("refundTime","2021-04-26 11:50:00");//***退款时间(yyyy-MM-dd HH:mm:ss)
// paramMap.put("refundAmount","1000");//退款金额(分)
// paramMap.put("refundSummary","我要退款");//付款摘要
// paramMap.put("refundId",String.valueOf(idWorker.nextId()));//退款订单号

/**
* 积分抵扣 参数
*/
IdWorker idWorker = IdWorker.get();
paramMap.put("transactionId","547662852896411648");//***订单Id
paramMap.put("refundTime","2021-04-26 11:50:00");//***退款时间(yyyy-MM-dd HH:mm:ss)
paramMap.put("refundAmount","1000");//***退款金额(分)
paramMap.put("refundSummary","我要退款");//付款摘要
paramMap.put("refundId",String.valueOf(idWorker.nextId()));//退款订单号
paramMap.put("transactionId",String.valueOf(idWorker.nextId()));//***订单Id
paramMap.put("shopNumber","1001");//***门店唯一标识 对应双方平台门店
paramMap.put("shopName","百丽");//门店名称
paramMap.put("userNumber","542490555719278592");//***会员Id
paramMap.put("userPhone","18872592633");//会员手机号
paramMap.put("timeEnd","2021-04-26 11:43:00");//***积分抵扣时间
paramMap.put("amount","100");//***付款金额(分)
paramMap.put("summary","我要换东西");//付款摘要


/**


+ 28
- 14
mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java Просмотреть файл

@@ -114,7 +114,11 @@ public class WxThirdPartyOrdersServiceImpl implements WxThirdPartyOrdersService
WxMerchant wxMerchant = wxMerchantService.getMerchantByEncode(record.getShopNumber());
if(wxMerchant != null){
record.setMerchantId(wxMerchant.getId());
record.setShopName(wxMerchant.getName());
}else{
if(StringUtils.isBlank(record.getShopName())){
record.setShopName("第三方门店");
}
logger.info("--第三方付款通知消息未找到门店--shopName="+record.getShopName()+"&shopNumber="+record.getShopNumber());
}

@@ -155,7 +159,7 @@ public class WxThirdPartyOrdersServiceImpl implements WxThirdPartyOrdersService
creditHistory.setMerchantId(record.getMerchantId());
creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode());
creditHistory.setSpend(record.getPayAmount());
creditHistory.setChangePurpose(record.getSourceAppName()+"消费:商户["+record.getShopName()+"] ("+record.getPayAmountStr()+"元) ");
creditHistory.setChangePurpose(record.getSourceAppName()+"·消费:商户["+record.getShopName()+"] ("+record.getPayAmountStr()+"元) ");
creditHistory = wxCreditHistoryService.saveOrUpdate(creditHistory,record.getTenantId());
Integer creditNum = 0;
if (creditHistory.getCreditNum() != null) {
@@ -194,7 +198,7 @@ public class WxThirdPartyOrdersServiceImpl implements WxThirdPartyOrdersService
}else{
WxThirdPartyOrders refundOrder = this.getRefundOrderByRefundId(EnumThirdOrderType.RMB_PAY,record.getRefundId(),record.getTenantId());
if(refundOrder != null){
logger.error("--Ali商圈退款--退款消息已存在---RefundId="+record.getRefundId());
logger.error("--第三方退款--退款消息已存在---RefundId="+record.getRefundId());
}else{
String lockKey = StringUtils.join(THIRD_CIRCLE_KEY,record.getRefundId(), ":",EnumYesOrNo.YES.getCode(),":", "lock");
long time = System.currentTimeMillis() + 2000;
@@ -271,7 +275,7 @@ public class WxThirdPartyOrdersServiceImpl implements WxThirdPartyOrdersService

creditHistory.setCreditNum(points);
creditHistory.setSpend(0-record.getRefundAmount());
creditHistory.setChangePurpose(record.getSourceAppName()+"消费退款:商户["+record.getShopName()+"] ("+record.getRefundAmountStr()+"元) ");
creditHistory.setChangePurpose(record.getSourceAppName()+"·消费退款:商户["+record.getShopName()+"] ("+record.getRefundAmountStr()+"元) ");
creditHistory = wxCreditHistoryService.saveOrUpdate(creditHistory,record.getTenantId());
Integer creditNum = 0;
if (creditHistory.getCreditNum() != null) {
@@ -350,21 +354,31 @@ public class WxThirdPartyOrdersServiceImpl implements WxThirdPartyOrdersService
WxMerchant wxMerchant = wxMerchantService.getMerchantByEncode(record.getShopNumber());
if(wxMerchant != null){
record.setMerchantId(wxMerchant.getId());
record.setShopName(wxMerchant.getName());
}else{
if(StringUtils.isBlank(record.getShopName())){
record.setShopName("第三方门店");
}
logger.info("--第三方积分抵扣未找到门店--shopName="+record.getShopName()+"&shopNumber="+record.getShopNumber());
}

WxCreditHistory wxCreditHistory = new WxCreditHistory();
wxCreditHistory.setTenantId(record.getFinalTenantId());
wxCreditHistory.setCUserId(basicInfo.getId());
wxCreditHistory.setOperatorId(basicInfo.getId());
wxCreditHistory.setOperatorType(EnumUserType.THIRD_CIRCLE.getCode());
wxCreditHistory.setCreditNum(record.getAmount());
wxCreditHistory.setCreditType(EnumScoreType.CHANGE_CREDIT.getCode());
wxCreditHistory.setChangePurpose(record.getSourceAppName()+"积分抵扣{}"+record.getSummary());
wxCreditHistory.setCouponId(record.getId());
wxCreditHistoryService.saveOrUpdate(wxCreditHistory,record.getTenantId());

WxCreditHistory creditHistory = new WxCreditHistory();
creditHistory.setTenantId(record.getFinalTenantId());
creditHistory.setCUserId(basicInfo.getId());
creditHistory.setOperatorId(basicInfo.getId());
creditHistory.setOperatorType(EnumUserType.THIRD_CIRCLE.getCode());
creditHistory.setCreditNum(record.getAmount());
creditHistory.setCreditType(EnumScoreType.CHANGE_CREDIT.getCode());
creditHistory.setChangePurpose(record.getSourceAppName()+"·积分抵扣{}"+record.getSummary());
creditHistory.setCouponId(record.getId());
creditHistory = wxCreditHistoryService.saveOrUpdate(creditHistory, record.getTenantId());
Integer creditNum = 0;
if (creditHistory.getCreditNum() != null) {
creditNum = creditHistory.getCreditNum();
}
if(creditNum == 0){
throw new MallinkException(ErrorCode.CREDIT_ZERO.getCode(), "本次扣减积分为0");
}
wxThirdPartyOrdersMapper.insertNoticeOrder(record);
}
redisLock.unlock(lockKey, timeStr);


Загрузка…
Отмена
Сохранить