From 3adaa2e822391a059db744a8b2d333a521a75366 Mon Sep 17 00:00:00 2001 From: nyoung <12190070+nyoungo@user.noreply.gitee.com> Date: Wed, 4 Sep 2024 22:34:29 +0800 Subject: [PATCH] 1 --- .../iocoder/yudao/util/WechatPayConfig.java | 3 + .../payment/controller/WxPayController.java | 274 +++++++++++++++++- .../payment/service/OrderInfoService.java | 1 + .../service/impl/OrderInfoServiceImpl.java | 7 + .../inspection/AppInspectionPartnerMapper.xml | 4 +- .../InspectionAppointmentMapper.xml | 8 +- .../admin/user/vo/user/UserSaveReqVO.java | 1 + .../dal/dataobject/user/AdminUserDO.java | 2 + .../dal/mysql/user/AdminUserMapper.java | 2 +- .../service/auth/AdminAuthServiceImpl.java | 28 +- 10 files changed, 298 insertions(+), 32 deletions(-) diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/util/WechatPayConfig.java b/dl-module-base/src/main/java/cn/iocoder/yudao/util/WechatPayConfig.java index 7a33200a..3ea5f9ad 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/util/WechatPayConfig.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/util/WechatPayConfig.java @@ -80,6 +80,9 @@ public class WechatPayConfig { private String jcAppId = "wx5eeea06aeaae4f89"; private String jcAppSecret = "42207958589342d9d1d287b9cb53e289"; + private String jcNotifyUrl="https://www.nuoyunr.com/admin-api/payApi/payNotify"; + private String jcRefundNotifyUrl="https://www.nuoyunr.com/admin-api/payApi/refundNotify"; + diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/controller/WxPayController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/controller/WxPayController.java index 3f6aec3c..d4e4cf3b 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/controller/WxPayController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/controller/WxPayController.java @@ -1,11 +1,23 @@ package cn.iocoder.yudao.module.payment.controller; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.inspection.service.AppInspectionPartnerService; import cn.iocoder.yudao.module.partner.entity.PartnerBankInfo; +import cn.iocoder.yudao.module.payment.entity.FzRecord; import cn.iocoder.yudao.module.payment.entity.OrderInfo; +import cn.iocoder.yudao.module.payment.entity.OrderInfoDetail; +import cn.iocoder.yudao.module.payment.service.IFzRecordService; +import cn.iocoder.yudao.module.payment.service.IOrderInfoDetailService; import cn.iocoder.yudao.module.payment.service.OrderInfoService; +import cn.iocoder.yudao.module.shop.entity.ShopConfig; +import cn.iocoder.yudao.module.shop.entity.ShopCoupon; +import cn.iocoder.yudao.module.shop.service.IShopConfigService; +import cn.iocoder.yudao.module.shop.service.IShopCouponService; +import cn.iocoder.yudao.module.shop.service.IUserBalanceService; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.service.user.AdminUserService; import cn.iocoder.yudao.util.WechatPayConfig; @@ -15,22 +27,27 @@ import cn.iocoder.yudao.util.StringUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.ruoyi.partner.service.IPartnerBankInfoService; +import com.wechat.pay.contrib.apache.httpclient.util.AesUtil; import com.wechat.pay.contrib.apache.httpclient.util.PemUtil; import com.wechat.pay.java.core.Config; import com.wechat.pay.java.core.RSAAutoCertificateConfig; import com.wechat.pay.java.service.payments.jsapi.JsapiService; import com.wechat.pay.java.service.payments.jsapi.model.*; +import com.wechat.pay.java.service.profitsharing.ProfitsharingService; +import com.wechat.pay.java.service.profitsharing.model.CreateOrderReceiver; +import com.wechat.pay.java.service.profitsharing.model.CreateOrderRequest; +import com.wechat.pay.java.service.profitsharing.model.OrdersEntity; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + import javax.annotation.Resource; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.security.*; -import java.util.Base64; -import java.util.HashMap; -import java.util.Map; +import java.util.*; +import java.util.concurrent.locks.ReentrantLock; @RestController @@ -39,7 +56,8 @@ public class WxPayController { @Resource private WechatPayConfig wechatPayConfig; - + @Autowired + private IShopCouponService shopCouponService; @Resource private WechatPayRequest wechatPayRequest; @Autowired @@ -48,6 +66,17 @@ public class WxPayController { private IPartnerBankInfoService partnerBankInfoService; @Autowired private AdminUserService adminUserService; + @Autowired + private IShopConfigService configService; + @Autowired + private IOrderInfoDetailService orderInfoDetailService; + @Autowired + private IUserBalanceService userBalanceService; + @Autowired + private AppInspectionPartnerService partnerService; + @Autowired + private IFzRecordService fzRecordService; + private final ReentrantLock lock = new ReentrantLock(); /** * type:h5、jsapi、app、native、sub_jsapi @@ -66,7 +95,7 @@ public class WxPayController { params.put("mchid", wechatPayConfig.getMchId()); params.put("description", orderInfo.getGoodsTitle()); params.put("out_trade_no", orderInfo.getOrderNo()); - params.put("notify_url", wechatPayConfig.getNotifyUrl()); + params.put("notify_url", wechatPayConfig.getJcNotifyUrl()); Map amountMap = new HashMap<>(4); // 金额单位为分 amountMap.put("total", orderInfo.getPayMoney()); @@ -117,7 +146,7 @@ public class WxPayController { params.put("mchid", wechatPayConfig.getMchId()); params.put("description", orderInfo.getGoodsTitle()); params.put("out_trade_no", orderInfo.getOrderNo()); - params.put("notify_url", wechatPayConfig.getNotifyUrl()); + params.put("notify_url", wechatPayConfig.getJcNotifyUrl()); Map amountMap = new HashMap<>(4); // 金额单位为分 amountMap.put("total", orderInfo.getPayMoney()); @@ -170,7 +199,7 @@ public class WxPayController { String prepayId = this.toGetPayInfo(wechatPayConfig.getJcAppId(), bankInfo.getMchId(), bankInfo.getApiclientKey(), orderInfo.getPayMoney().intValue() , user.getJcOpenId(), bankInfo.getSerialNo(), bankInfo.getApiV3Key(), orderInfo.getGoodsTitle(), wechatPayConfig.getNotifyUrl(), orderInfo.getOrderNo()); - Map resMap = paySignMsg(prepayId, wechatPayConfig.getAppId(),bankInfo.getApiclientKey()); + Map resMap = paySignMsg(prepayId, wechatPayConfig.getJcAppId(),bankInfo.getApiclientKey()); return resMap; } private Map paySignMsg(String prepayId,String appId,String privateKeyStr) throws IOException, NoSuchAlgorithmException, InvalidKeyException, SignatureException { @@ -261,4 +290,229 @@ public class WxPayController { return response.getPrepayId(); } + + @PostMapping("/payNotify") + public Map payNotify(@RequestBody JSONObject jsonObject) { + String method = Thread.currentThread().getStackTrace()[1].getMethodName(); + + try { + String key = wechatPayConfig.getApiV3Key(); + String json = jsonObject.toString(); + String associated_data = (String) JSONUtil.getByPath(JSONUtil.parse(json), "resource.associated_data"); + String ciphertext = (String) JSONUtil.getByPath(JSONUtil.parse(json), "resource.ciphertext"); + String nonce = (String) JSONUtil.getByPath(JSONUtil.parse(json), "resource.nonce"); + + String decryptData = new AesUtil(key.getBytes(StandardCharsets.UTF_8)).decryptToString(associated_data.getBytes(StandardCharsets.UTF_8), nonce.getBytes(StandardCharsets.UTF_8), ciphertext); + //验签成功 + JSONObject decryptDataObj = JSONObject.parseObject(decryptData, JSONObject.class); + if(lock.tryLock()) { + try { + ShopConfig shopConfig = configService.selectShopConfigById(1L); + // 解密resource中的通知数据 + String orderNo = decryptDataObj.get("out_trade_no").toString(); + OrderInfo orderInfo = orderInfoService.getOrderByOrderNo(orderNo); + //追加订单明细记录 + orderInfoDetailService.save(new OrderInfoDetail(orderInfo.getId(),"支付成功",new Date(),orderInfo.getPayMoney(),"0")); + JSONObject balanceObject =new JSONObject(); + balanceObject.put("goodsType",orderInfo.getGoodsType()); + balanceObject.put("goodsTitle",orderInfo.getGoodsTitle()); + if (orderInfo.getOrderStatus().equals("0")){ + orderInfo.setTransactionId(decryptDataObj.get("transaction_id").toString()); + // 生成16位核销码 加到支付回调里 + UUID uuid = UUID.randomUUID(); + long mostSignificantBits = uuid.getMostSignificantBits(); + long leastSignificantBits = uuid.getLeastSignificantBits(); + + String combinedBits = mostSignificantBits+ String.valueOf(leastSignificantBits); + String shortUuid = combinedBits.substring(combinedBits.length() - 16); + orderInfo.setAccessCode(shortUuid); + if (orderInfo.getGoodsType().equals("cz")){ + balanceObject.put("silverNum", shopConfig.getShopUserSilver().longValue()); + balanceObject.put("goldNum", shopConfig.getShopUserGold().longValue()); + balanceObject.put("platinum", shopConfig.getShopUserPlatinum().longValue()); + //积分充值的逻辑处理 + orderInfo.setPayTime(new Date()); + //状态直接值为 3 已完成 忽略 使用 评价的过程 + orderInfo.setOrderStatus("3"); + orderInfoService.updateById(orderInfo); + //处理 用户积分的变化 + userBalanceService.addBalance(orderInfo.getPayMoney(),orderInfo.getUserId(),balanceObject); + }else if(orderInfo.getGoodsType().equals("jymd")){ + //救援买单 忽略核销过程 直接修改为待评价 + orderInfo.setPayTime(new Date()); + orderInfo.setOrderStatus("2"); + orderInfoService.updateById(orderInfo); + if (!ObjectUtil.isEmpty(orderInfo.getBalance())&&orderInfo.getBalance()>0){ + //处理积分 + userBalanceService.subtractFrozenBalance(orderInfo.getBalance(),orderInfo.getUserId(),balanceObject); + } + }else { + orderInfo.setPayTime(new Date()); + orderInfo.setOrderStatus("1"); + orderInfoService.updateById(orderInfo); + if (!ObjectUtil.isEmpty(orderInfo.getIsCoupon())&&orderInfo.getIsCoupon().equals("1")){ + ShopCoupon shopCoupon = shopCouponService.selectShopCouponByCouponId(orderInfo.getCouponId()); + //处理优惠卷 + shopCoupon.setCouponStatus("1"); + shopCoupon.setOrderId(orderInfo.getId()); + shopCoupon.setUseTime(new Date()); + shopCouponService.updateShopCoupon(shopCoupon); + orderInfo.setCouponId(shopCoupon.getCouponId()); + orderInfo.setCouponDiscount(orderInfo.getCouponDiscount()); + } + if (!ObjectUtil.isEmpty(orderInfo.getBalance())&&orderInfo.getBalance()>0){ + //处理积分 + userBalanceService.subtractFrozenBalance(orderInfo.getBalance(),orderInfo.getUserId(),balanceObject); + } + //店铺销量+1 + if (orderInfo.getPartnerId()!=null){ + partnerService.addSalesNum(orderInfo.getPartnerId()); + } + } + //最后处理邀请人的积分奖励 + AdminUserDO sysUser = adminUserService.getUser(orderInfo.getUserId()); + if (ObjectUtil.isNotEmpty(sysUser.getInviteId())){ + AdminUserDO inviteUser = adminUserService.getUser(sysUser.getInviteId()); + userBalanceService.inviteSpend(inviteUser.getId(),orderInfo.getPayMoney()); + } + //处理分账功能 + if (ObjectUtil.isNotEmpty(shopConfig.getFzRatio())&&shopConfig.getFzRatio()>0d&&orderInfo.getSkuName().contains("环检")){ + Timer timer = new Timer(); + TimerTask task = new TimerTask() { + @Override + public void run() { + LambdaQueryWrapper queryWrapper =new LambdaQueryWrapper<>(); + queryWrapper.eq(PartnerBankInfo::getPartnerId,orderInfo.getPartnerId()); + PartnerBankInfo bankInfo = partnerBankInfoService.getOne(queryWrapper); + profitsharing(wechatPayConfig.getAppId(),bankInfo.getMchId(),bankInfo.getApiclientKey(),3000L, + bankInfo.getSerialNo(),bankInfo.getApiV3Key(),orderInfo.getOrderNo(),orderInfo.getTransactionId(),orderInfo.getPartnerId() + ,orderInfo.getPartnerName(),orderInfo.getId(),orderInfo.getPayMoney()); + } + }; + long delay = 300 * 1000; // 一分钟后执行,单位是毫秒 + timer.schedule(task, delay); + } + } + } finally { + //要主动释放锁 + lock.unlock(); + } + } + }catch (Exception e){ + e.printStackTrace(); + } + + Map res = new HashMap<>(); + res.put("code", "SUCCESS"); + res.put("message", "成功"); + return res; + } + + @PostMapping("/profitsharing") + void profitsharing(String appId, String merchantId,String privateKey,Long amount, + String merchantSerialNumber,String apiV3Key,String orderNo,String transactionId + ,Long partnerId,String partnerName,Long orderId,Long totalAmount){ + try { + Config config = + new RSAAutoCertificateConfig.Builder() + .merchantId(merchantId) + .privateKey(privateKey) + .merchantSerialNumber(merchantSerialNumber) + .apiV3Key(apiV3Key) + .build(); + // 构建service + ProfitsharingService service = new ProfitsharingService.Builder().config(config).build(); + CreateOrderRequest request =new CreateOrderRequest(); + request.setAppid(appId); + request.setTransactionId(transactionId); + request.setOutOrderNo(orderNo); + request.setUnfreezeUnsplit(true); + List receivers =new ArrayList<>(); + CreateOrderReceiver receiver =new CreateOrderReceiver(); + receiver.setType("MERCHANT_ID"); + receiver.setAccount(wechatPayConfig.getMchId()); + receiver.setName("官方"); + receiver.setAmount(amount); + receiver.setDescription("平台收取一定费用"); + receivers.add(receiver); + request.setReceivers(receivers); + OrdersEntity order = service.createOrder(request); + FzRecord fzRecord =new FzRecord(); + fzRecord.setPartnerId(partnerId); + fzRecord.setPartnerName(partnerName); + fzRecord.setOrderId(orderId); + fzRecord.setOrderNo(orderNo); + fzRecord.setIsSuccess("1"); + fzRecord.setReason(JSONObject.toJSONString(order)); + fzRecord.setAmount(amount); + fzRecord.setTotalAmount(totalAmount); + fzRecordService.save(fzRecord); + }catch (Exception e){ + FzRecord fzRecord =new FzRecord(); + fzRecord.setPartnerId(partnerId); + fzRecord.setPartnerName(partnerName); + fzRecord.setOrderId(orderId); + fzRecord.setOrderNo(orderNo); + fzRecord.setIsSuccess("0"); + fzRecord.setReason(e.getMessage()); + fzRecord.setAmount(amount); + fzRecord.setTotalAmount(totalAmount); + fzRecordService.save(fzRecord); + } + + + + } + + @PostMapping("/refundNotify") + public Map refundNotify(@RequestBody JSONObject jsonObject) throws GeneralSecurityException, IOException { + String key = wechatPayConfig.getApiV3Key(); + String json = jsonObject.toString(); + String associated_data = (String) JSONUtil.getByPath(JSONUtil.parse(json), "resource.associated_data"); + String ciphertext = (String) JSONUtil.getByPath(JSONUtil.parse(json), "resource.ciphertext"); + String nonce = (String) JSONUtil.getByPath(JSONUtil.parse(json), "resource.nonce"); + + String decryptData = new AesUtil(key.getBytes(StandardCharsets.UTF_8)).decryptToString(associated_data.getBytes(StandardCharsets.UTF_8), nonce.getBytes(StandardCharsets.UTF_8), ciphertext); + //验签成功 + JSONObject decryptDataObj = JSONObject.parseObject(decryptData, JSONObject.class); + if(lock.tryLock()) { + try { + String orderNo = decryptDataObj.get("out_trade_no").toString(); + //根据订单编号进行退款处理 + OrderInfo orderInfo = orderInfoService.getOrderByOrderNo(orderNo); + //追加订单明细记录 + orderInfoDetailService.save(new OrderInfoDetail(orderInfo.getId(),"退款成功",new Date(),orderInfo.getPayMoney(),"1")); + if (orderInfo.getOrderStatus().equals("4")){ + if (orderInfo.getIsCoupon().equals("1")){ + //处理优惠卷 + ShopCoupon shopCoupon = shopCouponService.selectShopCouponByCouponId(orderInfo.getCouponId()); + shopCoupon.setCouponStatus("0"); + shopCouponService.hfStatus(shopCoupon); + } + //申请退款的状态 + //处理订单状态 + orderInfo.setOrderStatus("5"); + orderInfoService.updateById(orderInfo); + if (null!=orderInfo.getBalance()&&orderInfo.getBalance()>0){ + //1处理积分 + Long balance = orderInfo.getBalance(); + JSONObject balanceObject =new JSONObject(); + balanceObject.put("goodsType",orderInfo.getGoodsType()); + balanceObject.put("goodsTitle",orderInfo.getGoodsTitle()); + userBalanceService.refundBalance(orderInfo.getUserId(),balance,balanceObject); + } + } + //log.warn("=========== 根据订单号,做幂等处理 ==========="); + } finally { + //要主动释放锁 + lock.unlock(); + } + } + //成功应答 + Map res = new HashMap<>(); + res.put("code", "SUCCESS"); + res.put("message", "成功"); + return res; + } + } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/service/OrderInfoService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/service/OrderInfoService.java index a2ff0c92..a75f73aa 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/service/OrderInfoService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/service/OrderInfoService.java @@ -52,5 +52,6 @@ public interface OrderInfoService extends IService { List orderListPc(OrderInfo orderInfo); + OrderInfo getOrderByOrderNo(String orderNo); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/service/impl/OrderInfoServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/service/impl/OrderInfoServiceImpl.java index d1b75c4c..8a612a77 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/service/impl/OrderInfoServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/payment/service/impl/OrderInfoServiceImpl.java @@ -799,5 +799,12 @@ public class OrderInfoServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(OrderInfo::getOrderNo, orderNo); + return this.getOne(queryWrapper); + } + } diff --git a/dl-module-inspection/src/main/resources/mapper/inspection/AppInspectionPartnerMapper.xml b/dl-module-inspection/src/main/resources/mapper/inspection/AppInspectionPartnerMapper.xml index e80204ed..9882fee4 100644 --- a/dl-module-inspection/src/main/resources/mapper/inspection/AppInspectionPartnerMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/inspection/AppInspectionPartnerMapper.xml @@ -412,7 +412,7 @@ FROM COUNT(1) FROM inspection_appointment ia - where ia.partner_id = #{partnerId} and appointment_day = #{formDate} + where ia.deleted = 0 and ia.partner_id = #{partnerId} and appointment_day = #{formDate} order by create_time desc diff --git a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml index e8db856e..2155dc9c 100644 --- a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml @@ -98,9 +98,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM inspection_appointment ip INNER JOIN system_users su ON ip.user_id = su.id - left JOIN order_info oi ON ip.order_id = oi.id - left join shop_user_car suc on suc.car_id = oi.user_car_id - where ip.partner_id = #{partnerId} + left JOIN order_info oi ON ip.order_id = oi.id and oi.deleted=0 + left join shop_user_car suc on suc.car_id = oi.user_car_id and suc.deleted=0 + where ip.deleted=0 and ip.partner_id = #{partnerId} and su.mobile like concat('%',#{phoneNum},'%') @@ -115,7 +115,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" INNER JOIN system_users su ON ip.user_id = su.id left JOIN order_info oi ON ip.order_id = oi.id left join shop_user_car suc on suc.car_id = oi.user_car_id - where ip.user_id = #{userId} + where ip.deleted=0 and ip.user_id = #{userId} order by ip.create_time desc diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java index 0f85567b..dc371a93 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java @@ -95,6 +95,7 @@ public class UserSaveReqVO { private Integer userAge; private String rescueOpenId; + private String jcOpenId; private Long inviteId; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java index 04d14e1d..073dbb6b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java @@ -111,4 +111,6 @@ public class AdminUserDO extends TenantBaseDO { private String openId; + private Long inviteId; + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java index e28a8491..a7311bf0 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java @@ -23,7 +23,7 @@ public interface AdminUserMapper extends BaseMapperX { } default AdminUserDO selectByMobile(String mobile) { - return null; + return getUserByMobileWithoutTenant(mobile); } default PageResult selectPage(UserPageReqVO reqVO, Collection deptIds) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java index a7d7c7c9..d2606b91 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java @@ -401,7 +401,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { user.setNickname(phoneNumber); user.setMobile(phoneNumber); user.setPassword(passwordEncoder.encode("123456")); - user.setRescueOpenId(openId); + user.setJcOpenId(openId); user.setTenantId(1L); if (null!=inviteId){ //绑定上级 @@ -422,20 +422,18 @@ public class AdminAuthServiceImpl implements AdminAuthService { permissionService.assignUserRole(user.getId(),ids); }else { //更新 -// user.setId(wxUser.getId()); -// user.setNickname(phoneNumber); -// user.setMobile(phoneNumber); -// user.setRescueOpenId(openId); -// user.setId(1L); -// if (ObjectUtil.isEmpty(user.getInviteId())){ -// if (null!=inviteId){ -// //绑定上级 -// user.setInviteId(inviteId); -// //给上级进行积分奖励 -//// userBalanceService.inviteRewards(inviteId); -// } -// } -// userService.updateUser(user); + user.setId(wxUser.getId()); + user.setNickname(phoneNumber); + user.setJcOpenId(openId); + if (ObjectUtil.isEmpty(user.getInviteId())){ + if (null!=inviteId){ + //绑定上级 + user.setInviteId(inviteId); + //给上级进行积分奖励 +// userBalanceService.inviteRewards(inviteId); + } + } + userService.updateUser(user); } // 生成token