From 4c532c217f3cd7b68597113c6d2c9e72e1d782aa Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期三, 13 八月 2025 18:57:10 +0800 Subject: [PATCH] 修改bug --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java | 406 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 286 insertions(+), 120 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 403529c..82c8c82 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 @@ -16,7 +16,13 @@ import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.qianyuntong.AESUtils; import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTUserInfo; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.RegisterViaMobile; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.RegisterViaMobileRequest; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.SendSmsRequest; import com.stylefeng.guns.modular.system.warpper.LoginWarpper; import com.stylefeng.guns.modular.taxi.model.PaymentRecord; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; @@ -52,25 +58,25 @@ @Service public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements IUserInfoService { - + @Resource private UserInfoMapper userInfoMapper; - + @Resource private UserActivityInviteMapper userActivityInviteMapper; - @Autowired - private RedisTemplate redisTemplate; - + @Resource + private RedisTemplate<String, Object> redisTemplate; + @Autowired private ALiSendSms aLiSendSms; - + @Autowired private WeChatUtil weChatUtil; - + @Autowired private IPaymentRecordService paymentRecordService; - + @Autowired private ICompanyCityService companyCityService; @@ -119,6 +125,9 @@ @Autowired private PayMoneyUtil payMoneyUtil; + + + @Value("${callbackPath}") private String callbackPath; @@ -137,25 +146,25 @@ public ResultUtil queryCaptcha(String phone, Integer type) throws Exception { Random random = new Random(); StringBuffer sb = new StringBuffer(); - for(int i = 0; i < 4; i++){ + for (int i = 0; i < 4; i++) { sb.append((int) (random.nextDouble() * 10)); } String authCode = sb.toString(); - String templateCode = ""; - switch (type){ - case 1: - templateCode = "SMS_154775435";//身份验证 - break; - case 2: - templateCode = "SMS_154775434";//登录确认 - break; - case 3: - templateCode = "SMS_154775432";//用户注册 - break; - case 4: - templateCode = "SMS_154775431";//修改密码 - break; - } +// String templateCode = ""; +// switch (type){ +// case 1: +// templateCode = "SMS_154775435";//身份验证 +// break; +// case 2: +// templateCode = "SMS_154775434";//登录确认 +// break; +// case 3: +// templateCode = "SMS_154775432";//用户注册 +// break; +// case 4: +// templateCode = "SMS_154775431";//修改密码 +// break; +// } // String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"code\":\"" + authCode + "\"}"); // JSONObject jsonObject = JSON.parseObject(sData); // String message = jsonObject.getString("Message"); @@ -163,11 +172,24 @@ // System.err.println(message); // return ResultUtil.error(message); // } - SMSUtil.sendVerifyCode(phone); - String sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"; - //发送验证码短信 - redisTemplate.opsForValue().set(phone, authCode, 5, TimeUnit.MINUTES);//设置五分钟过期 - System.out.println("【" + phone + "】" + sms); + + //中台没有用户数据,需要走注册接口,验证码校验走中台 + List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); + if (null == infoByPhone || infoByPhone.isEmpty()) { + SMSUtil.sendVerifyCode(phone); + } else { + SendSmsRequest request = new SendSmsRequest(); + request.setDestAddress(phone); + request.setTemplateId("TPL202410290001"); + Map<String, String> templateParams = new HashMap<>(); + templateParams.put("code", authCode); + request.setTemplateParams(templateParams); + request.setCode("code"); + request.setSpId("T8d5hdfg"); + SMSUtil.sendSms(request); + //发送验证码短信 + redisTemplate.opsForValue().set(phone, authCode, 5, TimeUnit.MINUTES);//设置五分钟过期 + } return ResultUtil.success(); } @@ -181,16 +203,16 @@ */ @Override public boolean checkCaptcha(String phone, String code) throws Exception { - Object value = redisTemplate.opsForValue().get(phone); - if("1234".equals(code)){ + if ("1234".equals(code)) { return true; } - System.out.println("phone:"+phone); - System.out.println("code:"+code); - System.out.println("code---"+String.valueOf(value)); - if(null != value && code.equals(String.valueOf(value))){ + Object value = redisTemplate.opsForValue().get(phone); + System.out.println("phone:" + phone); + System.out.println("code:" + code); + System.out.println("code---" + String.valueOf(value)); + if (null != value && code.equals(String.valueOf(value))) { return true; - }else{ + } else { return false; } } @@ -203,24 +225,50 @@ */ @Override public synchronized ResultUtil<LoginWarpper> captchaLogin(String phone, String code, String registIp, String registAreaCode,String loginType) throws Exception { - boolean b = this.checkCaptcha(phone, code); - if(!b){ - return ResultUtil.error("验证码无效"); - } - UserInfo userInfo = userInfoMapper.queryByPhone(phone); - if(null == userInfo){ - ArrayList<UserBankAccount> userBankAccounts = new ArrayList<>(); - + String nickName = null; + if (null == userInfo) { + nickName = this.getDefaultName(); + } else { + nickName = userInfo.getNickName(); + } + //调中台接口查询用户 + List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); + String onconUUID = null; + if (null == infoByPhone || infoByPhone.isEmpty()) { + RegisterViaMobileRequest request = new RegisterViaMobileRequest(); + request.setMobile(phone); + request.setEncryptType("aesbase64"); + request.setPassword(AESUtils.encryptBase64("123456")); + request.setNickname(nickName); + request.setVerify_code(code); + request.setVerify_code_type("0"); + RegisterViaMobile register = UserUtil.registerViaMobile(request); + 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("验证码无效"); + } + } + + 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); + if(null != onconUUID){ + userInfo.setOnconUUID(onconUUID); + } //用户所属企业 if(null != registAreaCode){ @@ -230,30 +278,33 @@ }else { userInfo.setCompanyId(1); } + + + this.insert(userInfo); this.addCoupon(userInfo);//添加优惠券 - + UserInfo finalUserInfo = userInfo; new Thread(new Runnable() { @Override public void run() { - if(pushMinistryOfTransport){ + if (pushMinistryOfTransport) { //上传数据 pushMinistryOfTransportUtil.baseInfoPassenger(finalUserInfo.getId()); } } }).start(); - + } - if(userInfo.getState() == 2){ + if (userInfo.getState() == 2) { return ResultUtil.error("账号被冻结"); } - + //调用单点登录的逻辑 - this.singlePointLogin(userInfo.getId(),loginType); - - String token = this.getToken(userInfo, "",loginType); + this.singlePointLogin(userInfo.getId(), loginType); + + String token = this.getToken(userInfo, "", loginType); LoginWarpper loginWarpper = new LoginWarpper(); loginWarpper.setId(userInfo.getId()); loginWarpper.setToken(token); @@ -261,7 +312,7 @@ loginWarpper.setEmergencyContact(userInfo.getEmergencyContact()); loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber()); loginWarpper.setPhone(2); - + smsrecordService.saveData(1, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); return ResultUtil.success(loginWarpper); } @@ -272,20 +323,22 @@ */ @Override public ResultUtil<LoginWarpper> oneClickLogin(String accessToken, String registIp, String registAreaCode,String loginType,String androidOrIos) throws Exception { - String response = GetMobile.getPhone(accessToken,androidOrIos); - - if(response==null){ + String response = GetMobile.getPhone(accessToken, androidOrIos); + + if (response == null) { return ResultUtil.error("登录失败"); } - System.out.println( response); + System.out.println(response); JSONObject json = JSONObject.parseObject(response); - if(!json.getBoolean("success")){ + if (!json.getBoolean("success")) { return ResultUtil.error("登录失败"); } String phone = json.getJSONObject("data").getString("mobile"); + UserInfo userInfo = userInfoMapper.queryByPhone(phone); - if(null == userInfo){ + 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()); @@ -294,7 +347,7 @@ userInfo.setConsumption(0D); userInfo.setBalance(0D); userInfo.setState(1); - + //用户所属企业 if(null != registAreaCode){ Company query = companyCityService.query(registAreaCode); @@ -311,22 +364,21 @@ new Thread(new Runnable() { @Override public void run() { - if(pushMinistryOfTransport){ + if (pushMinistryOfTransport) { //上传数据 pushMinistryOfTransportUtil.baseInfoPassenger(finalUserInfo.getId()); } } }).start(); - + } - if(userInfo.getState() == 2){ + if (userInfo.getState() == 2) { return ResultUtil.error("账号被冻结"); } - //调用单点登录的逻辑 - this.singlePointLogin(userInfo.getId(),loginType); - - String token = this.getToken(userInfo, "",loginType); + this.singlePointLogin(userInfo.getId(), loginType); + + String token = this.getToken(userInfo, "", loginType); LoginWarpper loginWarpper = new LoginWarpper(); loginWarpper.setId(userInfo.getId()); loginWarpper.setToken(token); @@ -334,7 +386,7 @@ loginWarpper.setEmergencyContact(userInfo.getEmergencyContact()); loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber()); loginWarpper.setPhone(2); - + //smsrecordService.saveData(1, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); return ResultUtil.success(loginWarpper); } @@ -428,14 +480,20 @@ */ @Override public ResultUtil<LoginWarpper> userLogin(String phone, String password,String loginType) throws Exception { - UserInfo userInfo = this.queryByPhone(phone); - if(null == userInfo){ + //调中台接口查询用户 + List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); + if (null == infoByPhone || infoByPhone.isEmpty()) { return ResultUtil.error("账号无效"); } - if(userInfo.getState() == 2){ + + UserInfo userInfo = this.queryByPhone(phone); + if (null == userInfo) { + return ResultUtil.error("账号无效"); + } + if (userInfo.getState() == 2) { return ResultUtil.error("账号被冻结"); } - if(!ShiroKit.md5(password, salt).equals(userInfo.getPassWord())){ + if (!ShiroKit.md5(password, salt).equals(userInfo.getPassWord())) { return ResultUtil.error("密码错误"); } @@ -446,6 +504,7 @@ LoginWarpper loginWarpper = new LoginWarpper(); loginWarpper.setId(userInfo.getId()); loginWarpper.setToken(token); + loginWarpper.setExpirationTime(15552000L); loginWarpper.setAppid(UUIDUtil.getRandomCode()); loginWarpper.setEmergencyContact(userInfo.getEmergencyContact()); loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber()); @@ -455,9 +514,9 @@ 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 { UserInfo userInfo = null; - String sessionKey=null; - if(type == 2){//小程序 - if(ToolUtil.isEmpty(jscode)){ + String sessionKey = null; + if (type == 2) {//小程序 + if (ToolUtil.isEmpty(jscode)) { return ResultUtil.error("微信登录请求失败,请重试"); } Map<String, String> map = weChatUtil.code2Session(jscode); @@ -465,22 +524,20 @@ unionid = map.get("unionid"); sessionKey = map.get("sessionKey"); userInfo = userInfoMapper.queryByOpenid2(openid); - - - - }else{//APP + } else {//APP userInfo = userInfoMapper.queryByOpenid(openid); } - if(null == userInfo){ + 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); userInfo.setNickName(ToolUtil.isNotEmpty(nickName) ? nickName : this.getDefaultName()); userInfo.setAvatar(avatar); - if(type == 2){ + if (type == 2) { userInfo.setAppletsOpenId(openid); - }else{ + } else { userInfo.setOpenId(openid); } userInfo.setUnionid(unionid); @@ -504,32 +561,48 @@ new Thread(new Runnable() { @Override public void run() { - if(pushMinistryOfTransport){ + if (pushMinistryOfTransport) { //上传数据 pushMinistryOfTransportUtil.baseInfoPassenger(finalUserInfo.getId()); } } }).start(); } - if(userInfo.getState() == 2){ + if (userInfo.getState() == 2) { return ResultUtil.error("账号被冻结"); } - - if(type == 2){//小程序登录 + + if (type == 2) {//小程序登录 String value = (String) redisTemplate.opsForValue().get("appletOpenId"); JSONObject jsonObject = null; - if(ToolUtil.isNotEmpty(value)){ + if (ToolUtil.isNotEmpty(value)) { jsonObject = JSON.parseObject(value); - }else{ + } else { jsonObject = new JSONObject(); } jsonObject.put(userInfo.getId().toString(), userInfo.getAppletsOpenId()); redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString()); + //调用单点登录的逻辑 + this.singlePointLogin(userInfo.getId(), loginType); + String token = this.getToken(userInfo, "", loginType); + redisTemplate.opsForValue().set(token.substring(token.length() - 32), String.valueOf(userInfo.getId()), 180, TimeUnit.DAYS); + redisTemplate.opsForValue().set("USER_" + type + "_" + userInfo.getPhone(), token.substring(token.length() - 32)); + redisTemplate.opsForValue().set("USER_" + type + "_" + userInfo.getId(), token); + + LoginWarpper loginWarpper = new LoginWarpper(); + loginWarpper.setId(userInfo.getId()); + loginWarpper.setToken(token); + loginWarpper.setAppid(UUIDUtil.getRandomCode()); + loginWarpper.setPhone(ToolUtil.isNotEmpty(userInfo.getPhone()) ? 2 : 1); + loginWarpper.setEmergencyContact(userInfo.getEmergencyContact()); + loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber()); + return ResultUtil.success(loginWarpper); } - + + //调用单点登录的逻辑 - this.singlePointLogin(userInfo.getId(),loginType); - String token = this.getToken(userInfo, "",loginType); + this.singlePointLogin(userInfo.getId(), loginType); + String token = this.getToken(userInfo, "", loginType); LoginWarpper loginWarpper = new LoginWarpper(); loginWarpper.setId(userInfo.getId()); loginWarpper.setToken(token); @@ -580,15 +653,13 @@ userInfo.setPhone(phone1); userInfoMapper.updateById(userInfo); } - - - }else{//APP userInfo = userInfoMapper.queryByOpenid(openid); } 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)); @@ -637,7 +708,7 @@ new Thread(new Runnable() { @Override public void run() { - if(pushMinistryOfTransport){ + if (pushMinistryOfTransport) { //上传数据 pushMinistryOfTransportUtil.baseInfoPassenger(finalUserInfo.getId()); } @@ -645,23 +716,36 @@ }).start(); } } - - - - if(userInfo.getState() == 2){ + + if (userInfo.getState() == 2) { return ResultUtil.error("账号被冻结"); } - - if(type == 2){//小程序登录 + + if (type == 2) {//小程序登录 String value = (String) redisTemplate.opsForValue().get("appletOpenId"); JSONObject jsonObject = null; - if(ToolUtil.isNotEmpty(value)){ + if (ToolUtil.isNotEmpty(value)) { jsonObject = JSON.parseObject(value); - }else{ + } else { jsonObject = new JSONObject(); } jsonObject.put(userInfo.getId().toString(), userInfo.getAppletsOpenId()); redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString()); + //调用单点登录的逻辑 + this.singlePointLogin(userInfo.getId(), loginType); + String token = this.getToken(userInfo, "", loginType); + redisTemplate.opsForValue().set(token.substring(token.length() - 32), String.valueOf(userInfo.getId()), 180, TimeUnit.DAYS); + redisTemplate.opsForValue().set("USER_" + type + "_" + userInfo.getPhone(), token.substring(token.length() - 32)); + redisTemplate.opsForValue().set("USER_" + type + "_" + userInfo.getId(), token); + + LoginWarpper loginWarpper = new LoginWarpper(); + loginWarpper.setId(userInfo.getId()); + loginWarpper.setToken(token); + loginWarpper.setAppid(UUIDUtil.getRandomCode()); + loginWarpper.setPhone(ToolUtil.isNotEmpty(userInfo.getPhone()) ? 2 : 1); + loginWarpper.setEmergencyContact(userInfo.getEmergencyContact()); + loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber()); + return ResultUtil.success(loginWarpper); } //调用单点登录的逻辑 @@ -783,28 +867,53 @@ */ @Override public ResultUtil bindingPhone(Integer uid, String phone, String code,String loginType) throws Exception { - boolean b = this.checkCaptcha(phone, code); - if(!b){ - return ResultUtil.error("验证码无效"); - } UserInfo userInfo = this.selectById(uid); + String nickName = null; + if (null == userInfo) { + nickName = this.getDefaultName(); + } else { + nickName = userInfo.getNickName(); + } + //调中台接口查询用户 + String onconUUID = null; + List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); + if (null == infoByPhone || infoByPhone.isEmpty()) { + RegisterViaMobileRequest request = new RegisterViaMobileRequest(); + request.setMobile(phone); + request.setEncryptType("aesbase64"); + request.setPassword(AESUtils.encryptBase64("123456")); + request.setNickname(nickName); + request.setVerify_code(code); + request.setVerify_code_type("0"); + RegisterViaMobile register = UserUtil.registerViaMobile(request); + 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("验证码无效"); + } + } UserInfo userInfo1 = userInfoMapper.queryByPhone(phone); - if(null != userInfo1){ + if (null != userInfo1) { userInfo1.setOpenId(userInfo.getOpenId()); userInfo1.setUnionid(userInfo.getUnionid()); userInfo1.setAppletsOpenId(userInfo.getAppletsOpenId()); 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")){//小程序登录后绑定手机号码 + + if (ToolUtil.isNotEmpty(loginType) && loginType.equals("Applets")) {//小程序登录后绑定手机号码 String value = (String) redisTemplate.opsForValue().get("appletOpenId"); JSONObject jsonObject = null; - if(ToolUtil.isNotEmpty(value)){ + if (ToolUtil.isNotEmpty(value)) { jsonObject = JSON.parseObject(value); jsonObject.remove(userInfo.getId().toString());//删除原有账号缓存的数据 - }else{ + } else { jsonObject = new JSONObject(); } jsonObject.put(userInfo1.getId().toString(), userInfo.getAppletsOpenId()); @@ -834,10 +943,10 @@ } userCouponRecordService.deleteById(ucr.getId()); } - - + + //获取新的token等数据 - String token = this.getToken(userInfo1, "",loginType); + String token = this.getToken(userInfo1, "", loginType); LoginWarpper loginWarpper = new LoginWarpper(); loginWarpper.setId(userInfo1.getId()); loginWarpper.setToken(token); @@ -845,12 +954,12 @@ loginWarpper.setPhone(2); return ResultUtil.success(loginWarpper); } - + userInfo.setOnconUUID(onconUUID); userInfo.setPhone(phone); userInfo.setUpdateTime(new Date()); userInfo.setUpdateUser(userInfo.getId()); this.updateById(userInfo); - + smsrecordService.saveData(2, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); return ResultUtil.success(new LoginWarpper()); } @@ -996,6 +1105,8 @@ if(!b){ return ResultUtil.error("验证码无效"); } + + UserInfo userInfo = this.selectById(uid); UserInfo userInfo1 = userInfoMapper.queryByPhone(phone); if(null != userInfo1){ @@ -1004,7 +1115,6 @@ userInfo.setPhone(phone); this.updateById(userInfo); -// smsrecordService.saveData(2, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); return ResultUtil.success(); } @@ -1348,7 +1458,7 @@ */ public String getDefaultName(){ int num = this.selectCount(new EntityWrapper<UserInfo>().ne("flag", 3)) + 1000001; - return "JYX" + String.valueOf(num).substring(1); + return "GRJY" + String.valueOf(num).substring(1); } /** @@ -1527,4 +1637,60 @@ } return ResultUtil.success(loginWarpper); } + + + @Override + public String addAppUser(String phone, String code, String areaCode) 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); + String onconUUID = null; + if (null == infoByPhone || infoByPhone.isEmpty()) { + RegisterViaMobileRequest request = new RegisterViaMobileRequest(); + request.setMobile(phone); + request.setEncryptType("aesbase64"); + request.setPassword(AESUtils.encryptBase64("123456")); + request.setNickname(nickName); + request.setVerify_code(code); + request.setVerify_code_type("0"); + RegisterViaMobile register = UserUtil.registerViaMobile(request); + if (!"0".equals(register.getStatus())) { + return null; + } + onconUUID = register.getOnconUUID(); + } + + 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