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