From b3ede7b516aa2e5e90f69c3163a1f9ffb065292f Mon Sep 17 00:00:00 2001 From: zhengqiaowen <1275811465@qq.com> Date: Thu, 13 Oct 2022 16:32:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BA=E5=88=86=E6=94=BF=E5=BA=9C=E7=AB=AF?= =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/rzyc/bean/user/dto/LoginDto.java | 3 + .../main/java/com/rzyc/enums/IsManage.java | 22 ++++++ .../java/com/rzyc/model/user/SysUser.java | 12 +++ .../resources/mapper/user/SysUserMapper.xml | 1 + .../java/com/rzyc/advice/LoginAspect.java | 2 +- .../java/com/rzyc/advice/ExceptionAdvice.java | 1 + .../java/com/rzyc/advice/LoginAspect.java | 2 +- .../java/com/rzyc/config/SecurityConfig.java | 2 +- .../com/rzyc/controller/OtherController.java | 3 +- .../rzyc/controller/PcPersonalController.java | 74 ++++++++++++++++++- 10 files changed, 116 insertions(+), 6 deletions(-) create mode 100644 inventory-dao/src/main/java/com/rzyc/enums/IsManage.java diff --git a/inventory-dao/src/main/java/com/rzyc/bean/user/dto/LoginDto.java b/inventory-dao/src/main/java/com/rzyc/bean/user/dto/LoginDto.java index 89a8980..fa340e4 100644 --- a/inventory-dao/src/main/java/com/rzyc/bean/user/dto/LoginDto.java +++ b/inventory-dao/src/main/java/com/rzyc/bean/user/dto/LoginDto.java @@ -2,12 +2,14 @@ package com.rzyc.bean.user.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; import javax.validation.constraints.NotNull; @ApiModel("登录") public class LoginDto { + @NotNull(message = "用户名不能为空") @ApiModelProperty(value = "用户名",required = true) public String sysusername; @@ -20,6 +22,7 @@ public class LoginDto { @ApiModelProperty(value = "验证码",required = true) public String generateCode; + public String getSysusername() { return sysusername; } diff --git a/inventory-dao/src/main/java/com/rzyc/enums/IsManage.java b/inventory-dao/src/main/java/com/rzyc/enums/IsManage.java new file mode 100644 index 0000000..4735d0e --- /dev/null +++ b/inventory-dao/src/main/java/com/rzyc/enums/IsManage.java @@ -0,0 +1,22 @@ +package com.rzyc.enums; + +//是否为管理员 1.管理员 2.政府用户 +public enum IsManage { + + MANAGE(1), + GOVERNMENT(2); + + private Integer state; + + IsManage(Integer state) { + this.state = state; + } + + public Integer getState() { + return state; + } + + public void setState(Integer state) { + this.state = state; + } +} diff --git a/inventory-dao/src/main/java/com/rzyc/model/user/SysUser.java b/inventory-dao/src/main/java/com/rzyc/model/user/SysUser.java index 578ed46..9b67a3e 100644 --- a/inventory-dao/src/main/java/com/rzyc/model/user/SysUser.java +++ b/inventory-dao/src/main/java/com/rzyc/model/user/SysUser.java @@ -53,6 +53,7 @@ public class SysUser implements Serializable { @ApiModelProperty("用户名") private String sysusername; + @ApiModelProperty("用户密码") private String syspassword; @@ -224,8 +225,19 @@ public class SysUser implements Serializable { @ApiModelProperty("用户属地级别 2、区级 3、街道 4、社区") private Integer orglevel; + @ApiModelProperty("是否为管理员 1.管理员 2.政府用户") + private Integer manageState; + private static final long serialVersionUID = 1L; + public Integer getManageState() { + return manageState; + } + + public void setManageState(Integer manageState) { + this.manageState = manageState; + } + public Integer getOrglevel() { return orglevel; } diff --git a/inventory-dao/src/main/resources/mapper/user/SysUserMapper.xml b/inventory-dao/src/main/resources/mapper/user/SysUserMapper.xml index ea4fac9..9a1a3cf 100644 --- a/inventory-dao/src/main/resources/mapper/user/SysUserMapper.xml +++ b/inventory-dao/src/main/resources/mapper/user/SysUserMapper.xml @@ -38,6 +38,7 @@ + diff --git a/inventory-ent/src/main/java/com/rzyc/advice/LoginAspect.java b/inventory-ent/src/main/java/com/rzyc/advice/LoginAspect.java index de375c9..7951dd6 100644 --- a/inventory-ent/src/main/java/com/rzyc/advice/LoginAspect.java +++ b/inventory-ent/src/main/java/com/rzyc/advice/LoginAspect.java @@ -46,7 +46,7 @@ public class LoginAspect { * @return * @throws Throwable */ - @Around("login()") + //@Around("login()") public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { //操作日志 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder diff --git a/inventory-gov/src/main/java/com/rzyc/advice/ExceptionAdvice.java b/inventory-gov/src/main/java/com/rzyc/advice/ExceptionAdvice.java index 5f20e63..ac6b066 100644 --- a/inventory-gov/src/main/java/com/rzyc/advice/ExceptionAdvice.java +++ b/inventory-gov/src/main/java/com/rzyc/advice/ExceptionAdvice.java @@ -18,6 +18,7 @@ import org.springframework.web.multipart.MaxUploadSizeExceededException; import javax.validation.ConstraintViolationException; + /** * 统一异常处理 */ diff --git a/inventory-gov/src/main/java/com/rzyc/advice/LoginAspect.java b/inventory-gov/src/main/java/com/rzyc/advice/LoginAspect.java index 93be42a..5adcd52 100644 --- a/inventory-gov/src/main/java/com/rzyc/advice/LoginAspect.java +++ b/inventory-gov/src/main/java/com/rzyc/advice/LoginAspect.java @@ -40,7 +40,7 @@ public class LoginAspect { * @return * @throws Throwable */ - @Around("login()") + // @Around("login()") public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { //操作日志 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder diff --git a/inventory-gov/src/main/java/com/rzyc/config/SecurityConfig.java b/inventory-gov/src/main/java/com/rzyc/config/SecurityConfig.java index 99bc757..0cb19a8 100644 --- a/inventory-gov/src/main/java/com/rzyc/config/SecurityConfig.java +++ b/inventory-gov/src/main/java/com/rzyc/config/SecurityConfig.java @@ -64,7 +64,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { http .authorizeRequests() // 对于登录接口 允许匿名访问 - .antMatchers("/personal/login","/personal/entlogin","/common/generateCode").anonymous() + .antMatchers("/pcPersonal/pclogin","/pcPersonal/pcManageLogin","/generateCode").anonymous() //放行swagger .antMatchers("/swagger-ui.html","/swagger-resources/**","/webjars/**","/v2/**","/api/**").permitAll() // 除上面外的所有请求全部需要鉴权认证,配置退出路径 diff --git a/inventory-gov/src/main/java/com/rzyc/controller/OtherController.java b/inventory-gov/src/main/java/com/rzyc/controller/OtherController.java index 8ba1032..3dfcac8 100644 --- a/inventory-gov/src/main/java/com/rzyc/controller/OtherController.java +++ b/inventory-gov/src/main/java/com/rzyc/controller/OtherController.java @@ -579,13 +579,14 @@ public class OtherController extends BaseController{ * @throws Exception */ @ApiOperation(value = "验证码", notes = "验证码") - @GetMapping("/generateCode") + @GetMapping ("/generateCode") @ResponseBody public void generateCode(HttpServletRequest request, HttpServletResponse response) throws Exception { try { BufferedImage image = Verification.getVerify(constantsConfigure.getGenerateCodeKey(),request); OutputStream out = response.getOutputStream(); ImageIO.write(image, "JPEG", out); + System.out.println("图片=========" + image); out.flush(); out.close(); } catch (Exception e) { diff --git a/inventory-gov/src/main/java/com/rzyc/controller/PcPersonalController.java b/inventory-gov/src/main/java/com/rzyc/controller/PcPersonalController.java index 75a0387..a77befc 100644 --- a/inventory-gov/src/main/java/com/rzyc/controller/PcPersonalController.java +++ b/inventory-gov/src/main/java/com/rzyc/controller/PcPersonalController.java @@ -23,6 +23,7 @@ import com.rzyc.bean.user.dutyTree.DutyTrees; import com.rzyc.bean.user.task.TaskDetailDto; import com.rzyc.bean.user.task.TaskPageDto; import com.rzyc.bean.user.dto.*; +import com.rzyc.config.MethodAnnotation; import com.rzyc.enums.*; import com.rzyc.model.*; import com.rzyc.model.ent.SysEnterprise; @@ -32,6 +33,7 @@ import com.rzyc.model.personal.SysResource; import com.rzyc.model.user.*; import io.swagger.annotations.*; import org.apache.commons.beanutils.BeanUtils; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -58,8 +60,10 @@ public class PcPersonalController extends com.rzyc.controller.BaseController { * @return * @throws Exception */ - @ApiOperation(value = "PC登录", notes = "PC登录") + @ApiOperation(value = "PC政府用户登录", notes = "PC政府用户登录") @PostMapping(value = "/pclogin") + /*@PreAuthorize("hasAnyAuthority('pclogin','pclogin:update')") + @MethodAnnotation(authorizations = {"pclogin","pclogin:update"},name = "PC政府用户登录")*/ @ResponseBody public SingleResult pclogin(@Valid LoginDto loginDto)throws Exception{ SingleResult result = new SingleResult<>(); @@ -67,13 +71,16 @@ public class PcPersonalController extends com.rzyc.controller.BaseController { String sysusername = loginDto.getSysusername(); String syspassword = loginDto.getSyspassword(); + //获取验证码 String generateCode = request.getSession().getAttribute(constantsConfigure.getGenerateCodeKey())+""; //验证码只能使用一次 request.getSession().removeAttribute(constantsConfigure.getGenerateCodeKey()); if(loginDto.getGenerateCode().equals(generateCode)){ SysUser sysUser = sysUserMapper.findBySysUserName(sysusername); - if(null != sysUser && StringUtils.isNotBlank(sysUser.getUsertype()) && sysUser.getUsertype().equals("政府用户")){ + + //登录的是政府用户 + if(null != sysUser && StringUtils.isNotBlank(sysUser.getUsertype()) && sysUser.getUsertype().equals("政府用户") & sysUser.getManageState() == IsManage.GOVERNMENT.getState()){ String ps = PasswdFactory.encryptPasswd(sysUser.getSysuserid(), sysusername, syspassword); System.out.println("========" + ps); if(sysUser.getSyspassword().equals(ps)){ @@ -111,6 +118,69 @@ public class PcPersonalController extends com.rzyc.controller.BaseController { return result; } + /** + * @Description: PC管理员登录 + * @Author ZQW + * @CreateTime 2022/10/12 14:08 + */ + @ApiOperation(value = "PC管理员登录", notes = "PC管理员登录") + @PostMapping(value = "/pcManageLogin") + /*@PreAuthorize("hasAnyAuthority('pcManageLogin','pcManageLogin:update')") + @MethodAnnotation(authorizations = {"pcManageLogin","pcManageLogin:update"},name = "PC管理员登录")*/ + @ResponseBody + public SingleResult pcManageLogin(@Valid LoginDto loginDto)throws Exception{ + SingleResult result = new SingleResult<>(); + System.out.println("loginDto -> "+JSONArray.toJSONString(loginDto)); + String sysusername = loginDto.getSysusername(); + String syspassword = loginDto.getSyspassword(); + + //获取验证码 + String generateCode = request.getSession().getAttribute(constantsConfigure.getGenerateCodeKey())+""; + + //验证码只能使用一次 + request.getSession().removeAttribute(constantsConfigure.getGenerateCodeKey()); + + if(loginDto.getGenerateCode().equals(generateCode)){ + SysUser sysUser = sysUserMapper.findBySysUserName(sysusername); + + //登录的是管理员 + if(null != sysUser && StringUtils.isNotBlank(sysUser.getUsertype()) && sysUser.getUsertype().equals("政府用户") & sysUser.getManageState() == IsManage.MANAGE.getState()){ + String ps = PasswdFactory.encryptPasswd(sysUser.getSysuserid(), sysusername, syspassword); + System.out.println("========" + ps); + if(sysUser.getSyspassword().equals(ps)){ + sysUser.setSyspassword(""); + + //获取职务 + sysUser = getUserDuty(sysUser); + + //通过角色判断是否为安办 或者 部门管理员 + if(StringUtils.isNotBlank(sysUser.getUserroles())){ + Integer userRole = this.getUserRole(sysUser.getUserroles()); + sysUser.setUserRole(userRole); + } + + //获取用户令牌 + String userToken = JwtUtil.createToken(sysUser.getSysuserid()); + sysUser.setUserToken(userToken); + + this.addLogAuth(sysUser.getSysuserid(),"登录","成功",""); + result.setData(sysUser); + + }else{ + this.addLogAuth(sysUser.getSysuserid(),"登录","失败",""); + result.setCode(Code.PASSWORD_ERROR.getCode()); + result.setMessage(Message.PASSWORD_ERROR); + } + }else{ + result.setCode(Code.PASSWORD_ERROR.getCode()); + result.setMessage(Message.PASSWORD_ERROR); + } + }else{ + result.setCode(Code.CODE_ERROT.getCode()); + result.setMessage(Message.CODE_ERROT); + } + return result; + } /** * 用户功能项