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> @@ -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,6 +231,8 @@ 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); @@ -256,6 +259,15 @@ 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,8 +345,9 @@ QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>(); wrapper.eq("id", accountId); manageAccountMapper.update(manageAccount, wrapper); //更新ManageAccountRole表 //如果角色有变动,则更新ManageAccountRole表 /*删除该用户的所有角色*/ if (!ObjectUtils.isEmpty(roleIds)) { QueryWrapper<ManageAccountRole> deleteWrapper = new QueryWrapper<>(); deleteWrapper.eq("account_id", accountId); manageAccountRoleMapper.delete(deleteWrapper); @@ -342,10 +360,11 @@ } //获取用户所有角色 List<ManageRole> manageRoles = manageRoleMapper.selectBatchIds(roleIds); accountUpdateDTO.setRoles(manageRoles); } //封装返回结果 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