mirror of https://gitee.com/stylefeng/roses
【8.0.3】【system】更新用户证书表初始化
parent
3db40b8c8c
commit
2266cf1422
|
@ -0,0 +1,81 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.user.entity;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 用户证书实例类
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
@TableName("sys_user_certificate")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SysUserCertificate extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "user_certificate_id", type = IdType.ASSIGN_ID)
|
||||
@ChineseDescription("主键")
|
||||
private Long userCertificateId;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@TableField("user_id")
|
||||
@ChineseDescription("用户id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 证书类型,取字典id
|
||||
*/
|
||||
@TableField("certificate_type")
|
||||
@ChineseDescription("证书类型,取字典id")
|
||||
private Long certificateType;
|
||||
|
||||
/**
|
||||
* 证书编号
|
||||
*/
|
||||
@TableField("certificate_no")
|
||||
@ChineseDescription("证书编号")
|
||||
private String certificateNo;
|
||||
|
||||
/**
|
||||
* 发证机构名称
|
||||
*/
|
||||
@TableField("issuing_authority")
|
||||
@ChineseDescription("发证机构名称")
|
||||
private String issuingAuthority;
|
||||
|
||||
/**
|
||||
* 证书发证日期
|
||||
*/
|
||||
@TableField("date_issued")
|
||||
@ChineseDescription("证书发证日期")
|
||||
private Date dateIssued;
|
||||
|
||||
/**
|
||||
* 证书到期日期,如果为空,则为长期
|
||||
*/
|
||||
@TableField("date_expires")
|
||||
@ChineseDescription("证书到期日期,如果为空,则为长期")
|
||||
private Date dateExpires;
|
||||
|
||||
/**
|
||||
* 是否删除:Y-删除,N-未删除
|
||||
*/
|
||||
@TableField("del_flag")
|
||||
@ChineseDescription("是否删除:Y-删除,N-未删除")
|
||||
private String delFlag;
|
||||
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.user.enums;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 用户证书异常相关枚举
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
@Getter
|
||||
public enum SysUserCertificateExceptionEnum implements AbstractExceptionEnum {
|
||||
|
||||
/**
|
||||
* 查询结果不存在
|
||||
*/
|
||||
SYS_USER_CERTIFICATE_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在");
|
||||
|
||||
/**
|
||||
* 错误编码
|
||||
*/
|
||||
private final String errorCode;
|
||||
|
||||
/**
|
||||
* 提示用户信息
|
||||
*/
|
||||
private final String userTip;
|
||||
|
||||
SysUserCertificateExceptionEnum(String errorCode, String userTip) {
|
||||
this.errorCode = errorCode;
|
||||
this.userTip = userTip;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.user.mapper;
|
||||
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserCertificate;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserCertificateRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.response.SysUserCertificateVo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户证书 Mapper 接口
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
public interface SysUserCertificateMapper extends BaseMapper<SysUserCertificate> {
|
||||
|
||||
/**
|
||||
* 获取自定义查询列表
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
List<SysUserCertificateVo> customFindList(@Param("page") Page page, @Param("param")SysUserCertificateRequest request);
|
||||
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
<?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="cn.stylefeng.roses.kernel.sys.modular.user.mapper.SysUserCertificateMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserCertificate">
|
||||
<id column="user_certificate_id" property="userCertificateId" />
|
||||
<result column="user_id" property="userId" />
|
||||
<result column="certificate_type" property="certificateType" />
|
||||
<result column="certificate_no" property="certificateNo" />
|
||||
<result column="issuing_authority" property="issuingAuthority" />
|
||||
<result column="date_issued" property="dateIssued" />
|
||||
<result column="date_expires" property="dateExpires" />
|
||||
<result column="create_time" property="createTime" />
|
||||
<result column="create_user" property="createUser" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="update_user" property="updateUser" />
|
||||
<result column="del_flag" property="delFlag" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
user_certificate_id,user_id,certificate_type,certificate_no,issuing_authority,date_issued,date_expires,create_time,create_user,update_time,update_user,del_flag
|
||||
</sql>
|
||||
|
||||
<resultMap id="customResultMap" type="cn.stylefeng.roses.kernel.sys.modular.user.pojo.response.SysUserCertificateVo" extends="BaseResultMap">
|
||||
</resultMap>
|
||||
|
||||
<select id="customFindList" resultMap="customResultMap">
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
sys_user_certificate tbl
|
||||
WHERE
|
||||
<where>
|
||||
<if test="param.userCertificateId != null and param.userCertificateId != ''">
|
||||
and tbl.user_certificate_id like concat('%',#{param.userCertificateId},'%')
|
||||
</if>
|
||||
<if test="param.userId != null and param.userId != ''">
|
||||
and tbl.user_id like concat('%',#{param.userId},'%')
|
||||
</if>
|
||||
<if test="param.certificateType != null and param.certificateType != ''">
|
||||
and tbl.certificate_type like concat('%',#{param.certificateType},'%')
|
||||
</if>
|
||||
<if test="param.certificateNo != null and param.certificateNo != ''">
|
||||
and tbl.certificate_no like concat('%',#{param.certificateNo},'%')
|
||||
</if>
|
||||
<if test="param.issuingAuthority != null and param.issuingAuthority != ''">
|
||||
and tbl.issuing_authority like concat('%',#{param.issuingAuthority},'%')
|
||||
</if>
|
||||
<if test="param.dateIssued != null and param.dateIssued != ''">
|
||||
and tbl.date_issued like concat('%',#{param.dateIssued},'%')
|
||||
</if>
|
||||
<if test="param.dateExpires != null and param.dateExpires != ''">
|
||||
and tbl.date_expires like concat('%',#{param.dateExpires},'%')
|
||||
</if>
|
||||
<if test="param.createTime != null and param.createTime != ''">
|
||||
and tbl.create_time like concat('%',#{param.createTime},'%')
|
||||
</if>
|
||||
<if test="param.createUser != null and param.createUser != ''">
|
||||
and tbl.create_user like concat('%',#{param.createUser},'%')
|
||||
</if>
|
||||
<if test="param.updateTime != null and param.updateTime != ''">
|
||||
and tbl.update_time like concat('%',#{param.updateTime},'%')
|
||||
</if>
|
||||
<if test="param.updateUser != null and param.updateUser != ''">
|
||||
and tbl.update_user like concat('%',#{param.updateUser},'%')
|
||||
</if>
|
||||
<if test="param.delFlag != null and param.delFlag != ''">
|
||||
and tbl.del_flag like concat('%',#{param.delFlag},'%')
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -0,0 +1,82 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.user.pojo.request;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户证书封装类
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class SysUserCertificateRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = {edit.class, delete.class})
|
||||
@ChineseDescription("主键")
|
||||
private Long userCertificateId;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@NotNull(message = "用户id不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("用户id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 证书类型,取字典id
|
||||
*/
|
||||
@NotNull(message = "证书类型,取字典id不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("证书类型,取字典id")
|
||||
private Long certificateType;
|
||||
|
||||
/**
|
||||
* 证书编号
|
||||
*/
|
||||
@ChineseDescription("证书编号")
|
||||
private String certificateNo;
|
||||
|
||||
/**
|
||||
* 发证机构名称
|
||||
*/
|
||||
@ChineseDescription("发证机构名称")
|
||||
private String issuingAuthority;
|
||||
|
||||
/**
|
||||
* 证书发证日期
|
||||
*/
|
||||
@ChineseDescription("证书发证日期")
|
||||
private String dateIssued;
|
||||
|
||||
/**
|
||||
* 证书到期日期,如果为空,则为长期
|
||||
*/
|
||||
@ChineseDescription("证书到期日期,如果为空,则为长期")
|
||||
private String dateExpires;
|
||||
|
||||
/**
|
||||
* 是否删除:Y-删除,N-未删除
|
||||
*/
|
||||
@NotBlank(message = "是否删除:Y-删除,N-未删除不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("是否删除:Y-删除,N-未删除")
|
||||
private String delFlag;
|
||||
|
||||
|
||||
/**
|
||||
* 批量删除用的id集合
|
||||
*/
|
||||
@NotNull(message = "批量删除id集合不能为空", groups = batchDelete.class)
|
||||
@ChineseDescription("批量删除用的id集合")
|
||||
private List<Long> batchDeleteIdList;
|
||||
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.user.pojo.response;
|
||||
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserCertificate;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 用户证书返回值封装
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class SysUserCertificateVo extends SysUserCertificate {
|
||||
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.user.service;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserCertificate;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserCertificateRequest;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户证书服务类
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
public interface SysUserCertificateService extends IService<SysUserCertificate> {
|
||||
|
||||
/**
|
||||
* 新增用户证书
|
||||
*
|
||||
* @param sysUserCertificateRequest 请求参数
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
void add(SysUserCertificateRequest sysUserCertificateRequest);
|
||||
|
||||
/**
|
||||
* 删除用户证书
|
||||
*
|
||||
* @param sysUserCertificateRequest 请求参数
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
void del(SysUserCertificateRequest sysUserCertificateRequest);
|
||||
|
||||
/**
|
||||
* 批量删除用户证书
|
||||
*
|
||||
* @param sysUserCertificateRequest 请求参数
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
void batchDelete(SysUserCertificateRequest sysUserCertificateRequest);
|
||||
|
||||
/**
|
||||
* 编辑用户证书
|
||||
*
|
||||
* @param sysUserCertificateRequest 请求参数
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
void edit(SysUserCertificateRequest sysUserCertificateRequest);
|
||||
|
||||
/**
|
||||
* 查询详情用户证书
|
||||
*
|
||||
* @param sysUserCertificateRequest 请求参数
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
SysUserCertificate detail(SysUserCertificateRequest sysUserCertificateRequest);
|
||||
|
||||
/**
|
||||
* 获取用户证书列表
|
||||
*
|
||||
* @param sysUserCertificateRequest 请求参数
|
||||
* @return List<SysUserCertificate> 返回结果
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
List<SysUserCertificate> findList(SysUserCertificateRequest sysUserCertificateRequest);
|
||||
|
||||
/**
|
||||
* 获取用户证书分页列表
|
||||
*
|
||||
* @param sysUserCertificateRequest 请求参数
|
||||
* @return PageResult<SysUserCertificate> 返回结果
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
PageResult<SysUserCertificate> findPage(SysUserCertificateRequest sysUserCertificateRequest);
|
||||
|
||||
}
|
|
@ -0,0 +1,119 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.user.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserCertificate;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.enums.SysUserCertificateExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.mapper.SysUserCertificateMapper;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserCertificateRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserCertificateService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户证书业务实现层
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
@Service
|
||||
public class SysUserCertificateServiceImpl extends ServiceImpl<SysUserCertificateMapper, SysUserCertificate> implements SysUserCertificateService {
|
||||
|
||||
@Override
|
||||
public void add(SysUserCertificateRequest sysUserCertificateRequest) {
|
||||
SysUserCertificate sysUserCertificate = new SysUserCertificate();
|
||||
BeanUtil.copyProperties(sysUserCertificateRequest, sysUserCertificate);
|
||||
this.save(sysUserCertificate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void del(SysUserCertificateRequest sysUserCertificateRequest) {
|
||||
SysUserCertificate sysUserCertificate = this.querySysUserCertificate(sysUserCertificateRequest);
|
||||
this.removeById(sysUserCertificate.getUserCertificateId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void batchDelete(SysUserCertificateRequest sysUserCertificateRequest) {
|
||||
this.removeByIds(sysUserCertificateRequest.getBatchDeleteIdList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void edit(SysUserCertificateRequest sysUserCertificateRequest) {
|
||||
SysUserCertificate sysUserCertificate = this.querySysUserCertificate(sysUserCertificateRequest);
|
||||
BeanUtil.copyProperties(sysUserCertificateRequest, sysUserCertificate);
|
||||
this.updateById(sysUserCertificate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysUserCertificate detail(SysUserCertificateRequest sysUserCertificateRequest) {
|
||||
return this.querySysUserCertificate(sysUserCertificateRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<SysUserCertificate> findPage(SysUserCertificateRequest sysUserCertificateRequest) {
|
||||
LambdaQueryWrapper<SysUserCertificate> wrapper = createWrapper(sysUserCertificateRequest);
|
||||
Page<SysUserCertificate> pageList = this.page(PageFactory.defaultPage(), wrapper);
|
||||
return PageResultFactory.createPageResult(pageList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysUserCertificate> findList(SysUserCertificateRequest sysUserCertificateRequest) {
|
||||
LambdaQueryWrapper<SysUserCertificate> wrapper = this.createWrapper(sysUserCertificateRequest);
|
||||
return this.list(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取信息
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
private SysUserCertificate querySysUserCertificate(SysUserCertificateRequest sysUserCertificateRequest) {
|
||||
SysUserCertificate sysUserCertificate = this.getById(sysUserCertificateRequest.getUserCertificateId());
|
||||
if (ObjectUtil.isEmpty(sysUserCertificate)) {
|
||||
throw new ServiceException(SysUserCertificateExceptionEnum.SYS_USER_CERTIFICATE_NOT_EXISTED);
|
||||
}
|
||||
return sysUserCertificate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建查询wrapper
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/09 22:44
|
||||
*/
|
||||
private LambdaQueryWrapper<SysUserCertificate> createWrapper(SysUserCertificateRequest sysUserCertificateRequest) {
|
||||
LambdaQueryWrapper<SysUserCertificate> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
Long userCertificateId = sysUserCertificateRequest.getUserCertificateId();
|
||||
Long userId = sysUserCertificateRequest.getUserId();
|
||||
Long certificateType = sysUserCertificateRequest.getCertificateType();
|
||||
String certificateNo = sysUserCertificateRequest.getCertificateNo();
|
||||
String issuingAuthority = sysUserCertificateRequest.getIssuingAuthority();
|
||||
String dateIssued = sysUserCertificateRequest.getDateIssued();
|
||||
String dateExpires = sysUserCertificateRequest.getDateExpires();
|
||||
String delFlag = sysUserCertificateRequest.getDelFlag();
|
||||
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(userCertificateId), SysUserCertificate::getUserCertificateId, userCertificateId);
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(userId), SysUserCertificate::getUserId, userId);
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(certificateType), SysUserCertificate::getCertificateType, certificateType);
|
||||
queryWrapper.like(ObjectUtil.isNotEmpty(certificateNo), SysUserCertificate::getCertificateNo, certificateNo);
|
||||
queryWrapper.like(ObjectUtil.isNotEmpty(issuingAuthority), SysUserCertificate::getIssuingAuthority, issuingAuthority);
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(dateIssued), SysUserCertificate::getDateIssued, dateIssued);
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(dateExpires), SysUserCertificate::getDateExpires, dateExpires);
|
||||
queryWrapper.like(ObjectUtil.isNotEmpty(delFlag), SysUserCertificate::getDelFlag, delFlag);
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue