Browse Source

添加用户编辑接口

fengyanjie 4 years ago
parent
commit
cb264ffbc3

+ 40 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/controller/AdminRoleController.java

@@ -0,0 +1,40 @@
+package com.persagy.dmp.rwd.edit.controller;
+
+import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.web.MapResponse;
+import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.rwd.edit.entity.AdminRole;
+import com.persagy.dmp.rwd.edit.service.AdminRoleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/rwdedit/system/role")
+public class AdminRoleController {
+    @Autowired
+    private AdminRoleService service;
+
+    @PostMapping("/query")
+    public PagedResponse<AdminRole> query(@RequestBody JacksonCriteria criteria) {
+        return service.query(criteria);
+    }
+
+    @PostMapping("/create")
+    public MapResponse create(@RequestBody AdminRole param) {
+        return service.create(param);
+    }
+
+    @PostMapping("/update")
+    public MapResponse update(@RequestBody AdminRole param) {
+        return service.update(param);
+    }
+
+    @PostMapping("/delete")
+    public MapResponse delete(@RequestBody AdminRole param) {
+        return service.delete(param);
+    }
+
+}

+ 40 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/controller/AdminUserController.java

@@ -0,0 +1,40 @@
+package com.persagy.dmp.rwd.edit.controller;
+
+import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.web.MapResponse;
+import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.rwd.edit.entity.AdminUser;
+import com.persagy.dmp.rwd.edit.service.AdminUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/rwdedit/system/user")
+public class AdminUserController {
+    @Autowired
+    private AdminUserService service;
+
+    @PostMapping("/query")
+    public PagedResponse<AdminUser> query(@RequestBody JacksonCriteria criteria) {
+        return service.query(criteria);
+    }
+
+    @PostMapping("/create")
+    public MapResponse create(@RequestBody AdminUser param) {
+        return service.create(param);
+    }
+
+    @PostMapping("/update")
+    public MapResponse update(@RequestBody AdminUser param) {
+        return service.update(param);
+    }
+
+    @PostMapping("/delete")
+    public MapResponse delete(@RequestBody AdminUser param) {
+        return service.delete(param);
+    }
+
+}

+ 152 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/AdminRoleService.java

@@ -0,0 +1,152 @@
+package com.persagy.dmp.rwd.edit.service;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.common.criteria.CriteriaUtils;
+import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.web.MapResponse;
+import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.rwd.edit.config.web.UserUtils;
+import com.persagy.dmp.rwd.edit.entity.AdminPermission;
+import com.persagy.dmp.rwd.edit.entity.AdminRole;
+import com.persagy.dmp.rwd.edit.entity.QAdminPermission;
+import com.persagy.dmp.rwd.edit.entity.QAdminRole;
+import com.persagy.dmp.rwd.edit.repository.AdminPermissionRepository;
+import com.persagy.dmp.rwd.edit.repository.AdminRoleRepository;
+import com.querydsl.core.types.dsl.BooleanExpression;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.transaction.Transactional;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+@Service
+public class AdminRoleService {
+
+    @Autowired
+    private AdminRoleRepository adminRoleRepository;
+
+    @Autowired
+    private AdminPermissionRepository permissionRepository;
+
+    @Autowired
+    private CriteriaUtils criteriaUtils;
+
+    private List<BooleanExpression> parse(ObjectNode criteria) {
+        // TODO
+        return null;
+    }
+
+    public PagedResponse<AdminRole> query(JacksonCriteria criteria) {
+        PagedResponse<AdminRole> query = criteriaUtils.query(QAdminRole.adminRole, this::parse, criteria);
+
+        // permissions
+        PagedResponse<AdminRole> resp = new PagedResponse<>();
+        resp.setCount(query.getCount());
+        List<AdminRole> data = query.getData();
+        if (data != null) {
+            boolean withPermissions = criteria.withColumn("permissions");
+            List<AdminRole> list = new ArrayList<>(data.size());
+            for (AdminRole role : data) {
+                AdminRole model = new AdminRole();
+                BeanUtils.copyProperties(role, model, "permissions");
+                if (withPermissions) {
+                    model.setPermissions(role.getPermissions());
+                }
+                list.add(model);
+            }
+            resp.setData(list);
+        }
+        return resp;
+    }
+
+    @Transactional
+    public MapResponse create(AdminRole param) {
+        MapResponse response = new MapResponse();
+        // TODO
+        String name = param.getName();
+        if (name == null) {
+            response.setFail("name is required");
+            return response;
+        }
+
+        long count = adminRoleRepository.count(QAdminRole.adminRole.name.eq(name));
+        if (count > 0) {
+            response.setFail("name is exists");
+            return response;
+        }
+
+        AdminRole role = new AdminRole();
+        role.setName(param.getName());
+        role.setRemark(param.getRemark());
+        role.setCreateUser(UserUtils.currentUserId());
+        role.setStatus(1);
+        adminRoleRepository.save(role);
+        response.add("id", role.getId());
+        return response;
+    }
+
+    @Transactional
+    public MapResponse update(AdminRole param) {
+        MapResponse response = new MapResponse();
+        // TODO
+        Integer roleId = param.getId();
+        Optional<AdminRole> opt = adminRoleRepository.findById(roleId);
+        if (!opt.isPresent()) {
+            response.setFail("data not exists");
+            return response;
+        }
+
+        AdminRole role = opt.get();
+        if (param.getRemark() != null) {
+            role.setRemark(param.getRemark());
+        }
+
+        // TODO
+        List<AdminPermission> permissions = param.getPermissions();
+        if (permissions != null) {
+            role.getPermissions().clear();
+            for (AdminPermission permission : permissions) {
+                if (permission.getSign() == null) {
+                    continue;
+                }
+
+                AdminPermission entity;
+                Optional<AdminPermission> optp = permissionRepository.findOne(QAdminPermission.adminPermission.sign.eq(permission.getSign()));
+                if (!optp.isPresent()) {
+                    entity = new AdminPermission();
+                    entity.setSign(permission.getSign());
+                    entity.setStatus(1);
+                    permissionRepository.save(entity);
+                } else {
+                    entity = optp.get();
+                    if (entity.getStatus() != 1) {
+                        continue;
+                    }
+                }
+                role.getPermissions().add(entity);
+            }
+        }
+        role.setUpdateUser(UserUtils.currentUserId());
+        adminRoleRepository.save(role);
+        return response;
+    }
+
+    @Transactional
+    public MapResponse delete(AdminRole param) {
+        MapResponse response = new MapResponse();
+        // TODO
+        Integer userId = param.getId();
+        Optional<AdminRole> opt = adminRoleRepository.findById(userId);
+        if (opt.isPresent()) {
+            AdminRole role = opt.get();
+            role.setStatus(0);
+            role.setUpdateUser(UserUtils.currentUserId());
+            adminRoleRepository.save(role);
+        }
+        return response;
+    }
+}
+

+ 143 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/AdminUserService.java

@@ -0,0 +1,143 @@
+package com.persagy.dmp.rwd.edit.service;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.common.criteria.CriteriaUtils;
+import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.security.MD5Utils;
+import com.persagy.common.web.MapResponse;
+import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.rwd.edit.config.web.UserUtils;
+import com.persagy.dmp.rwd.edit.entity.AdminRole;
+import com.persagy.dmp.rwd.edit.entity.AdminUser;
+import com.persagy.dmp.rwd.edit.entity.AdminUserProject;
+import com.persagy.dmp.rwd.edit.entity.QAdminUser;
+import com.persagy.dmp.rwd.edit.repository.AdminUserRepository;
+import com.querydsl.core.types.dsl.BooleanExpression;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.transaction.Transactional;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+@Service
+public class AdminUserService {
+
+    @Autowired
+    private AdminUserRepository adminUserRepository;
+
+    @Autowired
+    private CriteriaUtils criteriaUtils;
+
+    private List<BooleanExpression> parse(ObjectNode criteria) {
+        // TODO
+        return null;
+    }
+
+    public PagedResponse<AdminUser> query(JacksonCriteria criteria) {
+        PagedResponse<AdminUser> query = criteriaUtils.query(QAdminUser.adminUser, this::parse, criteria);
+        PagedResponse<AdminUser> resp = new PagedResponse<>();
+        resp.setCount(query.getCount());
+        List<AdminUser> data = query.getData();
+        if (data != null && data.size() > 0) {
+            Set<String> withColumns = criteria.getWithColumns();
+            List<AdminUser> list = new ArrayList<>(data.size());
+            boolean withRoles = withColumns != null && withColumns.contains("roles");
+            boolean withProjects = withColumns != null && withColumns.contains("projects");
+            for (AdminUser user : data) {
+                AdminUser model = new AdminUser();
+                BeanUtils.copyProperties(user, model, "password", "roles", "projects");
+                if (withRoles) {
+                    model.setRoles(user.getRoles());
+                }
+                if (withProjects) {
+                    model.setProjects(user.getProjects());
+                }
+                list.add(model);
+            }
+            resp.setData(list);
+        }
+        return resp;
+    }
+
+    @Transactional
+    public MapResponse create(AdminUser param) {
+        MapResponse response = new MapResponse();
+        // TODO
+        String username = param.getUsername();
+        if (username == null) {
+            response.setFail("账号不可为空!");
+            return response;
+        }
+        long count = adminUserRepository.count(QAdminUser.adminUser.username.eq(username));
+        if (count > 0) {
+            response.setFail("账号已存在!");
+            return response;
+        }
+
+        AdminUser entity = new AdminUser();
+        entity.setUsername(username);
+        entity.setRealname(param.getRealname());
+        entity.setPassword(MD5Utils.getSign(username + "123456"));
+        entity.setCreateUser(UserUtils.currentUserId());
+        entity.setStatus(1);
+        adminUserRepository.save(entity);
+        response.add("id", entity.getId());
+        return response;
+    }
+
+    @Transactional
+    public MapResponse update(AdminUser param) {
+        MapResponse response = new MapResponse();
+        // TODO
+        Integer userId = param.getId();
+        AdminUser user = adminUserRepository.findById(userId).get();
+        String realname = param.getRealname();
+        if (realname != null) {
+            user.setRealname(realname);
+        }
+        String phone = param.getPhone();
+        if (phone != null) {
+            user.setPhone(phone);
+        }
+        String remark = param.getRemark();
+        if (remark != null) {
+            user.setRemark(remark);
+        }
+
+        List<AdminRole> roles = param.getRoles();
+        if (roles != null) {
+            user.getRoles().clear();
+            user.getRoles().addAll(roles);
+        }
+
+        List<AdminUserProject> projects = param.getProjects();
+        if (projects != null) {
+            user.getProjects().clear();
+            for (AdminUserProject project : projects) {
+                project.setUser(user);
+            }
+            user.getProjects().addAll(projects);
+        }
+
+        adminUserRepository.save(user);
+        response.add("id", userId);
+        return response;
+    }
+
+    @Transactional
+    public MapResponse delete(AdminUser param) {
+        MapResponse response = new MapResponse();
+        // TODO
+
+        Integer id = param.getId();
+        AdminUser user = adminUserRepository.findById(id).get();
+        user.setStatus(0);
+        user.setUpdateUser(UserUtils.currentUserId());
+        adminUserRepository.save(user);
+        return response;
+    }
+}
+