diff --git a/src/main/java/com/bonus/digitalSignage/model/SysUser.java b/src/main/java/com/bonus/digitalSignage/model/SysUser.java index 61b5e39..d10994e 100644 --- a/src/main/java/com/bonus/digitalSignage/model/SysUser.java +++ b/src/main/java/com/bonus/digitalSignage/model/SysUser.java @@ -2,9 +2,14 @@ package com.bonus.digitalSignage.model; import com.bonus.digitalSignage.base.entity.PageEntity; import com.bonus.digitalSignage.system.vo.SelectVo; +import com.bonus.digitalSignage.utils.Excel; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.List; @@ -19,11 +24,13 @@ public class SysUser extends PageEntity { /** * 登录名 */ + @Excel(name = "登录名", sort = 1) private String loginName; /** * 用户名 */ + @Excel(name = "用户名", sort = 2) private String username; /** @@ -34,11 +41,13 @@ public class SysUser extends PageEntity { /** * 单位部门 */ + private String orgName; /** * 角色名称 */ + @Excel(name = "角色名称", sort = 4) private String roleName; private String password; @@ -94,6 +103,7 @@ public class SysUser extends PageEntity { private List departs; + @Excel(name = "项目部", sort = 3) private String deptName; /** @@ -117,9 +127,20 @@ public class SysUser extends PageEntity { /** * 创建时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date createTime; + @Excel(name = "创建时间", sort = 5) + private String exportTime; + + private static final SimpleDateFormat FORMATTER = new SimpleDateFormat("yyyy-MM-dd"); + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + this.exportTime = createTime != null ? FORMATTER.format(createTime) : null; + } + private String updatePasswordTime; /** diff --git a/src/main/java/com/bonus/digitalSignage/system/controller/UserController.java b/src/main/java/com/bonus/digitalSignage/system/controller/UserController.java index 743b96a..fc229c5 100644 --- a/src/main/java/com/bonus/digitalSignage/system/controller/UserController.java +++ b/src/main/java/com/bonus/digitalSignage/system/controller/UserController.java @@ -8,16 +8,14 @@ import java.util.List; import java.util.Objects; import com.bonus.digitalSignage.annotation.DecryptAndVerify; +import com.bonus.digitalSignage.basic.vo.TbProjectVo; import com.bonus.digitalSignage.model.Role; import com.bonus.digitalSignage.system.dao.UserDao; import com.bonus.digitalSignage.system.vo.*; import com.bonus.digitalSignage.model.PasswordConfig; import com.bonus.digitalSignage.model.SysUser; import com.bonus.digitalSignage.system.service.UserService; -import com.bonus.digitalSignage.utils.ServerResponse; -import com.bonus.digitalSignage.utils.StringHelper; -import com.bonus.digitalSignage.utils.SystemUtils; -import com.bonus.digitalSignage.utils.UserUtil; +import com.bonus.digitalSignage.utils.*; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.codec.binary.Base64; @@ -31,6 +29,7 @@ import io.swagger.annotations.Api; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; /** @@ -422,4 +421,20 @@ public class UserController { } return ServerResponse.createErroe("操作失败"); } + + /** + *用户管理导出 + * @param data + * @return + */ + @PostMapping(value = "/tbProjectExport") + @DecryptAndVerify(decryptedClass = SysUser.class) + @LogAnnotation(operModul = "用户管理-导出", operation = "导出", operDesc = "系统级事件",operType="导出") + public void tbProjectExport(HttpServletResponse response, EncryptedReq data) { + List list = userService.list(data.getData()); + ExcelUtil util = new ExcelUtil<>(SysUser.class); + util.exportExcel(response, list, "用户管理"); + } + + } diff --git a/src/main/resources/static/js/system/child/userFormTemp.js b/src/main/resources/static/js/system/child/userFormTemp.js index 8183b7c..120a54e 100644 --- a/src/main/resources/static/js/system/child/userFormTemp.js +++ b/src/main/resources/static/js/system/child/userFormTemp.js @@ -118,19 +118,19 @@ function setOrgTree(data){ line: true, // 显示树线 checkbar: false, //开启复选框 done: function (data, url, first) { - console.log($('#orgId').val()) - if(first) { - var params = dtree.dataInit("orgId", $('#orgId').val()); - var selectParam = dtree.selectVal("orgId"); - console.log(params) - } + // console.log($('#orgId').val()) + // if(first) { + // var params = dtree.dataInit("orgId", $('#orgId').val()); + // var selectParam = dtree.selectVal("orgId"); + // console.log(params) + // } } }); } function getOrgTree() { let data = []; let url = dataUrl + '/users/getOrg'; - ajaxRequest(url, "POST", null, true, function () { + ajaxRequest(url, "POST", null, false, function () { }, function (result) { if (result.code === 200) { console.log(result,"getOrgTree") @@ -187,7 +187,6 @@ function setFormData(data) { } else if (data.sex === 0) { document.getElementById('sex_0').checked = true; } - $('#orgId').val(data.dept) $('#roleId').val(data.roleId) dtree.dataInit("orgId", data.dept); dtree.selectVal("orgId"); diff --git a/src/main/resources/static/js/system/userMge.js b/src/main/resources/static/js/system/userMge.js index ca7d9d3..6aedf75 100644 --- a/src/main/resources/static/js/system/userMge.js +++ b/src/main/resources/static/js/system/userMge.js @@ -328,6 +328,37 @@ function setOrgTree(data) { }); } +function exportUser(){ + let obj = { + keyWord: $('#keyWord').val() + } + let params = { + encryptedData: encryptCBC(JSON.stringify(obj)) + } + let loadingMsg = layer.msg("数据导出中,请稍候...", {icon: 16, scrollbar: false, time: 0,}); + let url = dataUrl + "/users/tbProjectExport?token=" + tokens + "&encryptedData=" + encodeURIComponent(encryptCBC(JSON.stringify(obj))); + let xhr = new XMLHttpRequest(); + xhr.open("post", url, true); + xhr.responseType = "blob"; // 转换流 + xhr.setRequestHeader('Content-Type','application/json;charset=UTF-8') + xhr.onload = function () { + layer.close(loadingMsg); + if (this.status === 200) { + let blob = this.response; + var a = document.createElement("a"); + var url = window.URL.createObjectURL(blob); + a.href = url; + a.download = "用户管理" + ".xlsx"; // 文件名 + } else { + layer.msg("数据导出发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000}); + } + a.click(); + window.URL.revokeObjectURL(url); + }; + // xhr.send(params); + xhr.send(); +} + /*下拉选表单赋值*/ function setSelectValue(list, selectName) { let html = ''; diff --git a/src/main/resources/static/pages/user/userMge.html b/src/main/resources/static/pages/user/userMge.html index 2a335cd..5609ab3 100644 --- a/src/main/resources/static/pages/user/userMge.html +++ b/src/main/resources/static/pages/user/userMge.html @@ -31,6 +31,11 @@ +