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