diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 226afb48b..9c6c6c175 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.Map; +import java.util.concurrent.TimeUnit; @RestController @RequestMapping("/api/order/") @@ -87,6 +88,13 @@ public class WxOrderController extends BaseController { if (hasKey) { // 从缓存获取用户信息 wxCouponCVo = operations.get(key); + } else { + // 游戏没有入缓存,需要从数据库中读取 + wxCouponCVo = wxCouponChannelService.findDetailVo(orderSaveDto.getCouponChannelId()); + if (wxCouponCVo != null) { + // 游戏优化,进缓存 + cdRedisTemplate.opsForValue().set(key, wxCouponCVo, 3600, TimeUnit.SECONDS); + } } if (wxCouponCVo == null) { return new ResultData(ErrorCode.COUPON_IS_EMPTY); diff --git a/mallinkPosApi/src/main/java/com/iformall/controller/PosController.java b/mallinkPosApi/src/main/java/com/iformall/controller/PosController.java index 328ff0840..499d0e5e2 100644 --- a/mallinkPosApi/src/main/java/com/iformall/controller/PosController.java +++ b/mallinkPosApi/src/main/java/com/iformall/controller/PosController.java @@ -298,6 +298,10 @@ public class PosController extends BaseController { "\"order_amount\":\"string单位(分)(必填)\"," + "\"order_amount_left\":\"string单位(分)(选填)\"," + "\"order_create_sn\":\"string单位(分)(必填)\"," + + "\"payment_detail\":{支付时必填...." + + "}" + + "\"refund_detail\":{退款时必填...." + + "}" + "\"payment_info\":{" + "\"card_id\":\"string(必填)\"," + "\"card_spend_id\":\"string(必填)\"," + diff --git a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java index f8de6e1c0..ffab6c2d6 100644 --- a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java +++ b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java @@ -1784,7 +1784,7 @@ public class PosServiceImpl implements PosService { String buUserIdStr = params.get(WxPayConstant.BUSER_ID); // POS操作员ID String cuUserIdStr = params.get(WxPayConstant.MEM_ID); // 富茂系统会员ID String cuPhoneStr = params.get(WxPayConstant.MEM_PHONE); // 富茂系统会员手机号 - String sceneTypeStr = params.get(WxPayConstant.SCENE_TYPE); // 场景类型 + String sceneTypeStr = params.get(WxPayConstant.SCENE_TYPE); // 场景类型 String posOrderIdStr = params.get(WxPayConstant.POS_ORDER_ID); // POS订单ID String posOrderTimeStr = params.get(WxPayConstant.POS_ORDER_TIME); // POS订单时间 String posAmountStr = params.get(WxPayConstant.ORDER_AMOUNT); // POS订单总额 @@ -1855,9 +1855,17 @@ public class PosServiceImpl implements PosService { WxMerchantBUser merchantBUser = checkAndGetMerchantUser(buUserId, merchantId); // 4. 同步 if (posStatusStr.equalsIgnoreCase(WxPayConstant.NEU_ORDER_PAY)) { + String payDetail = params.get(WxPayConstant.PAY_DETAIL); + if (StringUtils.isBlank(posStatusStr)) { + errParam(WxPayConstant.PAYMENT_DETAIL); + } // 4.1 支付同步 syncOrder(params, merchant, merchantBUser, iSceneType, posOrderId, memId, posAmount, orderTime, orderCreateSN); } else if (posStatusStr.equalsIgnoreCase(WxPayConstant.NEU_ORDER_REFUND)) { + String payDetail = params.get(WxPayConstant.NEU_REFUND_DETAIL); + if (StringUtils.isBlank(posStatusStr)) { + errParam(WxPayConstant.REFUND_DETAIL); + } // 退款同步 syncRefundOrder(params, merchantBUser, iSceneType, posOrderId, memId, posAmount, orderTime, orderCreateSN); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java index 89a2ce960..172354dd6 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java @@ -58,9 +58,5 @@ public class WxCardInfo extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "是否支持转送(0:不支持,1支持)", name = "supportTransfer") private Integer supportTransfer; - public boolean isBuyed() { - return saleAmount > 0; - } - } diff --git a/mallinkService/src/main/java/com/iformall/pay/WxPayConstant.java b/mallinkService/src/main/java/com/iformall/pay/WxPayConstant.java index 99d482895..ff0fb12d0 100644 --- a/mallinkService/src/main/java/com/iformall/pay/WxPayConstant.java +++ b/mallinkService/src/main/java/com/iformall/pay/WxPayConstant.java @@ -114,6 +114,9 @@ public class WxPayConstant { public final static String REMAIN_AMOUNT = "remain_amount"; public final static String ORDER_STATUS = "order_status"; + public final static String PAYMENT_DETAIL = "payment_detail"; + public final static String REFUND_DETAIL = "refund_detail"; + public final static String POINT = "point"; public final static String CREDIT = "credit"; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBuserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBuserServiceImpl.java index 8b2576f71..cca144668 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBuserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBuserServiceImpl.java @@ -38,7 +38,15 @@ public class WxBuserServiceImpl implements WxBuserService { @Override public WxBuser getByOpenId(WxBuser record) { - return wxBuserMapper.findByOpenId(record); + try { + List list = wxBuserMapper.selectList(new QueryWrapper(record)); + if (list.size() > 0) { + return list.get(0); + } + } catch (Exception e) { + logger.error("NOT found: " + e.getMessage()); + } + return null; } @Override diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index 401e118e4..793cfd1e4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -247,7 +247,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { if (payAccount.checkShare()) { // 分账 - if (cardInfo.isBuyed()) { + if (cardInfo.getSaleAmount() > 0) { // 9. 只有有价卡才能分账 try { shareForCardPay(record, record.getCardId(), record.getOrderId(), record.getId()); @@ -270,7 +270,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { } } else { // 有价储值卡消费时,如果未启用分账,金额也记入补贴表,可能会导致查询错误, TODO - if (cardInfo.isBuyed() && payment > 0) { + if (cardInfo.getSaleAmount() > 0 && payment > 0) { try { creteMerchantSubsidy(record, curDate, idWorker, coupon, payment); } catch (Exception ex) {