From d9326c6f02ff4dae1a301f6ad9dd5539450aa1ba Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期四, 06 三月 2025 09:00:16 +0800 Subject: [PATCH] 用户管理&权限管理调整 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/api/AuthApi.java | 57 +++++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/api/HeaderToken.java | 191 +++++++++++++++++++++++ ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java | 27 +++ ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 3 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java | 3 inspect-server/src/main/resources/lib/license.xml | 13 + ruoyi-admin/src/main/resources/application.yml | 2 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java | 25 +++ cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentListServiceImpl.java | 2 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/Person.java | 38 ++++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java | 50 ++++++ ruoyi-common/src/main/java/com/ruoyi/common/core/dto/PersonDto.java | 18 ++ inspect-server/src/main/resources/static/report-template.docx | 0 inspect-server/src/main/resources/lib/aspose-words-15.12.0-jdk16.jar | 0 ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java | 2 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/Company.java | 17 ++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/CustomController.java | 2 ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml | 1 18 files changed, 447 insertions(+), 4 deletions(-) diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentListServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentListServiceImpl.java index 247d1d9..f73db3e 100644 --- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentListServiceImpl.java +++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentListServiceImpl.java @@ -22,9 +22,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.stream.Collectors; /** diff --git a/inspect-server/src/main/resources/lib/aspose-words-15.12.0-jdk16.jar b/inspect-server/src/main/resources/lib/aspose-words-15.12.0-jdk16.jar new file mode 100644 index 0000000..84320cf --- /dev/null +++ b/inspect-server/src/main/resources/lib/aspose-words-15.12.0-jdk16.jar Binary files differ diff --git a/inspect-server/src/main/resources/lib/license.xml b/inspect-server/src/main/resources/lib/license.xml new file mode 100644 index 0000000..ecd46c1 --- /dev/null +++ b/inspect-server/src/main/resources/lib/license.xml @@ -0,0 +1,13 @@ +<License> + <Data> + <Products> + <Product>Aspose.Total for Java</Product> + <Product>Aspose.Words for Java</Product> + </Products> + <EditionType>Enterprise</EditionType> + <SubscriptionExpiry>20991231</SubscriptionExpiry> + <LicenseExpiry>20991231</LicenseExpiry> + <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber> + </Data> + <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature> +</License> diff --git a/inspect-server/src/main/resources/static/report-template.docx b/inspect-server/src/main/resources/static/report-template.docx new file mode 100644 index 0000000..771345f --- /dev/null +++ b/inspect-server/src/main/resources/static/report-template.docx Binary files differ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/CustomController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/CustomController.java index 040af38..978d7ee 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/CustomController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/CustomController.java @@ -30,7 +30,7 @@ @ApiOperation(value = "鑾峰彇瀹㈡埛鍒楄〃") @GetMapping("/selectCustomPageList") - public Result<IPage<Custom>> selectCustomPageList(Page page, Custom custom) throws Exception { + public Result<IPage<Custom>> selectCustomPageList(Page page, Custom custom) { return Result.success(customService.selectCustomPageList(page, custom)); } @ApiOperation(value = "鍒犻櫎瀹㈡埛淇℃伅") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java index 16e812b..67cc35f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java @@ -2,13 +2,18 @@ import com.ruoyi.common.core.domain.Result; +import com.ruoyi.common.core.domain.entity.Company; import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.core.dto.PersonDto; import com.ruoyi.system.service.UserService; import com.ruoyi.web.controller.dto.UpdateUserDto; +import com.ruoyi.web.controller.system.api.HeaderToken; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; /** @@ -23,6 +28,9 @@ @Resource private UserService userService; + + @Autowired + private HeaderToken headerToken; /** * todo: type : 1: 鑾峰彇妫�娴嬩汉鍛樹俊鎭� @@ -70,6 +78,23 @@ } + @ApiOperation(value = "鏌ョ湅浜轰簨绯荤粺缁勭粐鏋舵瀯") + @GetMapping(value = "/selectCompaniesList") + public Result<List<Company>> selectCompaniesList() { + return Result.success(headerToken.companyUrl()); + } + + @ApiOperation("鑾峰彇浜轰簨绯荤粺缁勭粐涓嬬殑浜哄憳") + @GetMapping(value = "/selectSimpleList") + public Result<?> selectSimpleList(String companyId) { + return Result.success(headerToken.userUrl(companyId)); + } + + @ApiOperation("灏嗕汉浜嬬郴缁熷嬀閫夌殑鍐呭杞Щ鍒版湰绯荤粺") + @PostMapping(value = "/addPersonUser") + public Result<?> addPersonUser(@RequestBody PersonDto personDto) { + return Result.success(userService.addPersonUser(personDto)); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/api/AuthApi.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/api/AuthApi.java new file mode 100644 index 0000000..0a38ac9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/api/AuthApi.java @@ -0,0 +1,57 @@ +package com.ruoyi.web.controller.system.api; + +public class AuthApi { + + /** + * 娴嬭瘯鍦板潃 + * */ +// private String code = "https://ztt-sso.asuncloud.net/oauth2/token"; + /** + * 姝e紡鍦板潃 + * */ + public static String code = "https://ztt-sso.ztt.cn/oauth2/token"; + + /** + * 娌冲彛浜轰簨娴嬭瘯搴� + * */ +// private String appId = "8b2f2c7e-2ab9-4718-8193-c0c636dceba8"; +// private String appSecret = "db59b70d28ab1865aafe4008f59d4760"; + /** + * 娌冲彛浜轰簨姝e紡搴� + * */ + public static String appId = "f6f3d70f-3666-4d3d-b9c5-430de3f6007c"; + public static String appSecret = "a18923496542302066b0a7bec993a4e2"; +/** + * 瑁呭浜轰簨娴嬭瘯搴� + * */ +// private String appId = "0acf9b63-31e3-45c4-99c1-af1aac88b985"; +// private String appSecret = "7fb7a4026c71619345c31fa12ba31f4f"; + /** + * 瑁呭浜轰簨姝e紡搴� + * */ +// private String appId = "6f5f6a0c-2a01-4ef6-9e75-c8a6f0c2f044"; +// private String appSecret = "89b9c4735b1e5ee9d6a8544b9b38bb03"; + + /** + * 鏌ヨ缁勭粐鏋舵瀯 + */ + public static String companies = "https://ztt-connector.ztt.cn/api/org/v1/companies"; + + public static String simple="https://ztt-connector.ztt.cn/api/org/v1/employees/simple?companyId="; + + /** + * 鑾峰彇鎵�鏈変汉鍛� + */ + public static String employees = "https://ztt-connector.ztt.cn/api/org/v1/employees"; + + + /** + * 浜哄憳瀵嗙爜鑾峰彇 + * */ + public static String password = "https://ztt-connector.ztt.cn/api/org/v1/employees/original_pwd/"; + + public static String department = "https://ztt-connector.ztt.cn/api/org/v1/companies/companyId/departments"; + + public static String person = "https://ztt-connector.ztt.cn/api/org/v1/employees/simple/"; + +} \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/api/HeaderToken.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/api/HeaderToken.java new file mode 100644 index 0000000..d1407cf --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/api/HeaderToken.java @@ -0,0 +1,191 @@ +package com.ruoyi.web.controller.system.api; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.log.Log; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.common.core.domain.entity.Company; +import com.ruoyi.common.core.domain.entity.Person; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.system.mapper.UserMapper; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +@Component +public class HeaderToken { + + @Resource + private RedisTemplate redisTemplate; + + @Resource + private UserMapper userMapper; + + public String fetchNewAccessToken() { + HttpRequest request = HttpRequest.post(AuthApi.code) + .header("Content-Type", "application/x-www-form-urlencoded") + .form("grant_type", "client_credentials") + .form("client_id", AuthApi.appId) + .form("client_secret", AuthApi.appSecret); + HttpResponse response = request.execute(); + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode jsonNode; + try { + jsonNode = objectMapper.readTree(response.body()); + String accessToken = jsonNode.get("access_token").asText(); + Log.get().info("鑾峰彇浜轰簨绯荤粺token锛�"+accessToken); + redisTemplate.opsForValue().set("access_token",accessToken,jsonNode.get("expires_in").asInt() - 60,TimeUnit.SECONDS); + return accessToken; + } catch (Exception e) { + throw new ErrorException(e.getMessage()); + } + } + + //鍒ゆ柇鏄惁瀛樺湪 + public String getAccessToken() { + String accessToken; + if (!redisTemplate.hasKey("access_token")) { + accessToken = fetchNewAccessToken(); + }else{ + accessToken = redisTemplate.opsForValue().get("access_token")+""; + } + return accessToken; + } + + //璋冪敤 + public List<Company> companyUrl() { + String accessToken = getAccessToken(); + HttpRequest request = HttpRequest.get(AuthApi.companies) + .header("Authorization", "Bearer " + accessToken); + List<Company> companies; + try { + companies = JSON.parseArray(request.execute().body(), Company.class); + }catch (Exception e){ + throw new ErrorException(e.getMessage()); + } + return companies.stream().filter(ob->{ + if(Objects.equals(ob.getStatus(), "enabled")) return true; + return false; + }).collect(Collectors.toList()); +// return companies; + } + + public List<Person> userUrl(String companyId) { + String accessToken = getAccessToken(); + HttpRequest request = HttpRequest.get(AuthApi.simple+companyId) + .header("Authorization", "Bearer " + accessToken) + .header("Content-Type", "application/form-data"); + List<Person> person; + try { + person = JSON.parseArray(request.execute().body(), Person.class); + }catch (Exception e){ + throw new ErrorException(e.getMessage()); + } + List<JSONObject> department = getDepartment(companyId); + return person.stream().filter(ob->{ + if(Objects.equals(ob.getStatus(), "enabled")) { + ob.setIsLive(userMapper.selectCount(Wrappers.<User>lambdaQuery().eq(User::getAccount, ob.getEmployeeID()))); + ob.setDepartment(getDepartmentStr(department, ob.getDepartmentCode()).replaceFirst("/", "")); + return true; + } + return false; + }).collect(Collectors.toList()); + } + + public String getDepartmentStr(List<JSONObject> department, String code){ + String str = ""; + Optional<JSONObject> depart = department.stream().filter(a -> code.equals(a.get("departmentCode"))).findFirst(); + str = "/" + depart.get().get("departmentName") + str; + if(depart.get().get("parentDepartmentCode") != null){ + str = getDepartmentStr(department, depart.get().get("parentDepartmentCode").toString()) + str; + } + return str; + } + + public String getPassword(String employeeId) { + String accessToken = getAccessToken(); + HttpRequest request = HttpRequest.get(AuthApi.password + employeeId) + .header("Authorization", "Bearer " + accessToken); + System.out.println(AuthApi.password + employeeId); + System.out.println(request.execute().body()); + return JSON.parseObject(request.execute().body()).get("originalPwd").toString(); + } + + public List<JSONObject> getDepartment(String companyId){ + String accessToken = getAccessToken(); + HttpRequest request = HttpRequest.get(AuthApi.department.replace("companyId", companyId)) + .header("Authorization", "Bearer " + accessToken) + .header("Content-Type", "application/form-data"); + List<JSONObject> list; + try { + list = JSON.parseArray(request.execute().body()); + }catch (Exception e){ + throw new ErrorException(e.getMessage()); + } + return list.stream().filter(ob->{ + if(Objects.equals(ob.get("status"), "enabled")) return true; + return false; + }).collect(Collectors.toList()); + } + + public Person selectPersonUser(String code){ + String accessToken = getAccessToken(); + HttpRequest request = HttpRequest.get(AuthApi.person + code) + .header("Authorization", "Bearer " + accessToken) + .header("Content-Type", "application/form-data"); + Person person; + try { + person = JSON.parseObject(request.execute().body(), Person.class); + if(BeanUtil.isEmpty(person))return null; + }catch (Exception e){ + throw new ErrorException(e.getMessage()); + } + List<JSONObject> department = getDepartment(person.getCompanyId()); + person.setDepartment(getDepartmentStr(department, person.getDepartmentCode()).replaceFirst("/", "")); + person.setIsLive(userMapper.selectCount(Wrappers.<User>lambdaQuery().eq(User::getAccount, person.getEmployeeID()))); + return person; + } + + + // 鑾峰彇鎵�鏈変汉鍛樹俊鎭� + public List<Map> getEmployees() { + // 鑾峰彇token + String accessToken = getAccessToken(); + HttpRequest request = HttpRequest.get(AuthApi.employees).header("Authorization", "Bearer " + accessToken) + .header("Content-Type", "application/form-data"); + String body = request.execute().body(); + List<Map> maps = JSONArray.parseArray(body, Map.class); + return maps; + } + + + // 鑾峰彇浜哄憳淇℃伅 + public Map getEmployee(String employeeId) { + // 鑾峰彇token + String accessToken = getAccessToken(); + System.out.println("token " + accessToken); + String url = AuthApi.employees + "/" + employeeId; + HttpRequest request = HttpRequest.get(url).header("Authorization", "Bearer " + accessToken); + String body = request.execute().body(); + ObjectMapper objectMapper = new ObjectMapper(); + Map map = new HashMap<>(); + try { + map = objectMapper.readValue(body, Map.class); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + return map; + } +} \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 9147fdd..3fd660c 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -64,7 +64,7 @@ devtools: restart: # 鐑儴缃插紑鍏� - enabled: true + enabled: false # redis 閰嶇疆 redis: # 鍦板潃 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/Company.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/Company.java new file mode 100644 index 0000000..bf1b1e7 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/Company.java @@ -0,0 +1,17 @@ +package com.ruoyi.common.core.domain.entity; + +import lombok.Data; + +@Data +public class Company { + + private String companyId; + + private String companyName; + + private String parentCompanyId; + + private String description; + + private String status; +} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/Person.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/Person.java new file mode 100644 index 0000000..98b10d4 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/Person.java @@ -0,0 +1,38 @@ +package com.ruoyi.common.core.domain.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class Person { + + private String name; + + //浜哄憳缂栧彿锛屽叏灞�鍞竴 + private String employeeID; +//宀椾綅 + private String position; +//宀椾綅缂栫爜 + private String positionCode; +//鎵嬫満鍙风爜 + private String phoneNumber; + + //鎬у埆 1:鐢� 2:濂� + private Integer gender; + + //缁勭粐鐘舵�� enable:鍦ㄨ亴 disabled:绂昏亴 + private String status; +//鎵�灞炵粍缁囩紪鐮� + private String companyId; +//鍏徃閭(鍙敤浜庨偖绠辩郴缁�) + private String companyEmail; +//鍏ヨ亴鍏徃鏃堕棿 + private String dateOfJoiningTheCompany; +//缁勭粐鍐呯殑閮ㄩ棬缂栫爜 + private String departmentCode; + + @ApiModelProperty(">1锛氬瓨鍦� =0锛氫笉瀛樺湪") + private Long isLive; + + private String department; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java index ad73692..5d769fa 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java @@ -69,6 +69,32 @@ /** 瀛愯彍鍗� */ private List<SysMenu> children = new ArrayList<SysMenu>(); + /** 鏄惁鍙互閫夋嫨浠呯湅鎴�, 0:鍚�, 1:鏄� */ + private Integer isRersonalButton; + + /** 浠呯湅鎴�, 0:鍚�, 1:鏄� */ + private Integer isRersonal; + + public Integer getIsRersonalButton() + { + return isRersonalButton; + } + + public void setIsRersonalButton(Integer isRersonalButton) + { + this.isRersonalButton = isRersonalButton; + } + + public Integer getIsRersonal() + { + return isRersonal; + } + + public void setIsRersonal(Integer isRersonal) + { + this.isRersonal = isRersonal; + } + public Long getMenuId() { return menuId; @@ -269,6 +295,7 @@ .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) + .append("isRersonalButton", getIsRersonalButton()) .toString(); } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java index eb50fe3..2662b2d 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java @@ -96,5 +96,8 @@ @ApiModelProperty(value = "澶囨敞") private String remark; + @ApiModelProperty(value = "鎵�灞炵粍缁囩紪鐮�") + private String companyId; + } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/dto/PersonDto.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/dto/PersonDto.java new file mode 100644 index 0000000..a54b9c3 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/dto/PersonDto.java @@ -0,0 +1,18 @@ +package com.ruoyi.common.core.dto; + +import com.ruoyi.common.core.domain.entity.Company; +import com.ruoyi.common.core.domain.entity.Person; +import lombok.Data; + +import java.util.List; + +@Data +public class PersonDto { + + private List<Person> person; + + private List<Company> company; + + private Integer roleId; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java index 65d660a..34d7974 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.core.dto.PersonDto; import java.util.List; @@ -38,5 +39,6 @@ int delUserDepardLimsId(Integer id); + int addPersonUser(PersonDto personDto); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java index f097b32..08331cd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java @@ -1,14 +1,21 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.domain.entity.Custom; import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.core.dto.PersonDto; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.mapper.UserMapper; +import com.ruoyi.system.service.CustomService; import com.ruoyi.system.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.DigestUtils; import java.time.LocalDateTime; import java.util.List; @@ -21,6 +28,10 @@ */ @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { + + @Autowired + private CustomService customService; + /** * 鏍规嵁鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃 * @param user @@ -60,5 +71,44 @@ public int delUserDepardLimsId(Integer id) { return baseMapper.update(null, Wrappers.<User>lambdaUpdate().eq(User::getId, id).set(User::getDepartLimsId, null).set(User::getUpdateTime, LocalDateTime.now()).set(User::getUpdateBy, SecurityUtils.getUsername())); } + + @Override + @Transactional(rollbackFor = Exception.class) + public int addPersonUser(PersonDto personDto) { + personDto.getPerson().forEach(person -> { + User user = baseMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getAccount, person.getEmployeeID())); + String companyName = personDto.getCompany().stream().filter(a -> a.getCompanyId().equals(person.getCompanyId())).findFirst().get().getCompanyName(); + Custom custom = customService.getCustomId(companyName); + if (BeanUtil.isEmpty(user)) { + user = new User(); + user.setName(person.getName()); + user.setNameEn("not write"); + user.setAccount(person.getEmployeeID()); + user.setPhone(person.getPhoneNumber()); + user.setEmail(person.getCompanyEmail()); + user.setIsCustom(person.getCompanyId().equals("SC2463") ? 0 : 1); +// user.setPassword(DigestUtils.md5DigestAsHex(headerToken.getPassword(person.getEmployeeID()).getBytes())); + user.setPassword(SecurityUtils.encryptPassword("zttZTT123!")); + user.setCompany(BeanUtil.isNotEmpty(custom) ? (custom.getId() + "") : companyName); +// user.setAddress("鏈~鍐�"); +// user.setRoleId(personDto.getRoleId() > 10000 ? 0 : personDto.getRoleId()); + user.setCompanyId(person.getCompanyId()); + baseMapper.insert(user); + } else { + user.setName(person.getName()); + user.setPhone(person.getPhoneNumber()); + user.setEmail(person.getCompanyEmail()); + user.setIsCustom(0); + user.setCompany(BeanUtil.isNotEmpty(custom) ? (custom.getId() + "") : companyName); +// user.setCreateUser(null); +// user.setCreateTime(null); +// user.setUpdateUser(null); +// user.setUpdateTime(null); + user.setCompanyId(person.getCompanyId()); + baseMapper.updateById(user); + } + }); + return 1; + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index 9284614..7c43969 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -26,6 +26,7 @@ <result property="updateTime" column="update_time" /> <result property="updateBy" column="update_by" /> <result property="remark" column="remark" /> + <result property="isRersonalButton" column="is_rersonal_button"/> </resultMap> <sql id="selectMenuVo"> diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 8757304..0b30ccc 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -69,6 +69,9 @@ <if test="userName != null and userName != ''"> AND u.account like concat('%', #{userName}, '%') </if> + <if test="nickName != null and nickName != ''"> + AND u.name like concat('%', #{nickName}, '%') + </if> <if test="status != null and status != ''"> AND u.status = #{status} </if> -- Gitblit v1.9.3