From 77e1bec36d67bdb9f2bb6a83facbe01591503d43 Mon Sep 17 00:00:00 2001 From: qiaowei Date: Tue, 7 May 2019 18:05:39 +0800 Subject: [PATCH] =?utf8?q?=E7=B3=BB=E7=BB=9F=E4=B8=AD=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../dlpay/api/domain/TPointsTransdtl.java | 2 +- .../dlpay/framework/dao/OperLogDao.java | 10 + .../dlpay/framework/dao/OperRoleDao.java | 4 + .../dlpay/framework/domain/TOperLog.java | 99 +++++++++ .../dlpay/framework/domain/TOperator.java | 10 + .../security/MyPermissionEvaluator.java | 48 +++-- .../dlpay/framework/util/WebConstant.java | 1 + .../supwisdom/dlpay/system/bean/LogBean.java | 13 ++ .../system/controller/FunctionController.java | 10 + .../system/controller/OperatorController.java | 204 +++++++++++------- .../system/controller/RoleController.java | 14 +- .../dlpay/system/service/OperatorService.java | 23 ++ .../dlpay/system/service/RoleService.java | 2 +- .../service/impl/OperatorServiceImpl.java | 108 ++++++++-- .../system/service/impl/RoleServiceImpl.java | 19 +- .../resources/static/custom/module/admin.js | 20 ++ .../templates/system/operator/index.html | 78 +++++-- .../templates/system/operator/logs.html | 50 +++++ .../templates/system/operator/operator.html | 15 +- .../resources/templates/system/role/form.html | 7 - 20 files changed, 573 insertions(+), 164 deletions(-) create mode 100644 src/main/java/com/supwisdom/dlpay/framework/dao/OperLogDao.java create mode 100644 src/main/java/com/supwisdom/dlpay/framework/domain/TOperLog.java create mode 100644 src/main/java/com/supwisdom/dlpay/system/bean/LogBean.java create mode 100644 src/main/resources/templates/system/operator/logs.html diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java b/src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java index f56a53a9..dba4514a 100644 --- a/src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java +++ b/src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java @@ -25,7 +25,7 @@ public class TPointsTransdtl { @Column(name="BEFPOINTS", length = 15) private Long befpoints; - @Column(name="BEFPOINTS", length = 15) + @Column(name="AFTPOINTS", length = 15) private Long aftpoints; @Column(name="STATUS", length = 15) diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/OperLogDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/OperLogDao.java new file mode 100644 index 00000000..e8fa58e3 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/framework/dao/OperLogDao.java @@ -0,0 +1,10 @@ +package com.supwisdom.dlpay.framework.dao; + +import com.supwisdom.dlpay.framework.domain.TOperLog; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface OperLogDao extends JpaRepository { + Page findAllByOpernameContaining(String opername, Pageable pageable); +} diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java index c3fe0d1d..fa3dd5ae 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java +++ b/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java @@ -14,4 +14,8 @@ public interface OperRoleDao extends JpaRepository { List getRolecodeByOperid(String operid); void deleteByRoleId(String roleId); + + List findAllByOperid(String operid); + + void deleteByOperid(String operid); } diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperLog.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperLog.java new file mode 100644 index 00000000..1243efd0 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperLog.java @@ -0,0 +1,99 @@ +package com.supwisdom.dlpay.framework.domain; + +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; + +@Entity +@Table(name = "TB_OPER_LOG") +public class TOperLog { + @Id + @GenericGenerator(name = "idGenerator", strategy = "uuid") + @GeneratedValue(generator = "idGenerator") + @Column(name = "ID", nullable = false, length = 32) + private String id; + + @Column(name = "OPERID", nullable = false, length = 32) + private String operid; + @Column(name = "OPERNAME") + private String opername; + + @Column(name = "RESNAME") + private String resname; + + @Column(name = "RESPATH") + private String respath; + + @Column(name = "LOGDATE") + private String logdate; + + @Column(name = "FUNCTIONID") + private Integer functionid; + + @Column(name = "FUNCTIONNAME") + private String functionname; + + public Integer getFunctionid() { + return functionid; + } + + public void setFunctionid(Integer functionid) { + this.functionid = functionid; + } + + public String getFunctionname() { + return functionname; + } + + public void setFunctionname(String functionname) { + this.functionname = functionname; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getOperid() { + return operid; + } + + public void setOperid(String operid) { + this.operid = operid; + } + + public String getOpername() { + return opername; + } + + public void setOpername(String opername) { + this.opername = opername; + } + + public String getResname() { + return resname; + } + + public void setResname(String resname) { + this.resname = resname; + } + + public String getRespath() { + return respath; + } + + public void setRespath(String respath) { + this.respath = respath; + } + + public String getLogdate() { + return logdate; + } + + public void setLogdate(String logdate) { + this.logdate = logdate; + } +} diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java index 62ae6b5d..cfcbeea8 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java +++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java @@ -48,6 +48,8 @@ public class TOperator implements UserDetails { @Column(name = "CLOSEDATE", length = 8) private String closedate; + @Transient + private String roleids; @Transient private Collection authorities; //权限 @@ -200,4 +202,12 @@ public class TOperator implements UserDetails { public boolean isEnabled() { return !TradeDict.STATUS_CLOSED.equals(this.status); //注销操作员不启用 } + + public String getRoleids() { + return roleids; + } + + public void setRoleids(String roleids) { + this.roleids = roleids; + } } diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java b/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java index db6a4f18..02dbce4f 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java +++ b/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java @@ -1,10 +1,10 @@ package com.supwisdom.dlpay.framework.security; -import com.supwisdom.dlpay.framework.domain.TPermission; -import com.supwisdom.dlpay.framework.domain.TResource; -import com.supwisdom.dlpay.framework.domain.TRole; -import com.supwisdom.dlpay.framework.domain.TRoleFunction; +import com.supwisdom.dlpay.framework.domain.*; +import com.supwisdom.dlpay.framework.util.DateUtil; import com.supwisdom.dlpay.framework.util.StringUtil; +import com.supwisdom.dlpay.system.service.FunctionService; +import com.supwisdom.dlpay.system.service.OperatorService; import com.supwisdom.dlpay.system.service.RoleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.PermissionEvaluator; @@ -15,28 +15,46 @@ import org.springframework.stereotype.Component; import java.io.Serializable; import java.util.Collection; +import java.util.List; @Component public class MyPermissionEvaluator implements PermissionEvaluator { @Autowired private RoleService roleService; - + @Autowired + private OperatorService operatorService; + @Autowired + private FunctionService functionService; @Override public boolean hasPermission(Authentication authentication, Object targetUri, Object permission) { //TODO save logger if (targetUri != null) { UserDetails userDetails = (UserDetails) authentication.getPrincipal(); if (userDetails != null) { - Collection authorities = (Collection) userDetails.getAuthorities(); - for (GrantedAuthority authority : authorities) { - String roleName = authority.getAuthority(); - TRole role = roleService.findRoleByRolecode(roleName); - if (role != null) { - TResource resource = roleService.findResourceByURI(String.valueOf(targetUri)); - if (resource != null) { - TPermission permission1 = roleService.findByRoleIdAndResid(role.getRoleId(),resource.getId()); - if (permission1 != null) { - return true; + TOperator operator = operatorService.getOperatorByCode(userDetails.getUsername()); + if (operator != null) { + List operRoles = operatorService.getOperRoleByOperId(operator.getOperid()); + for (TOperRole operRole : operRoles) { + TRole role = roleService.findRoleByRoleid(operRole.getRoleId()); + if (role != null) { + TResource resource = roleService.findResourceByURI(String.valueOf(targetUri)); + if (resource != null) { + TPermission permission1 = roleService.findByRoleIdAndResid(role.getRoleId(), resource.getId()); + if (permission1 != null) { + TOperLog log = new TOperLog(); + log.setLogdate(DateUtil.getNow()); + log.setOperid(operator.getOperid()); + log.setOpername(operator.getOpercode()); + log.setResname(resource.getName()); + log.setRespath(resource.getUri()); + TFunction function =functionService.getFunctionById(resource.getFunctionId()); + if(function!=null){ + log.setFunctionid(function.getId()); + log.setFunctionname(function.getName()); + } + operatorService.saveOperLog(log); + return true; + } } } } diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/WebConstant.java b/src/main/java/com/supwisdom/dlpay/framework/util/WebConstant.java index 4896a744..c6237a93 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/util/WebConstant.java +++ b/src/main/java/com/supwisdom/dlpay/framework/util/WebConstant.java @@ -4,4 +4,5 @@ public class WebConstant { public static final int PAGENO_DEFAULT = 1; public static final int PAGESIZE_DEFAULT = 10; public static final String OPERPWD_DEFAULT = "123456"; + public static final String OPERTYPE_DEFAULT = "oper"; } diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/LogBean.java b/src/main/java/com/supwisdom/dlpay/system/bean/LogBean.java new file mode 100644 index 00000000..2ffbf623 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/system/bean/LogBean.java @@ -0,0 +1,13 @@ +package com.supwisdom.dlpay.system.bean; + +public class LogBean extends PageBean{ + private String opername; + + public String getOpername() { + return opername; + } + + public void setOpername(String opername) { + this.opername = opername; + } +} diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java b/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java index fbe505d4..bbd7a5cd 100644 --- a/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java +++ b/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java @@ -9,6 +9,7 @@ import com.supwisdom.dlpay.framework.util.WebConstant; import com.supwisdom.dlpay.system.bean.FunctionSearchBean; import com.supwisdom.dlpay.system.service.FunctionService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; @@ -27,6 +28,7 @@ public class FunctionController { } @GetMapping("/function/list") + @PreAuthorize("hasPermission('/function/index','')") @ResponseBody public PageResult getDataList(@RequestParam("page") Integer pageNo, @RequestParam("limit") Integer pageSize, @@ -46,11 +48,13 @@ public class FunctionController { } @GetMapping("/function/loadadd") + @PreAuthorize("hasPermission('/function/loadadd','')") public String loadadd() { return "system/function/form"; } @PostMapping("/function/add") + @PreAuthorize("hasPermission('/function/add','')") @ResponseBody public JsonResult add(@RequestBody TFunction function) { if (function != null) { @@ -60,6 +64,7 @@ public class FunctionController { } } @PostMapping("/function/delfunc") + @PreAuthorize("hasPermission('/function/delfunc','')") @ResponseBody public JsonResult delfunc(@RequestParam Integer funcid) { return functionService.deleteFunction(funcid); @@ -78,6 +83,7 @@ public class FunctionController { } @GetMapping("/function/loadsubadd") + @PreAuthorize("hasPermission('/function/loadsubadd','')") public String loadsubadd(Model model) { List functionList = functionService.getParentFunction(); model.addAttribute("list", functionList); @@ -85,6 +91,7 @@ public class FunctionController { } @GetMapping("/function/loadres") + @PreAuthorize("hasPermission('/function/loadres','')") public String loadres(@RequestParam Integer functionid, Model model) { TFunction function = functionService.getFunctionById(functionid); List resources = functionService.getResources(functionid); @@ -93,6 +100,7 @@ public class FunctionController { return "system/function/reslist"; } @GetMapping("/function/reslist") + @PreAuthorize("hasPermission('/function/loadres','')") @ResponseBody public PageResult reslist(@RequestParam Integer functionid, Model model) { List resources = functionService.getResources(functionid); @@ -106,6 +114,7 @@ public class FunctionController { } @PostMapping("/function/addres") + @PreAuthorize("hasPermission('/function/addres','')") @ResponseBody public JsonResult addres(@RequestBody TResource resource) { if (resource != null) { @@ -121,6 +130,7 @@ public class FunctionController { return "system/function/resform"; } @PostMapping("/function/delres") + @PreAuthorize("hasPermission('/function/delres','')") @ResponseBody public JsonResult delres(@RequestParam Integer resid) { return functionService.deleteResource(resid); diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java b/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java index 85acf8b8..173cc64f 100644 --- a/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java +++ b/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java @@ -1,10 +1,15 @@ package com.supwisdom.dlpay.system.controller; import com.supwisdom.dlpay.api.bean.JsonResult; +import com.supwisdom.dlpay.framework.domain.TFunction; +import com.supwisdom.dlpay.framework.domain.TOperLog; +import com.supwisdom.dlpay.framework.domain.TOperRole; import com.supwisdom.dlpay.framework.domain.TOperator; import com.supwisdom.dlpay.framework.util.PageResult; import com.supwisdom.dlpay.framework.util.StringUtil; import com.supwisdom.dlpay.framework.util.WebConstant; +import com.supwisdom.dlpay.system.bean.FunctionSearchBean; +import com.supwisdom.dlpay.system.bean.LogBean; import com.supwisdom.dlpay.system.bean.OperatorSearchBean; import com.supwisdom.dlpay.system.service.OperatorService; import com.supwisdom.dlpay.system.service.RoleService; @@ -15,98 +20,143 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; +import java.util.List; + @Controller @RequestMapping("/operator") public class OperatorController { - @Autowired - private OperatorService operatorService; - @Autowired - private RoleService roleService; + @Autowired + private OperatorService operatorService; + @Autowired + private RoleService roleService; - @GetMapping("/index") - @PreAuthorize("hasPermission('/operator/index','')") - public String indexView(Model model) { - return "system/operator/index"; - } + @GetMapping("/index") + @PreAuthorize("hasPermission('/operator/index','')") + public String indexView(Model model) { + return "system/operator/index"; + } - @GetMapping("/list") - @ResponseBody - public PageResult getDataList(@RequestParam("page") Integer pageNo, - @RequestParam("limit") Integer pageSize, - @RequestParam(value = "searchkey", required = false) String searchKey, - @RequestParam(value = "searchvalue", required = false) String searchValue, - Model model) { - try { + @GetMapping("/list") + @ResponseBody + public PageResult getDataList(@RequestParam("page") Integer pageNo, + @RequestParam("limit") Integer pageSize, + @RequestParam(value = "searchkey", required = false) String searchKey, + @RequestParam(value = "searchvalue", required = false) String searchValue, + Model model) { + try { - if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT; - if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT; - OperatorSearchBean searchBean = new OperatorSearchBean(); - if (!StringUtil.isEmpty(searchValue)) { - if ("opercode".equals(searchKey)) { - searchBean.setOpercode(searchValue.trim()); - } else if ("opername".equals(searchKey)) { - searchBean.setOpername(searchValue.trim()); - } else if ("mobile".equals(searchValue.trim())) { - searchBean.setMobile(searchValue.trim()); + if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT; + if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT; + OperatorSearchBean searchBean = new OperatorSearchBean(); + if (!StringUtil.isEmpty(searchValue)) { + if ("opercode".equals(searchKey)) { + searchBean.setOpercode(searchValue.trim()); + } else if ("opername".equals(searchKey)) { + searchBean.setOpername(searchValue.trim()); + } else if ("mobile".equals(searchValue.trim())) { + searchBean.setMobile(searchValue.trim()); + } + } + return operatorService.getOperatorsByPage(pageNo, pageSize, searchBean); + } catch (Exception e) { + e.printStackTrace(); + return new PageResult<>(99, "系统查询错误"); } - } - return operatorService.getOperatorsByPage(pageNo, pageSize, searchBean); - } catch (Exception e) { - e.printStackTrace(); - return new PageResult<>(99, "系统查询错误"); } - } - @GetMapping("/load4add") - @PreAuthorize("hasPermission('/operator/load4add','')") - public String load4addOperator(Model model) { - model.addAttribute("roles", roleService.findAllRoles()); - return "system/operator/operator"; - } - - @GetMapping("/checkopercode") - @ResponseBody - public JsonResult checkOpercode(@RequestParam("opercode") String opercode, - @RequestParam(value = "operid", required = false) String operid) { - if (operatorService.checkOpercodeExists(opercode, operid)) { - return JsonResult.error("账号重复"); + @GetMapping("/load4add") + @PreAuthorize("hasPermission('/operator/load4add','')") + public String load4addOperator(Model model) { + model.addAttribute("roles", roleService.findAllRoles()); + return "system/operator/operator"; } - return JsonResult.ok("success"); - } - @PostMapping("/add") - @ResponseBody - public JsonResult add(@RequestParam("operid") String operid, @RequestParam("opercode") String opercode, - @RequestParam("opername") String opername, @RequestParam("sex") String sex, - @RequestParam("mobile") String mobile, @RequestParam("email") String email, - @RequestParam("roleId") String roleId, Model map) { - if (operatorService.checkOpercodeExists(opercode, operid)) { - return JsonResult.error("账号重复"); + @GetMapping("/checkopercode") + @ResponseBody + public JsonResult checkOpercode(@RequestParam("opercode") String opercode, + @RequestParam(value = "operid", required = false) String operid) { + if (operatorService.checkOpercodeExists(opercode, operid)) { + return JsonResult.error("账号重复"); + } + return JsonResult.ok("success"); + } + @PostMapping("/getoperatorrole") + @ResponseBody + public JsonResult getoperatorrole( @RequestParam(value = "operid") String operid) { + List roles = operatorService.getOperRoleByOperId(operid); + JsonResult ret = JsonResult.ok("success"); + ret.put("roles",roles); + return ret; } - TOperator operator = new TOperator(); - operator.setOpername(opername); - operator.setOpercode(opercode); - operator.setOperid(operid); - operator.setMobile(mobile); - operator.setEmail(email); - operator.setSex(sex); - BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); - operator.setOperpwd(encoder.encode("123456")); - operatorService.saveOperator(operator,roleId); - return JsonResult.ok("添加成功"); - } - @PostMapping("/update") - @ResponseBody - public JsonResult update(TOperator oper, String roleId) { - oper.setOperpwd(WebConstant.OPERPWD_DEFAULT); - if (true) { - return JsonResult.ok("添加成功"); - } else { - return JsonResult.error("添加失败"); + @PostMapping("/add") + @PreAuthorize("hasPermission('/operator/add','')") + @ResponseBody + public JsonResult add(@RequestParam("operid") String operid, @RequestParam("opercode") String opercode, + @RequestParam("opername") String opername, @RequestParam("sex") String sex, + @RequestParam("mobile") String mobile, @RequestParam("email") String email, + @RequestParam("roleId") String roleId, Model map) { + if (operatorService.checkOpercodeExists(opercode, operid)) { + return JsonResult.error("账号重复"); + } + TOperator operator = new TOperator(); + operator.setOpername(opername); + operator.setOpercode(opercode); + operator.setOperid(operid); + operator.setMobile(mobile); + operator.setEmail(email); + operator.setSex(sex); + boolean ret = operatorService.saveOperator(operator, roleId); + if (ret) { + return JsonResult.ok("操作成功"); + } else { + return JsonResult.error("操作失败"); + } } - } + @PostMapping("/resetpwd") + @PreAuthorize("hasPermission('/operator/resetpwd','')") + @ResponseBody + public JsonResult resetpwd(@RequestParam("operid") String operid) { + if (operatorService.resetPwd(operid)) { + return JsonResult.ok("操作成功,密码重置为123456"); + } else { + return JsonResult.error("操作失败"); + } + } + @PostMapping("/updatestate") + @PreAuthorize("hasPermission('/operator/updatestate','')") + @ResponseBody + public JsonResult updatestate(@RequestParam("operid") String operid,@RequestParam("state") String state) { + if (operatorService.updateState(operid,state)) { + return JsonResult.ok("操作成功"); + } else { + return JsonResult.error("操作失败"); + } + } + @GetMapping("/logs") + public String logs() { + return "system/operator/logs"; + } + @GetMapping("/logslist") + @PreAuthorize("hasPermission('/operator/logslist','')") + @ResponseBody + public PageResult logslist(@RequestParam("page") Integer pageNo, + @RequestParam("limit") Integer pageSize, + @RequestParam(value = "searchkey", required = false) String searchKey) { + try { + if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT; + if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT; + LogBean searchBean = new LogBean(); + searchBean.setPageNo(pageNo); + searchBean.setOpername(searchKey); + searchBean.setPageSize(pageSize); + return operatorService.getOperLogs(searchBean); + } catch (Exception e) { + e.printStackTrace(); + return new PageResult<>(99, "系统查询错误"); + } + } } diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java b/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java index bfe0127a..e8e4eb7d 100644 --- a/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java +++ b/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java @@ -1,35 +1,30 @@ package com.supwisdom.dlpay.system.controller; import com.supwisdom.dlpay.api.bean.JsonResult; -import com.supwisdom.dlpay.framework.domain.TFunction; import com.supwisdom.dlpay.framework.domain.TRole; -import com.supwisdom.dlpay.framework.domain.TRoleFunction; import com.supwisdom.dlpay.framework.util.PageResult; import com.supwisdom.dlpay.framework.util.WebConstant; import com.supwisdom.dlpay.system.bean.FunctionSearchBean; import com.supwisdom.dlpay.system.bean.ZTreeNode; -import com.supwisdom.dlpay.system.service.FunctionService; import com.supwisdom.dlpay.system.service.RoleService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; -import java.util.Arrays; import java.util.List; @Controller public class RoleController { @Autowired private RoleService roleService; - @Autowired - private FunctionService functionService; - @GetMapping("/role/index") public String indexView() { return "system/role/index"; } @GetMapping("/role/list") + @PreAuthorize("hasPermission('/role/index','')") @ResponseBody public PageResult getDataList(@RequestParam("page") Integer pageNo, @RequestParam("limit") Integer pageSize, @@ -49,11 +44,13 @@ public class RoleController { } @GetMapping("/role/loadadd") + @PreAuthorize("hasPermission('/role/loadadd','')") public String loadadd() { return "system/role/form"; } @PostMapping("/role/add") + @PreAuthorize("hasPermission('/role/add','')") @ResponseBody public JsonResult add(@RequestBody TRole role) { if (role != null) { @@ -64,11 +61,13 @@ public class RoleController { } @GetMapping("/role/loadfunc") + @PreAuthorize("hasPermission('/role/loadfunc','')") public String loadfunc() { return "system/role/func"; } @PostMapping("/role/addfunc") + @PreAuthorize("hasPermission('/role/addfunc','')") @ResponseBody public JsonResult addfunc(@RequestParam String roleId, @RequestParam String funcs) { @@ -84,6 +83,7 @@ public class RoleController { return result; } @PostMapping("/role/del") + @PreAuthorize("hasPermission('/role/del','')") @ResponseBody public JsonResult del(@RequestParam String roleid) { return roleService.deleteRole(roleid); diff --git a/src/main/java/com/supwisdom/dlpay/system/service/OperatorService.java b/src/main/java/com/supwisdom/dlpay/system/service/OperatorService.java index bbaff0af..a975eb21 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/OperatorService.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/OperatorService.java @@ -1,11 +1,16 @@ package com.supwisdom.dlpay.system.service; +import com.supwisdom.dlpay.framework.domain.TOperLog; +import com.supwisdom.dlpay.framework.domain.TOperRole; import com.supwisdom.dlpay.framework.domain.TOperator; import com.supwisdom.dlpay.framework.util.PageResult; +import com.supwisdom.dlpay.system.bean.LogBean; import com.supwisdom.dlpay.system.bean.OperatorSearchBean; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + public interface OperatorService { @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) PageResult getOperatorsByPage(int pageNo, int pageSize, OperatorSearchBean searchBean); @@ -15,4 +20,22 @@ public interface OperatorService { @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) boolean saveOperator(TOperator operator,String roles); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) + TOperator getOperatorByCode(String opercode); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) + List getOperRoleByOperId(String operid); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) + boolean resetPwd(String operid); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) + boolean updateState(String operid,String state); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) + boolean saveOperLog(TOperLog log); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) + PageResult getOperLogs(LogBean param); } diff --git a/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java b/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java index 222dd8d3..6acfe7dd 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java @@ -18,7 +18,7 @@ public interface RoleService { List findAllRoles(); @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true) - TRole findRoleByRolecode(String rolecode); + TRole findRoleByRoleid(String roleid); @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true) TResource findResourceByURI(String uri); diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java index 167e955c..59909304 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java @@ -1,13 +1,13 @@ package com.supwisdom.dlpay.system.service.impl; +import com.supwisdom.dlpay.framework.dao.OperLogDao; import com.supwisdom.dlpay.framework.dao.OperRoleDao; import com.supwisdom.dlpay.framework.dao.OperatorDao; +import com.supwisdom.dlpay.framework.domain.TOperLog; import com.supwisdom.dlpay.framework.domain.TOperRole; import com.supwisdom.dlpay.framework.domain.TOperator; -import com.supwisdom.dlpay.framework.util.DateUtil; -import com.supwisdom.dlpay.framework.util.PageResult; -import com.supwisdom.dlpay.framework.util.StringUtil; -import com.supwisdom.dlpay.framework.util.TradeDict; +import com.supwisdom.dlpay.framework.util.*; +import com.supwisdom.dlpay.system.bean.LogBean; import com.supwisdom.dlpay.system.bean.OperatorSearchBean; import com.supwisdom.dlpay.system.service.OperatorService; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +16,7 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import javax.persistence.criteria.CriteriaBuilder; @@ -24,6 +25,7 @@ import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import java.util.ArrayList; import java.util.List; +import java.util.Optional; @Service public class OperatorServiceImpl implements OperatorService { @@ -31,6 +33,8 @@ public class OperatorServiceImpl implements OperatorService { private OperatorDao operatorDao; @Autowired private OperRoleDao operRoleDao; + @Autowired + private OperLogDao operLogDao; @Override public PageResult getOperatorsByPage(int pageNo, int pageSize, OperatorSearchBean searchBean) { @@ -67,17 +71,93 @@ public class OperatorServiceImpl implements OperatorService { } @Override - public boolean saveOperator(TOperator operator,String roles) { - String[] roleids= roles.split(","); - operator.setOpendate(DateUtil.getNow()); - operator.setStatus(TradeDict.STATUS_NORMAL); - operatorDao.save(operator); - for(String role:roleids){ - TOperRole operRole = new TOperRole(); - operRole.setOperid(operator.getOperid()); - operRole.setRoleId(role); - operRoleDao.save(operRole); + public boolean saveOperator(TOperator operator, String roles) { + if (StringUtil.isEmpty(operator.getOperid())) { + String[] roleids = roles.split(","); + operator.setOpendate(DateUtil.getNow("yyyyMMdd")); + operator.setStatus(TradeDict.STATUS_NORMAL); + operator.setOpertype(WebConstant.OPERTYPE_DEFAULT); + BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); + operator.setOperpwd(encoder.encode(WebConstant.OPERPWD_DEFAULT)); + operator = operatorDao.save(operator); + for (String role : roleids) { + TOperRole operRole = new TOperRole(); + operRole.setOperid(operator.getOperid()); + operRole.setRoleId(role); + operRoleDao.save(operRole); + } + } else { + Optional temp = operatorDao.findById(operator.getOperid()); + if (!temp.isPresent()) { + return false; + } + TOperator op = temp.get(); + op.setSex(operator.getSex()); + op.setEmail(operator.getEmail()); + op.setMobile(operator.getMobile()); + op.setOpername(operator.getOpername()); + op.setOpercode(operator.getOpercode()); + operatorDao.save(op); + operRoleDao.deleteByOperid(op.getOperid()); + String[] roleids = roles.split(","); + for (String role : roleids) { + TOperRole operRole = new TOperRole(); + operRole.setOperid(op.getOperid()); + operRole.setRoleId(role); + operRoleDao.save(operRole); + } + } + return true; + } + + @Override + public TOperator getOperatorByCode(String opercode) { + return operatorDao.findByOpercode(opercode); + } + + @Override + public List getOperRoleByOperId(String operid) { + return operRoleDao.findAllByOperid(operid); + } + + @Override + public boolean resetPwd(String operid) { + Optional temp = operatorDao.findById(operid); + if (!temp.isPresent()) { + return false; } + TOperator op = temp.get(); + BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); + op.setOperpwd(encoder.encode(WebConstant.OPERPWD_DEFAULT)); + operatorDao.save(op); + return true; + } + + @Override + public boolean updateState(String operid, String state) { + Optional temp = operatorDao.findById(operid); + if (!temp.isPresent()) { + return false; + } + TOperator op = temp.get(); + op.setStatus(state); + operatorDao.save(op); + return true; + } + + @Override + public boolean saveOperLog(TOperLog log) { + operLogDao.save(log); return true; } + + @Override + public PageResult getOperLogs(LogBean param) { + Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize() + , Sort.by(Sort.Direction.DESC,"logdate")); + if (!StringUtil.isEmpty(param.getOpername())) { + return new PageResult<>(operLogDao.findAllByOpernameContaining(param.getOpername(), pageable)); + } + return new PageResult<>(operLogDao.findAll(pageable)); + } } diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java index 0e30b2ae..ea049e3c 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java @@ -48,8 +48,12 @@ public class RoleServiceImpl implements RoleService { } @Override - public TRole findRoleByRolecode(String rolecode) { - return roleDao.findByRoleCode(rolecode); + public TRole findRoleByRoleid(String roleid) { + Optional role = roleDao.findById(roleid); + if(role.isPresent()){ + return role.get(); + } + return null; } @Override @@ -79,10 +83,6 @@ public class RoleServiceImpl implements RoleService { if (temp != null) { return JsonResult.error("角色名称已存在"); } - temp = roleDao.findByRoleCodeAndRoleIdNot(role.getRoleCode(), role.getRoleId()); - if (temp != null) { - return JsonResult.error("角色代码已存在"); - } Optional opt = roleDao.findById(role.getRoleId()); if (opt == null || !opt.isPresent()) { return JsonResult.error("角色已被删除"); @@ -98,13 +98,10 @@ public class RoleServiceImpl implements RoleService { if (temp != null) { return JsonResult.error("角色名称已存在"); } - temp = roleDao.findByRoleCode(role.getRoleCode()); - if (temp != null) { - return JsonResult.error("角色代码已存在"); - } + role.setCreatetime(DateUtil.getNow()); role.setEditflag(1); - role.setRoleCode(role.getRoleCode()); + role.setRoleCode("ROLE_ADMIN"); roleDao.save(role); } return JsonResult.ok("成功"); diff --git a/src/main/resources/static/custom/module/admin.js b/src/main/resources/static/custom/module/admin.js index 334e29e7..e9b34ef3 100755 --- a/src/main/resources/static/custom/module/admin.js +++ b/src/main/resources/static/custom/module/admin.js @@ -208,6 +208,26 @@ layui.define(['layer'], function (exports) { } catch (e) { } } + }, + formatDate:function (str) { + if (str == null || str == "") { + return; + } + switch (str.length) { + case 8: + str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8); + return str; + case 12: + str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10) + + ":" + str.substring(10, 12); + return str; + case 14: + str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10) + + ":" + str.substring(10, 12) + ":" + str.substring(12, 14); + return str; + default: + return str; + } } }; diff --git a/src/main/resources/templates/system/operator/index.html b/src/main/resources/templates/system/operator/index.html index 14861c7f..09b5f2e7 100644 --- a/src/main/resources/templates/system/operator/index.html +++ b/src/main/resources/templates/system/operator/index.html @@ -18,30 +18,30 @@ -
+
\ No newline at end of file diff --git a/src/main/resources/templates/system/operator/operator.html b/src/main/resources/templates/system/operator/operator.html index 6676bf44..a048c1af 100644 --- a/src/main/resources/templates/system/operator/operator.html +++ b/src/main/resources/templates/system/operator/operator.html @@ -25,13 +25,13 @@
- +
- +
@@ -104,7 +104,6 @@ var user = admin.getTempData('t_user'); if (user) { $('input[name="opercode"]').attr('readonly', 'readonly'); - url = '/operator/update'; form.val('oper-form', user); var rds = new Array(); for (var i = 0; i < user.roles.length; i++) { @@ -125,17 +124,17 @@ data : data.field, success : function(result) { layer.closeAll('loading'); - if (data.code == 200) { - layer.msg(data.msg, {icon: 1}); + if (result.code == 200) { + layer.msg(result.msg, {icon: 1}); admin.finishPopupCenter(); } else if (data.code == 401) { - layer.msg(data.msg, {icon: 2, time: 1500}, function () { + layer.msg(result.msg, {icon: 2, time: 1500}, function () { location.replace('/login'); }, 1000); return; } else { - console.log('err:' + data.code); - layer.msg(data.msg, {icon: 2}); + console.log('err:' + result.code); + layer.msg(result.msg, {icon: 2}); } }, error : function(data) { diff --git a/src/main/resources/templates/system/role/form.html b/src/main/resources/templates/system/role/form.html index f8714f35..fcfcbf3f 100755 --- a/src/main/resources/templates/system/role/form.html +++ b/src/main/resources/templates/system/role/form.html @@ -8,13 +8,6 @@ lay-verify="required|roleName" required/> -
- -
- -
-
-- 2.17.1