Commit d13ec403 authored by 王琮's avatar 王琮

添加模板导出和用户导入

parent 965b9ab9
......@@ -5,6 +5,7 @@ package org.rcisoft.sys.sysuser.controller;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.rcisoft.core.anno.CyEptSm4EnableAnno;
import org.rcisoft.core.anno.CyOpeLogAnno;
import org.rcisoft.core.operlog.enums.CyLogTypeEnum;
import org.rcisoft.core.util.CyEpExcelUtil;
......@@ -21,8 +22,8 @@ import org.rcisoft.core.controller.CyPaginationController;
import org.rcisoft.core.model.CyGridModel;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.rcisoft.sys.sysuser.service.SysUserService;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
......@@ -158,4 +159,26 @@ public class SysUserController extends CyPaginationController<SysUser> {
CyMessCons.MESSAGE_ALERT_ERROR,
sysUserList);
}
@CyOpeLogAnno(title = "system-用户管理-导出用户", businessType = CyLogTypeEnum.EXPORT)
@ApiOperation(value = "导出用户信息空模板", notes = "导出用户信息空模板")
@GetMapping(value = "/importTemplate")
@CyEptSm4EnableAnno
public CyResult outSysUserEmpty(HttpServletResponse response) {
return CyResultGenUtil.builder(new CyPersistModel(1),
CyMessCons.MESSAGE_ALERT_SUCCESS,
CyMessCons.MESSAGE_ALERT_ERROR,
sysUserServiceImpl.exportEmptyTemplate(response));
}
@CyOpeLogAnno(title = "system-用户管理-导入用户", businessType = CyLogTypeEnum.IMPORT)
@ApiOperation(value = "导入用户信息", notes = "导入用户信息")
@PostMapping("/importExcel")
@CyEptSm4EnableAnno
public CyResult importSysUser(MultipartFile file) {
return CyResultGenUtil.builder(new CyPersistModel(1),
CyMessCons.MESSAGE_ALERT_SUCCESS,
CyMessCons.MESSAGE_ALERT_ERROR,
sysUserServiceImpl.importUserExcel(file));
}
}
package org.rcisoft.sys.sysuser.dto;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class ExportUserDTO {
@ApiModelProperty(name = "username", value = "登录名", required = true, dataType = "varchar")
@Excel(name = "登录名", orderNum = "0", width = 15.0)
private String username;
@ApiModelProperty(name = "nickName", value = "昵称", required = true, dataType = "varchar")
@Excel(name = "昵称", orderNum = "1", width = 15.0)
private String nickName;
@ApiModelProperty(name = "name", value = "姓名", required = true, dataType = "varchar")
@Excel(name = "姓名", orderNum = "2", width = 15.0)
private String name;
@ApiModelProperty(name = "email", value = "邮箱", required = true, dataType = "varchar")
@Excel(name = "邮箱", orderNum = "3", width = 15.0)
private String email;
@ApiModelProperty(name = "phone", value = "手机号", required = true, dataType = "varchar")
@Excel(name = "手机号", orderNum = "4", width = 15.0)
private String phone;
@ApiModelProperty(name = "idNumber", value = "身份证号", required = true, dataType = "varchar")
@Excel(name = "身份证号", orderNum = "5", width = 15.0)
private String idNumber;
@ApiModelProperty(name = "sex", value = "性别(0:男,1:女)", required = true, dataType = "varchar")
@Excel(name = "性别", orderNum = "6", width = 15.0)
private String sex;
@TableField(exist = false)
@Excel(name = "岗位", orderNum = "7", width = 15.0)
private String postIds;
@ApiModelProperty(name = "password", value = "密码", required = true, dataType = "varchar")
private String password;
@ApiModelProperty(name = "userType", value = "用户类型", required = true, dataType = "varchar")
private String userType;
@ApiModelProperty(name = "avatar", value = "头像地址", required = true, dataType = "varchar")
private String avatar;
@ApiModelProperty(name = "loginIp", value = "最后登录IP", required = true, dataType = "varchar")
private String loginIp;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "loginDate", value = "最后登录时间", required = true, dataType = "date")
private Date loginDate;
}
......@@ -115,7 +115,7 @@ public class SysUser extends CyIdIncreEntity<SysUser> {
* @default
*/
@Excel(name = "用户性别(0男 1女 2未知)", orderNum = "6", width = 20)
private Long sex;
private String sex;
/**
* @desc 密码
......
......@@ -3,9 +3,12 @@ package org.rcisoft.sys.sysuser.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.rcisoft.core.model.CyPersistModel;
import org.rcisoft.core.model.CyPageInfo;
import org.rcisoft.sys.rbac.user.dto.ImportUserDTO;
import org.rcisoft.sys.sysuser.entity.SysUser;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
......@@ -77,4 +80,7 @@ public interface SysUserService {
*/
List<SysUser> export(SysUser sysUser);
int exportEmptyTemplate(HttpServletResponse response);
ImportUserDTO importUserExcel(MultipartFile file);
}
package org.rcisoft.sys.sysuser.util;
import org.apache.commons.lang3.StringUtils;
import org.rcisoft.core.constant.CySysCons;
import org.rcisoft.sys.sysuser.dto.ExportUserDTO;
import org.rcisoft.sys.sysuser.entity.SysUser;
import org.rcisoft.sys.wbac.user.dto.ErrorDTO;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ConditionalOnProperty(prefix = "cy.model", name = "permission", havingValue = CySysCons.WORK_BASE)
public class CheckUtil {
/**
* 对导入的用户信息进行非空校验
*
* @param sysUser 用户信息
* @param row 行数
* @return
*/
public static ErrorDTO userNotNull(ExportUserDTO sysUser, int row) {
ErrorDTO errorDTO = new ErrorDTO();
Map<Integer, List<String>> notTrues = new HashMap<>();
List<String> notTrue = new ArrayList<>();
errorDTO.setSuccess(0);
if (StringUtils.isEmpty(sysUser.getUsername())) {
notTrue.add("用户名不能为空");
}
if (StringUtils.isEmpty(sysUser.getName())) {
notTrue.add("姓名不能为空");
}
if (StringUtils.isEmpty(sysUser.getEmail())) {
notTrue.add("邮箱不能为空");
}
if (StringUtils.isEmpty(sysUser.getPhone())) {
notTrue.add("手机号不能为空");
}
if (StringUtils.isEmpty(sysUser.getIdNumber())) {
notTrue.add("身份证号不能为空");
}
if (StringUtils.isEmpty(sysUser.getSex())) {
notTrue.add("性别不能为空");
}
if (StringUtils.isEmpty(sysUser.getPostIds())) {
notTrue.add("岗位不能为空");
}
if (notTrue.size() > 0) {
errorDTO.setSuccess(1);
notTrues.put(row, notTrue);
errorDTO.setMap(notTrues);
}
return errorDTO;
}
/**
* 对导入信息进行查重校验
*
* @param sysUser 导入用户信息
* @param row 行数
* @param sysUsers 已有用户信息
* @return
*/
public static ErrorDTO userRepeat(ExportUserDTO sysUser, int row, List<SysUser> sysUsers) {
ErrorDTO errorDTO = new ErrorDTO();
Map<Integer, List<String>> notTrues = new HashMap<>();
List<String> notTrue = new ArrayList<>();
errorDTO.setSuccess(0);
for (SysUser existenceUser : sysUsers) {
if (existenceUser.getUsername().equals(sysUser.getUsername())) {
notTrue.add("登录名不能重复");
}
if (existenceUser.getIdNumber().equals(sysUser.getIdNumber())) {
notTrue.add("身份证号不能重复");
}
}
if (notTrue.size() > 0) {
errorDTO.setSuccess(1);
notTrues.put(row, notTrue);
errorDTO.setMap(notTrues);
}
return errorDTO;
}
}
server:
port: 8082
port: 8088
tomcat:
max-threads: 300
servlet:
......
# redis
cy_redis:
ip: xdzy_redis
port: 6379
# rabbitMq
cy_mq:
ip: 106.2.17.236
port: 5677
username: mq
password: mq
# db
cy_db:
ip: 192.168.18.191
port: 13306
username: root
password: oohrenwrl232
db: xdzy
#cy_db:
# ip: 127.0.0.1
# port: 3306
# username: root
# password: 111111
# mongodb
cy_mongodb:
ip: 127.0.0.1
port: 27017
username: fox
password: fox
db: cy
authDb: cy
#cy_mongodb:
# ip: 124.71.16.228
# port: 27017
# username: admin
# password: 123456
# db: springboot
# authDb: springboot
cy:
model:
swagger2Config: true
security:
enable: true
permission: false
defaultFilter: true
gateway: false
acAllowOrigin: '*'
acAllowMethods: 'POST, GET, OPTIONS, DELETE,PUT'
acAllowHeaders: '*'
permit-all:
permitUnStatic:
- "/static/**"
- "/webjars/**"
- "/v2/**"
- "/swagger-resources/**"
- "/api-docs/**"
- "/auth/**"
- "/code/**/**"
- "/excelUtil/**"
#- "/cros/**"
- "/nlttest/add/**"
- "/**/**"
permitStatic: [ "/", "/*.html", "/favicon.ico", "/**/*.html", "/**/*.js", "/**/*.css" ]
logoutSuccessUrl: "/login"
loginPage: "/login"
loginfailureUrl: "/login-error.html"
logging:
level:
root: info
com.alibaba.nacos: info
# root: debug
# com.alibaba.nacos: debug
......@@ -3,3 +3,4 @@ spring:
active: dev
group:
dev: dev-conf,common
prod: prod-conf,common
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment