From b760be32e710b2f286128614ef1ace5283a32cdb Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 10 Jan 2024 10:53:27 +0800
Subject: [PATCH] 微信用户接口

---
 src/main/java/org/springblade/modules/system/service/impl/UserWxServiceImpl.java |   88 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 83 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserWxServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserWxServiceImpl.java
index e474661..ef81fbe 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/UserWxServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/UserWxServiceImpl.java
@@ -1,21 +1,36 @@
 package org.springblade.modules.system.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.springblade.common.cache.SysCache;
+import org.springblade.common.constant.CommonConstant;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Condition;
+import org.springblade.core.secure.utils.AuthUtil;
+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.StringUtil;
+import org.springblade.modules.system.entity.Role;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.entity.UserWx;
 import org.springblade.modules.system.mapper.UserWxMapper;
+import org.springblade.modules.system.service.IRoleService;
 import org.springblade.modules.system.service.IUserWxService;
+import org.springblade.modules.system.vo.UserVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Arrays;
 import java.util.List;
 
 @Service
+@AllArgsConstructor
 public class UserWxServiceImpl extends BaseServiceImpl<UserWxMapper, UserWx> implements IUserWxService {
+	private final IRoleService roleService;
+
 	@Override
 	public Boolean wxRegister(UserWx user) {
 
@@ -28,7 +43,7 @@
 		params.setCardid(user.getCardid());
 		//查看数据库是否有相同身份证号
 		List<UserWx> list = list(Condition.getQueryWrapper(params));
-		if (list.size()>0){
+		if (list.size() > 0) {
 			throw new ServiceException("该身份证号已注册");
 		}
 
@@ -39,11 +54,11 @@
 		//微信注册机构
 		user.setDeptId("1734016112398020609");
 		user.setTenantId("000000");
-		if (StringUtil.isNotBlank(user.getRealName())){
+		if (StringUtil.isNotBlank(user.getRealName())) {
 			user.setName(user.getRealName());
-		}else{
-			user.setName("微信用户"+user.getPhone());
-			user.setRealName("微信用户"+user.getPhone());
+		} else {
+			user.setName("微信用户" + user.getPhone());
+			user.setRealName("微信用户" + user.getPhone());
 		}
 		boolean save = save(user);
 		return save;
@@ -53,4 +68,67 @@
 	public UserWx getUserWx(String tenantId, String account, String password) {
 		return baseMapper.getUserWx(tenantId, account, password);
 	}
+
+	@Override
+	public IPage<UserVO> selectUserPage(IPage<UserVO> page, User user, Long deptId, String tenantId) {
+		List<Long> deptIdList = SysCache.getDeptChildIds(deptId);
+		List<UserVO> users = baseMapper.selectUserPage(page, user, deptIdList, tenantId);
+		if (users.size() > 0) {
+			//遍历获取部门名称,角色名称
+			users.forEach(userVO -> {
+				//查询当前部门名称及父级部门名称
+				if (null != userVO.getDeptId()) {
+					List<String> list = baseMapper.getDeptName(userVO.getDeptId());
+					if (list.size() > 1) {
+						if (null != list.get(1) && list.get(1) != "") {
+							userVO.setDeptName(list.get(1) + "," + list.get(0));
+						} else {
+							userVO.setDeptName(list.get(0));
+						}
+					}
+					if (list.size() == 1) {
+						userVO.setDeptName(list.get(0));
+					}
+				}
+				//查询角色名称
+				if (null != userVO.getRoleId()) {
+					List<String> asList = Arrays.asList(userVO.getRoleId().split(","));
+					StringBuilder builder = new StringBuilder();
+					asList.forEach(roleIs -> {
+						Role role = roleService.getById(roleIs);
+						if (null != role) {
+							builder.append(role.getRoleName() + ",");
+						}
+					});
+					String substringRoleName = null;
+					if (builder.toString().length() > 0) {
+						substringRoleName = builder.toString().substring(0, builder.toString().length() - 1);
+					}
+					userVO.setRoleName(substringRoleName);
+				}
+			});
+		}
+		return page.setRecords(users);
+	}
+
+	@Override
+	public UserVO getUserDetailById(Long id) {
+		return baseMapper.getUserDetailById(id);
+	}
+
+	@Override
+	public boolean resetPassword(String userIds) {
+		UserWx user = new UserWx();
+		user.setPassword(DigestUtil.encrypt(CommonConstant.DEFAULT_PASSWORD));
+		user.setUpdateTime(DateUtil.now());
+		return this.update(user, Wrappers.<UserWx>update().lambda().in(UserWx::getId, Func.toLongList(userIds)));
+	}
+
+	@Override
+	public boolean removeUser(String userIds) {
+		if (Func.contains(Func.toLongArray(userIds), AuthUtil.getUserId())) {
+			throw new ServiceException("不能删除本账号!");
+		}
+		return deleteLogic(Func.toLongList(userIds));
+	}
 }

--
Gitblit v1.9.3