diff --git a/mallinkPublicApi/src/main/java/com/iformall/controller/UserThirdCircleOrderController.java b/mallinkPublicApi/src/main/java/com/iformall/controller/UserThirdCircleOrderController.java index 8a1c8e649..2a2ea1d73 100644 --- a/mallinkPublicApi/src/main/java/com/iformall/controller/UserThirdCircleOrderController.java +++ b/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为非数字"); } diff --git a/mallinkPublicApi/src/main/java/com/iformall/utils/AppTest.java b/mallinkPublicApi/src/main/java/com/iformall/utils/AppTest.java index 71d289d8b..23cbaf9cf 100644 --- a/mallinkPublicApi/src/main/java/com/iformall/utils/AppTest.java +++ b/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","我要换东西");//付款摘要 /** diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java index f72eaeb31..73fdc115b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java +++ b/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);