diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SysLoginController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SysLoginController.java index 99edb82..1d5cc4f 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SysLoginController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SysLoginController.java @@ -5,6 +5,9 @@ import com.shxy.xymanager_common.base.ResponseReult; import com.shxy.xymanager_common.bean.ServiceBody; import com.shxy.xymanager_common.bean.ServiceStatus; import com.shxy.xymanager_common.bean.SysUser; +import com.shxy.xymanager_common.model.SysUserModel; +import com.shxy.xymanager_common.vo.PageVo; +import com.shxy.xymanager_common.vo.SysUserUpdateVo; import com.shxy.xymanager_common.vo.SysUserVo; import com.shxy.xymanager_service.service.LoginService; import com.shxy.xymanager_service.service.SysUserService; @@ -38,7 +41,7 @@ public class SysLoginController { @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/login") public ResponseReult login(@RequestBody SysUser sysUser) throws Exception { - ServiceBody serviceBody = loginService.remoteLogin(sysUser.getUserName(), sysUser.getPassword()); + ServiceBody serviceBody = loginService.remoteLogin(sysUser); if (serviceBody.getCode() == ServiceStatus.SUCCESS) { return ResponseReult.success(serviceBody.getData()); } else { @@ -53,6 +56,19 @@ public class SysLoginController { * @return */ + @ApiOperation(value = "修改用户", notes = "修改用户", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) + @RequestMapping("/updateUser") + public ResponseReult updateUser(@RequestBody @Validated SysUserUpdateVo vo) { + ServiceBody serviceBody = sysUserService.updateUser(vo); + if (serviceBody.getCode() == ServiceStatus.SUCCESS) { + return ResponseReult.success(serviceBody.getData()); + } else { + return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); + } + } + + @ApiOperation(value = "新增用户", notes = "新增用户", httpMethod = "POST") @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/addUser") @@ -65,4 +81,42 @@ public class SysLoginController { } } + + /** + * 查询用户列表 + * + * @return + */ + + @ApiOperation(value = "查询用户列表", notes = "查询用户列表", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) + @RequestMapping("/userList") + public ResponseReult userList(@RequestBody @Validated PageVo vo) { + ServiceBody serviceBody = sysUserService.selectUserList(vo); + if (serviceBody.getCode() == ServiceStatus.SUCCESS) { + return ResponseReult.success(serviceBody.getData()); + } else { + return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); + } + } + + + /** + * 查询用户列表 + * + * @return + */ + + @ApiOperation(value = "删除用户", notes = "删除用户", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) + @RequestMapping("/deleteUser") + public ResponseReult deleteUser(@RequestParam("uid") String uid) { + ServiceBody serviceBody = sysUserService.deleteUserById(uid); + if (serviceBody.getCode() == ServiceStatus.SUCCESS) { + return ResponseReult.success(serviceBody.getData()); + } else { + return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); + } + } + } diff --git a/xymanager_admin/src/main/resources/application-test.yml b/xymanager_admin/src/main/resources/application-test.yml index b8c3ffa..a62cf57 100644 --- a/xymanager_admin/src/main/resources/application-test.yml +++ b/xymanager_admin/src/main/resources/application-test.yml @@ -175,6 +175,8 @@ photo: address: http://47.96.238.157/photos/ video: address: http://47.96.238.157/videos/ +session: + expire_time: 3600 rsa: public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCViq0L+1XCTKOkt9nmy9aQbMRNNJNBOtPYRlCq/bRuwlYaq/I+XqSDkIF8s4JJSy3/Vgjw0fp8d4O+5KBS4Om9Ela60I2Vv/q8LjCNFNYbRE6xI7yrlyPukodmC/s1VgODDRHn3vVyKcK9nyF7xZsXixnlvltAky888CJkLpiGjQIDAQAB private_key: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJWKrQv7VcJMo6S32ebL1pBsxE00k0E609hGUKr9tG7CVhqr8j5epIOQgXyzgklLLf9WCPDR+nx3g77koFLg6b0SVrrQjZW/+rwuMI0U1htETrEjvKuXI+6Sh2YL+zVWA4MNEefe9XIpwr2fIXvFmxeLGeW+W0CTLzzwImQumIaNAgMBAAECgYAzOn2LlD9Nv5lzzTPNl9jaQxiAZllnyDJYbcYmvaD5LIP4wRzMdvmexHtHb+tbFnEcfqmzbguEZiDw3Tt7COepQWvNzlM+/HbFtkXzSh6WEu2TgjZwudcCDHDyjDzUNgcWnBIw8/+Sy4COOm4p+UnprYK4sdriMZyz8K5UC8CxFQJBAODTt0lg/HiZKaOX7PMmsiRisd5oAslyDHCt66oPG29KTE1j4fwKDzGJlrOo1f4Q078IDYMO1I/Y3uP8Es3FT1MCQQCqRrD+lO3YCZOUGTHm2WGmbljIoeDpnIn2TZFyqDGKXs6EAx7SXkgarY2OC5O2aifMhXElPUGChfSgPmRUFHafAkEAxFtkWuwf1NxAJ6cKxZpoP6sLGenRdUrsXoUnrBEhruM/HOA9gLjwaB14x1SQASOFK/TGiE4ti6ynjoqbiafoDQJBAI0l6FZAsiBhX9pmQD1yeUXzNtmphr1gK+TmS+lVjyt6h4pa49PSn8atkyfqZNnTiYY6H56U9pbx3+Rtk9E23VUCQEZ9/JHUaGc77s3ibpcKFVemlb0i/Uvj2V45aoNfY34iex4biAUsRq/FJNiqBk+xQWkJ4QY8nKVE45GlaCfZ8/c= diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/bean/SysUser.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/bean/SysUser.java index 2f45b63..4298c61 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/bean/SysUser.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/bean/SysUser.java @@ -1,6 +1,7 @@ package com.shxy.xymanager_common.bean; +import cn.hutool.core.date.DateTime; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -20,7 +21,7 @@ public class SysUser { * 用户ID */ @ApiModelProperty(value="用户ID", name="user_id") - private Long userId; + private Integer userId; /** * 用户账号 @@ -38,7 +39,10 @@ public class SysUser { * 用户角色 */ @ApiModelProperty(value="用户角色", name="role") - private String role; + private Integer role; + + @ApiModelProperty(value="创建时间", name="createTime") + private Date createTime; /** * 密码 @@ -47,7 +51,7 @@ public class SysUser { private String password; /** - * 帐号状态(0正常 1停用) + * 帐号状态(0失效 1正常) */ private String status; @@ -57,9 +61,6 @@ public class SysUser { public SysUser() { } - public SysUser(Long userId) { - this.userId = userId; - } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java index 29b2d9d..0f42e33 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java @@ -18,7 +18,7 @@ public class SysUser { * 用户ID */ @ApiModelProperty(value="用户ID", name="user_id") - private Long userId; + private Integer userId; /** * 用户账号 diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/UserSession.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/UserSession.java index b578311..312fb7b 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/UserSession.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/UserSession.java @@ -13,7 +13,7 @@ public class UserSession implements Serializable { private String userName; - private String role; + private Integer role; private BigInteger expireTime; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/SysUserModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/SysUserModel.java new file mode 100644 index 0000000..53940a1 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/SysUserModel.java @@ -0,0 +1,52 @@ +package com.shxy.xymanager_common.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigInteger; +import java.util.Date; +import java.util.List; + +/** + * 用户登录信息 + */ +@Data +@ApiModel(value = "用户登录信息对象", description = "用户登录信息对象") +public class SysUserModel implements Serializable { + @ApiModelProperty(value = "总记录数", example = "120") + private long total; + @ApiModelProperty(value = "总页数", example = "120") + private int totalpage; + @ApiModelProperty(value = "当前页", example = "1") + private int currentpage; + @ApiModelProperty(value = "每页记录数", example = "1") + private int pagesize; + @ApiModelProperty(value = "用户对象", example = "[]") + private List list; + + @Data + public static class SysUserBean { + + @ApiModelProperty(value = "编号", example = "120") + private Integer userId; + + @ApiModelProperty(value = "用户名", example = "120") + private String userName; + + @ApiModelProperty(value = "role", example = "120") + private Integer role; + + @ApiModelProperty(value = "nickName", example = "120") + private String nickName; + + @ApiModelProperty(value = "创建时间", example = "120") + private BigInteger createTime; + + + } + + private static final long serialVersionUID = 1L; + +} \ No newline at end of file diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/MyDateUtils.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/MyDateUtils.java index 218bc90..a984d88 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/MyDateUtils.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/MyDateUtils.java @@ -185,6 +185,16 @@ public class MyDateUtils extends DateUtil { return l; } + /** + * 13位时间戳转10位时间戳 + * + * @return + */ + public static BigInteger TimeMillSecondToSecond(DateTime dateTime) { + BigInteger l = BigInteger.valueOf(dateTime.getTime()); + return l; + } + /** * 10位时间戳转13位时间戳 * diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/SysUserUpdateVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/SysUserUpdateVo.java new file mode 100644 index 0000000..d38f480 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/SysUserUpdateVo.java @@ -0,0 +1,27 @@ +package com.shxy.xymanager_common.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "修改用户对象", description = "用户对象描述") +public class SysUserUpdateVo { + + @NotNull(message = "用户ID不能缺少") + @ApiModelProperty(value = "用户Id", example = "123455") + private Integer userId; + + @ApiModelProperty(value = "用户名", example = "123455") + private String userName; + + @ApiModelProperty(value = "角色", example = "123455") + private Integer role; + + @ApiModelProperty(value = "密码", example = "123455") + private String password; + + +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/SysUserVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/SysUserVo.java index c9cceef..26bf4d3 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/SysUserVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/SysUserVo.java @@ -14,9 +14,9 @@ public class SysUserVo { @ApiModelProperty(value = "用户名", example = "123455") private String userName; - @NotNull(message = "昵称") - @ApiModelProperty(value = "昵称", example = "123455") - private String nickName; + @NotNull(message = "角色") + @ApiModelProperty(value = "角色", example = "123455") + private Integer role; @NotNull(message = "密码") @ApiModelProperty(value = "密码", example = "123455") diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/SysUserMapperDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/SysUserMapperDao.java index 4459a7a..e3cedf1 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/SysUserMapperDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/SysUserMapperDao.java @@ -2,9 +2,12 @@ package com.shxy.xymanager_dao.dao; import com.shxy.xymanager_common.bean.SysUser; import com.shxy.xymanager_common.entity.UserSession; +import com.shxy.xymanager_common.vo.PageVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @ClassName:SysUserMapper * @Description: 用户表 Mapper 接口. @@ -36,7 +39,7 @@ public interface SysUserMapperDao { int addUser(SysUser user); - Boolean updateById(SysUser user); + Integer updateById(SysUser user); @@ -86,9 +89,14 @@ public interface SysUserMapperDao { public int deleteUserByIds(Long[] userIds); + int deleteUserById(String userId); + + UserSession selectUserBySessionId(String sessionId); void insertUserSession(UserSession session); int updateUserSession(UserSession session); + + List selectUserInfoList(@Param("status") Integer status); } diff --git a/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml b/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml index 9d1832c..1f85860 100644 --- a/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml +++ b/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml @@ -6,6 +6,7 @@ + @@ -32,7 +33,7 @@ - select count(1) from sys_user where user_name = #{userName} @@ -52,8 +53,8 @@ - insert into sys_user(user_name,nick_name,password) - values(#{userName},#{nickName},#{password}) + insert into sys_user(user_name,nick_name,password,role,create_time) + values(#{userName},#{userName},#{password},#{role},#{createTime}) + select + uid as userId, + user_name as userName, + nick_name as nickName, + create_time as createTime, + role + from sys_user + WHERE status = #{status} + order by create_time desc + + \ No newline at end of file diff --git a/xymanager_framework/pom.xml b/xymanager_framework/pom.xml index 162a22c..9c85dac 100644 --- a/xymanager_framework/pom.xml +++ b/xymanager_framework/pom.xml @@ -77,5 +77,9 @@ com.shxy xymanager_common + + com.shxy + xymanager_service + \ No newline at end of file diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java index 33b1f27..71944bf 100644 --- a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java +++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java @@ -19,9 +19,10 @@ public class CustomSecurityConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(this.jwtInterceptor).addPathPatterns("/addUser") + registry.addInterceptor(this.jwtInterceptor) + .excludePathPatterns("/*") .excludePathPatterns("/login") - .excludePathPatterns("/api/addUser") + .excludePathPatterns("/userList") .excludePathPatterns("/swagger-ui.html") .excludePathPatterns("/doc.html") .excludePathPatterns("/swagger-resources/**") diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java index 9f76445..07720d3 100644 --- a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java +++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java @@ -1,11 +1,17 @@ package com.shxy.xymanager_framework.interaction; +import cn.hutool.core.date.DateTime; import cn.hutool.core.util.StrUtil; import com.shxy.xymanager_common.annotation.JwtIgnore; +import com.shxy.xymanager_common.entity.UserSession; import com.shxy.xymanager_common.enums.HttpMethod; import com.shxy.xymanager_common.exception.Asserts; +import com.shxy.xymanager_common.util.MyDateUtils; +import com.shxy.xymanager_service.service.SysUserService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; @@ -13,6 +19,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.math.BigInteger; /** * @ClassName:JwtAuthenticationTokenFilter @@ -24,6 +31,10 @@ import javax.servlet.http.HttpServletResponse; @Component @Slf4j public class JwtInterceptor implements HandlerInterceptor { + @Autowired + SysUserService sysUserService; + @Value("${session.expire_time}") + public BigInteger time; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -40,10 +51,24 @@ public class JwtInterceptor implements HandlerInterceptor { return true; } // 获取请求头信息authorization信息 - final String token = request.getHeader("token"); - if (StrUtil.isBlank(token)) { - log.info("token为空登录过期"); + final String sessionId = request.getHeader("sessionId"); + if (StrUtil.isBlank(sessionId)) { + log.info("sessionId为空登录过期"); Asserts.fail(401, "登录过期"); + }else{ + UserSession user = sysUserService.selectUserById(sessionId); + if(user!=null) { + BigInteger expireTime = user.getExpireTime(); + + BigInteger currentTime = MyDateUtils.TimeMillSecond2Second(new DateTime()); + if (currentTime.subtract(expireTime).compareTo(time) > 0) { + user.setExpireTime(currentTime.add(time)); + sysUserService.updateUserSession(user); + } + }else{ + log.info("sessionId为空登录过期"); + Asserts.fail(401, "登录过期"); + } } return true; } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LoginServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LoginServiceImpl.java index bebccef..9509b23 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LoginServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LoginServiceImpl.java @@ -5,6 +5,7 @@ import com.shxy.xymanager_common.bean.ServiceBody; import com.shxy.xymanager_common.bean.SysUser; import com.shxy.xymanager_common.config.CustomRsaProperties; import com.shxy.xymanager_common.constant.HttpStatusCode; +import com.shxy.xymanager_common.constant.UuidUtils; import com.shxy.xymanager_common.entity.UserSession; import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.exception.UserPasswordNotMatchException; @@ -22,6 +23,7 @@ import org.springframework.util.DigestUtils; import java.math.BigInteger; import java.util.HashSet; import java.util.Set; +import java.util.UUID; /** * 装置通道实现层 @@ -64,12 +66,12 @@ public class LoginServiceImpl implements LoginService { /** * - * @param username 账号 - * @param password 密码 + * @param sysUser * @return */ - public ServiceBody remoteLogin(String username, String password) throws Exception { - UserSession user = getLoginUser(username, password); + public ServiceBody remoteLogin(SysUser sysUser) throws Exception { + UserSession user = getLoginUser(sysUser); + user.setSessionId(UuidUtils.getUUID()); sysUserMapperDao.insertUserSession(user); // 生成token return Asserts.success(user.getSessionId()); @@ -78,13 +80,12 @@ public class LoginServiceImpl implements LoginService { /** * 用户登录校验 * - * @param username - * @param password + * @param sysUser * @return */ - public UserSession getLoginUser(String username, String password) throws Exception { + public UserSession getLoginUser(SysUser sysUser) throws Exception { // 用户验证 - SysUser account = sysUserService.findByUserAccount(username); + SysUser account = sysUserService.findByUserAccount(sysUser.getUserName()); // 判断用户是否存在 if (StringUtils.isNull(account)) { throw new UserPasswordNotMatchException("用户不存在", HttpStatusCode.ERROR); @@ -94,12 +95,12 @@ public class LoginServiceImpl implements LoginService { // 密码解密 String pwd = RsaUtils.decryptByPrivateKey( CustomRsaProperties.privateKey, account.getPassword() ); // 密码对比 - if (!password.equals(pwd)) { + if (!sysUser.getPassword().equals(pwd)) { throw new UserPasswordNotMatchException("密码错误", HttpStatusCode.ERROR); } UserSession user = new UserSession(); // loginUser.setPermissions(permissions); - user.setUserName(username); + user.setUserName(sysUser.getUserName()); user.setRole(account.getRole()); BigInteger date = MyDateUtils.TimeMillSecond2Second(new DateTime()); user.setExpireTime(date); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SysUserServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SysUserServiceImpl.java index 58b39e6..d426805 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SysUserServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SysUserServiceImpl.java @@ -2,25 +2,43 @@ package com.shxy.xymanager_service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateTime; +import com.github.pagehelper.PageInfo; +import com.google.common.collect.Lists; import com.shxy.xymanager_common.bean.ServiceBody; import com.shxy.xymanager_common.bean.SysUser; import com.shxy.xymanager_common.config.CustomRsaProperties; +import com.shxy.xymanager_common.dto.TerminalsAndLineAndChannelDto; import com.shxy.xymanager_common.entity.UserSession; +import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.exception.Asserts; +import com.shxy.xymanager_common.model.SysUserModel; +import com.shxy.xymanager_common.model.TerminalListModel; +import com.shxy.xymanager_common.page.PageUtils; +import com.shxy.xymanager_common.util.MyDateUtils; import com.shxy.xymanager_common.util.RsaUtils; +import com.shxy.xymanager_common.util.StringUtils; +import com.shxy.xymanager_common.vo.PageVo; +import com.shxy.xymanager_common.vo.SysUserUpdateVo; import com.shxy.xymanager_common.vo.SysUserVo; import com.shxy.xymanager_dao.dao.SysUserMapperDao; import com.shxy.xymanager_service.service.SysUserService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; -import java.util.HashMap; -import java.util.Map; +import java.math.BigInteger; +import java.util.*; /** @@ -86,7 +104,8 @@ public class SysUserServiceImpl implements SysUserService { // } sysUser.setUserName(userName); sysUser.setNickName(nickName); - + sysUser.setCreateTime(new DateTime()); + sysUser.setRole(vo.getRole()); try { sysUser.setPassword(RsaUtils.encryptByPublicKey( CustomRsaProperties.publicKey,vo.getPassword())); } catch (Exception e) { @@ -103,26 +122,38 @@ public class SysUserServiceImpl implements SysUserService { } @Override - public Boolean updateUser(SysUser user) { - return sysUserMapperDao.updateById(user); + public ServiceBody updateUser(SysUserUpdateVo vo) { + SysUser user = new SysUser(); + BeanUtils.copyProperties(vo,user); + try { + if(StringUtils.isNotBlank( user.getPassword())) { + user.setPassword(RsaUtils.encryptByPublicKey(CustomRsaProperties.publicKey, vo.getPassword())); + } + } catch (Exception e) { + log.error("修改密码异常:{}",e.getMessage()); + } + int result = sysUserMapperDao.updateById(user); + if(result>0){ + return Asserts.success("修改成功"); + } + return Asserts.error("修改失败"); } @Override public Boolean updateUserStatus(SysUser user) { - return sysUserMapperDao.updateById(user); + return null; } @Override public Boolean updateUserProfile(SysUser user) { - return sysUserMapperDao.updateById(user); + return null; } - @Override public Boolean resetPwd(SysUser user) { - return sysUserMapperDao.updateById(user); + return null; } @Override @@ -132,18 +163,16 @@ public class SysUserServiceImpl implements SysUserService { } @Override - public int deleteUserById(Long userId) { - return 0; - } + public ServiceBody deleteUserById(String userId) { - @Override - public int deleteUserByIds(Long[] userIds) { - for (Long userId : userIds) { - checkUserAllowed(new SysUser(userId)); + int result = sysUserMapperDao.deleteUserById(userId); + if(result>0){ + return Asserts.success("删除成功"); } - return sysUserMapperDao.deleteUserByIds(userIds); + return Asserts.error("失败"); } + @Override public UserSession selectUserById(String sessionId) { UserSession session = sysUserMapperDao.selectUserBySessionId(sessionId); @@ -156,6 +185,40 @@ public class SysUserServiceImpl implements SysUserService { return result; } + @Override + public ServiceBody selectUserList(@RequestBody @Validated PageVo vo) { + SysUserModel model = new SysUserModel(); + int pageindex = vo.getPageindex(); + int pagesize = vo.getPagesize(); + PageUtils.SetPage(pageindex, pagesize); + List list = sysUserMapperDao.selectUserInfoList(CommonStatus.EFFECTIVE.value()); + + boolean empty = CollectionUtil.isEmpty(list); + if (empty) { + model.setList(new ArrayList<>()); + } else { + List beans = Lists.newArrayList(); + list.forEach(var->{ + SysUserModel.SysUserBean bean = new SysUserModel.SysUserBean(); + BeanUtils.copyProperties(var,bean); + bean.setCreateTime(MyDateUtils.TimeMillSecondToSecond(MyDateUtils.beginOfDay(var.getCreateTime()))); + beans.add(bean); + }); + model.setList(beans); + } + PageInfo pageData = PageUtils.getPageData(list); + int currentpage = pageData.getPageNum(); + model.setCurrentpage(currentpage); + long total = pageData.getTotal(); + model.setTotal(total); + + int pageSize = pageData.getPageSize(); + model.setPagesize(pageSize); + int pages = pageData.getPages(); + model.setTotalpage(pages); + return Asserts.success(model); + } + public boolean addUserRemote(Map map) { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java index 66abc12..a169c6f 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java @@ -8,9 +8,7 @@ import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.model.ResolutionModel; import com.shxy.xymanager_common.util.ProcessExecUtils; import com.shxy.xymanager_common.vo.TerminalIdVo; -import com.shxy.xymanager_common.vo.TerminalReqPhotoTimeVo; import com.shxy.xymanager_dao.dao.TerminalResolutionDao; -import com.shxy.xymanager_dao.dao.TowerDao; import com.shxy.xymanager_service.service.TermSetService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -34,8 +32,8 @@ public class TermSetServiceImpl implements TermSetService { @Override public ServiceBody alarmMark(TerminalIdVo vo) { -// String cmd =Constants.CMD+"imgparams --cmdid="+vo.getCmdId()+ "\t" + "--reqid="+ Constants.REQUEST_ID+ "\t"+ "--clientid=10--flag=0 --rf=7"; -// ProcessExecUtils.exec(cmd); + String cmd =Constants.CMD+"imgparams --cmdid="+vo.getCmdId()+ "\t" + "--reqid="+ Constants.REQUEST_ID+ "\t"+ "--clientid=10--flag=0 --rf=7"; + ProcessExecUtils.exec(cmd); return Asserts.success(1); } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/LoginService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/LoginService.java index dcbc35a..5217c7f 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/LoginService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/LoginService.java @@ -2,6 +2,7 @@ package com.shxy.xymanager_service.service; import com.shxy.xymanager_common.bean.ServiceBody; +import com.shxy.xymanager_common.bean.SysUser; import com.shxy.xymanager_common.entity.UserSession; /** @@ -16,9 +17,9 @@ public interface LoginService { ServiceBody login(String username, String password) throws Exception; - ServiceBody remoteLogin(String username, String password) throws Exception; + ServiceBody remoteLogin(SysUser sysUser) throws Exception; - UserSession getLoginUser(String username, String password) throws Exception; + UserSession getLoginUser(SysUser sysUser) throws Exception; diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/SysUserService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/SysUserService.java index e8f3d13..5a62c84 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/SysUserService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/SysUserService.java @@ -4,7 +4,12 @@ package com.shxy.xymanager_service.service; import com.shxy.xymanager_common.bean.ServiceBody; import com.shxy.xymanager_common.bean.SysUser; import com.shxy.xymanager_common.entity.UserSession; +import com.shxy.xymanager_common.model.SysUserModel; +import com.shxy.xymanager_common.vo.PageVo; +import com.shxy.xymanager_common.vo.SysUserUpdateVo; import com.shxy.xymanager_common.vo.SysUserVo; +import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.RequestParam; /** @@ -65,10 +70,10 @@ public interface SysUserService { /** * 修改用户信息 * - * @param user 用户信息 + * @param vo 用户信息 * @return 结果 */ - Boolean updateUser(SysUser user); + ServiceBody updateUser(SysUserUpdateVo vo); /** * 修改用户状态 @@ -110,19 +115,13 @@ public interface SysUserService { * @param userId 用户ID * @return 结果 */ - int deleteUserById(Long userId); - - /** - * 批量删除用户信息 - * - * @param userIds 需要删除的用户ID - * @return 结果 - */ - int deleteUserByIds(Long[] userIds); + ServiceBody deleteUserById(@Param("userId") String userId); UserSession selectUserById(String sessionId); int updateUserSession(UserSession user); + ServiceBody selectUserList(PageVo vo); + }