From c3883cee792651c5331635b367ea3daea43bf170 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Fri, 10 Nov 2023 09:36:55 +0800
Subject: [PATCH] fix:小程序token变化问题修复
---
screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java | 46 +++++++++--------------
screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 66 +++++++++++++++++++++++----------
screen-common/src/main/java/com/moral/util/TokenUtils.java | 6 ++
3 files changed, 69 insertions(+), 49 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
index 86fd061..d79f26e 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -23,6 +23,7 @@
import com.moral.api.service.ResponsibilityUnitService;
import com.moral.api.service.UserService;
import com.moral.api.utils.OperationLogUtils;
+import com.moral.api.utils.StringUtils;
import com.moral.api.utils.WechatUtils;
import com.moral.api.vo.WxMssVo;
import com.moral.constant.Constants;
@@ -116,6 +117,27 @@
}
ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(userBo.getUnitId());
List<Integer> list = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_DEVICE.value, userBo.getId());
+ result.put("userName", userBo.getUserName());
+ result.put("unitId",userBo.getUnitId());
+ result.put("userId", userBo.getId());
+ result.put("account", userBo.getAccount());
+ List<FileVo> listFile = fileTableService.list(userBo.getId(), FileTableEnum.APP_ALLOCATION.value);
+ result.put("file", CollectionUtils.isNotEmpty(listFile)?listFile.get(0):new FileVo());
+ result.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getUnitName())?responsibilityUnit.getUnitName():"���������������");
+ result.put("device",ObjectUtils.isEmpty(list)? StateEnum.NOT_EFFECTIVE.value :StateEnum.TAKE_EFFECT.value);
+ String userIdStr = new StringBuffer("00").append(userBo.getId().toString()).toString();
+ String tokenResult = TokenUtils.getTokenById(userIdStr);
+ if(StringUtils.isNotEmpty(tokenResult)){
+ result.put("token", tokenResult);
+ result.put("code", ResponseCodeEnum.SUCCESS.getCode());
+ result.put("msg", ResponseCodeEnum.SUCCESS.getMsg());
+ sysLog("������������������" + userBo.getAccount()+" ;openId:"+openId,userBo);
+ //������openId���user������
+ User user = userMapper.selectById(userBo.getId());
+ user.setOpenId(openId);
+ userMapper.updateById(user);
+ return result;
+ }
//������������������
Map<String, Object> userInfo = new LinkedHashMap<>();
userInfo.put("userId", userBo.getId());
@@ -135,14 +157,7 @@
//������token������������redis
String token = TokenUtils.getTokenApp(new StringBuffer("00").append(userBo.getId().toString()).toString(),userInfo);
result.put("token", token);
- result.put("userName", userBo.getUserName());
- result.put("unitId",userBo.getUnitId());
- result.put("userId", userBo.getId());
- result.put("account", userBo.getAccount());
- List<FileVo> listFile = fileTableService.list(userBo.getId(), FileTableEnum.APP_ALLOCATION.value);
- result.put("file", CollectionUtils.isNotEmpty(listFile)?listFile.get(0):new FileVo());
- result.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getUnitName())?responsibilityUnit.getUnitName():"���������������");
- result.put("device",ObjectUtils.isEmpty(list)? StateEnum.NOT_EFFECTIVE.value :StateEnum.TAKE_EFFECT.value);
+
} catch (Exception e) {
log.error("token���������������" + e.getMessage());
result.put("code", ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode());
@@ -191,7 +206,26 @@
// String nickName = rawDataJson.getString("nickName");
// String avatarUrl = rawDataJson.getString("avatarUrl");
}
-
+ String userIdStr = new StringBuffer("00").append(user.getId().toString()).toString();
+ String tokenResult = TokenUtils.getTokenById(userIdStr);
+ result.put("userName", user.getUserName());
+ result.put("unitId",user.getUnitId());
+ List<FileVo> listFile = fileTableService.list(user.getId(), FileTableEnum.APP_ALLOCATION.value);
+ result.put("file", CollectionUtils.isNotEmpty(listFile)?listFile.get(0):new FileVo());
+ result.put("userId", user.getId());
+ result.put("account", user.getAccount());
+ ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(user.getUnitId());
+ List<Integer> list = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_DEVICE.value, user.getId());
+ result.put("device",ObjectUtils.isEmpty(list)? StateEnum.NOT_EFFECTIVE.value : StateEnum.TAKE_EFFECT.value);
+ result.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getUnitName())?responsibilityUnit.getUnitName():"���������������");
+ result.put("openId",openid);
+ if(StringUtils.isNotEmpty(tokenResult)){
+ result.put("token", tokenResult);
+ result.put("code", ResponseCodeEnum.SUCCESS.getCode());
+ result.put("msg", ResponseCodeEnum.SUCCESS.getMsg());
+ sysLog("������������������" + user.getAccount()+" ;openId:"+openid,user);
+ return result;
+ }
Map<String, Object> userInfo = new LinkedHashMap<>();
userInfo.put("userId", user.getId());
userInfo.put("account", user.getAccount());
@@ -204,21 +238,13 @@
userInfo.put("wechat", user.getWechat());
userInfo.put("expireTime", DateUtils.dateToDateString(user.getExpireTime()));
userInfo.put("isAdmin", user.getIsAdmin());
- ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(user.getUnitId());
- List<Integer> list = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_DEVICE.value, user.getId());
+
try {
//������token������������redis
String token = TokenUtils.getTokenApp(new StringBuffer("00").append(user.getId().toString()).toString(),userInfo);
result.put("token", token);
- result.put("userName", user.getUserName());
- result.put("unitId",user.getUnitId());
- List<FileVo> listFile = fileTableService.list(user.getId(), FileTableEnum.APP_ALLOCATION.value);
- result.put("file", CollectionUtils.isNotEmpty(listFile)?listFile.get(0):new FileVo());
- result.put("userId", user.getId());
- result.put("account", user.getAccount());
- result.put("device",ObjectUtils.isEmpty(list)? StateEnum.NOT_EFFECTIVE.value : StateEnum.TAKE_EFFECT.value);
- result.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getUnitName())?responsibilityUnit.getUnitName():"���������������");
- result.put("openId",openid);
+
+
} catch (Exception e) {
log.error("token���������������" + e.getMessage());
result.put("code", ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode());
diff --git a/screen-common/src/main/java/com/moral/util/TokenUtils.java b/screen-common/src/main/java/com/moral/util/TokenUtils.java
index e8ae947..32fe383 100644
--- a/screen-common/src/main/java/com/moral/util/TokenUtils.java
+++ b/screen-common/src/main/java/com/moral/util/TokenUtils.java
@@ -197,7 +197,11 @@
* @Date: 2021/5/21
*/
public static String getTokenById(Integer id) {
- return (String)redisTemplate.opsForHash().get("user_token", String.valueOf(id));
+ return (String) getTokenById(id.toString());
+ }
+
+ public static String getTokenById(String id) {
+ return (String)redisTemplate.opsForHash().get("user_token", String.valueOf(id));
}
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java
index 26e7ecc..60149e4 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java
@@ -18,6 +18,7 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -225,35 +226,24 @@
log.info(j+"");
}
}else {
- for (int i=cruiserInfo.size()-1;i>0;i--) {
- CruiserDTO cruiserDTO = cruiserInfo.get(i);
- Double flyLat = cruiserDTO.getFlyLat();
- Double flyLon = cruiserDTO.getFlyLon();
- for (ManageCoordinateDetail manageCoordinateDetail : manageCoordinateDetails) {
- String latitude = manageCoordinateDetail.getLatitude().toString();
- String longitude = manageCoordinateDetail.getLongitude().toString();
-// double lonDouble1 = Double.parseDouble(longitude);
-// double latDouble1 = Double.parseDouble(latitude);
-// if (lonDouble1==flyLon && flyLat==latDouble1 ){
- if (longitude.equals(flyLon+"") && latitude.equals(flyLat+"")){
- cruiserInfo.remove(i);
- break;
- }
- }
- }
+ Map<String,Integer> map = new HashMap<>(manageCoordinateDetails.size()+50);
+ manageCoordinateDetails.forEach(it->map.put(it.getLatitude()+"_"+it.getLongitude(),it.getId()));
+ List<ManageCoordinateDetail> result = new ArrayList<>();
for (CruiserDTO cruiserDTO : cruiserInfo) {
- Double flyLat = cruiserDTO.getFlyLat();
- Double flyLon = cruiserDTO.getFlyLon();
- ManageCoordinateDetail rsDTO = new ManageCoordinateDetail();
- rsDTO.setLatitude(flyLat);
- rsDTO.setLongitude(flyLon);
- rsDTO.setState("2");
- rsDTO.setCreateTime(new Date());
- rsDTO.setUpdateTime(new Date());
- rsDTO.setCoordinateId(coordinateId);
- manageCoordinateDetailMapper.insert(rsDTO);
- j++;
- log.info(j+"");
+ String fly = cruiserDTO.getFlyLat()+"_"+cruiserDTO.getFlyLon();
+ if(!map.containsKey(fly)){
+ ManageCoordinateDetail rsDTO = new ManageCoordinateDetail();
+ rsDTO.setLatitude(cruiserDTO.getFlyLat());
+ rsDTO.setLongitude(cruiserDTO.getFlyLon());
+ rsDTO.setState("2");
+ rsDTO.setCreateTime(new Date());
+ rsDTO.setUpdateTime(new Date());
+ rsDTO.setCoordinateId(coordinateId);
+ result.add(rsDTO);
+ }
+ }
+ if(!CollectionUtils.isEmpty(result)){
+ this.saveBatch(result);
}
}
return 200;
--
Gitblit v1.8.0