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;
+ }
/**
* 用户功能项