Prechádzať zdrojové kódy

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-op-server-mdm

changhaoning 1 rok pred
rodič
commit
7e2a457eee

+ 83 - 4
src/main/java/com/dk/mdm/controller/mst/UserController.java

@@ -1,17 +1,21 @@
 package com.dk.mdm.controller.mst;
 package com.dk.mdm.controller.mst;
 
 
+import com.dk.common.model.pojo.PageList;
 import com.dk.common.response.ResponseResultVO;
 import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.mst.User;
 import com.dk.mdm.model.pojo.mst.User;
-import com.dk.common.controller.BaseController;
 import com.dk.common.service.BaseService;
 import com.dk.common.service.BaseService;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.dk.mdm.model.query.mst.UserQuery;
+import com.dk.mdm.model.response.mst.UserResponse;
+import com.dk.mdm.model.vo.mst.UnitVO;
+import com.dk.mdm.model.vo.mst.UserVO;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RestController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import com.dk.mdm.service.mst.UserService;
 import com.dk.mdm.service.mst.UserService;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 
 @Api(tags = "用户API接口")
 @Api(tags = "用户API接口")
 @RestController
 @RestController
@@ -34,4 +38,79 @@ public class UserController{
     public ResponseResultVO token(HttpServletRequest request) {
     public ResponseResultVO token(HttpServletRequest request) {
         return userService.token(request);
         return userService.token(request);
     }
     }
+
+   /**
+    * @desc   : 分页、关联、条件查询
+    * @author : 宋扬
+    * @date   : 2024/4/29 17:09
+    */
+   @ApiOperation(value = "分页、关联、条件查询", notes = "分页、关联、条件查询")
+   @PostMapping({"list_by"})
+   public ResponseResultVO<PageList<UserResponse>> selectByCond(@RequestBody UserQuery userQuery) {
+       return userService.selectByCond(userQuery);
+   }
+
+   /**
+    * @desc   : 通过ID查询
+    * @author : 宋扬
+    * @date   : 2024/4/29 17:19
+    */
+    @PostMapping({"/{id}"})
+    public ResponseResultVO selectById(@PathVariable String id) {
+        return userService.selectById(id);
+    }
+
+   /**
+    * @desc   : 新建
+    * @author : 宋扬
+    * @date   : 2024/4/29 17:15
+    */  @ApiOperation(value = "新建", notes = "新建")
+   @PostMapping({"insert"})
+   public ResponseResultVO<?> insert(@RequestBody UserVO userVO) {
+       return userService.insert(userVO);
+   }
+
+   /**
+    * @desc   : 编辑
+    * @author : 宋扬
+    * @date   : 2024/4/29 17:16
+    */
+   @ApiOperation( value = "编辑", notes = "编辑" )
+   @PostMapping({"update"})
+   public ResponseResultVO<?> update(@RequestBody UserVO userVO) {
+       return userService.update(userVO);
+   }
+
+   /**
+    * @desc   : 批量启用
+    * @author : 宋扬
+    * @date   : 2024/4/29 17:20
+    */
+    @ApiOperation(value = "批量启用", notes = "批量启用")
+    @PostMapping("enable_batch")
+    public ResponseResultVO<Boolean> enableBatch(@RequestBody List<String> ids) {
+        return this.getService().enableBatch(ids);
+    }
+
+    /**
+     * @desc   : 批量停用
+     * @author : 宋扬
+     * @date   : 2024/4/29 17:20
+     */
+    @ApiOperation(value = "批量停用", notes = "批量停用")
+    @PostMapping("disable_batch")
+    public ResponseResultVO<Boolean> disableBatch(@RequestBody List<String> ids) {
+        return this.getService().disableBatch(ids);
+    }
+
+    /**
+     * @desc   : desc
+     * @author : 宋扬
+     * @date   : 2024/4/30 15:18
+     */
+    @ApiOperation(value = "重置密码", notes = "重置密码")
+    @PostMapping("reset_password")
+    public ResponseResultVO<Boolean> resetPassword(@RequestBody UserVO userVO) {
+        return userService.resetPassword(userVO);
+    }
 }
 }

+ 24 - 2
src/main/java/com/dk/mdm/mapper/mst/UserMapper.xml

@@ -10,7 +10,29 @@
     </sql>
     </sql>
 
 
     <!-- 通用查询映射结果 -->
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.mst.UserResponse">
+    <resultMap id="BaseResultMap_UserResponse" type="com.dk.mdm.model.response.mst.UserResponse">
+        <id column="user_id" property="userId"/>
+        <result column="user_code" property="userCode"/>
+        <result column="user_name" property="userName"/>
+        <result column="user_pwd" property="userPwd"/>
+        <result column="flg_init_pwd" property="flgInitPwd"/>
+        <result column="pwd_date" property="pwdDate" typeHandler="TimestampTypeHandler"/>
+        <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
+        <result column="role_ids" property="roleIds" typeHandler="UuidListTypeHandler"/>
+        <result column="remarks" property="remarks"/>
+        <result column="flg_valid" property="flgValid"/>
+        <result column="cp_id" property="cpId"/>
+        <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
+        <result column="op_create_user_id" property="opCreateUserId"/>
+        <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
+        <result column="op_update_user_id" property="opUpdateUserId"/>
+        <result column="op_app_code" property="opAppCode"/>
+        <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
+        <result column="op_db_user" property="opDbUser"/>
+    </resultMap>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.mst.User">
         <id column="user_id" property="userId"/>
         <id column="user_id" property="userId"/>
         <result column="user_code" property="userCode"/>
         <result column="user_code" property="userCode"/>
         <result column="user_name" property="userName"/>
         <result column="user_name" property="userName"/>
@@ -128,7 +150,7 @@
         SELECT
         SELECT
         <include refid="Base_Column_List"/>
         <include refid="Base_Column_List"/>
         FROM dkic_m.t_dk_user
         FROM dkic_m.t_dk_user
-        WHERE user_id = #{userId}
+        WHERE user_id = #{id}::uuid
         for update
         for update
     </select>
     </select>
 
 

+ 1 - 1
src/main/java/com/dk/mdm/model/pojo/mst/User.java

@@ -29,7 +29,7 @@ import java.time.LocalDateTime;
 @EqualsAndHashCode(callSuper = true)
 @EqualsAndHashCode(callSuper = true)
 @Accessors(chain = true)
 @Accessors(chain = true)
 @ExportTitle("用户")
 @ExportTitle("用户")
-@TableName(value = "t_dk_user", autoResultMap = true)
+@TableName(value = "t_dk_user", autoResultMap = true,schema = "dkic_m")
 @ApiModel(value="实体类:用户", description="表名:t_dk_user")
 @ApiModel(value="实体类:用户", description="表名:t_dk_user")
 public class User extends PageInfo<User> implements Serializable {
 public class User extends PageInfo<User> implements Serializable {
 
 

+ 8 - 0
src/main/java/com/dk/mdm/model/vo/mst/UserVO.java

@@ -3,6 +3,7 @@ package com.dk.mdm.model.vo.mst;
 import cn.afterturn.easypoi.excel.annotation.Excel;
 import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.annotation.*;
 import com.dk.common.infrastructure.annotaiton.ExportTitle;
 import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.IntListTypeHandler;
 import com.dk.common.infrastructure.handler.TimestampTypeHandler;
 import com.dk.common.infrastructure.handler.TimestampTypeHandler;
 import com.dk.common.infrastructure.handler.UuidListTypeHandler;
 import com.dk.common.infrastructure.handler.UuidListTypeHandler;
 import com.dk.common.infrastructure.handler.UuidTypeHandler;
 import com.dk.common.infrastructure.handler.UuidTypeHandler;
@@ -192,6 +193,13 @@ public class UserVO extends PageInfo<UserVO> implements Serializable {
     @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
     @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
     private String opDbUser;
     private String opDbUser;
 
 
+    /**
+     * 用户idList
+     */
+    @Excel(name = "用户idList")
+    @ApiModelProperty(value = "用户idList")
+    @TableField(typeHandler = IntListTypeHandler.class)
+    private List<String> userIds;
 
 
     /*
     /*
      * 相关属性
      * 相关属性

+ 116 - 5
src/main/java/com/dk/mdm/service/mst/UserService.java

@@ -1,22 +1,32 @@
 package com.dk.mdm.service.mst;
 package com.dk.mdm.service.mst;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.dk.common.exception.BaseBusinessException;
+import com.dk.common.infrastructure.annotaiton.Pagination;
 import com.dk.common.infrastructure.constant.Constant;
 import com.dk.common.infrastructure.constant.Constant;
 import com.dk.common.infrastructure.constant.OauthConstants;
 import com.dk.common.infrastructure.constant.OauthConstants;
 import com.dk.common.infrastructure.enums.ErrorCodeEnum;
 import com.dk.common.infrastructure.enums.ErrorCodeEnum;
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseCodeEnum;
 import com.dk.common.response.ResponseResultUtil;
 import com.dk.common.response.ResponseResultUtil;
 import com.dk.common.response.ResponseResultVO;
 import com.dk.common.response.ResponseResultVO;
+import com.dk.common.util.Md5Utils;
+import com.dk.mdm.infrastructure.convert.mst.UserConvert;
 import com.dk.mdm.infrastructure.util.AESSecurityUtil;
 import com.dk.mdm.infrastructure.util.AESSecurityUtil;
 import com.dk.mdm.infrastructure.util.UUID;
 import com.dk.mdm.infrastructure.util.UUID;
 import com.dk.mdm.mapper.common.CommonMapper;
 import com.dk.mdm.mapper.common.CommonMapper;
 import com.dk.mdm.model.entity.AuthAccessToken;
 import com.dk.mdm.model.entity.AuthAccessToken;
 import com.dk.mdm.model.entity.UserLoginSuccess;
 import com.dk.mdm.model.entity.UserLoginSuccess;
+import com.dk.mdm.model.pojo.mst.Unit;
 import com.dk.mdm.model.pojo.mst.User;
 import com.dk.mdm.model.pojo.mst.User;
 import com.dk.mdm.mapper.mst.UserMapper;
 import com.dk.mdm.mapper.mst.UserMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
 import com.dk.common.mapper.BaseMapper;
 import com.dk.mdm.model.query.mst.UserQuery;
 import com.dk.mdm.model.query.mst.UserQuery;
 import com.dk.mdm.model.response.mst.UserResponse;
 import com.dk.mdm.model.response.mst.UserResponse;
+import com.dk.mdm.model.vo.mst.UnitVO;
+import com.dk.mdm.model.vo.mst.UserVO;
+import com.dk.mdm.service.common.CommonService;
 import com.dk.mdm.shiro.jwt.JWTGenerator;
 import com.dk.mdm.shiro.jwt.JWTGenerator;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.oltu.oauth2.as.issuer.OAuthIssuerImpl;
 import org.apache.oltu.oauth2.as.issuer.OAuthIssuerImpl;
@@ -37,6 +47,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
+
 @Slf4j
 @Slf4j
 @Service
 @Service
 @Transactional
 @Transactional
@@ -48,16 +59,27 @@ public class UserService extends BaseService<User> {
 	}
 	}
 
 
 	@Autowired
 	@Autowired
-	private UserMapper userMapper;
-
-	@Autowired
 	private CommonMapper commonMapper;
 	private CommonMapper commonMapper;
-
 	@Value("${aes-key}")
 	@Value("${aes-key}")
 	private String AESKey;
 	private String AESKey;
-
 	@Resource
 	@Resource
 	private StringRedisTemplate stringRedisTemplate;
 	private StringRedisTemplate stringRedisTemplate;
+	@Autowired
+	private UserMapper userMapper;
+	@Autowired
+	private UserConvert userConvert;
+	@Autowired
+	private CommonService commonService;
+
+	/**
+	 * @desc   : 重写主键
+	 * @author : 宋扬
+	 * @date   : 2024/4/29 17:13
+	 */
+	@Override
+	public String getPrimaryKey() {
+		return "user_id";
+	}
 
 
 	/**
 	/**
 	 * @desc : 获取token
 	 * @desc : 获取token
@@ -146,4 +168,93 @@ public class UserService extends BaseService<User> {
 
 
 		return ResponseResultUtil.success(userLoginSuccess);
 		return ResponseResultUtil.success(userLoginSuccess);
 	}
 	}
+
+	/**
+	 * @desc   : 查询
+	 * @author : 宋扬
+	 * @date   : 2024/4/29 17:12
+	 */
+	@Pagination
+	public ResponseResultVO<PageList<UserResponse>> selectByCond(UserQuery userQuery) {
+		return super.mergeListWithCount(userQuery, userMapper.selectByCond(userQuery),
+				userMapper.countByCond(userQuery));
+	}
+
+	/**
+	 * @desc   : 新建
+	 * @author : 宋扬
+	 * @date   : 2024/4/29 17:22
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<?> insert(UserVO userVO) {
+		// 判断用户编码是否重复
+		Long userCount = userMapper.countByCond(new User().setUserCode(userVO.getUserCode()));
+		if(userCount > 0){
+			throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.STAFF_CODE_EXISTS.getMessage());
+		}
+		// 实体转换
+		User user = userConvert.convertToPo(userVO);
+		// 默认值
+		user.setFlgInitPwd(true).setPwdDate(LocalDateTime.now()).setUserPwd(Md5Utils.hash(Constant.StringConstant.LOGIN_INIT_PWD.getName()));
+		//新建
+		super.insert(user);
+		return ResponseResultUtil.success();
+	}
+
+	/**
+	 * @desc   : 编辑
+	 * @date   : 2024/4/29 17:25
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<?> update(UserVO userVO) {
+		// 查询用户数据
+		User userForUpdate = userMapper.selectByIdForUpdate(userVO.getUserId());
+		User user = userConvert.convertToPo(userVO);
+		// 如果Code和name、密码 都没有修改
+		if(user.getUserCode().equals(userForUpdate.getUserCode())
+			&& user.getUserName().equals(userForUpdate.getUserName())
+				&&user.getUserPwd()==null){
+			return ResponseResultUtil.success();
+		}else{
+			// 判断用户Code是否有修改,
+			if(!user.getUserCode().equals(userForUpdate.getUserCode())){
+				// 判断用户编码是否重复
+				Long userCount = userMapper.countByCond(new User().setUserCode(userVO.getUserCode()));
+				if(userCount > 0){
+					throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.STAFF_CODE_EXISTS.getMessage());
+				}
+			}
+			// 如果修改了密码
+			if (user.getUserPwd()!=null) {
+				user.setFlgInitPwd(false).setPwdDate(LocalDateTime.now()).setUserPwd(Md5Utils.hash(user.getUserPwd()));
+			}
+			// 更新数据
+			super.updateByUuid(user);
+			return ResponseResultUtil.success();
+		}
+	}
+
+	/**
+	 * @desc   : desc
+	 * @author : 宋扬
+	 * @date   : 2024/4/30 15:20
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<Boolean> resetPassword(UserVO userVO) {
+		// 实体转换
+		List<String> userIdList = userVO.getUserIds();
+		for (String str : userIdList) {
+			User user = new User();
+			user.setUserId(str).setFlgInitPwd(true).setPwdDate(LocalDateTime.now())
+					.setUserPwd(Md5Utils.hash(Constant.StringConstant.LOGIN_INIT_PWD.getName()));
+			super.updateByUuid(user);
+		}
+		return ResponseResultUtil.success();
+	}
 }
 }