From 3d39f387323349ffda3a0bb49fdd6b7e70b0b867 Mon Sep 17 00:00:00 2001 From: caojianbin <1910336823> Date: Fri, 27 Dec 2024 14:28:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=89=8B=E6=9C=BA=E5=8F=B7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/controller/DeviceDisableAppController.java | 19 +- .../app/controller/UserController.java | 67 ++++- .../app/entity/dto/UpdateUserDto.java | 2 +- .../internationalize/app/service/UserService.java | 7 +- .../app/service/impl/BindingDeviceImpl.java | 46 +++- .../app/service/impl/UserServiceImpl.java | 302 ++++++++++++++------- .../main/resources/i18n/messages_en_US.properties | 6 +- .../main/resources/i18n/messages_zh_CN.properties | 6 +- .../common/system/constant/FieldConstant.java | 6 + .../common/issue/component/IssueInstructions.java | 2 +- .../controller/PositioningModelInfoController.java | 15 + .../main/resources/i18n/messages_en_US.properties | 2 + .../main/resources/i18n/messages_zh_CN.properties | 4 +- 13 files changed, 362 insertions(+), 122 deletions(-) diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/DeviceDisableAppController.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/DeviceDisableAppController.java index b0e2767..7ab0c75 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/DeviceDisableAppController.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/DeviceDisableAppController.java @@ -12,6 +12,8 @@ import com.ecell.internationalize.app.service.DeviceDisableAppService; import com.ecell.internationalize.app.util.I18nUtil; import com.ecell.internationalize.common.core.entity.Rest; import com.ecell.internationalize.common.core.utils.uuid.UUID; +import com.ecell.internationalize.common.issue.constant.CommonConstant; +import com.ecell.internationalize.common.redis.service.RedisService; import com.ecell.internationalize.common.system.constant.FieldConstant; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,6 +39,8 @@ import java.util.List; public class DeviceDisableAppController { @Autowired private DeviceDisableAppService deviceDisableAppService; + @Autowired + private RedisService redisService; @ApiOperation(value ="查询上课禁用的闹钟") @GetMapping("/query/disabled") @@ -53,7 +57,7 @@ public class DeviceDisableAppController { //1.查询设置的闹钟个数 int count = deviceDisableAppService.getBaseMapper().selectCount(queryWrapper); if (count>=3){ - return Rest.fail(I18nUtil.getMessage(FieldConstant.ALARM_CLOCK_NUMBER,request.getHeader("Accept-Language"))); + return Rest.fail(I18nUtil.getMessage(FieldConstant.DISABLE_CLASS_NUMBER,request.getHeader("Accept-Language"))); } DeviceDisableApp deviceDisableApp=new DeviceDisableApp(); String id = UUID.randomUUID().toString(true); @@ -112,9 +116,16 @@ public class DeviceDisableAppController { @ApiOperation(value ="查找手表") @GetMapping("/find/queryDevice") public Rest queryDevice(HttpServletRequest request,@ApiParam(value = "设备imei号") String imei) { - //1.开始下发查找手表指令 - deviceDisableAppService.findToKafka(imei); - return Rest.ok(I18nUtil.getMessage(FieldConstant.MESSAGES_SUCCESS,request.getHeader("Accept-Language"))); + String onlineStatus = redisService.getCacheMapValue(imei, "onlineStatus"); + if(CommonConstant.AUDIT_STATUS_ONE.equals(onlineStatus)){ + //1.开始下发查找手表指令 + deviceDisableAppService.findToKafka(imei); + return Rest.ok(I18nUtil.getMessage(FieldConstant.MESSAGES_SUCCESS,request.getHeader("Accept-Language"))); + }else { + + return Rest.fail( I18nUtil.getMessage(FieldConstant.QUERY_DEVICE_ERROR,request.getHeader("Accept-Language"))); + } + } } diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/UserController.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/UserController.java index 736827d..25c140d 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/UserController.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/UserController.java @@ -248,7 +248,6 @@ public class UserController { if (StringUtils.isEmpty(userDto.getEmail())){ userDto.setEmail(SecurityContextHolder.getUserName()); } - logger.info("修改密码邮箱===:"+userDto.getEmail()); //1.根据email查询当前登陆用户 LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(User::getUserEmail,userDto.getEmail()); @@ -265,9 +264,6 @@ public class UserController { return Rest.fail(I18nUtil.getMessage(FieldConstant.OLD_PASSWORD_ERROR,request.getHeader("Accept-Language"))); } - - - //对新密码进行加密 String encryptPassword = SecurityUtils.encryptPassword(userDto.getPassword()); user.setPassword(encryptPassword); @@ -279,6 +275,15 @@ public class UserController { +// /** +// * 查看个人资料 20241227注释掉 +// */ +// @ApiOperation("查看个人资料") +// @GetMapping("send/query") +// public Rest queryUsers(HttpServletRequest request, @ApiParam(name ="imei",value = "设备imei") String imei) { +// return Rest.ok(userService.queryUser(SecurityContextHolder.getStringUserId(),imei)); +// } + /** * 查看个人资料 */ @@ -287,19 +292,42 @@ public class UserController { public Rest queryUsers(HttpServletRequest request, @ApiParam(name ="imei",value = "设备imei") String imei) { return Rest.ok(userService.queryUser(SecurityContextHolder.getStringUserId(),imei)); } + + + + + /** + * 修改账号信息 20241227注释 + */ +// @ApiOperation("修改账号信息") +// @PostMapping("send/updateInfo") +// public Rest updateInfo(MultipartFile file, UpdateUserDto user, HttpServletRequest request) throws IOException { +// String userId= SecurityContextHolder.getStringUserId(); +// LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); +// lambdaQueryWrapper.eq(UserDeviceBindApp::getPhone,user.getPhone()); +// List userDeviceBindApp = userDeviceBindService.getBaseMapper().selectList(lambdaQueryWrapper); +// if (!CollectionUtils.isEmpty(userDeviceBindApp) && !userId.equals(userDeviceBindApp.get(0).getUserId())){ +// return Rest.fail(user.getPhone()+""+I18nUtil.getMessage(CommonConstant.PHONE_HAS_EXIT,request.getHeader("Accept-Language"))); +// } +// +// if (null!=file){ +// System.out.println("头像文件不为空"); +// System.out.println("文件file:"+file.getOriginalFilename()); +// String path = UploadUtil.upload(file); +// user.setImage(path); +// } +// userService.updateData(user); +// return Rest.ok(userService.queryUser(SecurityContextHolder.getStringUserId(),user.getImei())); +// } + + + /** - * 修改账号信息 + * 修改账号信息 20241227修改 */ @ApiOperation("修改账号信息") @PostMapping("send/updateInfo") - public Rest updateInfo(MultipartFile file, UpdateUserDto user, HttpServletRequest request) throws IOException { - String userId= SecurityContextHolder.getStringUserId(); - LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(UserDeviceBindApp::getPhone,user.getPhone()); - List userDeviceBindApp = userDeviceBindService.getBaseMapper().selectList(lambdaQueryWrapper); - if (!CollectionUtils.isEmpty(userDeviceBindApp) && !userId.equals(userDeviceBindApp.get(0).getUserId())){ - return Rest.fail(user.getPhone()+""+I18nUtil.getMessage(CommonConstant.PHONE_HAS_EXIT,request.getHeader("Accept-Language"))); - } + public Rest updateInfo(MultipartFile file, UpdateUserDto user, HttpServletRequest request) throws IOException { if (null!=file){ System.out.println("头像文件不为空"); @@ -307,9 +335,18 @@ public class UserController { String path = UploadUtil.upload(file); user.setImage(path); } - userService.updateData(user); - return Rest.ok(userService.queryUser(SecurityContextHolder.getStringUserId(),user.getImei())); + + + return Rest.ok( userService.updateData(user)); } + + + + + + + + /** * 退出登录 */ diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/dto/UpdateUserDto.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/dto/UpdateUserDto.java index ffad1b7..fc3b20a 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/dto/UpdateUserDto.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/dto/UpdateUserDto.java @@ -15,7 +15,7 @@ public class UpdateUserDto { @ApiModelProperty(example = "姓名") private String name; - @ApiModelProperty(example = "设备imei号") + @ApiModelProperty(hidden = true) private String imei; @ApiModelProperty(example = "手机号") private String phone; diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/UserService.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/UserService.java index 03879b3..7b43152 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/UserService.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/UserService.java @@ -36,9 +36,10 @@ public interface UserService extends IService { */ Map createToken(User user,String osName,String deviceToken,String packages,String version); - UserVo queryUser(String userId, String imei); - - int updateData(UpdateUserDto user); + // UserVo queryUser(String userId, String imei); + UserVo queryUser(String userId, String imei); + // int updateData(UpdateUserDto user); + User updateData(UpdateUserDto user); void getSystemToken(String type, String token); } diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/BindingDeviceImpl.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/BindingDeviceImpl.java index cc74cc7..4d3d77c 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/BindingDeviceImpl.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/BindingDeviceImpl.java @@ -18,6 +18,7 @@ import com.ecell.internationalize.app.util.I18nUtil; import com.ecell.internationalize.app.util.LocationUtil; import com.ecell.internationalize.common.core.context.SecurityContextHolder; import com.ecell.internationalize.common.core.exception.ServiceException; +import com.ecell.internationalize.common.core.utils.SpringUtils; import com.ecell.internationalize.common.core.utils.StringUtils; import com.ecell.internationalize.common.core.utils.bean.BeanUtils; import com.ecell.internationalize.common.core.utils.uuid.UUID; @@ -392,6 +393,15 @@ public class BindingDeviceImpl implements BindingDevice { // memberApp.setGroupId(groupId); //============================================================ + //更新用户信息表,把手机号码也更新 20241227新增 + UserService userService = SpringUtils.getBean(UserService.class); + User user = userService.getBaseMapper().selectById(userId); + if (StringUtils.isNotNull(user)){ + if (!user.getPhone().equals(dto.getMy_phone())){ + user.setPhone(dto.getMy_phone()); + userService.getBaseMapper().updateById(user); + } + } //============================================================ @@ -447,7 +457,7 @@ public class BindingDeviceImpl implements BindingDevice { * @param * @return */ - private UserDeviceBindApp queryByPhone(String userId, String phone) { + public UserDeviceBindApp queryByPhone(String userId, String phone) { QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("phone", phone); wrapper.ne("user_id", userId); @@ -456,6 +466,25 @@ public class BindingDeviceImpl implements BindingDevice { } + + + +// /** +// * 查询同一imei 用户手机号码是否被其他用户绑定 +// * +// * @param +// * @return +// */ +// private UserDeviceBindApp queryByPhoneAndImei(String imei, String phone) { +// QueryWrapper wrapper = new QueryWrapper(); +// wrapper.eq("phone", phone); +// wrapper.ne("imei", imei); +// wrapper.last("LIMIT 1"); +// return userDeviceBindService.getBaseMapper().selectOne(wrapper); +// +// } + + /** * 设备绑定成功之后推送消息给管理员(申请关注) * @@ -476,6 +505,8 @@ public class BindingDeviceImpl implements BindingDevice { if (StringUtils.isNotNull(userDeviceBindApp)) { throw new ServiceException("messagesIsPhoneBound"); } + + //判断该用户绑定的数量是否超过限制(最大6个) if (this.queryBindingDeviceNumber(applyFollowDto.getImei()) > CommonConstant.NUMBER_FIVE) { // throw new ServiceException("您已经添加申请了6个设备不能在添加其它设备"); @@ -825,6 +856,14 @@ public class BindingDeviceImpl implements BindingDevice { if (!StringUtils.isNotNull(user)) { throw new ServiceException("messagesUserDoesNotExist"); } + /******************20241227新增***********************/ + if (!user.getPhone().equals(dto.getPhone())){ + //更新用户表的手机号码 + user.setPhone(dto.getPhone()); + userMapper.updateById(user); + } + + /******************20241227新增***********************/ bindApp.setUserEmail(user.getUserEmail()); //======================================================// //通讯录表初始化 只有管理员才添加到通讯录中 申请关注的人要去审核通过才能添加通讯录中 @@ -892,6 +931,11 @@ public class BindingDeviceImpl implements BindingDevice { flag = userDeviceBindService.save(bindApp); flag = chatGroupMemberAppService.save(memberApp); + + + + + if (flag) { //下发通讯 addressBookAppService.sendToKafka(dto.getImei()); diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/UserServiceImpl.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/UserServiceImpl.java index a5cebef..b62ee78 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/UserServiceImpl.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/UserServiceImpl.java @@ -10,10 +10,14 @@ import com.ecell.internationalize.app.entity.dto.UserDto; import com.ecell.internationalize.app.mapper.AddressBookAppMapper; import com.ecell.internationalize.app.mapper.UserDeviceBindAppMapper; import com.ecell.internationalize.app.mapper.UserMapper; +import com.ecell.internationalize.app.service.UserDeviceBindService; import com.ecell.internationalize.app.service.UserService; import com.ecell.internationalize.common.core.constant.SecurityConstants; import com.ecell.internationalize.common.core.context.SecurityContextHolder; +import com.ecell.internationalize.common.core.exception.ServiceException; import com.ecell.internationalize.common.core.utils.JwtUtils; +import com.ecell.internationalize.common.core.utils.SpringUtils; +import com.ecell.internationalize.common.core.utils.StringUtils; import com.ecell.internationalize.common.core.utils.uuid.IdUtils; import com.ecell.internationalize.common.core.utils.uuid.UUID; import com.ecell.internationalize.common.issue.constant.CommonConstant; @@ -28,8 +32,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; /** *

@@ -54,12 +60,13 @@ public class UserServiceImpl extends ServiceImpl implements Us private BindingDeviceImpl bindingDevice; private static final long EXPIRATION = 30; public final static String APP_TOKEN_KEY = "app_tokens:"; + @Override @Transactional(rollbackFor = Exception.class) public int insertUser(UserDto userDto) { //对密码进行加密 String encryptPassword = SecurityUtils.encryptPassword(userDto.getPassword()); - User user=new User(); + User user = new User(); String userId = UUID.randomUUID().toString(true); user.setUserId(userId); //默认姓名为邮箱 @@ -69,18 +76,20 @@ public class UserServiceImpl extends ServiceImpl implements Us user.setUserAgent(userDto.getUserAgent()); // UserDeviceBindApp userDeviceBindApp = insertData(user); // userDeviceBindAppMapper.insert(userDeviceBindApp); - return userMapper.insert(user); + return userMapper.insert(user); } + /** * token生成 + * + * @param user + * @return int * @Title: UserService * @Author: liy * @Date: 2022/8/17 15:03 - * @return int - * @param user */ @Override - public Map createToken(User user,String osName,String deviceToken,String packages,String version) { + public Map createToken(User user, String osName, String deviceToken, String packages, String version) { //修改登录机型 user.setUserAgent(osName); userMapper.updateById(user); @@ -96,118 +105,228 @@ public class UserServiceImpl extends ServiceImpl implements Us // 接口返回信息 Map rspMap = new HashMap<>(16); rspMap.put("Authorization", user.getToken()); - rspMap.put("expires_in",EXPIRATION); + rspMap.put("expires_in", EXPIRATION); rspMap.put("openid", user.getUserId()); - System.out.println("成功返回登录信息:"+rspMap); + System.out.println("成功返回登录信息:" + rspMap); //IOS deviceToken存入redis - if ("iOS".equals(osName)){ - logger.info("iOS机型,获取IOS的token并存入redis:{}",deviceToken); - if(null!=deviceToken && !"".equals(deviceToken)) { - logger.info("iOS机型,获取IOS的token并存入redis:{}",deviceToken); + if ("iOS".equals(osName)) { + logger.info("iOS机型,获取IOS的token并存入redis:{}", deviceToken); + if (null != deviceToken && !"".equals(deviceToken)) { + logger.info("iOS机型,获取IOS的token并存入redis:{}", deviceToken); redisService.setCacheMapValue(user.getUserId(), CommonConstant.DEVICE_TOKEN, deviceToken); - }else { + } else { logger.info("苹果手机拒绝接收通知,token存入空"); redisService.setCacheMapValue(user.getUserId(), CommonConstant.DEVICE_TOKEN, null); } - redisService.setCacheMapValue(user.getUserId(), CommonConstant.IOS_PACKAGE,packages); - redisService.setCacheMapValue(user.getUserId(), CommonConstant.IOS_VERSION,version); + redisService.setCacheMapValue(user.getUserId(), CommonConstant.IOS_PACKAGE, packages); + redisService.setCacheMapValue(user.getUserId(), CommonConstant.IOS_VERSION, version); } return rspMap; } +// @Override 20241227 废弃 +// public UserVo queryUser(String userId, String imei) { +// String phone=""; +// //查询到的用户信息 +// UserVo userVo = userMapper.queryUser(userId); +// //查询用户与设备绑定信息,获取手机号 +// LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); +// lambdaQueryWrapper.eq(UserDeviceBindApp::getImei,imei); +// lambdaQueryWrapper.eq(UserDeviceBindApp::getUserId,userId); +// UserDeviceBindApp userDeviceBindApp = userDeviceBindAppMapper.selectOne(lambdaQueryWrapper); +// if (null != userDeviceBindApp){ +// phone = userDeviceBindApp.getPhone(); +// } +// userVo.setPhone(phone); +// userVo.setImei(imei); +// if (null == userVo.getName() || "".equals(userVo.getName())){ +// userVo.setName(SecurityContextHolder.getUserName()); +// } +// return userVo; +// } + +// @Override 20241227 废弃 +// public UserVo queryUser(String userId, String imei) { +// String phone = ""; +// //查询到的用户信息 +// UserVo userVo = userMapper.queryUser(userId); +// //查询用户与设备绑定信息,获取手机号 +// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); +// lambdaQueryWrapper.eq(UserDeviceBindApp::getImei, imei); +// lambdaQueryWrapper.eq(UserDeviceBindApp::getUserId, userId); +// UserDeviceBindApp userDeviceBindApp = userDeviceBindAppMapper.selectOne(lambdaQueryWrapper); +// if (null != userDeviceBindApp) { +// phone = userDeviceBindApp.getPhone(); +// } +// userVo.setPhone(phone); +// userVo.setImei(imei); +// if (null == userVo.getName() || "".equals(userVo.getName())) { +// userVo.setName(SecurityContextHolder.getUserName()); +// } +// return userVo; +// } + @Override public UserVo queryUser(String userId, String imei) { - String phone=""; - //查询到的用户信息 - UserVo userVo = userMapper.queryUser(userId); - //查询用户与设备绑定信息,获取手机号 - LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(UserDeviceBindApp::getImei,imei); - lambdaQueryWrapper.eq(UserDeviceBindApp::getUserId,userId); - UserDeviceBindApp userDeviceBindApp = userDeviceBindAppMapper.selectOne(lambdaQueryWrapper); - if (null != userDeviceBindApp){ - phone = userDeviceBindApp.getPhone(); - } - userVo.setPhone(phone); - userVo.setImei(imei); - if (null == userVo.getName() || "".equals(userVo.getName())){ - userVo.setName(SecurityContextHolder.getUserName()); - } - return userVo; + User user = userMapper.selectById(userId); + UserVo vo = new UserVo(); + vo.setImage(user.getImage()); + vo.setName(SecurityContextHolder.getUserName()); + vo.setPhone(user.getPhone()); + + return vo; } + +// @Override 20241227 废弃 +// @Transactional(rollbackFor = Exception.class) +// public int updateData(UpdateUserDto user) { +// //1.修改用户设备绑定表的手机号 +// UserDeviceBindApp userDeviceBindApp = new UserDeviceBindApp(); +// userDeviceBindApp.setPhone(user.getPhone()); +// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); +// lambdaQueryWrapper.eq(UserDeviceBindApp::getImei, user.getImei()); +// lambdaQueryWrapper.eq(UserDeviceBindApp::getUserId, SecurityContextHolder.getStringUserId()); +// userDeviceBindAppMapper.update(userDeviceBindApp, lambdaQueryWrapper); +// //2.修改通讯录的手机号 +// AddressBookApp addressBookApp = new AddressBookApp(); +// addressBookApp.setPhone(user.getPhone()); +// LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); +// lambdaQueryWrapper1.eq(AddressBookApp::getImei, user.getImei()); +// lambdaQueryWrapper1.eq(AddressBookApp::getUserId, SecurityContextHolder.getStringUserId()); +// addressBookAppMapper.update(addressBookApp, lambdaQueryWrapper1); +// //3.修改用户表的信息 +// User user1 = new User(); +// user1.setUserId(SecurityContextHolder.getStringUserId()); +// user1.setPhone(user.getPhone()); +// user1.setName(user.getName()); +// if (null != user.getImage()) { +// user1.setImage(user.getImage()); +// } +// userMapper.updateById(user1); +// //若为管理员,中心号码下发 +// UserDeviceBindApp deviceBindApp = userDeviceBindAppMapper.selectOne(lambdaQueryWrapper); +// if (null != deviceBindApp && "2".equals(deviceBindApp.getIdentity())) { +// BindingDeviceDto bindingDeviceDto = new BindingDeviceDto(); +// bindingDeviceDto.setMy_phone(user.getPhone()); +// bindingDeviceDto.setImei(user.getImei()); +// bindingDevice.assembCenterPhone(bindingDeviceDto, deviceBindApp.getUserId()); +// } +// +// +// return 1; +// } + + @Override @Transactional(rollbackFor = Exception.class) - public int updateData(UpdateUserDto user) { - //1.修改用户设备绑定表的手机号 - UserDeviceBindApp userDeviceBindApp=new UserDeviceBindApp(); - userDeviceBindApp.setPhone(user.getPhone()); - LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(UserDeviceBindApp::getImei,user.getImei()); - lambdaQueryWrapper.eq(UserDeviceBindApp::getUserId,SecurityContextHolder.getStringUserId()); - userDeviceBindAppMapper.update(userDeviceBindApp,lambdaQueryWrapper); - //2.修改通讯录的手机号 - AddressBookApp addressBookApp=new AddressBookApp(); - addressBookApp.setPhone(user.getPhone()); - LambdaQueryWrapper lambdaQueryWrapper1=new LambdaQueryWrapper<>(); - lambdaQueryWrapper1.eq(AddressBookApp::getImei,user.getImei()); - lambdaQueryWrapper1.eq(AddressBookApp::getUserId,SecurityContextHolder.getStringUserId()); - addressBookAppMapper.update(addressBookApp,lambdaQueryWrapper1); + public User updateData(UpdateUserDto user) { + String userId = SecurityContextHolder.getStringUserId(); + BindingDeviceImpl bindingDevice = SpringUtils.getBean(BindingDeviceImpl.class); + UserDeviceBindServiceImpl bean = SpringUtils.getBean(UserDeviceBindServiceImpl.class); + + if (StringUtils.isNotEmpty(user.getPhone())) { + LambdaQueryWrapper Wrapper = new LambdaQueryWrapper<>(); + Wrapper.eq(UserDeviceBindApp::getUserId, SecurityContextHolder.getStringUserId()); + Integer i = bean.getBaseMapper().selectCount(Wrapper); + if (i > 0) { + // 查询用户是否使用其余绑定该设备用户的手机号码进行绑定设备 + UserDeviceBindApp userDeviceBindApp = bindingDevice.queryByPhone(userId, user.getPhone()); + if (StringUtils.isNotNull(userDeviceBindApp)) { + throw new ServiceException("messagesIsPhoneBound"); + } + + LambdaQueryWrapper QueryWrapper = new LambdaQueryWrapper<>(); + QueryWrapper.eq(UserDeviceBindApp::getUserId, SecurityContextHolder.getStringUserId()); + QueryWrapper.eq(UserDeviceBindApp::getBindStatus, CommonConstant.AUDIT_STATUS_ONE); + List userDeviceBindApps = userDeviceBindAppMapper.selectList(QueryWrapper); + if (StringUtils.isNotNull(userDeviceBindApps) && userDeviceBindApps.size() > 0) { + List list = userDeviceBindApps.stream().map(s -> s.setPhone(user.getPhone())).collect(Collectors.toList()); + + //修改绑定表的手机号 + bean.updateBatchById(list); + + //2.修改通讯录的手机号 + AddressBookApp addressBookApp = new AddressBookApp(); + addressBookApp.setPhone(user.getPhone()); + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.eq(AddressBookApp::getUserId, SecurityContextHolder.getStringUserId()); + List addressBookApps = addressBookAppMapper.selectList(lambdaQueryWrapper1); + if (StringUtils.isNotNull(addressBookApps) && addressBookApps.size() > 0) { + List list1 = addressBookApps.stream().map(s -> s.setPhone(user.getPhone())).collect(Collectors.toList()); + AddressBookAppServiceImpl bean1 = SpringUtils.getBean(AddressBookAppServiceImpl.class); + bean1.updateBatchById(list1); + } + + + //若为管理员,中心号码下发 + if (StringUtils.isNotNull(userDeviceBindApps) && userDeviceBindApps.size() > 0) { + userDeviceBindApps.forEach(s -> { + if (null != s && "2".equals(s.getIdentity())) { + BindingDeviceDto bindingDeviceDto = new BindingDeviceDto(); + bindingDeviceDto.setMy_phone(user.getPhone()); + bindingDeviceDto.setImei(user.getImei()); + bindingDevice.assembCenterPhone(bindingDeviceDto, s.getUserId()); + + } + }); + + } + + + } + + } + + + } //3.修改用户表的信息 - User user1=new User(); + User user1 = new User(); user1.setUserId(SecurityContextHolder.getStringUserId()); - user1.setPhone(user.getPhone()); - user1.setName(user.getName()); - if (null!=user.getImage()){ + if (StringUtils.isNotEmpty(user.getPhone())) { + user1.setPhone(user.getPhone()); + } + if (StringUtils.isNotEmpty(user.getName())) { + user1.setName(user.getName()); + } + + if (null != user.getImage()) { user1.setImage(user.getImage()); } userMapper.updateById(user1); - //若为管理员,中心号码下发 - UserDeviceBindApp deviceBindApp = userDeviceBindAppMapper.selectOne(lambdaQueryWrapper); - if (null!=deviceBindApp && "2".equals(deviceBindApp.getIdentity())){ - BindingDeviceDto bindingDeviceDto=new BindingDeviceDto(); - bindingDeviceDto.setMy_phone(user.getPhone()); - bindingDeviceDto.setImei(user.getImei()); - bindingDevice.assembCenterPhone(bindingDeviceDto,deviceBindApp.getUserId()); - } - return 1; + return user1; } @Override public void getSystemToken(String type, String token) { - String userId=SecurityContextHolder.getStringUserId(); - if ("HUAWEI".equals(type)){ - redisService.setCacheObject("HW:"+userId,token); - redisService.setCacheObject(CommonConstant.ANDROID_AGENT+userId,"HW"); - } - else if ("HONOR".equals(type)){ - redisService.setCacheObject("HW:"+userId,token); - redisService.setCacheObject(CommonConstant.ANDROID_AGENT+userId,"HW"); - } - else if ("Xiaomi".equals(type)){ - redisService.setCacheObject("XM:"+userId,token); - redisService.setCacheObject(CommonConstant.ANDROID_AGENT+userId,"XM"); - } - else if ("VIVO".equals(type)){ - redisService.setCacheObject("VI:"+userId,token); - redisService.setCacheObject(CommonConstant.ANDROID_AGENT+userId,"VI"); - } - else if ("realme".equals(type)){ - redisService.setCacheObject("OP:"+userId,token); - redisService.setCacheObject(CommonConstant.ANDROID_AGENT+userId,"OP"); - } - else if ("OPPO".equals(type)){ - redisService.setCacheObject("OP:"+userId,token); - redisService.setCacheObject(CommonConstant.ANDROID_AGENT+userId,"OP"); - } - else { - redisService.setCacheObject("OT:"+userId,token); - redisService.setCacheObject(CommonConstant.ANDROID_AGENT+userId,"OT"); + String userId = SecurityContextHolder.getStringUserId(); + if ("HUAWEI".equals(type)) { + redisService.setCacheObject("HW:" + userId, token); + redisService.setCacheObject(CommonConstant.ANDROID_AGENT + userId, "HW"); + } else if ("HONOR".equals(type)) { + redisService.setCacheObject("HW:" + userId, token); + redisService.setCacheObject(CommonConstant.ANDROID_AGENT + userId, "HW"); + } else if ("Xiaomi".equals(type)) { + redisService.setCacheObject("XM:" + userId, token); + redisService.setCacheObject(CommonConstant.ANDROID_AGENT + userId, "XM"); + } else if ("VIVO".equals(type)) { + redisService.setCacheObject("VI:" + userId, token); + redisService.setCacheObject(CommonConstant.ANDROID_AGENT + userId, "VI"); + } else if ("realme".equals(type)) { + redisService.setCacheObject("OP:" + userId, token); + redisService.setCacheObject(CommonConstant.ANDROID_AGENT + userId, "OP"); + } else if ("OPPO".equals(type)) { + redisService.setCacheObject("OP:" + userId, token); + redisService.setCacheObject(CommonConstant.ANDROID_AGENT + userId, "OP"); + } else { + redisService.setCacheObject("OT:" + userId, token); + redisService.setCacheObject(CommonConstant.ANDROID_AGENT + userId, "OT"); } } /** * App 刷新令牌有效期 + * * @param user 登录信息 */ public void refreshToken(User user) { @@ -215,15 +334,16 @@ public class UserServiceImpl extends ServiceImpl implements Us String userKey = getTokenKey(user.getToken()); redisService.setCacheObject(userKey, user, EXPIRATION, TimeUnit.DAYS); //终端只允许一台设备登录 - String redisUserKey = "user_keys:"+ user.getUserEmail(); - redisService.setCacheObject(redisUserKey,user.getToken(),EXPIRATION,TimeUnit.DAYS); + String redisUserKey = "user_keys:" + user.getUserEmail(); + redisService.setCacheObject(redisUserKey, user.getToken(), EXPIRATION, TimeUnit.DAYS); } + private String getTokenKey(String token) { return APP_TOKEN_KEY + token; } - private UserDeviceBindApp insertData(User user){ - UserDeviceBindApp userDeviceBindApp=new UserDeviceBindApp(); + private UserDeviceBindApp insertData(User user) { + UserDeviceBindApp userDeviceBindApp = new UserDeviceBindApp(); userDeviceBindApp.setId(UUID.randomUUID().toString(true)); userDeviceBindApp.setUserId(user.getUserId()); userDeviceBindApp.setUserEmail(user.getUserEmail()); diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_en_US.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_en_US.properties index 279ea30..dab11f0 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_en_US.properties +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_en_US.properties @@ -22,7 +22,8 @@ messages.binding.device.isNotNull=You have bound this device messages.bad.request=Operation not allowed messages.not.bind=Please bind the device messages.device.empty=No device found -messages.clock.number=The number of class ban cannot exceed three +messages.clock.number=Add no more than three alarms +messages.class.number=The number of class ban cannot exceed three messages.admin.operation=Administrator action only messages.bind.user=Device not bound or account acquisition failed messages.binding.video.type=The video type is not set for this device. Please contact the administrator to set the video type @@ -79,4 +80,5 @@ phone.has.exit=Mobile number has been used, please re-enterd messages.apply.device.model.error=Unable to find the device model, unable to follow messages.whether.apply.error=The device application requires administrator review messages.apply.bind.error=This device has already been bound, cannot be bound again -messages.ios.automaticApproval=User (%s) joins the group \ No newline at end of file +messages.ios.automaticApproval=User (%s) joins the group +messages.query.device.error=The device is not connected to the internet or not online \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_zh_CN.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_zh_CN.properties index d8e8272..9f26e97 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_zh_CN.properties +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_zh_CN.properties @@ -23,7 +23,8 @@ messages.binding.device.isNotNull=\u60A8\u5DF2\u7ECF\u7ED1\u5B9A\u8FC7\u8BE5\u8B messages.bad.request=\u4E0D\u88AB\u5141\u8BB8\u7684\u64CD\u4F5C messages.not.bind=\u8BF7\u7ED1\u5B9A\u8BBE\u5907 messages.device.empty=\u672A\u67E5\u8BE2\u5230\u8BBE\u5907 -messages.clock.number=\u6DFB\u52A0\u4E0A\u8BFE\u7981\u7528\u65F6\u6BB5\u4E0D\u80FD\u8D85\u8FC7\u4E09\u4E2A +messages.clock.number=\u6DFB\u52A0\u95F9\u949F\u4E0D\u80FD\u8D85\u8FC7\u4E09\u4E2A +messages.class.number=\u6DFB\u52A0\u4E0A\u8BFE\u7981\u7528\u65F6\u6BB5\u4E0D\u80FD\u8D85\u8FC7\u4E09\u4E2A messages.admin.operation=\u4EC5\u9650\u4E8E\u7BA1\u7406\u5458\u64CD\u4F5C messages.bind.user=\u672A\u7ED1\u5B9A\u8BBE\u5907\u6216\u8005\u83B7\u53D6\u8D26\u53F7\u5931\u8D25 messages.binding.video.type=\u8BE5\u8BBE\u5907\u6CA1\u6709\u8BBE\u7F6E\u89C6\u9891\u7C7B\u578B\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u8BBE\u7F6E\u89C6\u9891\u7C7B\u578B\u5728\u7ED1\u5B9A @@ -80,4 +81,5 @@ messages.apply.device.model.error=\u6CA1\u6709\u627E\u5230\u8BE5\u8BBE\u5907\u6A messages.whether.apply.error=\u8BE5\u8BBE\u5907\u7533\u8BF7\u9700\u8981\u7BA1\u7406\u5458\u5BA1\u6838 messages.apply.bind.error=\u5DF2\u7ECF\u7ED1\u5B9A\u8FC7\u8BE5\u8BBE\u5907,\u4E0D\u80FD\u91CD\u590D\u7ED1\u5B9A messages.ios.automaticApproval=\u7528\u6237\uFF08%s\uFF09\u52A0\u5165\u7FA4\u7EC4 -messages.password.error=\u65E7\u5BC6\u7801\u9519\u8BEF \ No newline at end of file +messages.password.error=\u65E7\u5BC6\u7801\u9519\u8BEF +messages.query.device.error=\u8BBE\u5907\u672A\u8054\u7F51\u6216\u4E0D\u5728\u7EBF \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-common-system/src/main/java/com/ecell/internationalize/common/system/constant/FieldConstant.java b/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-common-system/src/main/java/com/ecell/internationalize/common/system/constant/FieldConstant.java index ef18f07..a1be2af 100644 --- a/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-common-system/src/main/java/com/ecell/internationalize/common/system/constant/FieldConstant.java +++ b/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-common-system/src/main/java/com/ecell/internationalize/common/system/constant/FieldConstant.java @@ -235,6 +235,8 @@ public class FieldConstant { public static final String DEVICE_IS_NULL="messages.device.empty"; /** 闹钟数量*/ public static final String ALARM_CLOCK_NUMBER="messages.clock.number"; + /** 上课禁用时段*/ + public static final String DISABLE_CLASS_NUMBER="messages.class.number"; /** 管理员操作*/ public static final String ADMIN_OPERATION="messages.admin.operation"; /** 未找到绑定的用户*/ @@ -249,4 +251,8 @@ public class FieldConstant { public static final String VERSION_APK_UPLOAD="messages.version.apk"; /** 新增、更新版本更新已存在最新记录*/ public static final String VERSION_HAS_EXIT="messages.has.exit"; + /** 查找手表不在线*/ + public static final String QUERY_DEVICE_ERROR="messages.query.device.error"; + /** 定位模式绑定设备型号禁止修改 */ + public static final String PROHIBIT_ERROR="messages.positioning.error"; } diff --git a/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-issue/src/main/java/com/ecell/internationalize/common/issue/component/IssueInstructions.java b/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-issue/src/main/java/com/ecell/internationalize/common/issue/component/IssueInstructions.java index 8ff83c3..2c48391 100644 --- a/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-issue/src/main/java/com/ecell/internationalize/common/issue/component/IssueInstructions.java +++ b/ecell-internationalize/ecell-internationalize-common/ecell-internationalize-issue/src/main/java/com/ecell/internationalize/common/issue/component/IssueInstructions.java @@ -106,7 +106,7 @@ public class IssueInstructions { }else { list.add(chatMessage); } - addRedis(imei,type,"messageText","messageTextSync",list,onlineStatus); + addRedis(imei,type,"messageText","messageTextSync",list,onlineStatus); }else if ("downChatVoice".equals(type)) { //微聊语音下发 log.info("微聊语音下发 imei:{} object:{}", imei, object); List list = new ArrayList<>(); diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/controller/PositioningModelInfoController.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/controller/PositioningModelInfoController.java index 44ebef0..aec2d92 100644 --- a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/controller/PositioningModelInfoController.java +++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/controller/PositioningModelInfoController.java @@ -1,9 +1,13 @@ package com.ecell.internationalize.system.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ecell.internationalize.common.core.utils.SpringUtils; import com.ecell.internationalize.common.core.utils.locale.LocaleUtil; import com.ecell.internationalize.common.core.utils.uuid.UUID; import com.ecell.internationalize.common.core.web.domain.AjaxResult; import com.ecell.internationalize.common.system.constant.FieldConstant; import com.ecell.internationalize.common.system.entity.PositioningModelInfo; +import com.ecell.internationalize.system.entity.DeviceModelInfo; +import com.ecell.internationalize.system.mapper.DeviceModelInfoMapper; import com.ecell.internationalize.system.service.PositioningModelInfoService; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; @@ -25,6 +29,8 @@ import org.springframework.web.bind.annotation.*; public class PositioningModelInfoController { @Autowired private PositioningModelInfoService positioningModelInfoService; + + /** * 新增定位模式 */ @@ -43,6 +49,15 @@ public class PositioningModelInfoController { */ @PostMapping("position/update") public AjaxResult updatePositionModel(@Validated @RequestBody PositioningModelInfo info){ + //设备定位模式绑定了型号就不能修改 + DeviceModelInfoMapper modelInfoMapper = SpringUtils.getBean(DeviceModelInfoMapper.class); + LambdaQueryWrapper queryWrapper =new LambdaQueryWrapper<>(); + queryWrapper.eq(DeviceModelInfo::getPositioningModeId,info.getPositioningModeId()); + queryWrapper.eq(DeviceModelInfo::getDelFlag,1); + if ( modelInfoMapper.selectCount(queryWrapper)>0){ + return AjaxResult.error(LocaleUtil.getMessage(FieldConstant.PROHIBIT_ERROR)); + } + return positioningModelInfoService.updateById(info) ? AjaxResult.success(LocaleUtil.getMessage(FieldConstant.MESSAGES_SUCCESS)) :AjaxResult.error(LocaleUtil.getMessage(FieldConstant.MESSAGES_ERROR)); } diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/resources/i18n/messages_en_US.properties b/ecell-internationalize/ecell-internationalize-system/src/main/resources/i18n/messages_en_US.properties index b1f05ed..19926f3 100644 --- a/ecell-internationalize/ecell-internationalize-system/src/main/resources/i18n/messages_en_US.properties +++ b/ecell-internationalize/ecell-internationalize-system/src/main/resources/i18n/messages_en_US.properties @@ -87,3 +87,5 @@ messages.incorrect.content.error=Incorrect IMEI content locationInfo.messages.error=locationInfo.messages.error localLimit.messages.error=localLimit.messages.error +messages.positioning.error=The positioning mode has been bound to the device model and cannot be modified + diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/resources/i18n/messages_zh_CN.properties b/ecell-internationalize/ecell-internationalize-system/src/main/resources/i18n/messages_zh_CN.properties index b473033..c95637c 100644 --- a/ecell-internationalize/ecell-internationalize-system/src/main/resources/i18n/messages_zh_CN.properties +++ b/ecell-internationalize/ecell-internationalize-system/src/main/resources/i18n/messages_zh_CN.properties @@ -84,6 +84,6 @@ messages.import.congratulations.success=\u606D\u559C\u60A8\uFF0C\u6570\u636E\u5D messages.data.are=\u6761\uFF0C\u6570\u636E\u5982\u4E0B\uFF1A messages.limit.max.error=\u5F53\u524D\u63A5\u53E3\u8FBE\u5230\u6700\u5927\u9650\u6D41\u6B21\u6570 messages.incorrect.content.error=imei\u5185\u5BB9\u6709\u8BEF - locationInfo.messages.error=\u83B7\u53D6\u4F4D\u7F6E\u4FE1\u606F\u5931\u8D25 -localLimit.messages.error=\u83B7\u53D6\u5B9A\u4F4D\u6B21\u6570\u5931\u8D25 \ No newline at end of file +localLimit.messages.error=\u83B7\u53D6\u5B9A\u4F4D\u6B21\u6570\u5931\u8D25 +messages.positioning.error=messages.Positioning.error=\u5B9A\u4F4D\u6A21\u5F0F\u5DF2\u7ED1\u5B9A\u8BBE\u5907\u578B\u53F7\u7981\u6B62\u4FEE\u6539 \ No newline at end of file