From 8b464ee379c5b35ac8b22b4e5dde25c4f6fb75cf Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Thu, 19 Aug 2021 15:03:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/org/springblade/modules/system/controller/UserController.java |  158 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 141 insertions(+), 17 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java
index ccde67f..67e1d92 100644
--- a/src/main/java/org/springblade/modules/system/controller/UserController.java
+++ b/src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -24,7 +24,10 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import com.alibaba.fastjson.JSON;
 import lombok.AllArgsConstructor;
+import org.springblade.common.cache.DictCache;
+import org.springblade.common.enums.DictEnum;
 import org.springblade.common.utils.arg;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.excel.util.ExcelUtil;
@@ -38,12 +41,23 @@
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.DigestUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringPool;
+import org.springblade.modules.experience.entity.Experience;
+import org.springblade.modules.experience.service.IExperienceService;
+import org.springblade.modules.jurisdiction.entity.Jurisdiction;
+import org.springblade.modules.jurisdiction.service.JurisdictionService;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.entity.Role;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.excel.UserExcel;
 import org.springblade.modules.system.excel.UserImporter;
 import org.springblade.modules.system.node.TreeNode;
+import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.service.IRoleService;
 import org.springblade.modules.system.service.IUserService;
 import org.springblade.modules.system.vo.DeptVO;
 import org.springblade.modules.system.vo.UserVO;
@@ -58,6 +72,7 @@
 import java.util.List;
 import java.util.Map;
 
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
 import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
 
 /**
@@ -73,6 +88,11 @@
 public class UserController {
 
 	private final IUserService userService;
+	private final IDeptService iDeptService;
+	private final IRoleService roleService;
+	private final IExperienceService experienceService;
+
+	private final JurisdictionService jurisdictionService;
 
 	/**
 	 * 查询单条
@@ -117,6 +137,22 @@
 	/**
 	 * 自定义用户列表
 	 */
+	@GetMapping("/pages")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "account", value = "账号名", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "realName", value = "姓名", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "列表", notes = "传入account和realName")
+	//@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R<IPage<UserVO>> pages(@ApiIgnore UserVO user, Query query) {
+		IPage<UserVO> pages = userService.selectUserPages(Condition.getPage(query), user);
+		return R.data(pages);
+	}
+
+	/**
+	 * 自定义用户列表
+	 */
 	@GetMapping("/page")
 	@ApiImplicitParams({
 		@ApiImplicitParam(name = "account", value = "账号名", paramType = "query", dataType = "string"),
@@ -126,8 +162,8 @@
 	@ApiOperation(value = "列表", notes = "传入account和realName")
 	//@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
 	public R<IPage<UserVO>> page(@ApiIgnore User user, Query query, Long deptId, BladeUser bladeUser) {
-		IPage<UserVO> pages = userService.selectUserPage(Condition.getPage(query), user, deptId, "000000");
-		return R.data(pages);
+		IPage<User> pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId()));
+		return R.data(UserWrapper.build().pageVO(pages));
 	}
 
 	/**
@@ -139,6 +175,29 @@
 	//@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
 	public R submit(@Valid @RequestBody User user) throws Exception {
 		CacheUtil.clear(USER_CACHE);
+		//查询角色
+		if (null!=user.getRoleId()){
+			Role role = new Role();
+			role.setId(Long.parseLong(user.getRoleId()));
+			Role one = roleService.getOne(Condition.getQueryWrapper(role));
+			if (one.getRoleAlias().equals("保安")){
+				user.setHold("1");
+			}
+			if (one.getRoleAlias().equals("未持证保安")){
+				user.setHold("2");
+			}
+		}
+
+		//根据 deptId 查询dept信息,公安管理员
+		Dept dept = iDeptService.getById(user.getDeptId());
+		Long sid = 1123598813738675201L;
+		if (dept.getParentId().equals(sid)){
+			//获取辖区的数据
+			Jurisdiction jurisdiction = new Jurisdiction();
+			jurisdiction.setDeptName(dept.getDeptName());
+			Jurisdiction one = jurisdictionService.getOne(Condition.getQueryWrapper(jurisdiction));
+			user.setJurisdiction(one.getId().toString());
+		}
 		return R.status(userService.submit(user));
 	}
 
@@ -233,7 +292,7 @@
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "导入用户", notes = "传入excel")
 	public R importUser(MultipartFile file, Integer isCovered) {
-		UserImporter userImporter = new UserImporter(userService, isCovered == 1);
+		UserImporter userImporter = new UserImporter(userService, false);
 		ExcelUtil.save(file, userImporter, UserExcel.class);
 		return R.success("操作成功");
 	}
@@ -319,10 +378,8 @@
 	 * 自定义用户列表(只有保安员)
 	 */
 	@GetMapping("/page-security")
-	public R<IPage<UserVO>> pageSecurity(@ApiIgnore User user, Query query, Long deptId, BladeUser bladeUser) {
-		user.setAccount("admin");
-		bladeUser.setTenantId("000000");
-		IPage<User> pages = userService.selectUserPageSecurity(Condition.getPage(query), user, deptId, "000000");
+	public R<IPage<UserVO>> pageSecurity(@ApiIgnore User user, Query query) {
+		IPage<User> pages = userService.selectUserPageSecurity(Condition.getPage(query), user);
 		return R.data(UserWrapper.build().pageVO(pages));
 	}
 
@@ -330,10 +387,8 @@
 	 * 自定义用户列表(只有保安员)
 	 */
 	@GetMapping("/page-security-unit")
-	public List<User> pageSecurityUnit(@ApiIgnore User user, Query query, Long deptId, BladeUser bladeUser) {
-		user.setAccount("admin");
-		bladeUser.setTenantId("000000");
-		List<User> pages = userService.selectUserPageSecurityUnit(Condition.getPage(query), user, deptId, "000000");
+	public List<User> pageSecurityUnit(@ApiIgnore User user, Query query) {
+		List<User> pages = userService.selectUserPageSecurityUnit(Condition.getPage(query), user);
 		return pages;
 	}
 
@@ -341,9 +396,8 @@
 	 * 自定义用户列表(只有保安员)
 	 */
 	@GetMapping("/page-security-units")
-	public R pageSecurityUnits(@ApiIgnore User user, Query query, Long deptId, BladeUser bladeUser) {
-		bladeUser.setTenantId("000000");
-		List<User> pages = userService.selectUserPageSecurityUnit(Condition.getPage(query), user, deptId, "000000");
+	public R pageSecurityUnits(@ApiIgnore User user, Query query) {
+		List<User> pages = userService.selectUserPageSecurityUnit(Condition.getPage(query),user);
 		return R.data(pages);
 	}
 
@@ -351,9 +405,8 @@
 	 * 保安员列表,帅选无保安证
 	 */
 	@GetMapping("/page-security-apply")
-	public R<IPage<UserVO>> pageSecurityApply(@ApiIgnore UserVO user, Query query, Long deptId, BladeUser bladeUser) {
-		bladeUser.setTenantId("000000");
-		IPage<UserVO> pages = userService.selectUserPageSecurityApply(Condition.getPage(query), user, deptId, "000000");
+	public R<IPage<UserVO>> pageSecurityApply(@ApiIgnore UserVO user, Query query) {
+		IPage<UserVO> pages = userService.selectUserPageSecurityApply(Condition.getPage(query), user);
 		return R.data(pages);
 	}
 
@@ -366,4 +419,75 @@
 		return R.data(tree);
 	}
 
+	/**
+	 * 自定义用户列表(只有保安员)
+	 */
+	@GetMapping("/selectInr")
+	public R selectInr(String deptid) {
+		List<Map<Object, Object>> list = userService.selectInr(deptid);
+		return R.data(list);
+	}
+	@GetMapping("/zc")
+	public R zc(String username,String password) {
+		User user = new User();
+		user.setTenantId("000000");
+		user.setAccount(username);
+		user.setPassword(DigestUtil.encrypt(password));
+		user.setRoleId("1428177141018771458");
+		userService.saveOrUpdate(user);
+		return R.success("注册成功");
+	}
+
+	/**
+	 * 保安员新增
+	 */
+	@PostMapping("/securitySave")
+	public R securitySave(@Valid @RequestBody Map<String,Object> userMap){
+		//获取user
+		User user = JSON.parseObject(JSON.toJSONString(userMap.get("user")),User.class);
+		//判断是否为空
+		if (null!=user.getHold()){
+			//持证
+			if (user.getHold().equals("1")){
+				//分配保安角色
+				Role role = new Role();
+				role.setRoleAlias("保安");
+				Role oneRole = roleService.getOne(Condition.getQueryWrapper(role));
+				user.setRoleId(oneRole.getId().toString());
+			}
+			//未持证
+			if (user.getHold().equals("2")){
+				//分配未持证保安角色
+				Role role = new Role();
+				role.setRoleAlias("未持证保安");
+				Role oneRole = roleService.getOne(Condition.getQueryWrapper(role));
+				user.setRoleId(oneRole.getId().toString());
+			}
+		}
+		//密码加密
+		if (Func.isNotEmpty(user.getPassword())) {
+			user.setPassword(DigestUtil.encrypt(user.getPassword()));
+		}
+		//用户新增
+		boolean status = userService.save(user);
+		//获取从业记录
+		List<Experience> experiences = (List<Experience>) userMap.get("userPractitionersInfo");
+		if (experiences.size()>0){
+			int count = 0;
+			for (int i = 0; i < experiences.size(); i++) {
+				Experience e = JSON.parseObject(JSON.toJSONString(experiences.get(i)), Experience.class);
+				e.setSecurityid(user.getId().toString());
+				experienceService.save(e);
+				count++;
+			}
+			if (count < 1) {
+				return R.status(false);
+			}
+		}
+		//判断是否持证是否为空
+		return R.status(status);
+	}
+
+
+
 }

--
Gitblit v1.9.3