新增角色体系:包含企业联系人、企业管理员

This commit is contained in:
liangqitao
2021-12-13 18:10:54 +08:00
parent e04c7d0679
commit facbfdbe16
13 changed files with 528 additions and 197 deletions
@@ -96,7 +96,7 @@ public class ValidUtil {
if(set != null && set.size() >0 ){
for(ConstraintViolation<Object> constraintViolation : set){
// 这里循环获取错误信息,可以自定义格式
msg.append(constraintViolation.getMessage()).append("<br/>");
msg.append(constraintViolation.getMessage()).append(";");
}
}
return msg;
@@ -21,4 +21,13 @@ public class PayCompanyManagementCommon {
* 企业状态
*/
public final static String COMPANY_STATUS = "(未审核)";
/**
* 企业角色1:普通企业、2:会员企业
*/
public final static String ROLE_CODE1 = "1";
/**
* 企业角色1:普通企业、2:会员企业
*/
public final static String ROLE_CODE2 = "2";
}
@@ -9,4 +9,12 @@ public class PayContactsManagementCommon {
* 性别(1:男,2:女)
*/
public final static Integer GENDER2 = 2;
/**
* 企业用户角色1:企业联系人、2:企业管理员
*/
public final static String ROLE_CODE1 = "1";
/**
* 企业用户角色1:企业联系人、2:企业管理员
*/
public final static String ROLE_CODE2 = "2";
}
@@ -81,8 +81,6 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
@Resource
private Environment env;
@Resource
private ProjectCountService projectCountService;
@Resource
private ISysUserService sysUserService;
@Resource
private SendMessageService sendMessageService;
@@ -225,69 +223,9 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
@ApiOperation(value="企业管理-添加-会议对外开放接口", notes="企业管理-添加-会议对外开放接口")
@PostMapping(value = "/addMeeting")
public Result<?> addMeeting(@RequestBody PayCompanyManagement payCompanyManagement) {
StringBuilder msg = ValidUtil.validateAll(payCompanyManagement);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
}
payCompanyManagement.setEditTime(new Date());
try {
// 新增企业前在次校验企业名称是否存在
LambdaQueryWrapper<PayCompanyManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayCompanyManagement::getCompanyName,payCompanyManagement.getCompanyName());
PayCompanyManagement payCompanyManagementNew = payCompanyManagementService.getOne(queryWrapper);
// 存在数据
if(!Objects.isNull(payCompanyManagementNew)){
return Result.error("该企业名称已存在!");
}
}catch (Exception e){
log.info("企业管理-添加异常",e);
return Result.error("该企业名称已存在!");
}
try {
// 新增企业前在次校验信用代码是否存在
LambdaQueryWrapper<PayCompanyManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayCompanyManagement::getDutyCode,payCompanyManagement.getDutyCode());
PayCompanyManagement payCompanyManagementNew = payCompanyManagementService.getOne(queryWrapper);
// 存在数据
if(!Objects.isNull(payCompanyManagementNew)){
return Result.error("该信用代码已存在!");
}
}catch (Exception e){
log.info("企业管理-添加异常",e);
return Result.error("该信用代码已存在!");
}
if(!StringUtils.isBlank(payCompanyManagement.getCompanyPhone())){
try {
payCompanyManagement.setCompanyPhone(PasswordUtil.encrypt(payCompanyManagement.getCompanyPhone()));
}catch (Exception e){
log.error("公司电话加密异常!",e);
}
}
payCompanyManagement.setDataSource(PayCompanyManagementCommon.DATA_SOURCE2);
payCompanyManagement.setStatus(PayCompanyManagementCommon.STATUS2);
payCompanyManagementService.save(payCompanyManagement);
// 获取项目负责人,发送消息
List<SysUser> list = sysUserService.getRolesUser(Arrays.asList(RoleCommon.CWRY));
if(!CollectionUtils.isEmpty(list)){
list.forEach(item->{
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
if(!StringUtils.isBlank(item.getEmail())){
sendMessageDTO.setEmail(PasswordUtil.decrypt(item.getEmail()));
}
if(!StringUtils.isEmpty(item.getPhone())){
sendMessageDTO.setPhone(PasswordUtil.decrypt(item.getPhone()));
}
HashMap<String,String> map = new HashMap<>();
sendMessageDTO.setFromUser(env.getProperty("message.systemEmailUser"));
sendMessageDTO.setToUser(item.getUsername());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG9.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("M_OPEN_TYPE9");
sendMessageService.SendMessageService(sendMessageDTO);
});
}
payCompanyManagementService.addMeeting(payCompanyManagement);
return Result.OK("添加成功!",payCompanyManagement);
}
/**
@@ -305,6 +243,9 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
if(StringUtils.isEmpty(payCompanyManagement.getCompanyPhone())){
payCompanyManagement.setCompanyPhone(null);
}
if(StringUtils.isEmpty(payCompanyManagement.getPostalCode())){
payCompanyManagement.setPostalCode(null);
}
StringBuilder msg = ValidUtil.validateAll(payCompanyManagement);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -354,6 +295,7 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
log.error("公司电话加密异常!",e);
}
}
payCompanyManagement.setRoleCode(PayCompanyManagementCommon.ROLE_CODE1);
payCompanyManagementService.save(payCompanyManagement);
if(Objects.equals(dataSource,PayCompanyManagementCommon.DATA_SOURCE2)){
// 获取项目负责人,发送消息
@@ -447,6 +389,10 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
if(CollectionUtils.isEmpty(listPayCompanyManagement)){
return Result.error("企业不存在!");
}
// 会员企业不能删除
if(Objects.equals(listPayCompanyManagement.get(0).getRoleCode(),PayCompanyManagementCommon.ROLE_CODE2)){
return Result.error("会员企业不可删除!");
}
StringBuilder msg = new StringBuilder();
listPayCompanyManagement.forEach(p->{
LambdaQueryWrapper<PayCommonProject> queryPayCommonProject = new LambdaQueryWrapper<>();
@@ -523,7 +469,12 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
return Result.error("企业不存在!");
}
StringBuilder msg = new StringBuilder();
StringBuilder msgCode = new StringBuilder();
listPayCompanyManagement.forEach(p->{
// 会员企业不能删除
if(Objects.equals(p.getRoleCode(),PayCompanyManagementCommon.ROLE_CODE2)){
msgCode.append(p.getCompanyName() + "会员企业不可删除!");
}
LambdaQueryWrapper<PayCommonProject> queryPayCommonProject = new LambdaQueryWrapper<>();
queryPayCommonProject.eq(PayCommonProject::getChargeCompanyId,p.getId());
List<PayCommonProject> listPayCommonProject = payCommonProjectService.list(queryPayCommonProject);
@@ -560,6 +511,9 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
return;
}
});
if(!StringUtils.isEmpty(msgCode)){
return Result.error(msgCode.toString());
}
if(!StringUtils.isEmpty(msg)){
return Result.error(msg.toString());
}
@@ -921,4 +875,17 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
}
return Result.OK("文件导入成功!");
}
/**
* 会员系统同步数据
*
* @param info 会员系统同步数据
* @return
*/
@ApiOperation(value="企业管理-会员系统同步数据", notes="企业管理-会员系统同步数据")
@PostMapping(value = "/saveOrEdit")
public Result<?> saveOrEdit(@RequestParam("info") String info) {
payCompanyManagementService.saveOrEdit(info);
return Result.OK("同步成功!");
}
}
@@ -159,55 +159,7 @@ public class PayContactsManagementController extends JeroController<PayContactsM
@ApiOperation(value="联系人管理-添加-会议对外开放接口", notes="联系人管理-添加-会议对外开放接口")
@PostMapping(value = "/addMeeting")
public Result<?> addMeeting(@RequestBody PayContactsManagement payContactsManagement) {
StringBuilder msg = ValidUtil.validateAll(payContactsManagement);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
}
PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(payContactsManagement.getCompanyId());
if(Objects.isNull(payCompanyManagement)){
return Result.error("企业不存在!");
}
payContactsManagement.setCompanyName(payCompanyManagement.getCompanyName());
try {
String phone = PasswordUtil.encrypt(payContactsManagement.getPhone());
// 新增联系人前在次校验手机号是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getPhone,phone);
PayContactsManagement payContactsManagementNew = payContactsManagementService.getOne(queryWrapper);
// 手机号存在,并且编辑id与查询不同,则校验不通过
if(!Objects.isNull(payContactsManagementNew)) {
return Result.error("手机号已存在!");
}
}catch (Exception e){
log.info("联系人管理-添加异常",e);
return Result.error("手机号已存在!");
}
try {
// 新增联系人前校验同企业下联系人是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getName,payContactsManagement.getName());
queryWrapper.eq(PayContactsManagement::getCompanyId,payContactsManagement.getCompanyId());
PayContactsManagement payContactsManagementNew = payContactsManagementService.getOne(queryWrapper);
// 姓名存在,则校验不通过
if(!Objects.isNull(payContactsManagementNew)) {
return Result.error("联系人姓名已存在!");
}
}catch (Exception e){
log.info("联系人管理-添加异常",e);
return Result.error("联系人姓名已存在!");
}
// 存在数据
try {
if (!StringUtils.isBlank(payContactsManagement.getPhone())){
payContactsManagement.setPhone(PasswordUtil.encrypt(payContactsManagement.getPhone()));
}
if (!StringUtils.isBlank(payContactsManagement.getEmail())){
payContactsManagement.setEmail(PasswordUtil.encrypt(payContactsManagement.getEmail()));
}
}catch (Exception e){
log.error("手机号、邮箱加密异常!",e);
}
payContactsManagementService.save(payContactsManagement);
payContactsManagementService.addMeeting(payContactsManagement);
return Result.OK("添加成功!",payContactsManagement);
}
@@ -270,6 +222,7 @@ public class PayContactsManagementController extends JeroController<PayContactsM
}catch (Exception e){
log.error("手机号、邮箱加密异常!",e);
}
payContactsManagement.setRoleCode(PayContactsManagementCommon.ROLE_CODE1);
payContactsManagementService.save(payContactsManagement);
return Result.OK("添加成功!",payContactsManagement);
}
@@ -349,6 +302,10 @@ public class PayContactsManagementController extends JeroController<PayContactsM
updatePayContactsManagement.set(PayContactsManagement::getPostalCode,payContactsManagement.getPostalCode());
updatePayContactsManagement.set(PayContactsManagement::getRemarks,payContactsManagement.getRemarks());
payContactsManagementService.update(updatePayContactsManagement);
// 企业管理员变更需要同步会员项目
if(Objects.equals(payContactsManagement.getRoleCode(),PayContactsManagementCommon.ROLE_CODE2)){
// todo 调用会员项目接口
}
// payContactsManagementService.updateById(payContactsManagement);
return Result.OK("编辑成功!");
}
@@ -362,78 +319,8 @@ public class PayContactsManagementController extends JeroController<PayContactsM
@AutoLog(value = "联系人管理-修改",operateType = 3)
@ApiOperation(value="联系人管理-企业端-编辑", notes="联系人管理-编辑")
@PostMapping(value = "/companyEdit")
public Result<?> companyEdit(@RequestBody PayContactsManagement payContactsManagement) {
StringBuilder msg = ValidUtil.validateAll(payContactsManagement);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
}
PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(payContactsManagement.getCompanyId());
if(Objects.isNull(payCompanyManagement)){
return Result.error("企业不存在!");
}
payContactsManagement.setCompanyName(payCompanyManagement.getCompanyName());
PayContactsManagement payContactsManagementOld = payContactsManagementService.getById(payContactsManagement.getId());
if(Objects.isNull(payContactsManagementOld)){
return Result.error("联系人不存在!");
}
if(!Objects.equals(payContactsManagementOld.getName(),payContactsManagement.getName())){
return Result.error("姓名不可修改!");
}
if(!Objects.equals(PasswordUtil.decrypt(payContactsManagementOld.getPhone()),payContactsManagement.getPhone())){
return Result.error("手机号不可修改!");
}
try {
String phone = PasswordUtil.encrypt(payContactsManagement.getPhone());
// 编辑保存联系人前再次校验手机号是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getPhone,phone);
PayContactsManagement payContactsManagementNew = payContactsManagementService.getOne(queryWrapper);
// 手机号存在,并且编辑id与查询不同,则校验不通过
if(!Objects.isNull(payContactsManagementNew) && !Objects.equals(payContactsManagementNew.getId(),payContactsManagement.getId())) {
return Result.error("手机号已存在!");
}
}catch (Exception e){
log.info("联系人管理-编辑异常",e);
return Result.error("手机号已存在!");
}
try {
// 新增联系人前校验同企业下联系人是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getName,payContactsManagement.getName());
queryWrapper.eq(PayContactsManagement::getCompanyId,payContactsManagement.getCompanyId());
PayContactsManagement payContactsManagementNew = payContactsManagementService.getOne(queryWrapper);
// 姓名存在,并且编辑id与查询不同,则校验不通过
if(!Objects.isNull(payContactsManagementNew) && !Objects.equals(payContactsManagementNew.getId(),payContactsManagement.getId())) {
return Result.error("联系人姓名已存在!");
}
}catch (Exception e){
log.info("联系人管理-编辑异常",e);
return Result.error("联系人姓名已存在!");
}
try {
if (!StringUtils.isBlank(payContactsManagement.getPhone())){
payContactsManagement.setPhone(PasswordUtil.encrypt(payContactsManagement.getPhone()));
}
if (!StringUtils.isBlank(payContactsManagement.getEmail())){
payContactsManagement.setEmail(PasswordUtil.encrypt(payContactsManagement.getEmail()));
}
}catch (Exception e){
log.error("手机号、邮箱加密异常!",e);
}
LambdaUpdateWrapper<PayContactsManagement> updatePayContactsManagement = new LambdaUpdateWrapper<>();
updatePayContactsManagement.eq(PayContactsManagement::getId,payContactsManagement.getId());
updatePayContactsManagement.set(PayContactsManagement::getCompanyName,payContactsManagement.getCompanyName());
updatePayContactsManagement.set(PayContactsManagement::getCompanyId,payContactsManagement.getCompanyId());
updatePayContactsManagement.set(PayContactsManagement::getName,payContactsManagement.getName());
updatePayContactsManagement.set(PayContactsManagement::getGender,StringUtils.isBlank(payContactsManagement.getGender()) ? null : payContactsManagement.getGender());
updatePayContactsManagement.set(PayContactsManagement::getPost,payContactsManagement.getPost());
updatePayContactsManagement.set(PayContactsManagement::getPhone,payContactsManagement.getPhone());
updatePayContactsManagement.set(PayContactsManagement::getEmail,payContactsManagement.getEmail());
updatePayContactsManagement.set(PayContactsManagement::getContactAddress,payContactsManagement.getContactAddress());
updatePayContactsManagement.set(PayContactsManagement::getPostalCode,payContactsManagement.getPostalCode());
updatePayContactsManagement.set(PayContactsManagement::getRemarks,payContactsManagement.getRemarks());
payContactsManagementService.update(updatePayContactsManagement);
// payContactsManagementService.updateById(payContactsManagement);
public Result<?> contactsEdit(@RequestBody PayContactsManagement payContactsManagement) {
payContactsManagementService.contactsEdit(payContactsManagement);
return Result.OK("编辑成功!");
}
@@ -457,6 +344,10 @@ public class PayContactsManagementController extends JeroController<PayContactsM
if(CollectionUtils.isEmpty(listPayContactsManagement)){
return Result.error("联系人不存在!");
}
// 企业管理员验证
if(Objects.equals(listPayContactsManagement.get(0).getRoleCode(),PayContactsManagementCommon.ROLE_CODE2)){
return Result.error("企业管理员不可删除!");
}
StringBuilder msg = new StringBuilder();
listPayContactsManagement.forEach(p->{
LambdaQueryWrapper<PayCommonProject> queryPayCommonProject = new LambdaQueryWrapper<>();
@@ -535,7 +426,12 @@ public class PayContactsManagementController extends JeroController<PayContactsM
return Result.error("联系人不存在!");
}
StringBuilder msg = new StringBuilder();
StringBuilder msgCode = new StringBuilder();
listPayContactsManagement.forEach(p->{
// 企业管理员验证
if(Objects.equals(listPayContactsManagement.get(0).getRoleCode(),PayContactsManagementCommon.ROLE_CODE2)){
msgCode.append(p.getName() + "企业管理员不可删除!");
}
LambdaQueryWrapper<PayCommonProject> queryPayCommonProject = new LambdaQueryWrapper<>();
queryPayCommonProject.eq(PayCommonProject::getContactsId,p.getId()).or().eq(PayCommonProject::getMailContactsId,p.getId());
List<PayCommonProject> listPayCommonProject = payCommonProjectService.list(queryPayCommonProject);
@@ -575,6 +471,9 @@ public class PayContactsManagementController extends JeroController<PayContactsM
return;
}
});
if(!StringUtils.isEmpty(msgCode)){
return Result.error(msgCode.toString());
}
if(!StringUtils.isEmpty(msg)){
return Result.error(msg.toString());
}
@@ -1028,6 +927,8 @@ public class PayContactsManagementController extends JeroController<PayContactsM
if (!StringUtils.isBlank(p.getEmail())){
p.setEmail(PasswordUtil.encrypt(p.getEmail()));
}
// 设置为企业联系人
p.setRoleCode(PayContactsManagementCommon.ROLE_CODE1);
});
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -0,0 +1,49 @@
package com.jero.company.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Description: 会员信息表
* @Author: jeecg-boot
* @Date: 2020-12-24
* @Version: V1.0
*/
@Data
@ApiModel(value="tb_member_info对象", description="会员信息表")
public class MemberInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**用户名称*/
@ApiModelProperty(value = "用户名")
private String userName;
/**真实姓名*/
@ApiModelProperty(value = "真实姓名")
private String realname;
/**单位全称*/
@ApiModelProperty(value = "单位全称")
private String companyName;
/**联系人*/
@ApiModelProperty(value = "联系人")
private String liaisonMan;
/**联系人邮箱*/
@ApiModelProperty(value = "联系人邮箱")
private String email;
/**联系人固定电话*/
@ApiModelProperty(value = "联系人固定电话")
private String phone;
/**联系人手机*/
@ApiModelProperty(value = "联系人手机")
private String mobile;
/**通讯地址*/
@ApiModelProperty(value = "通讯地址")
private String address;
/**邮编*/
@ApiModelProperty(value = "邮编")
private String postcode;
/**税号*/
@ApiModelProperty(value = "税号")
private String taxNo;
}
@@ -0,0 +1,61 @@
package com.jero.company.entity;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Description: 企业+用户信息
* @Author: jeecg-boot
* @Date: 2021-08-25
* @Version: V1.0
*/
@Data
public class PayCompanyAndContactsManagement implements Serializable {
private static final long serialVersionUID = 1L;
/**企业名称*/
@ApiModelProperty(value = "企业名称")
private String companyName;
/**公司地址*/
@ApiModelProperty(value = "公司地址")
private String companyAddress;
/**公司电话*/
@ApiModelProperty(value = "公司电话")
private String companyPhone;
/**银行户名*/
@ApiModelProperty(value = "银行户名")
private String bankAccountName;
/**开户行*/
@ApiModelProperty(value = "开户行")
private String openingBank;
/**银行账号*/
@ApiModelProperty(value = "银行账号")
private String bankAccount;
/**信用代码*/
@ApiModelProperty(value = "信用代码")
private String dutyCode;
/**姓名*/
@ApiModelProperty(value = "姓名")
private String name;
/**性别(1:男,2:女)*/
@ApiModelProperty(value = "性别")
@Dict(dicCode = "sex")
private String gender;
/**职务*/
@ApiModelProperty(value = "职务")
private String post;
/**手机号*/
@ApiModelProperty(value = "手机号")
private String phone;
/**邮箱*/
@ApiModelProperty(value = "邮箱")
private String email;
/**通讯地址*/
@ApiModelProperty(value = "通讯地址")
private String contactAddress;
/**邮政编码*/
@ApiModelProperty(value = "邮政编码")
private String postalCode;
}
@@ -85,6 +85,9 @@ public class PayCompanyManagement implements Serializable {
@Size(max = 50, message = "银行账号长度不能大于50个字符")
@Pattern(regexp = "^[0-9]*$",message = "银行账号格式错误")
private String bankAccount;
/**企业角色1:普通企业、2:会员企业*/
@ApiModelProperty(value = "企业角色")
private String roleCode;
/**审核状态(1:通过,2:待审核)财务人员添加企业不需要审核默认是通过状态*/
@ApiModelProperty(value = "审核状态(1:通过,2:待审核)财务人员添加企业不需要审核默认是通过状态")
@Max(2)
@@ -52,6 +52,10 @@ public class PayContactsManagement implements Serializable {
@NotEmpty(message = "姓名不能为空")
@Size(max = 50, message = "姓名长度不能大于50个字符")
private String name;
/**企业用户角色1:企业联系人、2:企业管理员*/
// @Excel(name = "企业用户角色", width = 15)
@ApiModelProperty(value = "企业用户角色")
private String roleCode;
/**性别(1:男,2:女)*/
@Excel(name = "性别", width = 15,dicCode="sex")
@ApiModelProperty(value = "性别")
@@ -13,6 +13,16 @@ import java.util.List;
* @Version: V1.0
*/
public interface IPayCompanyManagementService extends IService<PayCompanyManagement> {
/**
* @Description 企业管理-添加-会议对外开放接口
* @Author lqt
* @Date 2021/8/26
* @Param payCompanyManagement
* @Return
* @Exception
*/
void addMeeting(PayCompanyManagement payCompanyManagement);
/**
* @Description 更新数据
* @Author lqt
@@ -83,4 +93,9 @@ public interface IPayCompanyManagementService extends IService<PayCompanyManagem
*/
void audit(String id);
/**
* 会员系统同步数据
*/
void saveOrEdit(String info);
}
@@ -1,11 +1,8 @@
package com.jero.company.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.vo.CompanyLoginVO;
@@ -19,6 +16,25 @@ import java.util.List;
*/
public interface IPayContactsManagementService extends IService<PayContactsManagement> {
/**
* @Description 添加-会议对外开放接口
* @Author lqt
* @Date 2021/8/27
* @Param payContactsManagement
* @Return
* @Exception
*/
void addMeeting(PayContactsManagement payContactsManagement);
/**
* @Description 编辑-会议对外开放接口
* @Author lqt
* @Date 2021/8/27
* @Param payContactsManagement
* @Return
* @Exception
*/
void contactsEdit(PayContactsManagement payContactsManagement);
/**
* @Description 分页查询
* @Author lqt
@@ -1,14 +1,20 @@
package com.jero.company.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.common.RoleCommon;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.ManagementMessageEnums;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.company.common.PayCompanyManagementCommon;
import com.jero.company.entity.PayCompanyAndContactsManagement;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.mapper.PayCompanyManagementMapper;
@@ -20,6 +26,8 @@ import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.entity.PayCommonProject;
@@ -28,15 +36,15 @@ import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -45,6 +53,7 @@ import java.util.stream.Collectors;
* @Date: 2021-08-25
* @Version: V1.0
*/
@Slf4j
@Service
public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManagementMapper, PayCompanyManagement> implements IPayCompanyManagementService {
@@ -68,6 +77,87 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
private IPayPackCompanyService payPackCompanyService;
@Resource
private ProjectCountService projectCountService;
@Resource
private ISysUserService sysUserService;
@Resource
private SendMessageService sendMessageService;
@Resource
private Environment env;
@Override
public void addMeeting(PayCompanyManagement payCompanyManagement) {
if(StringUtils.isEmpty(payCompanyManagement.getCompanyPhone())){
payCompanyManagement.setCompanyPhone(null);
}
if(StringUtils.isEmpty(payCompanyManagement.getPostalCode())){
payCompanyManagement.setPostalCode(null);
}
StringBuilder msg = ValidUtil.validateAll(payCompanyManagement);
if(!StringUtils.isBlank(msg)){
throw new JeroBootException(msg.toString());
}
payCompanyManagement.setEditTime(new Date());
try {
// 新增企业前在次校验企业名称是否存在
LambdaQueryWrapper<PayCompanyManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayCompanyManagement::getCompanyName,payCompanyManagement.getCompanyName());
PayCompanyManagement payCompanyManagementNew = payCompanyManagementService.getOne(queryWrapper);
// 存在数据
if(!Objects.isNull(payCompanyManagementNew)){
throw new JeroBootException("该企业名称已存在!");
}
}catch (Exception e){
log.info("企业管理-添加异常",e);
throw new JeroBootException("该企业名称已存在!");
}
try {
// 新增企业前在次校验信用代码是否存在
LambdaQueryWrapper<PayCompanyManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayCompanyManagement::getDutyCode,payCompanyManagement.getDutyCode());
PayCompanyManagement payCompanyManagementNew = payCompanyManagementService.getOne(queryWrapper);
// 存在数据
if(!Objects.isNull(payCompanyManagementNew)){
throw new JeroBootException("该信用代码已存在!");
}
}catch (Exception e){
log.info("企业管理-添加异常",e);
throw new JeroBootException("该信用代码已存在!");
}
if(!StringUtils.isBlank(payCompanyManagement.getCompanyPhone())){
try {
payCompanyManagement.setCompanyPhone(PasswordUtil.encrypt(payCompanyManagement.getCompanyPhone()));
}catch (Exception e){
log.error("公司电话加密异常!",e);
}
}
payCompanyManagement.setDataSource(PayCompanyManagementCommon.DATA_SOURCE2);
payCompanyManagement.setStatus(PayCompanyManagementCommon.STATUS2);
payCompanyManagement.setRoleCode(PayCompanyManagementCommon.ROLE_CODE1);
payCompanyManagementService.save(payCompanyManagement);
// 获取项目负责人,发送消息
List<SysUser> list = sysUserService.getRolesUser(Arrays.asList(RoleCommon.CWRY));
if(!CollectionUtils.isEmpty(list)){
list.forEach(item->{
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
if(!StringUtils.isBlank(item.getEmail())){
sendMessageDTO.setEmail(PasswordUtil.decrypt(item.getEmail()));
}
if(!StringUtils.isEmpty(item.getPhone())){
sendMessageDTO.setPhone(PasswordUtil.decrypt(item.getPhone()));
}
HashMap<String,String> map = new HashMap<>();
sendMessageDTO.setFromUser(env.getProperty("message.systemEmailUser"));
sendMessageDTO.setToUser(item.getUsername());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG9.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("M_OPEN_TYPE9");
sendMessageService.SendMessageService(sendMessageDTO);
});
}
}
@Override
@Transactional
@@ -143,6 +233,10 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
if(Objects.isNull(payCompanyManagementOld)){
throw new JeroBootException("企业不存在!");
}
// 会员企业编辑同步会员系统
if(Objects.equals(payCompanyManagementOld.getRoleCode(),PayCompanyManagementCommon.ROLE_CODE2)){
// todo 同步会员系统
}
if(!Objects.equals(payCompanyManagementOld.getCompanyName(),payCompanyManagement.getCompanyName())){
throw new JeroBootException("企业名称不可修改!");
}
@@ -173,6 +267,7 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
if(Objects.equals(payCompanyManagementOld.getStatus(),PayCompanyManagementCommon.STATUS1)){
payCompanyManagement.setEditTime(new Date());
}
payCompanyManagementService.updateById(payCompanyManagement);
}
@@ -197,6 +292,13 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
}
payCompanyManagement.setStatus(status);
PayCompanyManagement payCompanyManagementOld = payCompanyManagementService.getById(payCompanyManagement.getId());
if(Objects.isNull(payCompanyManagementOld)){
throw new JeroBootException("企业不存在!");
}
// 会员企业编辑同步会员系统
if(Objects.equals(payCompanyManagementOld.getRoleCode(),PayCompanyManagementCommon.ROLE_CODE2)){
// todo 同步会员系统
}
try {
// 编辑保存企业前再次校验企业名称是否存在
LambdaQueryWrapper<PayCompanyManagement> queryWrapper = new LambdaQueryWrapper<>();
@@ -253,6 +355,62 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
// 批量变更企业名称
updateBatchData(payCompanyManagement);
}
@Override
public void saveOrEdit(String info) {
PayCompanyManagement payCompanyManagement = JSONObject.parseObject(info,PayCompanyManagement.class);
PayContactsManagement payContactsManagement = JSONObject.parseObject(info,PayContactsManagement.class);
if(Objects.isNull(payCompanyManagement) || Objects.isNull(payContactsManagement)){
throw new JeroBootException("数据为空!");
}
payCompanyManagement.setPostalCode(null);
LambdaQueryWrapper<PayCompanyManagement> queryPayCompanyManagement = new LambdaQueryWrapper<>();
queryPayCompanyManagement.eq(PayCompanyManagement::getCompanyName,payCompanyManagement.getCompanyName());
queryPayCompanyManagement.last("limit 1");
List<PayCompanyManagement> listPayCompanyManagement = payCompanyManagementService.list(queryPayCompanyManagement);
LambdaQueryWrapper<PayContactsManagement> queryPayContactsManagement = new LambdaQueryWrapper<>();
queryPayContactsManagement.eq(PayContactsManagement::getPhone,payContactsManagement.getPhone());
queryPayContactsManagement.last("limit 1");
List<PayContactsManagement> listPayContactsManagement = payContactsManagementService.list(queryPayContactsManagement);
if(!StringUtils.isBlank(payCompanyManagement.getCompanyPhone())){
payCompanyManagement.setCompanyPhone(PasswordUtil.decrypt(payCompanyManagement.getCompanyPhone()));
}
if (!StringUtils.isBlank(payContactsManagement.getPhone())){
payContactsManagement.setPhone(PasswordUtil.decrypt(payContactsManagement.getPhone()));
}
if (!StringUtils.isBlank(payContactsManagement.getEmail())){
payContactsManagement.setEmail(PasswordUtil.decrypt(payContactsManagement.getEmail()));
}
// 新增
if(CollectionUtils.isEmpty(listPayCompanyManagement)){
// 新增,如果存在用户,返回异常
if(!CollectionUtils.isEmpty(listPayContactsManagement)){
throw new JeroBootException("此用户已在其他企业下");
}
addMeeting(payCompanyManagement);
payContactsManagementService.addMeeting(payContactsManagement);
}else{// 编辑
// 如果存在用户
if(!CollectionUtils.isEmpty(listPayContactsManagement)){
// 企业不同,返回异常
if(!Objects.equals(listPayContactsManagement.get(0).getCompanyId(),listPayCompanyManagement.get(0).getId())){
throw new JeroBootException("此用户已在其他企业下");
}else{
payContactsManagement.setCompanyId(listPayCompanyManagement.get(0).getId());
payContactsManagement.setId(listPayContactsManagement.get(0).getId());
payContactsManagementService.contactsEdit(payContactsManagement);
}
}else{
payContactsManagementService.addMeeting(payContactsManagement);
}
payCompanyManagement.setId(listPayCompanyManagement.get(0).getId());
companyEdit(payCompanyManagement);
}
}
/**
* @Description 批量更新数据
* @Author lqt
@@ -2,29 +2,33 @@ package com.jero.company.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.util.JwtUtil;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.*;
import com.jero.company.common.PayContactsManagementCommon;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.mapper.PayContactsManagementMapper;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.company.vo.CompanyLoginVO;
import com.jero.modules.system.entity.SysUser;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
/**
* @Description: pay_contacts_management
@@ -32,17 +36,153 @@ import java.util.List;
* @Date: 2021-08-25
* @Version: V1.0
*/
@Slf4j
@Service
public class PayContactsManagementServiceImpl extends ServiceImpl<PayContactsManagementMapper, PayContactsManagement> implements IPayContactsManagementService {
@Autowired
@Resource
IPayContactsManagementService iPayContactsManagementService;
@Resource
PayContactsManagementMapper payContactsManagementMapper;
@Resource
private RedisUtil redisUtil;
@Autowired
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private IPayCompanyManagementService payCompanyManagementService;
@Override
public void addMeeting(PayContactsManagement payContactsManagement) {
StringBuilder msg = ValidUtil.validateAll(payContactsManagement);
if(!StringUtils.isBlank(msg)){
throw new JeroBootException(msg.toString());
}
PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(payContactsManagement.getCompanyId());
if(Objects.isNull(payCompanyManagement)){
throw new JeroBootException("企业不存在!");
}
payContactsManagement.setCompanyName(payCompanyManagement.getCompanyName());
try {
String phone = PasswordUtil.encrypt(payContactsManagement.getPhone());
// 新增联系人前在次校验手机号是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getPhone,phone);
PayContactsManagement payContactsManagementNew = getOne(queryWrapper);
// 手机号存在,并且编辑id与查询不同,则校验不通过
if(!Objects.isNull(payContactsManagementNew)) {
throw new JeroBootException("手机号已存在!");
}
}catch (Exception e){
log.info("联系人管理-添加异常",e);
throw new JeroBootException("手机号已存在!");
}
try {
// 新增联系人前校验同企业下联系人是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getName,payContactsManagement.getName());
queryWrapper.eq(PayContactsManagement::getCompanyId,payContactsManagement.getCompanyId());
PayContactsManagement payContactsManagementNew = getOne(queryWrapper);
// 姓名存在,则校验不通过
if(!Objects.isNull(payContactsManagementNew)) {
throw new JeroBootException("联系人姓名已存在!");
}
}catch (Exception e){
log.info("联系人管理-添加异常",e);
throw new JeroBootException("联系人姓名已存在!");
}
// 存在数据
try {
if (!StringUtils.isBlank(payContactsManagement.getPhone())){
payContactsManagement.setPhone(PasswordUtil.encrypt(payContactsManagement.getPhone()));
}
if (!StringUtils.isBlank(payContactsManagement.getEmail())){
payContactsManagement.setEmail(PasswordUtil.encrypt(payContactsManagement.getEmail()));
}
}catch (Exception e){
log.error("手机号、邮箱加密异常!",e);
}
payContactsManagement.setRoleCode(PayContactsManagementCommon.ROLE_CODE1);
save(payContactsManagement);
}
@Override
public void contactsEdit(PayContactsManagement payContactsManagement) {
StringBuilder msg = ValidUtil.validateAll(payContactsManagement);
if(!StringUtils.isBlank(msg)){
throw new JeroBootException(msg.toString());
}
PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(payContactsManagement.getCompanyId());
if(Objects.isNull(payCompanyManagement)){
throw new JeroBootException("企业不存在!");
}
payContactsManagement.setCompanyName(payCompanyManagement.getCompanyName());
PayContactsManagement payContactsManagementOld = getById(payContactsManagement.getId());
if(Objects.isNull(payContactsManagementOld)){
throw new JeroBootException("联系人不存在!");
}
if(!Objects.equals(payContactsManagementOld.getName(),payContactsManagement.getName())){
throw new JeroBootException("姓名不可修改!");
}
if(!Objects.equals(PasswordUtil.decrypt(payContactsManagementOld.getPhone()),payContactsManagement.getPhone())){
throw new JeroBootException("手机号不可修改!");
}
try {
String phone = PasswordUtil.encrypt(payContactsManagement.getPhone());
// 编辑保存联系人前再次校验手机号是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getPhone,phone);
PayContactsManagement payContactsManagementNew = getOne(queryWrapper);
// 手机号存在,并且编辑id与查询不同,则校验不通过
if(!Objects.isNull(payContactsManagementNew) && !Objects.equals(payContactsManagementNew.getId(),payContactsManagement.getId())) {
throw new JeroBootException("手机号已存在!");
}
}catch (Exception e){
log.info("联系人管理-编辑异常",e);
throw new JeroBootException("手机号已存在!");
}
try {
// 新增联系人前校验同企业下联系人是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getName,payContactsManagement.getName());
queryWrapper.eq(PayContactsManagement::getCompanyId,payContactsManagement.getCompanyId());
PayContactsManagement payContactsManagementNew = getOne(queryWrapper);
// 姓名存在,并且编辑id与查询不同,则校验不通过
if(!Objects.isNull(payContactsManagementNew) && !Objects.equals(payContactsManagementNew.getId(),payContactsManagement.getId())) {
throw new JeroBootException("联系人姓名已存在!");
}
}catch (Exception e){
log.info("联系人管理-编辑异常",e);
throw new JeroBootException("联系人姓名已存在!");
}
try {
if (!StringUtils.isBlank(payContactsManagement.getPhone())){
payContactsManagement.setPhone(PasswordUtil.encrypt(payContactsManagement.getPhone()));
}
if (!StringUtils.isBlank(payContactsManagement.getEmail())){
payContactsManagement.setEmail(PasswordUtil.encrypt(payContactsManagement.getEmail()));
}
}catch (Exception e){
log.error("手机号、邮箱加密异常!",e);
}
LambdaUpdateWrapper<PayContactsManagement> updatePayContactsManagement = new LambdaUpdateWrapper<>();
updatePayContactsManagement.eq(PayContactsManagement::getId,payContactsManagement.getId());
updatePayContactsManagement.set(PayContactsManagement::getCompanyName,payContactsManagement.getCompanyName());
updatePayContactsManagement.set(PayContactsManagement::getCompanyId,payContactsManagement.getCompanyId());
updatePayContactsManagement.set(PayContactsManagement::getName,payContactsManagement.getName());
updatePayContactsManagement.set(PayContactsManagement::getGender,StringUtils.isBlank(payContactsManagement.getGender()) ? null : payContactsManagement.getGender());
updatePayContactsManagement.set(PayContactsManagement::getPost,payContactsManagement.getPost());
updatePayContactsManagement.set(PayContactsManagement::getPhone,payContactsManagement.getPhone());
updatePayContactsManagement.set(PayContactsManagement::getEmail,payContactsManagement.getEmail());
updatePayContactsManagement.set(PayContactsManagement::getContactAddress,payContactsManagement.getContactAddress());
updatePayContactsManagement.set(PayContactsManagement::getPostalCode,payContactsManagement.getPostalCode());
updatePayContactsManagement.set(PayContactsManagement::getRemarks,payContactsManagement.getRemarks());
update(updatePayContactsManagement);
// payContactsManagementService.updateById(payContactsManagement);
// 企业管理员变更需要同步会员项目
if(Objects.equals(payContactsManagement.getRoleCode(),PayContactsManagementCommon.ROLE_CODE2)){
// todo 调用会员项目接口
}
}
@Override
public IPage<PayContactsManagement> queryPageList(Page<PayContactsManagement> page, PayContactsManagement payContactsManagement) {