| | |
| | | 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.LoginWeChatXiao; |
| | | 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; |
| | |
| | | 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"); |
| | |
| | | // 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(); |
| | | } |
| | | |
| | |
| | | */ |
| | | @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); |
| | | String nickName = null; |
| | | if (null == userInfo) { |
| | | nickName = this.getDefaultName(); |
| | | } else { |
| | | nickName = userInfo.getNickName(); |
| | | } |
| | | //调中台接口查询用户 |
| | | 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()); |
| | | } |
| | | } else { |
| | | boolean b = this.checkCaptcha(phone, code); |
| | | if (!b) { |
| | | return ResultUtil.error("验证码无效"); |
| | | } |
| | | } |
| | | |
| | | UserInfo userInfo = userInfoMapper.queryByPhone(phone); |
| | | if (null == userInfo) { |
| | | ArrayList<UserBankAccount> userBankAccounts = new ArrayList<>(); |
| | | |
| | | userInfo = new UserInfo(); |
| | | userInfo.setPhone(phone); |
| | | userInfo.setPassWord(ShiroKit.md5("", salt)); |
| | | userInfo.setNickName(this.getDefaultName()); |
| | | userInfo.setNickName(nickName); |
| | | userInfo.setRegistIp(registIp); |
| | | userInfo.setIsAuth(1); |
| | | userInfo.setConsumption(0D); |
| | |
| | | } |
| | | }).start(); |
| | | |
| | | } |
| | | //调中台接口查询用户 |
| | | List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); |
| | | if (null == infoByPhone || infoByPhone.isEmpty()) { |
| | | RegisterViaMobileRequest request = new RegisterViaMobileRequest(); |
| | | request.setMobile(phone); |
| | | request.setPassword("123456"); |
| | | request.setNickname(userInfo.getNickName()); |
| | | request.setVerify_code(code); |
| | | request.setVerify_code_type("1"); |
| | | RegisterViaMobile register = UserUtil.registerViaMobile(request); |
| | | if (!"0".equals(register.getStatus())) { |
| | | return ResultUtil.error(register.getDesc()); |
| | | } |
| | | } |
| | | if (userInfo.getState() == 2) { |
| | | return ResultUtil.error("账号被冻结"); |
| | |
| | | } |
| | | jsonObject.put(userInfo.getId().toString(), userInfo.getAppletsOpenId()); |
| | | redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString()); |
| | | |
| | | //调中台微信登录接口 |
| | | LoginWeChatXiao loginWeChatXiao = UserUtil.loginWeChatXiao(jscode); |
| | | if (null == loginWeChatXiao) { |
| | | return ResultUtil.error("微信登录请求失败,请重试"); |
| | | } |
| | | //调用单点登录的逻辑 |
| | | this.singlePointLogin(userInfo.getId(), loginType); |
| | | String token = loginWeChatXiao.getToken(); |
| | | 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); |
| | |
| | | */ |
| | | @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(); |
| | | } |
| | | //调中台接口查询用户 |
| | | 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()); |
| | | } |
| | | } else { |
| | | boolean b = this.checkCaptcha(phone, code); |
| | | if (!b) { |
| | | return ResultUtil.error("验证码无效"); |
| | | } |
| | | } |
| | | UserInfo userInfo1 = userInfoMapper.queryByPhone(phone); |
| | | if (null != userInfo1) { |
| | | //调中台接口查询用户 |
| | | List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); |
| | | if (null == infoByPhone || infoByPhone.isEmpty()) { |
| | | RegisterViaMobileRequest request = new RegisterViaMobileRequest(); |
| | | request.setMobile(phone); |
| | | request.setPassword("123456"); |
| | | request.setNickname(userInfo.getNickName()); |
| | | request.setVerify_code(code); |
| | | request.setVerify_code_type("1"); |
| | | RegisterViaMobile register = UserUtil.registerViaMobile(request); |
| | | if (!"0".equals(register.getStatus())) { |
| | | return ResultUtil.error(register.getDesc()); |
| | | } |
| | | } |
| | | |
| | | userInfo1.setOpenId(userInfo.getOpenId()); |
| | | userInfo1.setUnionid(userInfo.getUnionid()); |
| | | userInfo1.setAppletsOpenId(userInfo.getAppletsOpenId()); |
| | |
| | | loginWarpper.setPhone(2); |
| | | return ResultUtil.success(loginWarpper); |
| | | } |
| | | //调中台接口查询用户 |
| | | List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); |
| | | if (null == infoByPhone || infoByPhone.isEmpty()) { |
| | | RegisterViaMobileRequest request = new RegisterViaMobileRequest(); |
| | | request.setMobile(phone); |
| | | request.setPassword("123456"); |
| | | request.setNickname(userInfo.getNickName()); |
| | | request.setVerify_code(code); |
| | | request.setVerify_code_type("1"); |
| | | RegisterViaMobile register = UserUtil.registerViaMobile(request); |
| | | if (!"0".equals(register.getStatus())) { |
| | | return ResultUtil.error(register.getDesc()); |
| | | } |
| | | } |
| | | |
| | | |
| | | userInfo.setPhone(phone); |
| | | userInfo.setUpdateTime(new Date()); |
| | |
| | | */ |
| | | 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); |
| | | } |
| | | |
| | | /** |