From 59ae9759fd50568059fa44f43832f5a414edb3e9 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期一, 27 十一月 2023 15:08:23 +0800
Subject: [PATCH] 增加权限控制
---
assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysCommonController.java | 13 ++
assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAttachMapper.java | 18 +++
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java | 17 ++
assess-common/src/main/java/com/gkhy/assess/common/enums/UserIdentityEnum.java | 4
assess-common/src/main/java/com/gkhy/assess/common/config/BaseSwaggerConfig.java | 6
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAttachServiceImpl.java | 13 ++
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java | 53 ++++++++++
assess-system/src/main/resources/mapper/system/SysAttachMapper.xml | 21 ++++
assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysLawController.java | 5 +
assess-admin/src/main/java/com/gkhy/assess/admin/config/SwaggerConfig.java | 11 ++
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/ShiroConfig.java | 4
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java | 15 +++
assess-system/src/main/java/com/gkhy/assess/system/service/SysAttachService.java | 16 +++
assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysUserController.java | 11 +
assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysLoginController.java | 5 +
assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysNoticeController.java | 6 +
assess-system/src/main/resources/mapper/system/SysUserMapper.xml | 10 +-
assess-system/src/main/java/com/gkhy/assess/system/service/SysCommonService.java | 3
assess-common/src/main/java/com/gkhy/assess/common/enums/AttachTypeEnum.java | 29 +++++
19 files changed, 242 insertions(+), 18 deletions(-)
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/config/SwaggerConfig.java b/assess-admin/src/main/java/com/gkhy/assess/admin/config/SwaggerConfig.java
new file mode 100644
index 0000000..0b54700
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/config/SwaggerConfig.java
@@ -0,0 +1,11 @@
+package com.gkhy.assess.admin.config;
+
+import com.gkhy.assess.common.config.BaseSwaggerConfig;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+@Configuration
+@EnableSwagger2WebMvc
+public class SwaggerConfig extends BaseSwaggerConfig {
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysCommonController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysCommonController.java
index 22a9cbd..fbfc141 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysCommonController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysCommonController.java
@@ -20,11 +20,18 @@
@Autowired
private SysCommonService commonService;
- @ApiOperation(value = "上传头像")
- @PostMapping("/uploadIcon")
- public CommonResult<UploadObjectVO> uploadIcon(MultipartFile file){
+ @ApiOperation(value = "上传图片/文件")
+ @PostMapping("/uploadFile")
+ public CommonResult<UploadObjectVO> uploadFile(MultipartFile file){
return CommonResult.success(commonService.uploadFile(file));
}
+ @ApiOperation(value = "删除图片")
+ @DeleteMapping("/removeFile")
+ public CommonResult removeFile(@RequestParam(required = true) String path){
+ return CommonResult.success(commonService.removeFile(path));
+ }
+
+
}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysLawController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysLawController.java
index 1a408e1..ef50867 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysLawController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysLawController.java
@@ -7,6 +7,7 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -38,6 +39,7 @@
return CommonResult.success(lawService.getLawById(lawId));
}
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "新增法律法规")
@PostMapping("/addLaw")
public CommonResult addLaw(@Validated @RequestBody SysLaw law){
@@ -45,6 +47,7 @@
}
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "编辑法律法规")
@PutMapping("/editLaw")
public CommonResult editLaw(@Validated @RequestBody SysLaw law){
@@ -52,6 +55,7 @@
}
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "删除法律法规")
@PutMapping("/remove/{lawId}")
public CommonResult removeLaw(@PathVariable(name = "lawId")Long lawId){
@@ -59,6 +63,7 @@
}
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "法律法规状态修改,停用/启用")
@PostMapping("/changeStatus")
public CommonResult changeStatus(SysLaw law)
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysLoginController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysLoginController.java
index fc54155..9850ac2 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysLoginController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysLoginController.java
@@ -4,6 +4,8 @@
import com.gkhy.assess.common.api.CommonResult;
import com.gkhy.assess.common.domain.vo.LoginBody;
import com.gkhy.assess.system.service.SysUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -19,17 +21,20 @@
* @author kzy
* @since 2023-10-17 14:26:29
*/
+@Api(tags = "用户登录前端控制器")
@RestController
@RequestMapping("/account")
public class SysLoginController {
@Autowired
private SysUserService sysUserService;
+ @ApiOperation(value = "用户登录")
@PostMapping("/login")
public CommonResult login(@RequestBody LoginBody loginBody){
return CommonResult.success(sysUserService.login(loginBody));
}
+ @ApiOperation(value = "用户退出")
@PostMapping("/logout")
public CommonResult logout(){
sysUserService.logout();
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysNoticeController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysNoticeController.java
index df91d52..29a2757 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysNoticeController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysNoticeController.java
@@ -7,6 +7,7 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -38,6 +39,7 @@
return CommonResult.success(noticeService.getNoticeById(noticeId));
}
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "新增通知")
@PostMapping("/addNotice")
public CommonResult addNotice(@Validated @RequestBody SysNotice notice){
@@ -45,6 +47,7 @@
}
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "编辑通知")
@PutMapping("/editNotice")
public CommonResult editNotice(@Validated @RequestBody SysNotice notice){
@@ -52,13 +55,14 @@
}
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "删除通知")
@PutMapping("/remove/{noticeId}")
public CommonResult removeNotice(@PathVariable(name = "noticeId")Long noticeId){
return CommonResult.success(noticeService.deleteNoticeById(noticeId));
}
-
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "通知状态修改,停用/启用")
@PostMapping("/changeStatus")
public CommonResult changeStatus(SysNotice notice)
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysUserController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysUserController.java
index 0c786b7..871800b 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysUserController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/SysUserController.java
@@ -9,6 +9,8 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.Logical;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -19,6 +21,7 @@
public class SysUserController {
@Autowired
private SysUserService sysUserService;
+
@ApiOperation(value = "监管用户列表(分页)")
@ApiImplicitParams({
@@ -59,19 +62,21 @@
return CommonResult.success(sysUserService.agencyRegister(user));
}
-
+ @RequiresPermissions(value={"system:assess:monitor","system:assess:agency"},logical = Logical.OR)
@ApiOperation(value = "创建专家")
@PostMapping("/addExpert")
public CommonResult addExpert(@Validated(ExpertGroup.class) @RequestBody SysUser user){
return CommonResult.success(sysUserService.addExpert(user));
}
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "编辑机构")
@PutMapping("/editAgency")
public CommonResult editAgency(@Validated(ExpertGroup.class) @RequestBody SysUser user){
return CommonResult.success(sysUserService.editAgency(user));
}
+ @RequiresPermissions(value={"system:assess:monitor","system:assess:agency"},logical = Logical.OR)
@ApiOperation(value = "编辑专家")
@PutMapping("/editExpert")
public CommonResult editExpert(@Validated(ExpertGroup.class) @RequestBody SysUser user){
@@ -99,6 +104,7 @@
/**
* 用户状态修改
*/
+ @RequiresPermissions(value={"system:assess:monitor","system:assess:agency"},logical = Logical.OR)
@ApiOperation(value = "用户状态修改,停用/启用")
@PostMapping("/changeStatus")
public CommonResult changeStatus(SysUser user)
@@ -106,7 +112,7 @@
return CommonResult.success(sysUserService.changeUserStatus(user));
}
-
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "审批状态修改,停用/启用")
@PostMapping("/changeApprove")
public CommonResult changeApprove(SysUser user)
@@ -115,6 +121,7 @@
}
+ @RequiresPermissions(value={"system:assess:monitor","system:assess:agency"},logical = Logical.OR)
@ApiOperation(value = "根据id删除用户")
@DeleteMapping("/remove/{userId}")
public CommonResult removeUser(@PathVariable(name = "userId") Long userId)
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/config/BaseSwaggerConfig.java b/assess-common/src/main/java/com/gkhy/assess/common/config/BaseSwaggerConfig.java
index de01f87..ba4b375 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/config/BaseSwaggerConfig.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/config/BaseSwaggerConfig.java
@@ -51,11 +51,11 @@
// 用ApiInfoBuilder进行定制
return new ApiInfoBuilder()
// 设置标题
- .title("xx系统单机版API文档")
+ .title("智慧安评系统API文档")
// 描述
- .description("描述:xx系统单机版API文档")
+ .description("描述:智慧安评系统API文档")
// 作者信息
- .contact(new Contact("nms", null, null))
+ .contact(new Contact("gkhy", null, null))
// 版本
.version("版本号:1.0")
.build();
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/enums/AttachTypeEnum.java b/assess-common/src/main/java/com/gkhy/assess/common/enums/AttachTypeEnum.java
new file mode 100644
index 0000000..096c6e8
--- /dev/null
+++ b/assess-common/src/main/java/com/gkhy/assess/common/enums/AttachTypeEnum.java
@@ -0,0 +1,29 @@
+package com.gkhy.assess.common.enums;
+
+/**
+ * 附件类型
+ *
+ */
+public enum AttachTypeEnum
+{
+ SOCIAL(1, "社保"), MEDICAL(2, "医保"),SALARY(3, "工资单");
+
+ private final Integer code;
+ private final String info;
+
+ AttachTypeEnum(Integer code, String info)
+ {
+ this.code = code;
+ this.info = info;
+ }
+
+ public Integer getCode()
+ {
+ return code;
+ }
+
+ public String getInfo()
+ {
+ return info;
+ }
+}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/enums/UserIdentityEnum.java b/assess-common/src/main/java/com/gkhy/assess/common/enums/UserIdentityEnum.java
index 02d876f..006cc46 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/enums/UserIdentityEnum.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/enums/UserIdentityEnum.java
@@ -26,4 +26,8 @@
{
return info;
}
+
+
+
+
}
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/ShiroConfig.java b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/ShiroConfig.java
index 1e30371..eccc136 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/ShiroConfig.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/ShiroConfig.java
@@ -60,6 +60,10 @@
chain.addPathDefinition("/swagger/**","anon");
chain.addPathDefinition("/webjars/**", "anon");
chain.addPathDefinition("/swagger-resources/**","anon");
+ chain.addPathDefinition("/doc.html", "anon");
+ chain.addPathDefinition("/v2/api-docs", "anon");
+ chain.addPathDefinition("/static/**", "anon");
+ chain.addPathDefinition("/error", "anon");
chain.addPathDefinition("/account/login","anon");
// chain.addPathDefinition("/api/account/login","anon");
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java
index 18ba914..84bdc4d 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java
@@ -1,5 +1,6 @@
package com.gkhy.assess.framework.shiro.realm;
+import com.gkhy.assess.common.enums.UserIdentityEnum;
import com.gkhy.assess.common.utils.RequestUtil;
import com.gkhy.assess.common.utils.SpringContextUtils;
import com.gkhy.assess.framework.shiro.JwtToken;
@@ -37,8 +38,17 @@
Set<String> roles=new HashSet<>();
Set<String> menus=new HashSet<>();
SimpleAuthorizationInfo info=new SimpleAuthorizationInfo();
- info.addRole("admin");
- info.addStringPermission("*:*:*");
+ if(sysUser.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ info.addRole("monitor");
+ info.addStringPermission("system:assess:monitor");
+ }else if(sysUser.getIdentity().equals(UserIdentityEnum.AGENCY.getCode())){
+ info.addRole("agency");
+ info.addStringPermission("system:assess:agency");
+ }else{
+ info.addRole("expert");
+ info.addStringPermission("system:assess:expert");
+ }
+
return info;
}
@@ -50,11 +60,12 @@
*/
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
+ HttpServletRequest req = SpringContextUtils.getHttpServletRequest();
SysUser sysUser=null;
if(authenticationToken instanceof JwtToken){
String token= (String) authenticationToken.getCredentials();
if(token==null){
- HttpServletRequest req = SpringContextUtils.getHttpServletRequest();
+
log.info("————————身份认证失败——————————IP地址: "+ RequestUtil.getRequestIp(req) +",URL:"+req.getRequestURI());
throw new AuthenticationException("token为空!");
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAttachMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAttachMapper.java
index 18d72e6..2e55e73 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAttachMapper.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAttachMapper.java
@@ -3,6 +3,9 @@
import com.gkhy.assess.system.domain.SysAttach;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* <p>
@@ -15,4 +18,19 @@
@Mapper
public interface SysAttachMapper extends BaseMapper<SysAttach> {
+ /**
+ * 根据用户id获取附件
+ * @param userId
+ * @param type
+ * @return
+ */
+ List<SysAttach> getAttachsByUserId(@Param("userId") Long userId, @Param("type") Integer type);
+
+ /**
+ * 根据用户id删除数据
+ * @param userId
+ * @param type
+ * @return
+ */
+ int deleteAttachsByUserId(Long userId, Integer type);
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/SysAttachService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/SysAttachService.java
index 3027178..13c5f0e 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/SysAttachService.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/SysAttachService.java
@@ -3,6 +3,8 @@
import com.gkhy.assess.system.domain.SysAttach;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
* <p>
* 系统配置表 服务类
@@ -13,4 +15,18 @@
*/
public interface SysAttachService extends IService<SysAttach> {
+ /**
+ * 根据用户id获取附件
+ * @param userId
+ * @return
+ */
+ List<SysAttach> getAttachsByUserId(Long userId,Integer type);
+
+ /**
+ * 根据用户id删除附件
+ * @param userId
+ * @param type
+ * @return
+ */
+ int deleteAttachsByUserId(Long userId,Integer type);
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/SysCommonService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/SysCommonService.java
index c35b493..4e22674 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/SysCommonService.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/SysCommonService.java
@@ -11,4 +11,7 @@
* @return
*/
public UploadObjectVO uploadFile(MultipartFile file);
+
+
+ public boolean removeFile(String path);
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAttachServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAttachServiceImpl.java
index a4098a6..24130a5 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAttachServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAttachServiceImpl.java
@@ -6,6 +6,8 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
* <p>
* 系统配置表 服务实现类
@@ -17,4 +19,15 @@
@Service
public class SysAttachServiceImpl extends ServiceImpl<SysAttachMapper, SysAttach> implements SysAttachService {
+ @Override
+ public List<SysAttach> getAttachsByUserId(Long userId, Integer type) {
+ return baseMapper.getAttachsByUserId(userId,type);
+ }
+
+ @Override
+ public int deleteAttachsByUserId(Long userId, Integer type) {
+ return baseMapper.deleteAttachsByUserId(userId,type);
+ }
+
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java
index 9b874f8..e126d7e 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java
@@ -27,6 +27,21 @@
return uploadObjectVO;
}
+ @Override
+ public boolean removeFile(String path) {
+ String systemDir=System.getProperty("user.dir");
+ String filePath=systemDir+File.separator+path;
+ File dirFile=new File(filePath);
+ if(!dirFile.isFile()){
+ throw new ApiException("非文件,不能删除");
+ }
+ if(!dirFile.exists()){
+ throw new ApiException("文件不存在");
+ }
+ dirFile.delete();
+ return true;
+ }
+
public UploadObjectVO doUpload(MultipartFile file){
String filename=file.getOriginalFilename();
String subfix=filename.substring(filename.lastIndexOf("."));
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
index 6ceaac1..a1ca5d8 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
@@ -7,6 +7,7 @@
import com.gkhy.assess.common.constant.CacheConstant;
import com.gkhy.assess.common.domain.vo.AccountVO;
import com.gkhy.assess.common.domain.vo.LoginBody;
+import com.gkhy.assess.common.enums.AttachTypeEnum;
import com.gkhy.assess.common.enums.UserIdentityEnum;
import com.gkhy.assess.common.enums.UserTypeEnum;
import com.gkhy.assess.common.exception.ApiException;
@@ -17,6 +18,7 @@
import com.gkhy.assess.system.domain.*;
import com.gkhy.assess.system.mapper.SysAgencyMapper;
import com.gkhy.assess.system.mapper.SysUserMapper;
+import com.gkhy.assess.system.service.SysAttachService;
import com.gkhy.assess.system.service.SysConfigService;
import com.gkhy.assess.system.utils.ShiroUtils;
import com.gkhy.assess.system.service.SysUserService;
@@ -30,6 +32,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.validation.Validator;
+import java.util.ArrayList;
import java.util.List;
@@ -55,11 +58,14 @@
@Autowired
private SysAgencyMapper agencyMapper;
+ @Autowired
+ private SysAttachService attachService;
+
@Override
public AccountVO login(LoginBody loginBody) {
// 验证码校验
- validateCaptcha(loginBody.getUsername(), loginBody.getCode(), loginBody.getUuid());
+ // validateCaptcha(loginBody.getUsername(), loginBody.getCode(), loginBody.getUuid());
UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(loginBody.getUsername(), loginBody.getPassword(), false);
Subject subject= SecurityUtils.getSubject();
String msg ;
@@ -202,6 +208,7 @@
}
@Override
+ @Transactional(rollbackFor = RuntimeException.class)
public int addExpert(SysUser user) {
//校验用户信息
if(!checkUsernameUnique(new SysUser().setUsername(user.getUsername()))){
@@ -216,6 +223,26 @@
if(!b){
throw new ApiException("创建专家信息失败");
}
+ List<SysAttach> socialAttach=user.getSocialAttach();
+ List<SysAttach> medicalAttach=user.getMedicalAttach();
+ List<SysAttach> salaryAttach=user.getSalaryAttach();
+ List<SysAttach> attaches=new ArrayList<>();
+ for(SysAttach attach:socialAttach){
+ attach.setType(AttachTypeEnum.SOCIAL.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
+ for(SysAttach attach:medicalAttach){
+ attach.setType(AttachTypeEnum.MEDICAL.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
+ for(SysAttach attach:salaryAttach){
+ attach.setType(AttachTypeEnum.SALARY.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
+ attachService.saveBatch(attaches);
return 1;
}
@@ -281,6 +308,30 @@
if(!b){
throw new ApiException("更新专家信息失败");
}
+ //刪除旧数据
+ attachService.deleteAttachsByUserId(user.getId(),null);
+
+ List<SysAttach> socialAttach=user.getSocialAttach();
+ List<SysAttach> medicalAttach=user.getMedicalAttach();
+ List<SysAttach> salaryAttach=user.getSalaryAttach();
+ List<SysAttach> attaches=new ArrayList<>();
+ for(SysAttach attach:socialAttach){
+ attach.setType(AttachTypeEnum.SOCIAL.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
+ for(SysAttach attach:medicalAttach){
+ attach.setType(AttachTypeEnum.MEDICAL.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
+ for(SysAttach attach:salaryAttach){
+ attach.setType(AttachTypeEnum.SALARY.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
+ attachService.saveBatch(attaches);
+
return 1;
}
diff --git a/assess-system/src/main/resources/mapper/system/SysAttachMapper.xml b/assess-system/src/main/resources/mapper/system/SysAttachMapper.xml
index c9a9cca..91733c0 100644
--- a/assess-system/src/main/resources/mapper/system/SysAttachMapper.xml
+++ b/assess-system/src/main/resources/mapper/system/SysAttachMapper.xml
@@ -1,5 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.assess.system.mapper.SysAttachMapper">
+ <delete id="deleteAttachsByUserId">
+ delete from sys_attach
+ <where>
+ and user_id=#{user_id}
+ <if test="type!=null and type!=''">
+ and type=#{type}
+ </if>
+ <if test="type==null">
+ and type in (1,2,3)
+ </if>
+ </where>
+ </delete>
+ <select id="getAttachsByUserId" resultType="com.gkhy.assess.system.domain.SysAttach">
+ select * from sys_attach
+ <where>
+ and user_id=#{userId}
+ <if test="type!=null and type!=''">
+ and type=#{type}
+ </if>
+ </where>
+ </select>
</mapper>
diff --git a/assess-system/src/main/resources/mapper/system/SysUserMapper.xml b/assess-system/src/main/resources/mapper/system/SysUserMapper.xml
index 63b3dc9..7b7b107 100644
--- a/assess-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/assess-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -61,7 +61,7 @@
</delete>
<select id="getUserByUsername" resultMap="SysUserResult">
- select id,username,name,password,salt,status,del_flag from sys_user
+ select id,username,name,password,salt,identity,status,del_flag from sys_user
where username=#{username} and del_flag=0
</select>
@@ -119,17 +119,17 @@
<select id="getUserByPhone" resultMap="SysUserResult">
- select id,username,name,password,salt,status,del_flag from sys_user
+ select id,username,name,password,salt,identity,status,del_flag from sys_user
where phone=#{phone} and del_flag=0
</select>
<select id="getUserByEmail" resultMap="SysUserResult">
- select id,username,name,password,salt,status,del_flag from sys_user
+ select id,username,name,password,salt,identity,status,del_flag from sys_user
where email=#{email} and del_flag=0
</select>
<select id="getUserById" resultMap="SysUserResult">
- select id,username,name,password,salt,status,del_flag from sys_user
+ select id,username,name,password,salt,identity,status,del_flag from sys_user
where id=#{userId}
</select>
@@ -146,7 +146,7 @@
</select>
<select id="getUserByUsernamePhone" resultType="com.gkhy.assess.system.domain.SysUser">
- select id,username,name,password,salt,status,del_flag from sys_user
+ select id,username,name,password,salt,identity,status,del_flag from sys_user
where (username=#{username} or phone=#{username}) and del_flag=0
</select>
--
Gitblit v1.9.2