From 79c06273ba713f73fb08fd3698622f28e663b96a Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 04 八月 2025 16:53:44 +0800
Subject: [PATCH] update
---
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java | 457 +++++++++++++++++++++++++++++++++++---------------------
1 files changed, 282 insertions(+), 175 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 09d779c..42947b9 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,6 +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;
@@ -28,8 +35,8 @@
import org.apache.shiro.util.ByteSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import javax.crypto.Cipher;
@@ -44,31 +51,32 @@
import java.security.spec.AlgorithmParameterSpec;
import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@Service
public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements IUserInfoService {
-
+
@Resource
private UserInfoMapper userInfoMapper;
-
+
@Resource
private UserActivityInviteMapper userActivityInviteMapper;
-
- @Autowired
- private RedisUtil redisUtil;
-
+
+ @Resource
+ private RedisTemplate<String, Object> redisTemplate;
+
@Autowired
private ALiSendSms aLiSendSms;
-
+
@Autowired
private WeChatUtil weChatUtil;
-
+
@Autowired
private IPaymentRecordService paymentRecordService;
-
+
@Autowired
private ICompanyCityService companyCityService;
@@ -117,6 +125,9 @@
@Autowired
private PayMoneyUtil payMoneyUtil;
+
+
+
@Value("${callbackPath}")
private String callbackPath;
@@ -135,36 +146,50 @@
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");
+// if(!"OK".equals(message)){
+// System.err.println(message);
+// return ResultUtil.error(message);
+// }
+
+ //中台没有用户数据,需要走注册接口,验证码校验走中台
+ 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);//设置五分钟过期
}
- String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"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 sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!";
- //发送验证码短信
- redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期
- System.out.println("【" + phone + "】" + sms);
return ResultUtil.success();
}
@@ -178,16 +203,16 @@
*/
@Override
public boolean checkCaptcha(String phone, String code) throws Exception {
- Object value = redisUtil.getValue(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;
}
}
@@ -200,24 +225,49 @@
*/
@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.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){
@@ -227,30 +277,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);
@@ -258,7 +311,7 @@
loginWarpper.setEmergencyContact(userInfo.getEmergencyContact());
loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber());
loginWarpper.setPhone(2);
-
+
smsrecordService.saveData(1, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
return ResultUtil.success(loginWarpper);
}
@@ -269,19 +322,20 @@
*/
@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.setPhone(phone);
userInfo.setPassWord(ShiroKit.md5("", salt));
@@ -291,7 +345,7 @@
userInfo.setConsumption(0D);
userInfo.setBalance(0D);
userInfo.setState(1);
-
+
//用户所属企业
if(null != registAreaCode){
Company query = companyCityService.query(registAreaCode);
@@ -308,22 +362,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);
@@ -331,7 +384,7 @@
loginWarpper.setEmergencyContact(userInfo.getEmergencyContact());
loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber());
loginWarpper.setPhone(2);
-
+
//smsrecordService.saveData(1, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
return ResultUtil.success(loginWarpper);
}
@@ -425,14 +478,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("密码错误");
}
@@ -443,6 +502,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());
@@ -452,9 +512,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);
@@ -462,22 +522,19 @@
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.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);
@@ -501,32 +558,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){//小程序登录
- String value = redisUtil.getValue("appletOpenId");
+
+ 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());
- redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+ 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);
@@ -577,9 +650,6 @@
userInfo.setPhone(phone1);
userInfoMapper.updateById(userInfo);
}
-
-
-
}else{//APP
userInfo = userInfoMapper.queryByOpenid(openid);
}
@@ -634,7 +704,7 @@
new Thread(new Runnable() {
@Override
public void run() {
- if(pushMinistryOfTransport){
+ if (pushMinistryOfTransport) {
//上传数据
pushMinistryOfTransportUtil.baseInfoPassenger(finalUserInfo.getId());
}
@@ -642,23 +712,36 @@
}).start();
}
}
-
-
-
- if(userInfo.getState() == 2){
+
+ if (userInfo.getState() == 2) {
return ResultUtil.error("账号被冻结");
}
-
- if(type == 2){//小程序登录
- String value = redisUtil.getValue("appletOpenId");
+
+ 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());
- redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+ 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);
}
//调用单点登录的逻辑
@@ -780,32 +863,57 @@
*/
@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")){//小程序登录后绑定手机号码
- String value = redisUtil.getValue("appletOpenId");
+
+ 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());
- redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+ redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString());
}
@@ -831,10 +939,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);
@@ -842,12 +950,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());
}
@@ -871,7 +979,7 @@
}else{
key = requestHeader;
}
- String value = redisUtil.getValue(key);
+ String value = (String) redisTemplate.opsForValue().get(key);
return null != value ? Integer.valueOf(value) : null;
}else{
return null;
@@ -931,7 +1039,7 @@
return ResultUtil.error("支付金额必须大于0元");
}
if(payType == 1){//微信支付
- String value = redisUtil.getValue("appletOpenId");
+ String value = (String) redisTemplate.opsForValue().get("appletOpenId");
String appletsOpenId = null;
if(ToolUtil.isNotEmpty(value)){
JSONObject jsonObject = JSON.parseObject(value);
@@ -993,6 +1101,8 @@
if(!b){
return ResultUtil.error("验证码无效");
}
+
+
UserInfo userInfo = this.selectById(uid);
UserInfo userInfo1 = userInfoMapper.queryByPhone(phone);
if(null != userInfo1){
@@ -1001,7 +1111,6 @@
userInfo.setPhone(phone);
this.updateById(userInfo);
-// smsrecordService.saveData(2, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
return ResultUtil.success();
}
@@ -1150,7 +1259,7 @@
String openid = map.get("openid");
String unionid = map.get("unionid");
//将当前小程序openid存储到缓存中用后面的支付时使用
- String value = redisUtil.getValue("appletOpenId");
+ String value = (String) redisTemplate.opsForValue().get("appletOpenId");
JSONObject jsonObject = null;
if(ToolUtil.isNotEmpty(value)){
jsonObject = JSON.parseObject(value);
@@ -1158,7 +1267,7 @@
jsonObject = new JSONObject();
}
jsonObject.put(userId.toString(), openid);
- redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+ redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString());
return ResultUtil.success();
}
@@ -1345,36 +1454,25 @@
*/
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);
}
-
/**
- * 获取token
- * @param userInfo
- * @param password
- * @return
+ * 单点登录
+ * @param id
*/
- private String getToken(UserInfo userInfo, String password,String type) throws Exception{
+ private void singlePointLogin(Integer id,String type) throws Exception{
if(ToolUtil.isEmpty(type))type="APP";
- //封装请求账号密码为shiro可验证的token
- UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(userInfo.getPhone(), password.toCharArray());
- String credentials = userInfo.getPassWord();
- ByteSource credentialsSalt = new Md5Hash(salt);
- SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
- new ShiroUser(), credentials, credentialsSalt, "");
-
- //校验用户账号密码
- HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
- md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
- md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations);
- boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
- usernamePasswordToken, simpleAuthenticationInfo);
- String s = JwtTokenUtil.generateToken(String.valueOf(userInfo.getId()));
- redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(userInfo.getId()), 180 * 24 * 60 * 60);
- redisUtil.setStrValue("USER_"+type+"_" + userInfo.getPhone(), s.substring(s.length() - 32));
- redisUtil.setStrValue("USER_"+type +"_"+ userInfo.getId(), s);
- return s;
+ //开始验证当前账号是否在别处登录
+ String value = (String) redisTemplate.opsForValue().get("USER_" + type + "_" + id);
+ if(ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线
+ //开始清除redis中无效的数据
+ UserInfo userInfo = userInfoMapper.selectById(id);
+ String key = (String) redisTemplate.opsForValue().get("USER_" + type + "_" + userInfo.getPhone());
+ redisTemplate.delete(key);//删除个人信息数据
+ redisTemplate.delete("USER_" + type + "_" + userInfo.getPhone());//删除后台冻结相关缓存
+ redisTemplate.delete("USER_" + type + "_" + id);//清除存储的token
+ }
}
@@ -1438,23 +1536,32 @@
}
}
-
/**
- * 单点登录
- * @param id
+ * 获取token
+ * @param userInfo
+ * @param password
+ * @return
*/
- private void singlePointLogin(Integer id,String type) throws Exception{
+ private String getToken(UserInfo userInfo, String password,String type) throws Exception{
if(ToolUtil.isEmpty(type))type="APP";
- //开始验证当前账号是否在别处登录
- String value = redisUtil.getValue("USER_"+type+"_" + id);
- if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线
- //开始清除redis中无效的数据
- UserInfo userInfo = userInfoMapper.selectById(id);
- String key = redisUtil.getValue("USER_"+type+"_" + userInfo.getPhone());
- redisUtil.remove(key);//删除个人信息数据
- redisUtil.remove("USER_"+type+"_" + userInfo.getPhone());//删除后台冻结相关缓存
- redisUtil.remove("USER_"+type+"_" + id);//清除存储的token
- }
+ //封装请求账号密码为shiro可验证的token
+ UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(userInfo.getPhone(), password.toCharArray());
+ String credentials = userInfo.getPassWord();
+ ByteSource credentialsSalt = new Md5Hash(salt);
+ SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
+ new ShiroUser(), credentials, credentialsSalt, "");
+
+ //校验用户账号密码
+ HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
+ md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
+ md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations);
+ 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("USER_" + type + "_" + userInfo.getPhone(), s.substring(s.length() - 32));
+ redisTemplate.opsForValue().set("USER_" + type + "_" + userInfo.getId(), s);
+ return s;
}
@Override
--
Gitblit v1.7.1