From 0a8d28436b2f7229ecdf40c6b003902002c8947f Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 16 十月 2025 17:37:08 +0800 Subject: [PATCH] 修改bug --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java | 153 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 112 insertions(+), 41 deletions(-) diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java index 885a57d..bcd202b 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java @@ -27,7 +27,6 @@ import com.stylefeng.guns.modular.taxi.model.PaymentRecord; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; -import org.apache.commons.lang.time.DateUtils; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; @@ -51,7 +50,6 @@ import java.net.URLConnection; import java.security.spec.AlgorithmParameterSpec; import java.text.SimpleDateFormat; -import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; @@ -128,8 +126,7 @@ private PayMoneyUtil payMoneyUtil; - @Autowired - private TDriverPromotionActivityService driverPromotionActivityService; + @Value("${callbackPath}") private String callbackPath; @@ -227,7 +224,7 @@ * @return */ @Override - public synchronized ResultUtil<LoginWarpper> captchaLogin(String phone, String code, String registIp, String registAreaCode,String loginType,Integer driverId) throws Exception { + public synchronized ResultUtil<LoginWarpper> captchaLogin(String phone, String code, String registIp, String registAreaCode,String loginType) throws Exception { UserInfo userInfo = userInfoMapper.queryByPhone(phone); String nickName = null; if (null == userInfo) { @@ -237,6 +234,7 @@ } //调中台接口查询用户 List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); + String onconUUID = null; if (null == infoByPhone || infoByPhone.isEmpty()) { RegisterViaMobileRequest request = new RegisterViaMobileRequest(); request.setMobile(phone); @@ -249,6 +247,7 @@ if (!"0".equals(register.getStatus())) { return ResultUtil.error(register.getDesc()); } + onconUUID = register.getOnconUUID(); } else { boolean b = this.checkCaptcha(phone, code); if (!b) { @@ -258,6 +257,7 @@ if (null == userInfo) { userInfo = new UserInfo(); + userInfo.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png"); userInfo.setPhone(phone); userInfo.setPassWord(ShiroKit.md5("", salt)); userInfo.setNickName(nickName); @@ -266,6 +266,9 @@ userInfo.setConsumption(0D); userInfo.setBalance(0D); userInfo.setState(1); + if(null != onconUUID){ + userInfo.setOnconUUID(onconUUID); + } //用户所属企业 if(null != registAreaCode){ @@ -275,23 +278,6 @@ }else { userInfo.setCompanyId(1); } - - - - - - // 是否需要绑定司机 - TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last(" limit 1")); - if(tDriverPromotionActivity!=null){ - Integer bindingDays = tDriverPromotionActivity.getBindingDays(); - // 当前时间+绑定天数 - Date endTime = DateUtils.addDays(new Date(), bindingDays); - userInfo.setBindDriverId(driverId); - userInfo.setBindExpireDate(endTime); - } - - - this.insert(userInfo); @@ -329,7 +315,7 @@ return ResultUtil.success(loginWarpper); } /** - * 手机验证码登录 + * 手机一键登录 * @param accessToken * @return */ @@ -346,18 +332,39 @@ return ResultUtil.error("登录失败"); } String phone = json.getJSONObject("data").getString("mobile"); - + + //调中台接口查询用户 + List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); + String onconUUID = null; + String nickName = this.getDefaultName(); + if (null == infoByPhone || infoByPhone.isEmpty()) { + RegisterViaMobileRequest request = new RegisterViaMobileRequest(); + request.setMobile(phone); + request.setEncryptType("aesbase64"); + request.setPassword(AESUtils.encryptBase64("123456")); + request.setNickname(nickName); + RegisterViaMobile register = UserUtil.registerViaMobile(request); + if (!"0".equals(register.getStatus())) { + return ResultUtil.error(register.getDesc()); + } + onconUUID = register.getOnconUUID(); + }else{ + onconUUID = UserUtil.getOnconUUIDByMobile(phone); + } + UserInfo userInfo = userInfoMapper.queryByPhone(phone); if (null == userInfo) { userInfo = new UserInfo(); + userInfo.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png"); userInfo.setPhone(phone); userInfo.setPassWord(ShiroKit.md5("", salt)); - userInfo.setNickName(this.getDefaultName()); + userInfo.setNickName(nickName); userInfo.setRegistIp(registIp); userInfo.setIsAuth(1); userInfo.setConsumption(0D); userInfo.setBalance(0D); userInfo.setState(1); + userInfo.setOnconUUID(onconUUID); //用户所属企业 if(null != registAreaCode){ @@ -397,13 +404,11 @@ loginWarpper.setEmergencyContact(userInfo.getEmergencyContact()); loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber()); loginWarpper.setPhone(2); - - //smsrecordService.saveData(1, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); return ResultUtil.success(loginWarpper); } @Override public synchronized ResultUtil<LoginWarpper> captchaLogin(String phone, String code, Integer uid, Integer type, Integer userType,String loginType) throws Exception { - ResultUtil<LoginWarpper> resultUtil = this.captchaLogin(phone, code, null, null,loginType,null); + ResultUtil<LoginWarpper> resultUtil = this.captchaLogin(phone, code, null, null,loginType); if(resultUtil.getCode() == 200 && null != uid){ if(type == 2){//司机分享 Driver driver = driverMapper.selectById(uid); @@ -521,6 +526,9 @@ loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber()); return ResultUtil.success(loginWarpper); } + + + @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) throws Exception { @@ -540,6 +548,7 @@ } if (null == userInfo) { userInfo = new UserInfo(); + userInfo.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png"); userInfo.setPassWord(ShiroKit.md5("", salt)); userInfo.setRegistIp(registIp); userInfo.setSex(sex); @@ -646,6 +655,10 @@ openid = map.get("openid"); unionid = map.get("unionid"); sessionKey = map.get("sessionKey"); + if(ToolUtil.isEmpty(phone)){ + phone = getPhone(sessionKey, encryptedData, iv); + } + if(ToolUtil.isNotEmpty(phone)){ List<UserInfo> phone1 = userInfoMapper.selectList(new EntityWrapper<UserInfo>().eq("phone", phone).eq("state",1).ne("flag",3)); if(phone1.size()>0){ @@ -657,21 +670,34 @@ }else { userInfo = userInfoMapper.queryByOpenid2(openid); } - System.out.println(userInfo); - if(ToolUtil.isEmpty(phone) && ToolUtil.isNotEmpty(userInfo) && ToolUtil.isEmpty(userInfo.getPhone())){ - String phone1 = getPhone(sessionKey, encryptedData, iv); - userInfo.setPhone(phone1); - userInfoMapper.updateById(userInfo); - } }else{//APP userInfo = userInfoMapper.queryByOpenid(openid); } + //调中台接口查询用户 + List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); + String onconUUID = null; + nickName = this.getDefaultName(); + if (null == infoByPhone || infoByPhone.isEmpty()) { + RegisterViaMobileRequest request = new RegisterViaMobileRequest(); + request.setMobile(phone); + request.setEncryptType("aesbase64"); + request.setPassword(AESUtils.encryptBase64("123456")); + request.setNickname(nickName); + RegisterViaMobile register = UserUtil.registerViaMobile(request); + if (!"0".equals(register.getStatus())) { + return ResultUtil.error(register.getDesc()); + } + onconUUID = register.getOnconUUID(); + }else{ + onconUUID = UserUtil.getOnconUUIDByMobile(phone); + } + int i =0; if(null == userInfo){ userInfo = new UserInfo(); + userInfo.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png"); if(ToolUtil.isEmpty(phone)){ - String phone2 = getPhone(sessionKey, encryptedData, iv); - List<UserInfo> phone1 = userInfoMapper.selectList(new EntityWrapper<UserInfo>().eq("phone", phone2).eq("state",1).ne("flag",3)); + List<UserInfo> phone1 = userInfoMapper.selectList(new EntityWrapper<UserInfo>().eq("phone", phone).eq("state",1).ne("flag",3)); if(phone1.size()>0){ userInfo = phone1.get(0); userInfo.setUnionid(unionid); @@ -679,7 +705,7 @@ userInfoMapper.updateById(userInfo); i=1; }else { - userInfo.setPhone(phone2); + userInfo.setPhone(phone); } }else { userInfo.setPhone(phone); @@ -689,8 +715,9 @@ userInfo.setRegistIp(registIp); userInfo.setSex(sex); - userInfo.setNickName(ToolUtil.isNotEmpty(nickName) ? nickName : this.getDefaultName()); + userInfo.setNickName(nickName); userInfo.setAvatar(avatar); + userInfo.setOnconUUID(onconUUID); if(type == 2){ userInfo.setAppletsOpenId(openid); @@ -884,6 +911,7 @@ nickName = userInfo.getNickName(); } //调中台接口查询用户 + String onconUUID = null; List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); if (null == infoByPhone || infoByPhone.isEmpty()) { RegisterViaMobileRequest request = new RegisterViaMobileRequest(); @@ -897,11 +925,13 @@ if (!"0".equals(register.getStatus())) { return ResultUtil.error(register.getDesc()); } + onconUUID = register.getOnconUUID(); } else { boolean b = this.checkCaptcha(phone, code); if (!b) { return ResultUtil.error("验证码无效"); } + onconUUID = UserUtil.getOnconUUIDByMobile(phone); } UserInfo userInfo1 = userInfoMapper.queryByPhone(phone); if (null != userInfo1) { @@ -911,6 +941,7 @@ userInfo1.setAvatar(userInfo.getAvatar()); userInfo1.setSex(userInfo.getSex()); userInfo1.setNickName(userInfo.getNickName()); + userInfo1.setOnconUUID(onconUUID); this.updateById(userInfo1); if (ToolUtil.isNotEmpty(loginType) && loginType.equals("Applets")) {//小程序登录后绑定手机号码 @@ -960,7 +991,7 @@ loginWarpper.setPhone(2); return ResultUtil.success(loginWarpper); } - + userInfo.setOnconUUID(onconUUID); userInfo.setPhone(phone); userInfo.setUpdateTime(new Date()); userInfo.setUpdateUser(userInfo.getId()); @@ -1250,7 +1281,7 @@ if(null == userInfo){ return ResultUtil.error("获取用户信息失败"); } - return this.captchaLogin(userInfo.get("phone"), "1234", null, registAreaCode, loginType,null); + return this.captchaLogin(userInfo.get("phone"), "1234", null, registAreaCode, loginType); }else{ return ResultUtil.error(jsonObject.getString("msg")); } @@ -1568,7 +1599,7 @@ boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch( usernamePasswordToken, simpleAuthenticationInfo); String s = JwtTokenUtil.generateToken(String.valueOf(userInfo.getId())); - redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(userInfo.getId()), 180, TimeUnit.DAYS); + redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(userInfo.getId()), 30, TimeUnit.DAYS); redisTemplate.opsForValue().set("USER_" + type + "_" + userInfo.getPhone(), s.substring(s.length() - 32)); redisTemplate.opsForValue().set("USER_" + type + "_" + userInfo.getId(), s); return s; @@ -1643,4 +1674,44 @@ } return ResultUtil.success(loginWarpper); } + + + @Override + public String addAppUser(String phone, String code, String areaCode, String onconUUID) throws Exception { + UserInfo userInfo = userInfoMapper.queryByPhone(phone); + String nickName = null; + if (null == userInfo) { + nickName = this.getDefaultName(); + } else { + nickName = userInfo.getNickName(); + } + //调中台接口查询用户 + List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); + if (null == userInfo) { + userInfo = new UserInfo(); + userInfo.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png"); + userInfo.setPhone(phone); + userInfo.setPassWord(ShiroKit.md5("", salt)); + userInfo.setNickName(nickName); + userInfo.setIsAuth(1); + userInfo.setConsumption(0D); + userInfo.setBalance(0D); + userInfo.setState(1); + if(null != onconUUID){ + userInfo.setOnconUUID(onconUUID); + } + + //用户所属企业 + if(null != areaCode){ + Company query = companyCityService.query(areaCode); + userInfo.setCompanyId(null != query ? query.getId() : 1); + userInfo.setRegistAreaCode(areaCode); + }else { + userInfo.setCompanyId(1); + } + + this.insert(userInfo); + } + return userInfo.getId().toString(); + } } -- Gitblit v1.7.1