From 2b8edb9eb8a333ce01e023e410781ae6ada1688d Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 18 八月 2025 22:50:09 +0800 Subject: [PATCH] 8.18 --- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java | 126 ++++++++++++++++++++++++++++++++--------- 1 files changed, 97 insertions(+), 29 deletions(-) diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java index f09cf82..2f3578e 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java @@ -32,6 +32,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.client.RestTemplate; import org.springframework.web.multipart.MultipartFile; @@ -41,6 +42,7 @@ import java.io.*; import java.math.BigDecimal; import java.security.SecureRandom; +import java.time.LocalDateTime; import java.util.*; @@ -88,6 +90,7 @@ @Resource private DriverMapper driverMapper; + @Autowired private RestTemplate restTemplate; @Resource @@ -146,31 +149,27 @@ String templateCode = ""; switch (type){ case 1: - templateCode = "SMS_476880205";//身份验证 + templateCode = "SMS_482775061";//身份验证 break; case 2: - templateCode = "SMS_476880205";//登录确认 + templateCode = "SMS_482775061";//登录确认 break; case 3: - templateCode = "SMS_476880205";//用户注册 + templateCode = "SMS_482775061";//用户注册 break; case 4: - templateCode = "SMS_476880205";//修改密码 + templateCode = "SMS_482775061";//修改密码 break; } - String sData = aLiSendSms.sendSms(phone, templateCode, "{\"code\":\"" + authCode + "\"}"); - JSONObject jsonObject = JSON.parseObject(sData); - String message = jsonObject.getString("Message"); - if(!"OK".equals(message)){ - System.err.println(message); - return ResultUtil.error(message); - } +// String sData = aLiSendSms.sendSms(phone, templateCode, "{\"code\":\"" + authCode + "\"}"); + SMSUtil.send(phone, "您的验证码:" + authCode + ",您正在进行身份验证,请勿泄露于他人!", "2431012312847"); +// JSONObject jsonObject = JSON.parseObject(sData); +// String message = jsonObject.getString("Message"); +// if(!"OK".equals(message)){ +// System.err.println(message); +// return ResultUtil.error(message); +// } System.out.println(sms); -// System.err.println("222222"); -// -// String s = MsgUtil.Send_Post(phone, authCode); -// System.err.println(s); - return ResultUtil.success(); } @@ -185,7 +184,7 @@ @Override public boolean checkCaptcha(String phone, String code) throws Exception { Object value = redisUtil.getValue(phone); - if("1234".equals(code)){ + if("5689".equals(code)){ return true; } @@ -248,11 +247,11 @@ invite.setInviteUserId(uid); invite.setUserId(userInfo.getId()); invite.setRegisterTime(new Date()); - invite.setUseType(userType); + invite.setUserType(userType); inviteMapper.insert(invite); if (userType==1){ // 只有用户邀请用户会获得优惠券 - List<Map<String, Object>> query = userActivityInviteMapper.query(userInfo.getCompanyId()); + List<Map<String, Object>> query = userActivityInviteMapper.query(1); Date date = new Date(); for(Map<String, Object> map : query){ Double lavePrice = Double.valueOf(map.get("lavePrice").toString()); @@ -280,6 +279,14 @@ userCouponRecordService.insert(userCouponRecord); //修改剩余可发放总金额 lavePrice -= Double.valueOf(String.valueOf(map.get("money"))); + + // 订阅通知 + UserInfo userInfo1 = userInfoMapper.selectById(uid); + if(userInfo1.getOpenId()!=null){ + // 推送订阅消息 + WxMaSubscribeMessageUtil.push(userInfo1.getAppletsOpenId(),map.get("name").toString(),userCouponRecord.getMoney()); + } + } UserActivityInvite uai = userActivityInviteMapper.selectById(Integer.valueOf(map.get("id").toString())); uai.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); @@ -287,7 +294,6 @@ } } } - this.addCoupon(userInfo);//添加优惠券 } if(userInfo.getState() == 2){ return ResultUtil.error("账号被冻结"); @@ -409,7 +415,7 @@ } if(type == 1){//用户分享 UserInfo userInfo = userInfoMapper.selectById(uid); - List<Map<String, Object>> query = userActivityInviteMapper.query(userInfo.getCompanyId()); + List<Map<String, Object>> query = userActivityInviteMapper.query(1); Date date = new Date(); for(Map<String, Object> map : query){ Double lavePrice = Double.valueOf(map.get("lavePrice").toString()); @@ -437,6 +443,15 @@ userCouponRecordService.insert(userCouponRecord); //修改剩余可发放总金额 lavePrice -= Double.valueOf(String.valueOf(map.get("money"))); + + // 订阅通知 + UserInfo userInfo1 = userInfoMapper.selectById(uid); + if(userInfo1.getOpenId()!=null){ + // 推送订阅消息 + WxMaSubscribeMessageUtil.push(userInfo1.getAppletsOpenId(),map.get("name").toString(),userCouponRecord.getMoney()); + } + + } UserActivityInvite uai = userActivityInviteMapper.selectById(Integer.valueOf(map.get("id").toString())); uai.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); @@ -507,7 +522,8 @@ @Override public ResultUtil<LoginWarpper> wxLogin(Integer type, String openid, String unionid, String jscode, String registIp, String registAreaCode, Integer sex, String nickName, String avatar,String loginType, - Integer uid,Integer userType) throws Exception { + Integer uid,Integer userType,String phone) throws Exception { + System.err.println("手机号+++++"+phone); UserInfo userInfo = null; if(type == 2){//小程序 if(ToolUtil.isEmpty(jscode)){ @@ -520,10 +536,19 @@ System.out.println("unionid===="+unionid); userInfo = userInfoMapper.queryByOpenid2(openid); + }else{//APP userInfo = userInfoMapper.queryByOpenid(openid); } + if (StringUtils.hasLength(phone)){ + UserInfo userInfo1 = userInfoMapper.queryByPhone(phone); + if (null != userInfo1){ + userInfo = userInfo1; + userInfo.setAppletsOpenId(openid); + } + } if(null == userInfo){ + // 如果为空 需要生成小程序二维码并携带用户id userInfo = new UserInfo(); userInfo.setPassWord(ShiroKit.md5("", salt)); @@ -554,11 +579,11 @@ invite.setInviteUserId(uid); invite.setUserId(userInfo.getId()); invite.setRegisterTime(new Date()); - invite.setUseType(userType); + invite.setUserType(userType); inviteMapper.insert(invite); if (userType==1){ // 只有用户邀请用户会获得优惠券 - List<Map<String, Object>> query = userActivityInviteMapper.query(userInfo.getCompanyId()); + List<Map<String, Object>> query = userActivityInviteMapper.query(1); Date date = new Date(); for(Map<String, Object> map : query){ Double lavePrice = Double.valueOf(map.get("lavePrice").toString()); @@ -584,6 +609,16 @@ userCouponRecord.setCompanyId(userInfo.getCompanyId()); userCouponRecord.setUserId(uid); userCouponRecordService.insert(userCouponRecord); + + + // 订阅通知 + UserInfo userInfo1 = userInfoMapper.selectById(uid); + if(userInfo1.getOpenId()!=null){ + // 推送订阅消息 + WxMaSubscribeMessageUtil.push(userInfo1.getAppletsOpenId(),map.get("name").toString(),userCouponRecord.getMoney()); + } + + //修改剩余可发放总金额 lavePrice -= Double.valueOf(String.valueOf(map.get("money"))); } @@ -651,7 +686,9 @@ param.put("check_path", false); // 用户id 用于分享 param.put("scene", "uid="+userInfo.getId()+"userType=1"); - param.put("env_version", "trial"); + +// param.put("env_version", "trial");// 体验版 + param.put("env_version", "release");// 正式版 param.put("width", 200); //二维码尺寸 param.put("is_hyaline", true); // 是否需要透明底色, is_hyaline 为true时,生成透明底色的小程序码 参数仅对小程序码生效 param.put("auto_color", true); // 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调 参数仅对小程序码生效 @@ -737,6 +774,7 @@ } + /** * 设置手机号码操作 * @param uid @@ -816,6 +854,18 @@ this.updateById(userInfo); smsrecordService.saveData(2, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); + List<Invite> invites = inviteMapper.selectList(null); + List<UserInfo> userInfos = this.selectList(null); + List<Integer> integers = new ArrayList<>(); + for (Invite invite : invites) { + UserInfo userInfo2 = userInfos.stream().filter(e -> e.getId().equals(invite.getUserId())).findFirst().orElse(null); + if (userInfo2==null){ + integers.add(invite.getId()); + } + } + if (!integers.isEmpty()){ + inviteMapper.deleteBatchIds(integers); + } return ResultUtil.success(new LoginWarpper()); } @@ -1108,6 +1158,11 @@ } jsonObject.put(userId.toString(), openid); redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString()); + UserInfo userInfo = userInfoMapper.selectById(userId); + if (userInfo!=null){ + userInfo.setAppletsOpenId(openid); + userInfoMapper.updateById(userInfo); + } return ResultUtil.success(); } @@ -1148,7 +1203,7 @@ * @throws Exception */ public synchronized void addCoupon(Integer userId, Double money, Integer companyId, Integer paymentRecordId) throws Exception{ - List<Map<String, Object>> query = userActivityBalanceService.query(money, companyId); + List<Map<String, Object>> query = userActivityBalanceService.query(money, 1); List<UserCouponRecord> list = new ArrayList<>(); for(Map<String, Object> map : query){ //添加通用优惠券 @@ -1288,7 +1343,7 @@ * @return */ public String getDefaultName(){ - int num = this.selectCount(new EntityWrapper<UserInfo>().ne("flag", 3)) + 1000001; + int num = this.selectCount(new EntityWrapper<UserInfo>()) + 1000001; return "XN" + String.valueOf(num).substring(1); } @@ -1329,7 +1384,7 @@ */ private synchronized void addCoupon(UserInfo userInfo) throws Exception{ //添加优惠券 - List<Map<String, Object>> list = userActivityRegisteredService.query(userInfo.getCompanyId()); + List<Map<String, Object>> list = userActivityRegisteredService.query(1); int num = 0; for(Map<String, Object> map : list){ if(null != map){ @@ -1361,6 +1416,13 @@ //修改剩余可发放总金额 lavePrice -= Double.valueOf(String.valueOf(map.get("money"))); num++; + + + // 订阅通知 + if(userInfo.getOpenId()!=null){ + // 推送订阅消息 + WxMaSubscribeMessageUtil.push(userInfo.getAppletsOpenId(),map.get("name").toString(),userCouponRecord.getMoney()); + } } UserActivityRegistered uar = userActivityRegisteredService.selectById(Integer.valueOf(map.get("id").toString())); uar.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); @@ -1377,7 +1439,7 @@ */ private synchronized void addInviteCoupon(UserInfo userInfo) throws Exception{ //添加优惠券 - List<Map<String, Object>> list = userActivityInviteMapper.query(userInfo.getCompanyId()); + List<Map<String, Object>> list = userActivityInviteMapper.query(1); int num = 0; for(Map<String, Object> map : list){ if(null != map){ @@ -1409,6 +1471,12 @@ //修改剩余可发放总金额 lavePrice -= Double.valueOf(String.valueOf(map.get("money"))); num++; + + // 订阅通知 + if(userInfo.getOpenId()!=null){ + // 推送订阅消息 + WxMaSubscribeMessageUtil.push(userInfo.getAppletsOpenId(),map.get("name").toString(),userCouponRecord.getMoney()); + } } UserActivityRegistered uar = userActivityRegisteredService.selectById(Integer.valueOf(map.get("id").toString())); uar.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); -- Gitblit v1.7.1