kaiyu
2021-03-25 3b72f1f4dd46191857583a166d5b67722c6b118e
manage模块
添加组织增删改功能 查待完成
5 files renamed
1 files deleted
14 files added
24 files modified
1445 ■■■■ changed files
screen-common/src/main/java/com/moral/constant/Constants.java 40 ●●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java 10 ●●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/constant/ResultMessage.java 6 ●●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/util/AESUtils.java 3 ●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/util/DateUtils.java 1 ●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/util/KaptchaUtils.java 2 ●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/util/MD5Utils.java 3 ●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/util/RegexUtils.java 14 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/AccountController.java 17 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/LoginController.java 21 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java 116 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/UserController.java 27 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java 6 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/Organization.java 8 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/SysConfig.java 8 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDTO.java 23 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDeleteDTO.java 1 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountQueryDTO.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationDTO.java 47 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java 31 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/AccountUpdateForm.java 66 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountDeleteForm.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountQueryForm.java 7 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java 83 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/login/LoginForm.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/login/LogoutForm.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationDeleteForm.java 26 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationInsertForm.java 121 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryForm.java 101 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationUpdateForm.java 134 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/user/UserInsertForm.java 14 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java 1 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java 14 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java 26 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java 25 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationUpdateVO.java 26 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java 55 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java 7 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/OrganizationService.java 44 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/UserService.java 1 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java 99 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java 194 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/application-dev.yml 7 ●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/constant/Constants.java
@@ -4,8 +4,48 @@
 * 通用常量信息
 */
public class Constants {
    /*
     * 被删除标识
     * */
    public static String DELETE = "1";
    /*
     * 未删除标识
     * */
    public static String NOT_DELETE = "0";
    /*
     * 后台系统验证码配置列名
     * */
    public static String MANAGE_VERIFICATIONCODE_COLUMN = "type";
    /*
     * 后台系统验证码列对应的值
     * */
    public static String MANAGE_VERIFICATIONCODE_VALUE = "manage_verificationCode";
    /*
     * 验证码开启标识
     * */
    public static String VERFICATIONCODE_OPEN = "1";
    /*
     * 验证码关闭标识
     * */
    public static String VERFICATIONCODE_CLOSE = "0";
    /*
     * 查询正序标识
     * */
    public static String ORDER_ASC = "0";
    /*
     * 查询倒序标识
     * */
    public static String ORDER_DESC = "1";
    /*
    * 删除子组织标识
    * */
    public static Integer DELETE_CHILDREN_ORG = 1;
}
screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
@@ -9,6 +9,8 @@
 **/
public enum ResponseCodeEnum {
    VERIFICATION_CLOSE(2,"验证功能关闭"),
    VERIFICATION_OPEN(1,"验证功能开启"),
    SUCCESS(0,"操作成功"),
    FAIL(-1,"操作失败"),
    PARAMETERS_IS_MISSING(-2,"参数不完整"),
@@ -22,7 +24,13 @@
    EMAIL_INVALID(-10,"邮箱无效"),
    ACCOUNT_INVALID(-11,"用户名无效"),
    PASSWORD_INVALID(-12,"密码无效"),
    ACCOUNT_IS_EXPIRE(-13,"用户已过期")
    ACCOUNT_IS_EXPIRE(-13,"用户已过期"),
    ORGANIZATION_NOT_EXIST(-14,"组织不存在"),
    ORGANIZATION_EXIST(-15,"组织已经存在"),
    ORGANIZATION_PARENT_NOT_EXIST(-16,"父组织不存在"),
    PHONE_INVALID(-17,"电话号无效"),
    TIME_FORMAT_INVALID(-18,"时间格式无效"),
    TIME_INVALID(-19,"时间无效")
    ;
    private final Integer code;
    private final String  msg;
screen-common/src/main/java/com/moral/constant/ResultMessage.java
@@ -34,6 +34,12 @@
    public ResultMessage() {
    }
    public ResultMessage(ResponseCodeEnum codeEnum,T data){
        this.code = codeEnum.getCode();
        this.msg = codeEnum.getMsg();
        this.data = data;
    }
    public static ResultMessage ok() {
        ResultMessage resultMessage = new ResultMessage();
        resultMessage.setCode(ResponseCodeEnum.SUCCESS.getCode());
screen-common/src/main/java/com/moral/util/AESUtils.java
@@ -81,8 +81,9 @@
    }
    public static void main(String[] args) {
        System.out.println(encrypt("404897439","AD42F7787B035B7580000EF93BE20BAD"));
        System.out.println(encrypt("123456","AD42F7787B035B7580000EF93BE20BAD"));
        System.out.println(encrypt("chenkaiyu111","AD42F7787B035B7580000EF93BE20BAD"));
        System.out.println(decrypt("KoWjfDMZQhJMLlG1crBPqQ==","AD42F7787B035B7580000EF93BE20BAD"));
    }
}
screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -47,6 +47,7 @@
    /**
     * 获取DateFormat
     * 
screen-common/src/main/java/com/moral/util/KaptchaUtils.java
@@ -37,7 +37,7 @@
    private static RedisTemplate redisTemplate;
    //验证码有效期 单位:秒
    private static final int validity_time = 60;
    private static final int validity_time = 60*60;
    @Autowired
    public void setRedisTemplate(RedisTemplate redisTemplate) {
screen-common/src/main/java/com/moral/util/MD5Utils.java
@@ -85,7 +85,8 @@
    }
    public static void main(String[] args) {
        System.out.println(saltMD5("123456"));
        System.out.println(        saltMD5Verify("123456","63E23606B61A58FF1C48898988D415840F5DD6896BD5EC26")
);
    }
}
screen-common/src/main/java/com/moral/util/RegexUtils.java
@@ -16,9 +16,7 @@
        return account.matches(regex);
    }
    public static void main(String[] args) {
    }
    /**
     * 验证密码
@@ -136,6 +134,18 @@
    }
    /**
    * @Description: 验证yyyy-MM-dd字符串的正则表达式
            * @Param: [date]
            * @return: boolean
            * @Author: 陈凯裕
            * @Date: 2021/3/23
            */
    public static boolean checkDate(String date){
        String regex = "((\\d{2}(([02468][048])|([13579][26]))[\\-]((((0?[13578])|(1[02]))[\\-]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-]((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-]((((0?[13578])|(1[02]))[\\-]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-]((0?[1-9])|(1[0-9])|(2[0-8]))))))";
        return Pattern.matches(regex,date);
    }
    /**
     * 验证URL地址
     *
     * @param url 格式:http://blog.csdn.net:80/xyang81/article/details/7705960? 或 http://www.csdn.net:80
screen-manage/src/main/java/com/moral/api/controller/AccountController.java
@@ -4,30 +4,21 @@
import com.moral.api.pojo.dto.account.AccountInsertDTO;
import com.moral.api.pojo.dto.account.AccountQueryDTO;
import com.moral.api.pojo.dto.account.AccountUpdateDTO;
import com.moral.api.pojo.dto.login.LoginDTO;
import com.moral.api.pojo.form.*;
import com.moral.api.pojo.form.account.AccountDeleteForm;
import com.moral.api.pojo.form.account.AccountInsertForm;
import com.moral.api.pojo.form.account.AccountQueryForm;
import com.moral.api.pojo.form.account.AccountUpdateForm;
import com.moral.api.pojo.vo.account.AccountDeleteVO;
import com.moral.api.pojo.vo.account.AccountInsertVO;
import com.moral.api.pojo.vo.account.AccountQueryVO;
import com.moral.api.pojo.vo.account.AccountUpdateVO;
import com.moral.api.pojo.vo.login.LoginVO;
import com.moral.api.service.ManageAccountService;
import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import com.moral.util.KaptchaUtils;
import com.moral.util.TokenUtils;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Slf4j
@Api(tags = {"后台账户管理"})
screen-manage/src/main/java/com/moral/api/controller/LoginController.java
@@ -1,10 +1,14 @@
package com.moral.api.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.SysConfig;
import com.moral.api.pojo.dto.login.LoginDTO;
import com.moral.api.pojo.form.LoginForm;
import com.moral.api.pojo.form.LogoutForm;
import com.moral.api.pojo.form.login.LoginForm;
import com.moral.api.pojo.form.login.LogoutForm;
import com.moral.api.pojo.vo.login.LoginVO;
import com.moral.api.service.ManageAccountService;
import com.moral.api.service.SysConfigService;
import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import com.moral.pojo.VerificationCode;
@@ -27,10 +31,13 @@
 **/
@Slf4j
@Api(tags = {"登陆模块"})
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
public class LoginController {
    @Autowired
    ManageAccountService accountService;
    @Autowired
    SysConfigService sysConfigService;
    /**
     * @Description: 登陆接口
@@ -80,10 +87,14 @@
            * @Author: 陈凯裕
            * @Date: 2021/3/18
            */
    @GetMapping
    @GetMapping("verificationCode/config")
    public ResultMessage verifyConfig(){
        return null;
        QueryWrapper<SysConfig> wrapper = new QueryWrapper<>();
        wrapper.eq(Constants.MANAGE_VERIFICATIONCODE_COLUMN,Constants.MANAGE_VERIFICATIONCODE_VALUE);
        SysConfig config = sysConfigService.getOne(wrapper);
        if(config.getCode().equals(Constants.VERFICATIONCODE_OPEN))
            return new ResultMessage(ResponseCodeEnum.VERIFICATION_OPEN,null);
        return new ResultMessage(ResponseCodeEnum.VERIFICATION_CLOSE,null);
    }
    /**
screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java
New file
@@ -0,0 +1,116 @@
package com.moral.api.controller;
import com.moral.api.pojo.dto.organization.OrganizationDTO;
import com.moral.api.pojo.dto.organization.OrganizationQueryDTO;
import com.moral.api.pojo.form.organization.OrganizationDeleteForm;
import com.moral.api.pojo.form.organization.OrganizationInsertForm;
import com.moral.api.pojo.form.organization.OrganizationQueryForm;
import com.moral.api.pojo.form.organization.OrganizationUpdateForm;
import com.moral.api.pojo.vo.organization.OrganizationDeleteVO;
import com.moral.api.pojo.vo.organization.OrganizationInsertVO;
import com.moral.api.pojo.vo.organization.OrganizationUpdateVO;
import com.moral.api.service.OrganizationService;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * @ClassName OrganizationController
 * @Description 用户组织控制器
 * @Author 陈凯裕
 * @Date 2021/3/22 14:10
 * @Version TODO
 **/
@Slf4j
@Api(tags = {"用户组织控制器"})
@RestController
    @RequestMapping("/organization")
public class OrganizationController {
    @Autowired
    OrganizationService organizationService;
    @PostMapping("insert")
    public ResultMessage insert(@RequestBody OrganizationInsertForm organizationInsertForm) {
        //判断参数是否缺少参数
        if (!organizationInsertForm.valid())
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        //判断参数是否有效
        OrganizationDTO conditionDTO = organizationInsertForm.paramValid();
        if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
            return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
        }
        //处理插入业务
        OrganizationDTO organizationDTO = organizationService.insertOrganization(organizationInsertForm);
        //转换前端需要的参数
        OrganizationInsertVO organizationInsertVO = OrganizationInsertVO.convert(organizationDTO);
        return new ResultMessage(organizationDTO.getCode(),organizationDTO.getMsg(),organizationInsertVO);
    }
    @PostMapping("update")
    public ResultMessage update(@RequestBody OrganizationUpdateForm organizationUpdateForm){
        //判断参数是否缺少参数
        if (!organizationUpdateForm.valid())
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        //判断参数是否有效
        OrganizationDTO conditionDTO = organizationUpdateForm.paramValid();
        if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
            return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
        }
        //处理更新业务
        OrganizationDTO organizationDTO = organizationService.updateOrganization(organizationUpdateForm);
        //转换前端需要的参数
        OrganizationUpdateVO organizationUpdateVO = OrganizationUpdateVO.convert(organizationDTO);
        return new ResultMessage(organizationDTO.getCode(),organizationDTO.getMsg(),organizationUpdateVO);
    }
    @PostMapping("delete")
    public ResultMessage delete(@RequestBody OrganizationDeleteForm organizationDeleteForm){
        //判断参数是否缺少参数
        if (!organizationDeleteForm.valid())
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        //处理删除业务
        OrganizationDTO dto = organizationService.deleteOrganization(organizationDeleteForm);
        //转换前端需要的参数
        OrganizationDeleteVO vo = OrganizationDeleteVO.convert(dto);
        return new ResultMessage(dto.getCode(),dto.getMsg(),vo);
    }
    @GetMapping("query")
    public ResultMessage query(OrganizationQueryForm organizationQueryForm){
        //判断是否缺少参数
        if (!organizationQueryForm.valid())
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        //判断参数是否有效
        OrganizationDTO conditionDTO = organizationQueryForm.paramValid();
        if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
            return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
        }
        //处理查询业务
        OrganizationQueryDTO organizationQueryDTO = organizationService.queryOrganization(organizationQueryForm);
        //转换前端需要参数
        return null;
    }
}
screen-manage/src/main/java/com/moral/api/controller/UserController.java
New file
@@ -0,0 +1,27 @@
package com.moral.api.controller;
import com.moral.constant.ResultMessage;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @ClassName UserController
 * @Description 用户管理
 * @Author 陈凯裕
 * @Date 2021/3/22 13:52
 * @Version TODO
 **/
@Slf4j
@Api(tags = {"用户管理模块"})
@RestController
@RequestMapping("/user")
public class UserController {
    @PostMapping("insert")
    public ResultMessage insert(){
        return null;
    }
}
screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java
@@ -9,6 +9,7 @@
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -60,17 +61,20 @@
    /**
     * 微信
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String wechat;
    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",locale = "zh",timezone="GMT+8")
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",locale = "zh",timezone="GMT+8")
    private Date updateTime;
    /**
screen-manage/src/main/java/com/moral/api/entity/Organization.java
@@ -5,6 +5,8 @@
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -96,17 +98,17 @@
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    private Date createTime;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    private Date updateTime;
    /**
     * 到期时间
     */
    private LocalDateTime expireTime;
    private Date expireTime;
    /**
     * 是否删除
screen-manage/src/main/java/com/moral/api/entity/SysConfig.java
@@ -1,10 +1,13 @@
package com.moral.api.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -41,17 +44,18 @@
    /**
     * 描述
     */
    @TableField("`desc`")
    private String desc;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    private Date createTime;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    private Date updateTime;
    /**
     * 是否删除
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDTO.java
@@ -15,12 +15,25 @@
 **/
@Data
public class AccountDTO {
    private ManageAccount account;
    private List<ManageRole> roles;
    /*
     * 响应码
     * */
    private Integer code;
    /*
     * 响应信息
     * */
    private String msg;
    /*
    * 后台账号
    * */
    private ManageAccount account;
    /*
    * 后台角色
    * */
    private List<ManageRole> roles;
}
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDeleteDTO.java
@@ -12,5 +12,4 @@
@Data
public class AccountDeleteDTO extends AccountDTO {
}
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountQueryDTO.java
@@ -26,6 +26,6 @@
    private long size;
    private List<AccountDTO> AccountDTOS;
    private List<AccountDTO> accountDTOS;
}
screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationDTO.java
New file
@@ -0,0 +1,47 @@
package com.moral.api.pojo.dto.organization;
import com.moral.api.entity.Organization;
import com.moral.api.entity.User;
import lombok.Data;
import java.util.List;
/**
 * @ClassName OrganizationDTO
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/22 16:37
 * @Version TODO
 **/
@Data
public class OrganizationDTO {
    /*
     * 响应码
     * */
    private Integer code;
    /*
     * 响应信息
     * */
    private String msg;
    /*
    * 组织
    * */
    private Organization organization;
    /*
    * 父组织
    * */
    private Organization parentOrganization;
    /*
    * 子组织
    * */
    private List<Organization> childOrganizations;
    /*
    * 管理员
    * */
    private User admin;
}
screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java
New file
@@ -0,0 +1,31 @@
package com.moral.api.pojo.dto.organization;
import lombok.Data;
import java.util.List;
/**
 * @ClassName OrganizationQueryDTO
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/25 16:10
 * @Version TODO
 **/
@Data
public class OrganizationQueryDTO {
    private Integer code;
    private String msg;
    private long page;
    private long total;
    private long current;
    private long size;
    private List<OrganizationDTO> organizationDTOS;
}
screen-manage/src/main/java/com/moral/api/pojo/form/AccountUpdateForm.java
File was deleted
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountDeleteForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/form/AccountDeleteForm.java
@@ -1,4 +1,4 @@
package com.moral.api.pojo.form;
package com.moral.api.pojo.form.account;
import lombok.Data;
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/form/AccountInsertForm.java
@@ -1,4 +1,4 @@
package com.moral.api.pojo.form;
package com.moral.api.pojo.form.account;
import com.moral.api.pojo.dto.account.AccountInsertDTO;
import com.moral.constant.ResponseCodeEnum;
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountQueryForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/form/AccountQueryForm.java
@@ -1,4 +1,4 @@
package com.moral.api.pojo.form;
package com.moral.api.pojo.form.account;
import lombok.Data;
import org.springframework.util.ObjectUtils;
@@ -33,6 +33,11 @@
    private String isDelete;
    private String order;
    private String orderType;
    public boolean valid() {
        if (
            ObjectUtils.isEmpty(page)||
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java
New file
@@ -0,0 +1,83 @@
package com.moral.api.pojo.form.account;
import com.moral.api.pojo.dto.account.AccountInsertDTO;
import com.moral.api.pojo.dto.account.AccountUpdateDTO;
import com.moral.constant.ResponseCodeEnum;
import com.moral.util.AESUtils;
import com.moral.util.RegexUtils;
import lombok.Data;
import org.springframework.util.ObjectUtils;
import java.util.List;
/**
 * @ClassName AccountUpdateRequest
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/15 15:34
 * @Version TODO
 **/
@Data
public class AccountUpdateForm {
    private Integer accountId;
    private String userName;
    private String password;
    private String email;
    private String mobile;
    private String wechat;
    private List<Integer> roleIds;
    public boolean valid() {
        if(ObjectUtils.isEmpty(accountId))
            return false;
        if(
                ObjectUtils.isEmpty(userName)&&
                ObjectUtils.isEmpty(password)&&
                ObjectUtils.isEmpty(email)&&
                ObjectUtils.isEmpty(mobile)&&
                ObjectUtils.isEmpty(wechat)&&
                ObjectUtils.isEmpty(roleIds)
                )
            return false;
        return true;
    }
    public AccountUpdateDTO paramValid() {
        AccountUpdateDTO dto = new AccountUpdateDTO();
        //判断手机号是否符合条件
        if (!ObjectUtils.isEmpty(mobile)) {
            if (!RegexUtils.checkMobile(mobile)) {
                dto.setCode(ResponseCodeEnum.MOBILE_INVALID.getCode());
                dto.setMsg(ResponseCodeEnum.MOBILE_INVALID.getMsg());
                return dto;
            }
        }
        //判断邮箱是否符合条件
        if (!ObjectUtils.isEmpty(email)) {
            if (!RegexUtils.checkEmail(email)) {
                dto.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
                dto.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
                return dto;
            }
        }
        //判断密码是否符合规则
        if (!ObjectUtils.isEmpty(password)){
            if(!RegexUtils.checkPassword(AESUtils.decrypt(password))){
                dto.setCode(ResponseCodeEnum.PASSWORD_INVALID.getCode());
                dto.setMsg(ResponseCodeEnum.PASSWORD_INVALID.getMsg());
                return dto;
            }
        }
            dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/form/login/LoginForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/form/LoginForm.java
@@ -1,4 +1,4 @@
package com.moral.api.pojo.form;
package com.moral.api.pojo.form.login;
import lombok.Data;
import org.springframework.util.ObjectUtils;
screen-manage/src/main/java/com/moral/api/pojo/form/login/LogoutForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/form/LogoutForm.java
@@ -1,4 +1,4 @@
package com.moral.api.pojo.form;
package com.moral.api.pojo.form.login;
import lombok.Data;
import org.springframework.util.ObjectUtils;
screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationDeleteForm.java
New file
@@ -0,0 +1,26 @@
package com.moral.api.pojo.form.organization;
import lombok.Data;
import org.springframework.util.ObjectUtils;
/**
 * @ClassName OrganizationDeleteForm
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/25 8:44
 * @Version TODO
 **/
@Data
public class OrganizationDeleteForm {
    private Integer organizationId;
    private Integer deleteChildren;
    public boolean valid() {
        if (organizationId == null || organizationId == 0|| ObjectUtils.isEmpty(deleteChildren)) {
            return false;
        }
        return true;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationInsertForm.java
New file
@@ -0,0 +1,121 @@
package com.moral.api.pojo.form.organization;
import com.moral.api.entity.Organization;
import com.moral.api.pojo.dto.organization.OrganizationDTO;
import com.moral.constant.ResponseCodeEnum;
import com.moral.util.DateUtils;
import com.moral.util.RegexUtils;
import lombok.Data;
import org.springframework.util.ObjectUtils;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * @ClassName OrganizationInsertForm
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/22 14:12
 * @Version TODO
 **/
@Data
public class OrganizationInsertForm implements Serializable {
    private Integer parentId;
    private String name;
    private Integer provinceCode;
    private Integer cityCode;
    private Integer areaCode;
    private Long townCode;
    private Long villageCode;
    private String locationLevel;
    private String address;
    private String phone;
    private String email;
    private String wechat;
    private String expireTime;
    public boolean valid() {
        if (
                ObjectUtils.isEmpty(name) ||
                        ObjectUtils.isEmpty(provinceCode) ||
                        ObjectUtils.isEmpty(cityCode) ||
                        ObjectUtils.isEmpty(areaCode) ||
                        ObjectUtils.isEmpty(locationLevel) ||
                        ObjectUtils.isEmpty(address) ||
                        ObjectUtils.isEmpty(expireTime)
                )
            return false;
        return true;
    }
    public Organization formConvertEntity() {
        Organization organization = new Organization();
        organization.setParentId(parentId);
        organization.setName(name);
        organization.setProvinceCode(provinceCode);
        organization.setCityCode(cityCode);
        organization.setAreaCode(areaCode);
        organization.setTownCode(townCode);
        organization.setVillageCode(villageCode);
        organization.setLocationLevel(locationLevel);
        organization.setAddress(address);
        organization.setPhone(phone);
        organization.setEmail(email);
        organization.setWechat(wechat);
        Date expireTimeDate = DateUtils.getDate(expireTime + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
        organization.setExpireTime(expireTimeDate);
        return organization;
    }
    public OrganizationDTO paramValid() {
        OrganizationDTO dto = new OrganizationDTO();
        //判断电话号是否符合条件
        if (!ObjectUtils.isEmpty(phone)) {
            if (!RegexUtils.checkMobile(phone) && !RegexUtils.checkPhone(phone)) {
                dto.setCode(ResponseCodeEnum.PHONE_INVALID.getCode());
                dto.setMsg(ResponseCodeEnum.PHONE_INVALID.getMsg());
                return dto;
            }
        }
        //判断邮箱是否符合条件
        if (!ObjectUtils.isEmpty(email)) {
            if (!RegexUtils.checkEmail(email)) {
                dto.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
                dto.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
                return dto;
            }
        }
        //判断过期时间格式
        if (!RegexUtils.checkDate(expireTime)) {
            dto.setCode(ResponseCodeEnum.TIME_FORMAT_INVALID.getCode());
            dto.setMsg(ResponseCodeEnum.TIME_FORMAT_INVALID.getMsg());
            return dto;
        }
        //判断过期时间是否小于当前时间
        Date expireDate = DateUtils.getDate(expireTime, "yyyy-MM-dd");
        Date currentDate = new Date();
        if (DateUtils.compareDateStr(expireDate, currentDate) >= 0) {
            dto.setCode(ResponseCodeEnum.TIME_INVALID.getCode());
            dto.setMsg(ResponseCodeEnum.TIME_INVALID.getMsg());
            return dto;
        }
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryForm.java
New file
@@ -0,0 +1,101 @@
package com.moral.api.pojo.form.organization;
import com.moral.api.entity.Organization;
import com.moral.api.pojo.dto.organization.OrganizationDTO;
import com.moral.constant.ResponseCodeEnum;
import com.moral.util.DateUtils;
import com.moral.util.RegexUtils;
import lombok.Data;
import org.springframework.util.ObjectUtils;
import java.util.Date;
/**
 * @ClassName OrganizationQueryForm
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/25 15:52
 * @Version TODO
 **/
@Data
public class OrganizationQueryForm {
    private Integer page;
    private Integer size;
    private Integer parentId;
    private String name;
    private Integer provinceCode;
    private Integer cityCode;
    private Integer areaCode;
    private Long townCode;
    private Long villageCode;
    private String phone;
    private String email;
    private String wechat;
    private String isDelete;
    private String order;
    private String orderType;
    public boolean valid() {
        if (
                ObjectUtils.isEmpty(page) ||
                        ObjectUtils.isEmpty(size)
                )
            return false;
        return true;
    }
    public OrganizationDTO paramValid() {
        OrganizationDTO dto = new OrganizationDTO();
        //判断电话号是否符合条件
        if (!ObjectUtils.isEmpty(phone)) {
            if (!RegexUtils.checkMobile(phone) && !RegexUtils.checkPhone(phone)) {
                dto.setCode(ResponseCodeEnum.PHONE_INVALID.getCode());
                dto.setMsg(ResponseCodeEnum.PHONE_INVALID.getMsg());
                return dto;
            }
        }
        //判断邮箱是否符合条件
        if (!ObjectUtils.isEmpty(email)) {
            if (!RegexUtils.checkEmail(email)) {
                dto.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
                dto.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
                return dto;
            }
        }
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
    public Organization formConvertEntity() {
        Organization organization = new Organization();
        organization.setParentId(parentId);
        organization.setName(name);
        organization.setProvinceCode(provinceCode);
        organization.setCityCode(cityCode);
        organization.setAreaCode(areaCode);
        organization.setTownCode(townCode);
        organization.setVillageCode(villageCode);
        organization.setPhone(phone);
        organization.setEmail(email);
        organization.setWechat(wechat);
        organization.setIsDelete(isDelete);
        return organization;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationUpdateForm.java
New file
@@ -0,0 +1,134 @@
package com.moral.api.pojo.form.organization;
import com.moral.api.entity.Organization;
import com.moral.api.pojo.dto.organization.OrganizationDTO;
import com.moral.constant.ResponseCodeEnum;
import com.moral.util.DateUtils;
import com.moral.util.RegexUtils;
import lombok.Data;
import org.springframework.util.ObjectUtils;
import java.util.Date;
/**
 * @ClassName OrganizationUpdateForm
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/24 8:43
 * @Version TODO
 **/
@Data
public class OrganizationUpdateForm {
    private Integer organizationId;
    private Integer parentId;
    private String name;
    private Integer provinceCode;
    private Integer cityCode;
    private Integer areaCode;
    private Long townCode;
    private Long villageCode;
    private String locationLevel;
    private String address;
    private String phone;
    private String email;
    private String wechat;
    private String expireTime;
    public boolean valid() {
        if (ObjectUtils.isEmpty(organizationId))
            return false;
        if (
                ObjectUtils.isEmpty(parentId) &&
                        ObjectUtils.isEmpty(name) &&
                        ObjectUtils.isEmpty(provinceCode) &&
                        ObjectUtils.isEmpty(cityCode) &&
                        ObjectUtils.isEmpty(areaCode) &&
                        ObjectUtils.isEmpty(townCode) &&
                        ObjectUtils.isEmpty(villageCode) &&
                        ObjectUtils.isEmpty(locationLevel) &&
                        ObjectUtils.isEmpty(address) &&
                        ObjectUtils.isEmpty(phone) &&
                        ObjectUtils.isEmpty(email) &&
                        ObjectUtils.isEmpty(wechat) &&
                        ObjectUtils.isEmpty(expireTime)
                )
            return false;
        return true;
    }
    public Organization formConvertEntity() {
        Organization organization = new Organization();
        organization.setId(organizationId);
        organization.setParentId(parentId);
        organization.setName(name);
        organization.setProvinceCode(provinceCode);
        organization.setCityCode(cityCode);
        organization.setAreaCode(areaCode);
        organization.setTownCode(townCode);
        organization.setVillageCode(villageCode);
        organization.setLocationLevel(locationLevel);
        organization.setAddress(address);
        organization.setPhone(phone);
        organization.setEmail(email);
        organization.setWechat(wechat);
        if (!ObjectUtils.isEmpty(expireTime)) {
            Date expireTimeDate = DateUtils.getDate(expireTime + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
            organization.setExpireTime(expireTimeDate);
        }
        return organization;
    }
    public OrganizationDTO paramValid() {
        OrganizationDTO dto = new OrganizationDTO();
        //判断电话号是否符合条件
        if (!ObjectUtils.isEmpty(phone)) {
            if (!RegexUtils.checkMobile(phone) && !RegexUtils.checkPhone(phone)) {
                dto.setCode(ResponseCodeEnum.PHONE_INVALID.getCode());
                dto.setMsg(ResponseCodeEnum.PHONE_INVALID.getMsg());
                return dto;
            }
        }
        //判断邮箱是否符合条件
        if (!ObjectUtils.isEmpty(email)) {
            if (!RegexUtils.checkEmail(email)) {
                dto.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
                dto.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
                return dto;
            }
        }
        //判断过期时间格式
        if (!ObjectUtils.isEmpty(expireTime)) {
            if (!RegexUtils.checkDate(expireTime)) {
                dto.setCode(ResponseCodeEnum.TIME_FORMAT_INVALID.getCode());
                dto.setMsg(ResponseCodeEnum.TIME_FORMAT_INVALID.getMsg());
                return dto;
            }
            //判断过期时间是否小于当前时间
            Date expireDate = DateUtils.getDate(expireTime, "yyyy-MM-dd");
            Date currentDate = new Date();
            if (DateUtils.compareDateStr(expireDate, currentDate) >= 0) {
                dto.setCode(ResponseCodeEnum.TIME_INVALID.getCode());
                dto.setMsg(ResponseCodeEnum.TIME_INVALID.getMsg());
                return dto;
            }
        }
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/form/user/UserInsertForm.java
New file
@@ -0,0 +1,14 @@
package com.moral.api.pojo.form.user;
/**
 * @ClassName UserInsertForm
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/22 14:05
 * @Version TODO
 **/
public class UserInsertForm {
}
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java
@@ -28,6 +28,7 @@
     * @Author: 陈凯裕
     * @Date: 2021/3/15
     */
    public static AccountInsertVO convert(AccountInsertDTO dto) {
        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
            return null;
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java
@@ -7,7 +7,9 @@
import lombok.Data;
import org.springframework.util.ObjectUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -33,6 +35,10 @@
    private List<String> roleNames;
    private String createTime;
    private String updateTime;
    public static AccountVO convert(AccountDTO dto) {
        if (dto.getAccount() == null)
            return null;
@@ -49,6 +55,14 @@
        vo.setMobile(account.getMobile());
        vo.setWechat(account.getWechat());
        vo.setRoleNames(roleNames);
        //Date转换String
        Date createTime = account.getCreateTime();
        Date updateTime = account.getUpdateTime();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String createTimeStr = sdf.format(createTime);
        String updateTimeStr = sdf.format(updateTime);
        vo.setCreateTime(createTimeStr);
        vo.setUpdateTime(updateTimeStr);
        return vo;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java
New file
@@ -0,0 +1,26 @@
package com.moral.api.pojo.vo.organization;
import com.moral.api.entity.Organization;
import com.moral.api.pojo.dto.organization.OrganizationDTO;
import com.moral.constant.ResponseCodeEnum;
/**
 * @ClassName OrganizationDeleteVO
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/25 13:46
 * @Version TODO
 **/
public class OrganizationDeleteVO extends OrganizationVO {
    public static OrganizationDeleteVO convert(OrganizationDTO dto){
        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
            return null;
        OrganizationDeleteVO vo = new OrganizationDeleteVO();
        Organization organization = dto.getOrganization();
        vo.setName(organization.getName());
        vo.setId(organization.getId());
        return vo;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java
New file
@@ -0,0 +1,25 @@
package com.moral.api.pojo.vo.organization;
import com.moral.api.entity.Organization;
import com.moral.api.pojo.dto.organization.OrganizationDTO;
import com.moral.constant.ResponseCodeEnum;
/**
 * @ClassName OrganizationInsertVO
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/23 17:14
 * @Version TODO
 **/
public class OrganizationInsertVO extends OrganizationVO {
    public static OrganizationInsertVO convert(OrganizationDTO dto){
        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
            return null;
        OrganizationInsertVO vo = new OrganizationInsertVO();
        Organization organization = dto.getOrganization();
        vo.setId(organization.getId());
        vo.setName(organization.getName());
        return vo;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationUpdateVO.java
New file
@@ -0,0 +1,26 @@
package com.moral.api.pojo.vo.organization;
import com.moral.api.entity.Organization;
import com.moral.api.pojo.dto.organization.OrganizationDTO;
import com.moral.constant.ResponseCodeEnum;
/**
 * @ClassName OrganizationUpdateVO
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/24 14:37
 * @Version TODO
 **/
public class OrganizationUpdateVO extends OrganizationVO {
    public static OrganizationUpdateVO convert(OrganizationDTO dto) {
        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
            return null;
        OrganizationUpdateVO vo = new OrganizationUpdateVO();
        Organization organization = dto.getOrganization();
        vo.setId(organization.getId());
        vo.setName(organization.getName());
        return vo;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java
New file
@@ -0,0 +1,55 @@
package com.moral.api.pojo.vo.organization;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.moral.api.pojo.dto.organization.OrganizationDTO;
import com.moral.constant.ResponseCodeEnum;
import lombok.Data;
/**
 * @ClassName OrganizationInsertVO
 * @Description TODO
 * @Author 陈凯裕
 * @Date 2021/3/23 16:58
 * @Version TODO
 **/
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class OrganizationVO {
    private Integer id;
    private Integer parentId;
    private Integer adminUserId;
    private String name;
    private Integer provinceCode;
    private Integer cityCode;
    private Integer areaCode;
    private Long townCode;
    private Long villageCode;
    private String locationLevel;
    private String address;
    private String phone;
    private String email;
    private String wechat;
    private String expireTime;
    private String createTime;
    private String updateTime;
    private String isDelete;
}
screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java
@@ -4,7 +4,12 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.moral.api.pojo.dto.account.*;
import com.moral.api.pojo.dto.login.LoginDTO;
import com.moral.api.pojo.form.*;
import com.moral.api.pojo.form.account.AccountDeleteForm;
import com.moral.api.pojo.form.account.AccountInsertForm;
import com.moral.api.pojo.form.account.AccountQueryForm;
import com.moral.api.pojo.form.account.AccountUpdateForm;
import com.moral.api.pojo.form.login.LoginForm;
import com.moral.api.pojo.form.login.LogoutForm;
/**
 * <p>
screen-manage/src/main/java/com/moral/api/service/OrganizationService.java
@@ -2,6 +2,12 @@
import com.moral.api.entity.Organization;
import com.baomidou.mybatisplus.extension.service.IService;
import com.moral.api.pojo.dto.organization.OrganizationDTO;
import com.moral.api.pojo.dto.organization.OrganizationQueryDTO;
import com.moral.api.pojo.form.organization.OrganizationDeleteForm;
import com.moral.api.pojo.form.organization.OrganizationInsertForm;
import com.moral.api.pojo.form.organization.OrganizationQueryForm;
import com.moral.api.pojo.form.organization.OrganizationUpdateForm;
/**
 * <p>
@@ -13,4 +19,42 @@
 */
public interface OrganizationService extends IService<Organization> {
    /**
    * @Description: 添加客户组织
            * @Param: [organizationInsertForm]
            * @return: void
            * @Author: 陈凯裕
            * @Date: 2021/3/22
            */
    OrganizationDTO insertOrganization(OrganizationInsertForm organizationInsertForm);
    /**
    * @Description: 更新客户组织
            * @Param: [organizationUpdateForm]
            * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
            * @Author: 陈凯裕
            * @Date: 2021/3/24
            */
    OrganizationDTO updateOrganization(OrganizationUpdateForm organizationUpdateForm);
    /**
    * @Description: 删除客户组织
            * @Param: [organizationDeleteForm]
            * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
            * @Author: 陈凯裕
            * @Date: 2021/3/25
            */
    OrganizationDTO deleteOrganization(OrganizationDeleteForm organizationDeleteForm);
    /**
    * @Description: 查询客户组织
            * @Param: [organizationQueryForm]
            * @return: com.moral.api.pojo.dto.organization.OrganizationQueryDTO
            * @Author: 陈凯裕
            * @Date: 2021/3/25
            */
    OrganizationQueryDTO queryOrganization(OrganizationQueryForm organizationQueryForm);
}
screen-manage/src/main/java/com/moral/api/service/UserService.java
@@ -2,6 +2,7 @@
import com.moral.api.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.moral.api.pojo.form.user.UserInsertForm;
/**
 * <p>
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
@@ -14,7 +14,12 @@
import com.moral.api.pojo.dto.account.*;
import com.moral.api.pojo.dto.login.AccountInfoDTO;
import com.moral.api.pojo.dto.login.LoginDTO;
import com.moral.api.pojo.form.*;
import com.moral.api.pojo.form.account.AccountDeleteForm;
import com.moral.api.pojo.form.account.AccountInsertForm;
import com.moral.api.pojo.form.account.AccountQueryForm;
import com.moral.api.pojo.form.account.AccountUpdateForm;
import com.moral.api.pojo.form.login.LoginForm;
import com.moral.api.pojo.form.login.LogoutForm;
import com.moral.api.service.ManageAccountService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.constant.Constants;
@@ -23,15 +28,11 @@
import com.moral.util.MD5Utils;
import com.moral.util.TokenUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * <p>
@@ -58,7 +59,7 @@
    /**
     * @Description: 登陆
     * @Param: [parameters]
     * @return: java.util.Map<java.lang.String                                                                                                                                                                                                                                                               ,                                                                                                                                                                                                                                                               java.lang.Object>
     * @return: java.util.Map<java.lang.String                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               java.lang.Object>
     * @Author: 陈凯裕
     * @Date: 2021/3/11
     */
@@ -128,7 +129,7 @@
    /**
     * @Description: 注销
     * @Param: [parameters]
     * @return: java.util.Map<java.lang.String                                                                                                                                                                                                                                                               ,                                                                                                                                                                                                                                                               java.lang.Object>
     * @return: java.util.Map<java.lang.String                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               java.lang.Object>
     * @Author: 陈凯裕
     * @Date: 2021/3/11
     */
@@ -162,11 +163,11 @@
        List<String> roleIdsStr = accountInsertForm.getRoleIds();
        /*判断账号是否存在*/
        ManageAccount exitAccount = new ManageAccount();
        exitAccount.setAccount(account);
        exitAccount.setIsDelete(Constants.NOT_DELETE);
        ManageAccount existAccount = new ManageAccount();
        existAccount.setAccount(account);
        existAccount.setIsDelete(Constants.NOT_DELETE);
        QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>();
        wrapper.setEntity(exitAccount);
        wrapper.setEntity(existAccount);
        List<ManageAccount> exitAccounts = manageAccountMapper.selectList(wrapper);
        if (!ObjectUtils.isEmpty(exitAccounts)) {
            accountInsertDTO.setCode(ResponseCodeEnum.ACCOUNT_EXIST.getCode());
@@ -230,32 +231,43 @@
        String mobile = accountQueryForm.getMobile();
        String wechat = accountQueryForm.getWechat();
        String isDelete = accountQueryForm.getIsDelete();
        String order = accountQueryForm.getOrder();
        String orderType = accountQueryForm.getOrderType();
        //查询用户
        Page<ManageAccount> page = new Page<>(pageCount, size);
        QueryWrapper<ManageAccount> wrapper = new QueryWrapper();
        if(!ObjectUtils.isEmpty(accountId)){
            wrapper.eq("id",accountId);
        if (!ObjectUtils.isEmpty(accountId)) {
            wrapper.eq("id", accountId);
        }
        if(!ObjectUtils.isEmpty(userName)){
            wrapper.like("user_name",userName);
        if (!ObjectUtils.isEmpty(userName)) {
            wrapper.like("user_name", userName);
        }
        if(!ObjectUtils.isEmpty(account)){
            wrapper.like("account",account);
        if (!ObjectUtils.isEmpty(account)) {
            wrapper.like("account", account);
        }
        if(!ObjectUtils.isEmpty(email)){
            wrapper.like("email",email);
        if (!ObjectUtils.isEmpty(email)) {
            wrapper.like("email", email);
        }
        if(!ObjectUtils.isEmpty(mobile)){
            wrapper.like("mobile",mobile);
        if (!ObjectUtils.isEmpty(mobile)) {
            wrapper.like("mobile", mobile);
        }
        if(!ObjectUtils.isEmpty(wechat)){
            wrapper.like("wechat",wechat);
        if (!ObjectUtils.isEmpty(wechat)) {
            wrapper.like("wechat", wechat);
        }
        if (!ObjectUtils.isEmpty(order)) {
            if (!ObjectUtils.isEmpty(orderType)) {
                if (orderType.equals(Constants.ORDER_ASC))
                    wrapper.orderByAsc(order);
                else
                    wrapper.orderByDesc(order);
            }
        }
        if (!ObjectUtils.isEmpty(isDelete))
@@ -301,13 +313,13 @@
        AccountUpdateDTO accountUpdateDTO = new AccountUpdateDTO();
        //取参
        Integer accountId = accountUpdateForm.getAccountId();
        String password = accountUpdateForm.getPassword();
        String email = accountUpdateForm.getEmail();
        String mobile = accountUpdateForm.getMobile();
        String wechat = accountUpdateForm.getWechat();
        String userName = accountUpdateForm.getUserName();
        List<Integer> roleIds = accountUpdateForm.getRoleIds();
        //校验参数是否符合逻辑
        /*判断要更新的用户是否存在*/
        //判断要更新的用户是否存在
        QueryWrapper<ManageAccount> exitWrapper = new QueryWrapper<>();
        ManageAccount exitManageAccount = new ManageAccount();
        exitManageAccount.setId(accountId);
@@ -319,8 +331,13 @@
            accountUpdateDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
            return accountUpdateDTO;
        }
        //转换password
        if(!ObjectUtils.isEmpty(password)){
            password = MD5Utils.saltMD5(AESUtils.decrypt(password));
        }
        //更新ManageAccount表
        ManageAccount manageAccount = new ManageAccount();
        manageAccount.setPassword(password);
        manageAccount.setEmail(email);
        manageAccount.setMobile(mobile);
        manageAccount.setWechat(wechat);
@@ -328,24 +345,26 @@
        QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>();
        wrapper.eq("id", accountId);
        manageAccountMapper.update(manageAccount, wrapper);
        //更新ManageAccountRole表
        //如果角色有变动,则更新ManageAccountRole表
        /*删除该用户的所有角色*/
        QueryWrapper<ManageAccountRole> deleteWrapper = new QueryWrapper<>();
        deleteWrapper.eq("account_id", accountId);
        manageAccountRoleMapper.delete(deleteWrapper);
        /*重新添加角色*/
        for (Integer roleId : roleIds) {
            ManageAccountRole manageAccountRole = new ManageAccountRole();
            manageAccountRole.setAccountId(accountId);
            manageAccountRole.setRoleId(roleId);
            manageAccountRoleMapper.insert(manageAccountRole);
        if (!ObjectUtils.isEmpty(roleIds)) {
            QueryWrapper<ManageAccountRole> deleteWrapper = new QueryWrapper<>();
            deleteWrapper.eq("account_id", accountId);
            manageAccountRoleMapper.delete(deleteWrapper);
            /*重新添加角色*/
            for (Integer roleId : roleIds) {
                ManageAccountRole manageAccountRole = new ManageAccountRole();
                manageAccountRole.setAccountId(accountId);
                manageAccountRole.setRoleId(roleId);
                manageAccountRoleMapper.insert(manageAccountRole);
            }
            //获取用户所有角色
            List<ManageRole> manageRoles = manageRoleMapper.selectBatchIds(roleIds);
            accountUpdateDTO.setRoles(manageRoles);
        }
        //获取用户所有角色
        List<ManageRole> manageRoles = manageRoleMapper.selectBatchIds(roleIds);
        //封装返回结果
        accountUpdateDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        accountUpdateDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        accountUpdateDTO.setRoles(manageRoles);
        accountUpdateDTO.setAccount(manageAccountMapper.selectById(accountId));
        return accountUpdateDTO;
    }
@@ -370,7 +389,7 @@
        manageAccount.setId(accountId);
        QueryWrapper<ManageAccount> queryWrapper = new QueryWrapper<>();
        queryWrapper.setEntity(manageAccount);
        ManageAccount existManageAccount = manageAccount.selectOne(queryWrapper);
        ManageAccount existManageAccount = manageAccountMapper.selectOne(queryWrapper);
        if (ObjectUtils.isEmpty(existManageAccount)) {
            accountDeleteDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
            accountDeleteDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
@@ -391,8 +410,6 @@
        accountDeleteDTO.setAccount(existManageAccount);
        return accountDeleteDTO;
    }
}
screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -1,10 +1,26 @@
package com.moral.api.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.Organization;
import com.moral.api.mapper.OrganizationMapper;
import com.moral.api.pojo.dto.organization.OrganizationDTO;
import com.moral.api.pojo.dto.organization.OrganizationQueryDTO;
import com.moral.api.pojo.form.organization.OrganizationDeleteForm;
import com.moral.api.pojo.form.organization.OrganizationInsertForm;
import com.moral.api.pojo.form.organization.OrganizationQueryForm;
import com.moral.api.pojo.form.organization.OrganizationUpdateForm;
import com.moral.api.service.OrganizationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.util.List;
/**
 * <p>
@@ -17,4 +33,182 @@
@Service
public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Organization> implements OrganizationService {
    @Autowired
    OrganizationMapper organizationMapper;
    /**
     * @Description: 添加客户组织
     * @Param: [organizationInsertForm]
     * @return: void
     * @Author: 陈凯裕
     * @Date: 2021/3/22
     */
    @Override
    @Transactional
    public OrganizationDTO insertOrganization(OrganizationInsertForm organizationInsertForm) {
        OrganizationDTO organizationDTO = new OrganizationDTO();
        QueryWrapper<Organization> queryWrapper = new QueryWrapper<>();
        //form转换entity
        Organization organization = organizationInsertForm.formConvertEntity();
        //查询组织名称是否已经存在
        Organization existOrganization = new Organization();
        existOrganization.setName(organization.getName());
        existOrganization.setIsDelete(Constants.NOT_DELETE);
        queryWrapper.setEntity(existOrganization);
        List<Organization> existOrganizations = organizationMapper.selectList(queryWrapper);
        if (!ObjectUtils.isEmpty(existOrganizations)) {
            organizationDTO.setCode(ResponseCodeEnum.ORGANIZATION_EXIST.getCode());
            organizationDTO.setMsg(ResponseCodeEnum.ORGANIZATION_EXIST.getMsg());
            return organizationDTO;
        }
        //查询父组织是否存在
        Integer parentId = organization.getParentId();
        Organization parentOrganization = new Organization();
        if (!ObjectUtils.isEmpty(parentId)) {
            parentOrganization.setId(parentId);
            parentOrganization.setIsDelete(Constants.NOT_DELETE);
            queryWrapper.setEntity(parentOrganization);
            parentOrganization = organizationMapper.selectOne(queryWrapper);
            if (ObjectUtils.isEmpty(parentOrganization)) {
                organizationDTO.setCode(ResponseCodeEnum.ORGANIZATION_PARENT_NOT_EXIST.getCode());
                organizationDTO.setMsg(ResponseCodeEnum.ORGANIZATION_PARENT_NOT_EXIST.getMsg());
                return organizationDTO;
            }
        }
        //插入组织
        organizationMapper.insert(organization);
        //封装DTO信息
        organizationDTO.setParentOrganization(parentOrganization);
        organizationDTO.setOrganization(organization);
        organizationDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        organizationDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return organizationDTO;
    }
    /**
    * @Description: 更新客户组织
            * @Param: [organizationUpdateForm]
            * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
            * @Author: 陈凯裕
            * @Date: 2021/3/24
            */
    @Override
    @Transactional
    public OrganizationDTO updateOrganization(OrganizationUpdateForm organizationUpdateForm) {
        OrganizationDTO organizationDTO = new OrganizationDTO();
        //form转entity
        Organization organization = organizationUpdateForm.formConvertEntity();
        //查询组织是否存在
        QueryWrapper<Organization> existWrapper = new QueryWrapper<>();
        Organization existOrganization = new Organization();
        existOrganization.setId(organization.getId());
        existOrganization.setIsDelete(Constants.NOT_DELETE);
        existWrapper.setEntity(existOrganization);
        existOrganization = organizationMapper.selectOne(existWrapper);
        if(ObjectUtils.isEmpty(existOrganization)){
            organizationDTO.setCode(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode());
            organizationDTO.setMsg(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg());
            return organizationDTO;
        }
        //如果更改了父组织,查询父组织是否存在
        Integer parentId = organization.getParentId();
        Organization parentOrganization = new Organization();
        if (!ObjectUtils.isEmpty(parentId)&&parentId!=0) {
            QueryWrapper<Organization> existParentWrapper = new QueryWrapper<>();
            parentOrganization.setId(parentId);
            parentOrganization.setIsDelete(Constants.NOT_DELETE);
            existParentWrapper.setEntity(parentOrganization);
            parentOrganization = organizationMapper.selectOne(existParentWrapper);
            if (ObjectUtils.isEmpty(parentOrganization)) {
                organizationDTO.setCode(ResponseCodeEnum.ORGANIZATION_PARENT_NOT_EXIST.getCode());
                organizationDTO.setMsg(ResponseCodeEnum.ORGANIZATION_PARENT_NOT_EXIST.getMsg());
                return organizationDTO;
            }
        }
        //更新组织
        organizationMapper.updateById(organization);
        //获取更新后的组合
        organization = organizationMapper.selectById(organization.getId());
        //封装DTO信息
        organizationDTO.setParentOrganization(parentOrganization);
        organizationDTO.setOrganization(organization);
        organizationDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        organizationDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return organizationDTO;
    }
    /**
    * @Description: 删除客户组织
            * @Param: [organizationDeleteForm]
            * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
            * @Author: 陈凯裕
            * @Date: 2021/3/25
            */
    @Override
    @Transactional
    public OrganizationDTO deleteOrganization(OrganizationDeleteForm form) {
        OrganizationDTO dto = new OrganizationDTO();
        //取参
        Integer id = form.getOrganizationId();
        //查询组织是否存在
        Organization existOrganization = new Organization();
        existOrganization.setIsDelete(Constants.NOT_DELETE);
        existOrganization.setId(id);
        QueryWrapper queryExistWrapper = new QueryWrapper();
        queryExistWrapper.setEntity(existOrganization);
        existOrganization = organizationMapper.selectOne(queryExistWrapper);
        if(ObjectUtils.isEmpty(existOrganization)){
            dto.setCode(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode());
            dto.setMsg(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg());
            return dto;
        }
        //逻辑删除组织
        UpdateWrapper deleteWrapper = new UpdateWrapper();
        deleteWrapper.eq("id",id);
        deleteWrapper.set("is_delete",Constants.DELETE);
        organizationMapper.update(null,deleteWrapper);
        //判断是否删除所有子组织,如果不删除则将子组织parentId赋0
        if(form.getDeleteChildren().equals(Constants.DELETE_CHILDREN_ORG)){
            UpdateWrapper deleteChildrenWrapper = new UpdateWrapper();
            deleteChildrenWrapper.eq("parent_id",id);
            deleteChildrenWrapper.set("is_delete",Constants.DELETE);
            organizationMapper.update(null,deleteChildrenWrapper);
        }else{
            UpdateWrapper updateChildrenWrapper = new UpdateWrapper();
            updateChildrenWrapper.eq("parent_id",id);
            updateChildrenWrapper.set("parent_id",0);
            organizationMapper.update(null,updateChildrenWrapper);
        }
        dto.setOrganization(existOrganization);
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
    /**
    * @Description: 查询客户组织
            * @Param: [organizationQueryForm]
            * @return: com.moral.api.pojo.dto.organization.OrganizationQueryDTO
            * @Author: 陈凯裕
            * @Date: 2021/3/25
            */
    @Override
    public OrganizationQueryDTO queryOrganization(OrganizationQueryForm organizationQueryForm) {
        OrganizationQueryDTO dto = new OrganizationQueryDTO();
        //取参
        Organization organization = organizationQueryForm.formConvertEntity();
        Integer pageCount = organizationQueryForm.getPage();
        Integer size = organizationQueryForm.getSize();
        String order = organizationQueryForm.getOrder();
        String orderType = organizationQueryForm.getOrderType();
        //查询用户
        Page<Organization> page = new Page<>(pageCount,size);
        QueryWrapper<Organization> queryWrapper = new QueryWrapper<>();
        return null;
    }
}
screen-manage/src/main/resources/application-dev.yml
@@ -57,7 +57,7 @@
    filters: stat
    type: com.alibaba.druid.pool.DruidDataSource
    max-wait: 60000
    url: jdbc:mysql://39.97.177.149:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
    url: jdbc:mysql://39.97.177.149:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: chenkaiyu111
    test-on-borrow: false
@@ -125,6 +125,11 @@
      - /account/yanzhengma
      - /verificationCode/get
      - /verificationCode/verify
      - /verificationCode/config
      - /organization/insert
      - /organization/update
      - /organization/delete
AES:
  KEY:
    AD42F7787B035B7580000EF93BE20BAD