@Query(value = "select distinct rolecode from TB_OPER_ROLE a,TB_ROLE b where a.roleid=b.roleid and a.operid=?1", nativeQuery = true)
List<String> getRolecodeByOperid(String operid);
+
+ void deleteByRoleId(String roleId);
}
import com.supwisdom.dlpay.framework.domain.TPermission;
import org.springframework.data.jpa.repository.JpaRepository;
-import java.util.List;
-
public interface PermissionDao extends JpaRepository<TPermission, String> {
- List<TPermission> findByRoleFuncId(String roleFuncId);
-
- TPermission findByRoleFuncIdAndResid(String roleFuncId, Integer resid);
- void deleteByRoleFuncId(String roleFuncId);
+ TPermission findByRoleIdAndResid(String roleId, Integer resid);
void deleteByRoleId(String roleId);
}
@Query("from TRole order by createtime asc ")
List<TRole> getAllRoles();
- TRole findByRoleCode(String rolecode);
+ TRole findByRoleCode(String roleCode);
Page<TRole> findAllByRoleNameContaining(String roleName, Pageable pageable);
TRole findByRoleNameAndRoleIdNot(String roleName, String roleId);
+ TRole findByRoleCodeAndRoleIdNot(String roleCode, String roleId);
+
TRole findByRoleName(String roleName);
}
@Column(name = "RESID")
private Integer resid;
- @Column(name = "ROLEID")
+ @Column(name = "ROLEID",length = 32)
private String roleId;
public String getRoleId() {
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;
@Override
public boolean hasPermission(Authentication authentication, Object targetUri, Object permission) {
- if (targetUri != null && permission != null) {
+ //TODO save logger
+ if (targetUri != null) {
UserDetails userDetails = (UserDetails) authentication.getPrincipal();
if (userDetails != null) {
Collection<GrantedAuthority> authorities = (Collection<GrantedAuthority>) userDetails.getAuthorities();
if (role != null) {
TResource resource = roleService.findResourceByURI(String.valueOf(targetUri));
if (resource != null) {
- TRoleFunction roleFunction = roleService.findRoleFunctionByRoleIdAndFunctionId(role.getRoleId(), resource.getFunctionId());
- if (roleFunction != null && !StringUtil.isEmpty(roleFunction.getPermissions())
- && roleFunction.getPermissions().contains(String.valueOf(permission))) {
+ TPermission permission1 = roleService.findByRoleIdAndResid(role.getRoleId(),resource.getId());
+ if (permission1 != null) {
return true;
}
}
import com.supwisdom.dlpay.system.service.RoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
private RoleService roleService;
@GetMapping("/index")
- @PreAuthorize("hasPermission('/operator/index','query')")
+ @PreAuthorize("hasPermission('/operator/index','')")
public String indexView(Model model) {
return "system/operator/index";
}
@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();
}
@GetMapping("/load4add")
- @PreAuthorize("hasPermission('/operator/load4add','query')")
+ @PreAuthorize("hasPermission('/operator/load4add','')")
public String load4addOperator(Model model) {
model.addAttribute("roles", roleService.findAllRoles());
return "system/operator/operator";
@RequestParam("opername") String opername, @RequestParam("sex") String sex,
@RequestParam("mobile") String mobile, @RequestParam("email") String email,
@RequestParam("roleId") String roleId, Model map) {
- if (true) {
- return JsonResult.ok("添加成功");
- } else {
- return JsonResult.error("添加失败");
+ 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);
+ BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
+ operator.setOperpwd(encoder.encode("123456"));
+ operatorService.saveOperator(operator,roleId);
+ return JsonResult.ok("添加成功");
}
@PostMapping("/update")
result.put("node", nodes);
return result;
}
+ @PostMapping("/role/del")
+ @ResponseBody
+ public JsonResult del(@RequestParam String roleid) {
+ return roleService.deleteRole(roleid);
+ }
}
import com.supwisdom.dlpay.framework.domain.TResource;
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.system.bean.FunctionSearchBean;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
public interface FunctionService {
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
List<TFunction> getFunctionsByOperid(String operid);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
List<Map<String, Object>> getMenuTree(List<TFunction> funcList, Integer parentId);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
PageResult<TFunction> getFunctionsByKey(FunctionSearchBean param);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
TFunction getFunctionByNameAndId(String name,Integer id);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
JsonResult saveFunction(TFunction function);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
TFunction getFunctionById(Integer id);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
JsonResult deleteFunction(Integer funcid);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
List<TFunction> getParentFunction();
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
List<TResource> getResources(Integer function);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
List<TFunction> getLeafFunction();
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
JsonResult saveRes(TResource resource);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
JsonResult deleteResource(Integer resid);
}
import com.supwisdom.dlpay.framework.domain.TOperator;
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.system.bean.OperatorSearchBean;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
public interface OperatorService {
- PageResult<TOperator> getOperatorsByPage(int pageNo, int pageSize, OperatorSearchBean searchBean);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true)
+ PageResult<TOperator> getOperatorsByPage(int pageNo, int pageSize, OperatorSearchBean searchBean);
- boolean checkOpercodeExists(String opercode, String operid);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true)
+ boolean checkOpercodeExists(String opercode, String operid);
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ boolean saveOperator(TOperator operator,String roles);
}
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.system.bean.FunctionSearchBean;
import com.supwisdom.dlpay.system.bean.ZTreeNode;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
import java.util.List;
public interface RoleService {
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
List<TRole> findAllRoles();
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
TRole findRoleByRolecode(String rolecode);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
TResource findResourceByURI(String uri);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
TRoleFunction findRoleFunctionByRoleIdAndFunctionId(String roleid, Integer functionid);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
PageResult<TRole> getRolesByKey(FunctionSearchBean param);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
JsonResult saveRole(TRole role);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
List<TRoleFunction> getRoleFuncByRoleid(String roleId);
- List<TPermission> findByRoleFuncId(String roleFuncId);
-
- TPermission findByRoleFuncIdAndResid(String roleFuncId, Integer resid);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ TPermission findByRoleIdAndResid(String roleFuncId, Integer resid);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
JsonResult saveRoleFuncId(String roleId, String funcs);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
List<ZTreeNode> findByRoleIdNative(String roleId);
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ JsonResult deleteRole(String roleid);
}
package com.supwisdom.dlpay.system.service.impl;
+import com.supwisdom.dlpay.framework.dao.OperRoleDao;
import com.supwisdom.dlpay.framework.dao.OperatorDao;
+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;
@Service
public class OperatorServiceImpl implements OperatorService {
- @Autowired
- private OperatorDao operatorDao;
+ @Autowired
+ private OperatorDao operatorDao;
+ @Autowired
+ private OperRoleDao operRoleDao;
- @Override
- public PageResult<TOperator> getOperatorsByPage(int pageNo, int pageSize, OperatorSearchBean searchBean) {
- Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.Direction.DESC, "opendate");
- Page<TOperator> page = operatorDao.findAll(new Specification<TOperator>() {
- @Override
- public Predicate toPredicate(Root<TOperator> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
- List<Predicate> predicates = new ArrayList<>();
- if (!StringUtil.isEmpty(searchBean.getOpercode())) {
- predicates.add(criteriaBuilder.equal(root.get("opercode").as(String.class), searchBean.getOpercode().trim()));
- }
- if (!StringUtil.isEmpty(searchBean.getOpername())) {
- predicates.add(criteriaBuilder.like(root.get("opername").as(String.class), "%" + searchBean.getOpername().trim() + "%"));
- }
- if (!StringUtil.isEmpty(searchBean.getMobile())) {
- predicates.add(criteriaBuilder.like(root.get("mobile").as(String.class), "%" + searchBean.getMobile().trim() + "%"));
- }
- if (null != searchBean.getDeleteShow() && !searchBean.getDeleteShow()) {
- predicates.add(criteriaBuilder.equal(root.get("status").as(String.class), TradeDict.STATUS_NORMAL)); //仅显示正常
- }
- return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
- }
- }, pageable);
+ @Override
+ public PageResult<TOperator> getOperatorsByPage(int pageNo, int pageSize, OperatorSearchBean searchBean) {
+ Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.Direction.DESC, "opendate");
+ Page<TOperator> page = operatorDao.findAll(new Specification<TOperator>() {
+ @Override
+ public Predicate toPredicate(Root<TOperator> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
+ List<Predicate> predicates = new ArrayList<>();
+ if (!StringUtil.isEmpty(searchBean.getOpercode())) {
+ predicates.add(criteriaBuilder.equal(root.get("opercode").as(String.class), searchBean.getOpercode().trim()));
+ }
+ if (!StringUtil.isEmpty(searchBean.getOpername())) {
+ predicates.add(criteriaBuilder.like(root.get("opername").as(String.class), "%" + searchBean.getOpername().trim() + "%"));
+ }
+ if (!StringUtil.isEmpty(searchBean.getMobile())) {
+ predicates.add(criteriaBuilder.like(root.get("mobile").as(String.class), "%" + searchBean.getMobile().trim() + "%"));
+ }
+ if (null != searchBean.getDeleteShow() && !searchBean.getDeleteShow()) {
+ predicates.add(criteriaBuilder.equal(root.get("status").as(String.class), TradeDict.STATUS_NORMAL)); //仅显示正常
+ }
+ return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
+ }
+ }, pageable);
+
+ return new PageResult<>(page);
+ }
- return new PageResult<>(page);
- }
+ @Override
+ public boolean checkOpercodeExists(String opercode, String operid) {
+ TOperator oper = operatorDao.findByOpercode(opercode.trim());
+ if (null != oper && StringUtil.isEmpty(operid)) return true;
+ if (null != oper && !StringUtil.isEmpty(operid) && !operid.trim().equals(oper.getOperid())) return true;
+ return false;
+ }
- @Override
- public boolean checkOpercodeExists(String opercode, String operid) {
- TOperator oper = operatorDao.findByOpercode(opercode.trim());
- if (null != oper && StringUtil.isEmpty(operid)) return true;
- if (null != oper && !StringUtil.isEmpty(operid) && !operid.trim().equals(oper.getOperid())) return true;
- return false;
- }
+ @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);
+ }
+ return true;
+ }
}
package com.supwisdom.dlpay.system.service.impl;
import com.supwisdom.dlpay.api.bean.JsonResult;
-import com.supwisdom.dlpay.framework.dao.PermissionDao;
-import com.supwisdom.dlpay.framework.dao.ResourceDao;
-import com.supwisdom.dlpay.framework.dao.RoleDao;
-import com.supwisdom.dlpay.framework.dao.RoleFunctionDao;
+import com.supwisdom.dlpay.framework.dao.*;
import com.supwisdom.dlpay.framework.data.NodeData;
import com.supwisdom.dlpay.framework.domain.TPermission;
import com.supwisdom.dlpay.framework.domain.TResource;
@Autowired
private PermissionDao permissionDao;
+ @Autowired
+ private OperRoleDao operRoleDao;
+
@Override
public List<TRole> findAllRoles() {
if (temp != null) {
return JsonResult.error("角色名称已存在");
}
+ temp = roleDao.findByRoleCodeAndRoleIdNot(role.getRoleCode(), role.getRoleId());
+ if (temp != null) {
+ return JsonResult.error("角色代码已存在");
+ }
Optional<TRole> opt = roleDao.findById(role.getRoleId());
if (opt == null || !opt.isPresent()) {
return JsonResult.error("角色已被删除");
temp = opt.get();
temp.setRoleName(role.getRoleName());
temp.setRoleDesc(role.getRoleDesc());
+ temp.setRoleCode(role.getRoleCode());
temp.setLastsaved(DateUtil.getNow());
roleDao.save(temp);
} else {
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_ADMIN");
+ role.setRoleCode(role.getRoleCode());
roleDao.save(role);
}
return JsonResult.ok("成功");
@Override
- public List<TPermission> findByRoleFuncId(String roleFuncId) {
- return permissionDao.findByRoleFuncId(roleFuncId);
- }
-
- @Override
- public TPermission findByRoleFuncIdAndResid(String roleFuncId, Integer resid) {
- return permissionDao.findByRoleFuncIdAndResid(roleFuncId, resid);
+ public TPermission findByRoleIdAndResid(String roleFuncId, Integer resid) {
+ return permissionDao.findByRoleIdAndResid(roleFuncId, resid);
}
@Override
}
return ret;
}
+
+ @Override
+ public JsonResult deleteRole(String roleid) {
+ Optional<TRole> ret = roleDao.findById(roleid);
+ if (ret == null || !ret.isPresent()) {
+ return JsonResult.error("角色不存在");
+ }
+ if(ret.get().getEditflag()!=1){
+ return JsonResult.error("该角色不能删除");
+ }
+ permissionDao.deleteByRoleId(roleid);
+ roleFunctionDao.deleteByRoleId(roleid);
+ operRoleDao.deleteByRoleId(roleid);
+ roleDao.deleteById(roleid);
+ return JsonResult.ok("成功");
+ }
}
var token_name = $("meta[name='_csrf_token']").attr("content");
var token = $("meta[name='_csrf_token']").attr("value");
data.field[token_name] = token;
- console.log(data);
- debugger
$.ajax({
type : "POST",
dataType : "json",
lay-verify="required|roleName" required/>\r
</div>\r
</div>\r
+ <div class="layui-form-item">\r
+ <label class="layui-form-label">角色代码</label>\r
+ <div class="layui-input-block">\r
+ <input name="roleCode" placeholder="请输入角色代码" type="text" class="layui-input" maxlength="20"\r
+ lay-verify="required|roleCode" required/>\r
+ </div>\r
+ </div>\r
<div class="layui-form-item">\r
<label class="layui-form-label">角色描述</label>\r
<div class="layui-input-block">\r
form.on('submit(form-submit)', function (data) {\r
layer.load(2);\r
let token = $("meta[name='_csrf_token']").attr("value");\r
- debugger\r
$.ajax({\r
type : "POST",\r
dataType : "json",\r
page: true,
cols: [
[
- {field: 'roleName', title: '角色名称', fixed: 'left', sort: true},
+ {field: 'roleName', title: '角色名称', width: 160,fixed: 'left', sort: true},
+ {field: 'roleCode', title: '角色代码', width: 160,fixed: 'left', sort: true},
{field: 'roleDesc', title: '描述'},
{
field: 'roleId', align: 'center', title: '操作', fixed: 'right', templet: function (item) {
- return ' <a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +
- ' <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="addfunc"><i class="layui-icon layui-icon-set-sm"></i>分配功能</a> ' +
- ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'
+ let html = ' <a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +
+ ' <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="addfunc"><i class="layui-icon layui-icon-set-sm"></i>分配功能</a> ';
+ if(item.editflag===1){
+ html +='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>';
+ }
+ return html;
}
}
]
Content-type: text/html
Supwisdom Source - epayment/food_payapi.git/commitdiff
500 - Internal Server Error
Unknown encoding 'gb18030' at /usr/local/share/gitweb/gitweb.cgi line 1539