diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 30528af8b..ffd2f1053 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -863,37 +863,36 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) public void handleMicroOrderPaySuccess(Object result,String transcationId,EnumPayWay payWay, WxPayOrder record ,WxMerchantBUser user,WxAppinfo appInfo,PayExtraParam params) { // //B端操作,需要生成cUser -// CreateUser cUser = null; -// try { -// cUser = payServiceFactory.getCPassivePayService(payWay.getCode()).createCUserAfterPay(result, appInfo); -// } catch (Exception e1) { -// logger.error("创建C端用户失败: " ,e1); -// throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "创建C端用户失败: " + e1.getMessage()); -// } -// //如果用户是会员,则用会员ID, 如果没有,则用渠道用户ID(如wxCuser,支付宝user) -// Long cUserId = null; -// if (cUser.isBasicInfo()) { -// cUserId = cUser.getBasicUserId(); -// }else { -// cUserId = cUser.getCUserId(); -// } - //扫码支付的会员固定 - WxCUserBasicInfo basicInfo = wxCUserBasicInfoMapper.selectById(1L); - if (null == basicInfo) { - basicInfo = new WxCUserBasicInfo(); - basicInfo.setId(1L); - basicInfo.setPhone("11111111111"); - basicInfo.setNickName("商场["+record.getTenantId()+"]B端扫C端码支付专用账户"); - basicInfo.undateFinalTenantId(record); - basicInfo.setCreateDate(new Date()); - int count = wxCUserBasicInfoMapper.insert(basicInfo); - if (count <=0 ) { - throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "微信扫码支付添加会员用户失败"); - } - //userCreate = true; - } + CreateUser cUser = null; + try { + cUser = payServiceFactory.getCPassivePayService(payWay.getCode()).getCUserAfterPay(result, appInfo); + } catch (Exception e1) { + logger.error("创建C端用户失败: " ,e1); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "创建C端用户失败: " + e1.getMessage()); + } + //如果用户是会员,则用会员ID, 如果没有,则用渠道用户ID(如wxCuser,支付宝user) + Long basicUserId = null; + if (null != cUser && cUser.isBasicInfo()) { + basicUserId = cUser.getBasicUserId(); + }else { + //扫码支付的会员固定 + basicUserId = Long.parseLong(record.getTenantId()+"0001"); + WxCUserBasicInfo basicInfo = wxCUserBasicInfoMapper.selectById(basicUserId); + if (null == basicInfo) { + basicInfo = new WxCUserBasicInfo(); + basicInfo.setId(basicUserId); + basicInfo.setPhone("11111111111"); + basicInfo.setNickName("商场["+record.getTenantId()+"]B端扫C端码支付专用账户"); + basicInfo.undateFinalTenantId(record); + basicInfo.setCreateDate(new Date()); + int count = wxCUserBasicInfoMapper.insert(basicInfo); + if (count <=0 ) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "微信扫码支付添加会员用户失败"); + } + } + } WxPayOrderServiceImpl proxy = (WxPayOrderServiceImpl) AopContext.currentProxy(); - WxOrder order = proxy.handler(record,transcationId,basicInfo.getId()); + WxOrder order = proxy.handler(record,transcationId,basicUserId); if (null == order) { return; } @@ -930,7 +929,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } // 修改订单状态 - order.setCUserId(basicInfo.getId()); + order.setCUserId(basicUserId); try { int _count = wxOrderService.microPayOrderSuccess(order); if (_count > 1) { diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/CPassivePayService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/CPassivePayService.java index 8a9ba5b6d..ca3fc3224 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/CPassivePayService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/CPassivePayService.java @@ -29,6 +29,6 @@ public interface CPassivePayService extends PayAdapterService{ * @param params * @throws Exception */ - public CreateUser createCUserAfterPay(Object result,WxAppinfo appInfo) throws Exception; + public CreateUser getCUserAfterPay(Object result,WxAppinfo appInfo) throws Exception; } diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java index c6bbab83f..bb96416ab 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java @@ -208,58 +208,20 @@ public class WxMiniMaPayAdapterService extends BaseWxPayAdapterService implement WxMallMapper wxMallMapper; @Override - public CreateUser createCUserAfterPay(Object result,WxAppinfo appInfo) throws Exception { + public CreateUser getCUserAfterPay(Object result,WxAppinfo appInfo) throws Exception { // add c_user, 收银台支付和券支付可能不是同一个人 - Date curDate = new Date(); WxCUser userQ = new WxCUser(); Map returnMap = (Map) result; String openId = returnMap.get("sub_openid"); - String isSubscribe = returnMap.get("sub_is_subscribe"); + //String isSubscribe = returnMap.get("sub_is_subscribe"); userQ.setOpenId(openId); userQ.setAppId(appInfo.getAppId()); - WxMall mall = wxMallMapper.getByTenantId(appInfo.getTenantId()); WxCUser user1 = wxCUserMapper.findByOpenId(userQ); -// boolean userCreate = false; - final IdWorker idWorker = IdWorker.get(); - Long userId = idWorker.nextId(); if (user1 == null) { - user1 = new WxCUser(); - user1.setAppId(appInfo.getAppId()); - user1.setOpenId(openId); - user1.setTenantId(appInfo.getTenantId()); - user1.setParentTenantId(mall.getParentTenantId()); - int count = wxCUserService.saveOrUpdate(user1); - if (count <=0 ) { - throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "微信扫码支付添加微信C端用户失败"); - } + return null; }else { - if (user1.basicInfoIs()) { - userId = user1.getUserId(); - } + return new CreateUser(user1.getId(),user1.getUserId()); } - WxCUserBasicInfo basicInfo = wxCUserBasicInfoMapper.selectById(userId); - if (null == basicInfo) { - basicInfo = new WxCUserBasicInfo(); - basicInfo.setId(userId); - basicInfo.setPhone(openId); - basicInfo.setNickName("微信扫码支付非会员用户"); - basicInfo.undateFinalTenantId(new TenantEntity() {{ - setTenantId(mall.getTenantId()); - setParentTenantId(mall.getParentTenantId()); - }}); - basicInfo.setCreateDate(new Date()); - int count = wxCUserBasicInfoMapper.insert(basicInfo); - if (count <=0 ) { - throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "微信扫码支付添加会员用户失败"); - } - //userCreate = true; - } - -// if (userCreate) { -// user1.setUserId(userId); -// wxCUserService.saveOrUpdate(user1); -// } - return new CreateUser(user1.getId(),userId); } @Override