add [会员项目成员增加]

This commit is contained in:
lijiarao
2021-08-27 16:43:53 +08:00
parent 13b3350667
commit 18302f2217
8 changed files with 128 additions and 26 deletions
@@ -2,7 +2,7 @@ package com.jero.common.util;
import com.jero.common.exception.JeroBootException;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.validator.HibernateValidator;
import org.apache.commons.lang3.StringUtils;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
@@ -21,11 +21,8 @@ public class ValidUtil {
private static Validator validator;
static {
validator = Validation.byProvider(HibernateValidator.class)
.configure()
// 快速失败
.failFast(true)
.buildValidatorFactory().getValidator();
validator = Validation.buildDefaultValidatorFactory()
.getValidator();
}
private static Validator validatorAll;
@@ -42,9 +39,13 @@ public class ValidUtil {
* @param groups 待校验的组
*/
public static void validate(Object object, Class<?>... groups){
Set<ConstraintViolation<Object>> set = validator.validate(object,groups);
StringBuilder msg = new StringBuilder();
Set<ConstraintViolation<Object>> set = validator.validate(object, groups);
for (ConstraintViolation<Object> constraintViolation : set) {
throw new JeroBootException(constraintViolation.getMessage());
msg.append(constraintViolation.getMessage()).append("</br>");
}
if (StringUtils.isNotBlank(msg)) {
throw new JeroBootException(msg.toString());
}
}
@@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.ValidUtil;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.service.IPayMemberProjectSubitemService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -69,7 +70,8 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
@AutoLog(value = "会员项目成员表-添加")
@ApiOperation(value="会员项目成员表-添加", notes="会员项目成员表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody PayMemberProjectSubitem payMemberProjectSubitem) {
public Result<?> add(@RequestBody PayMemberProjectSubitem payMemberProjectSubitem) {
ValidUtil.validate(payMemberProjectSubitem);
memberProjectSubitemService.add(payMemberProjectSubitem);
return Result.OK("添加成功!");
}
@@ -1,10 +1,15 @@
package com.jero.member.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict;
import com.jero.modules.system.volid.group.*;
import com.jero.valid.group.ChargeNotice;
import com.jero.valid.group.Contract;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
@@ -14,6 +19,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.*;
/**
* @Description: 会员项目成员表
@@ -49,7 +56,7 @@ public class PayMemberProjectSubitem implements Serializable {
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.time.LocalDate createTime;
private Date createTime;
/**
* 更新人
@@ -63,13 +70,15 @@ public class PayMemberProjectSubitem implements Serializable {
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.time.LocalDate updateTime;
private Date updateTime;
/**
* 会员项目id
*/
@Excel(name = "会员项目id", width = 15)
@ApiModelProperty(value = "会员项目id")
@NotBlank(message = "会员项目id不能为空")
@Size(max = 50,message = "会员项目id最大为50字符")
private String projectId;
/**
@@ -77,6 +86,8 @@ public class PayMemberProjectSubitem implements Serializable {
*/
@Excel(name = "企业id", width = 15)
@ApiModelProperty(value = "企业id")
@NotBlank(message = "企业id不能为空")
@Size(max = 50,message = "企业id最大为50字符")
private String companyId;
/**
@@ -91,6 +102,8 @@ public class PayMemberProjectSubitem implements Serializable {
*/
@Excel(name = "企业联系人id", width = 15)
@ApiModelProperty(value = "企业联系人id")
@NotBlank(message = "企业联系人id不能为空")
@Size(max = 50,message = "企业联系人id最大为50字符")
private String companyContactId;
/**
@@ -105,6 +118,7 @@ public class PayMemberProjectSubitem implements Serializable {
*/
@Excel(name = "邮寄联系人id", width = 15)
@ApiModelProperty(value = "邮寄联系人id")
@NotBlank(message = "邮寄联系人不能为空")
private String postContactId;
/**
@@ -119,13 +133,13 @@ public class PayMemberProjectSubitem implements Serializable {
*/
@Excel(name = "应收金额", width = 15)
@ApiModelProperty(value = "应收金额")
@NotNull(message = "应收金额不能为空")
private Integer amountReceivable;
/**
* 实收金额
*/
@Excel(name = "实收金额", width = 15)
@ApiModelProperty(value = "实收金额")
private Integer paidAmount;
@@ -133,80 +147,85 @@ public class PayMemberProjectSubitem implements Serializable {
* 来款方式
*/
@Excel(name = "来款方式", width = 15)
@ApiModelProperty(value = "来款方式")
@ApiModelProperty(value = "来款方式(2:合同,3:收费通知)")
@Dict(dicCode = "payment_type")
@Min(2)
@Max(3)
private Integer paymentMethod;
/**
* 收费通知号
*/
@Excel(name = "收费通知号", width = 15)
@ApiModelProperty(value = "收费通知号")
@NotBlank(message = "收费通知号不能为空",groups = ChargeNotice.class)
@Size(max = 50,message = "收费通知号最大为50字符",groups = ChargeNotice.class)
private String chargeNoticeNo;
/**
* 收费通知文件id
*/
@Excel(name = "收费通知文件id", width = 15)
@ApiModelProperty(value = "收费通知文件id")
@NotBlank(message = "收费通知文件id不能为空",groups = ChargeNotice.class)
@Size(max = 50,message = "收费通知文件id最大为50字符",groups = ChargeNotice.class)
private String chargeNoticeFileId;
/**
* 合同号
*/
@Excel(name = "合同号", width = 15)
@ApiModelProperty(value = "合同号")
@NotBlank(message = "合同号不能为空",groups = Contract.class)
@Size(max = 50,message = "合同号最大为50字符",groups = Contract.class)
private String contractNo;
/**
* 备注
*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
@Size(max = 200, message = "备注最大为200个字符", groups = GroupE.class)
private String remark;
/**
* 打包
*/
@Excel(name = "打包", width = 15)
@ApiModelProperty(value = "打包")
@Dict(dicCode = "yn")
private Integer pack;
/**
* 需要发票
*/
@Excel(name = "需要发票", width = 15)
@ApiModelProperty(value = "需要发票")
@Dict(dicCode = "invoice_type")
private Integer needInvoice;
/**
* 到账
*/
@Excel(name = "到账", width = 15)
@ApiModelProperty(value = "到账")
@Dict(dicCode = "yn")
private Integer inAccount;
/**
* 开票
*/
@Excel(name = "开票", width = 15)
@ApiModelProperty(value = "开票")
@Dict(dicCode = "yn")
private Integer makeInvoice;
/**
* 邮寄
*/
@Excel(name = "邮寄", width = 15)
@ApiModelProperty(value = "邮寄")
@Dict(dicCode = "yn")
private Integer mail;
}
@@ -36,7 +36,7 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
@Override
public void add(PayMemberProject payMemberProject) {
//判断项目名称
LambdaQueryWrapper<PayMemberProject> wrapper = new LambdaQueryWrapper();
LambdaQueryWrapper<PayMemberProject> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMemberProject::getProjectName,payMemberProject.getProjectName());
Integer integer = baseMapper.selectCount(wrapper);
if (integer>0){
@@ -1,12 +1,23 @@
package com.jero.member.service.impl;
import com.jero.common.exception.JeroBootException;
import com.jero.common.util.ValidUtil;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.mapper.PayCompanyManagementMapper;
import com.jero.company.mapper.PayContactsManagementMapper;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.modules.system.volid.group.Group;
import com.jero.valid.group.ChargeNotice;
import com.jero.valid.group.Contract;
import org.springframework.stereotype.Service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.annotation.Resource;
/**
* @Description: 会员项目成员表
* @Author: jero-boot
@@ -15,13 +26,64 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
*/
@Service
public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMemberProjectSubitemMapper, PayMemberProjectSubitem> implements IPayMemberProjectSubitemService {
@Resource
private PayCompanyManagementMapper companyManagementMapper;
@Resource
private PayContactsManagementMapper contactsManagementMapper;
/**
* 保存
*/
@Override
public void add(PayMemberProjectSubitem payMemberProjectSubitem) {
save(payMemberProjectSubitem);
//校验企业
String companyId = payMemberProjectSubitem.getCompanyId();
PayCompanyManagement payCompanyManagement = companyManagementMapper.selectById(companyId);
if (payCompanyManagement==null){
throw new JeroBootException("企业不存在");
}else {
payMemberProjectSubitem.setCompanyName(payCompanyManagement.getCompanyName());
}
//校验企业联系人
String companyContactId = payMemberProjectSubitem.getCompanyContactId();
PayContactsManagement payContactsManagement = contactsManagementMapper.selectById(companyContactId);
if (payContactsManagement==null){
throw new JeroBootException("企业联系人不存在");
}else {
//校验是否是选择的企业的联系人
String companyId1 = payContactsManagement.getCompanyId();
if (companyId1.equals(companyId)){
payMemberProjectSubitem.setCompanyContactName(payContactsManagement.getName());
}else {
throw new JeroBootException("企业联系人不是所选企业的企业联系人");
}
}
//校验邮寄联系人
String postContactId = payMemberProjectSubitem.getPostContactId();
PayContactsManagement payContactsManagement1 = contactsManagementMapper.selectById(postContactId);
if (payContactsManagement1==null){
throw new JeroBootException("邮寄联系人不存在");
}else {
//校验是否是选择的企业的联系人
String companyId1 = payContactsManagement1.getCompanyId();
if (companyId1.equals(companyId)){
payMemberProjectSubitem.setPostContactName(payContactsManagement1.getName());
}else {
throw new JeroBootException("邮寄联系人不是所选企业的企业联系人");
}
}
//校验来款方式
Integer paymentMethod = payMemberProjectSubitem.getPaymentMethod();
//合同
if (paymentMethod.equals(2)){
ValidUtil.validate(payMemberProjectSubitem, Contract.class);
}
//收费通知
if (paymentMethod.equals(3)){
ValidUtil.validate(payMemberProjectSubitem, ChargeNotice.class);
}
save(payMemberProjectSubitem);
}
/**
@@ -0,0 +1,9 @@
package com.jero.valid.group;
/**
* 收费通知组
* @author liJiaRao
* @date 2021-08-27 14:28
*/
public @interface ChargeNotice {
}
@@ -0,0 +1,9 @@
package com.jero.valid.group;
/**
* 合同组
* @author liJiaRao
* @date 2021-08-27 14:29
*/
public @interface Contract {
}
@@ -114,7 +114,7 @@ public class SysUserController {
public Result<IPage<SysUser>> queryPageList(SysUser user,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {
Result<IPage<SysUser>> result = new Result<IPage<SysUser>>();
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap());
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap());
//TODO 外部模拟登陆临时账号,列表不显示
queryWrapper.ne("username","_reserve_user_external");
Page<SysUser> page = new Page<SysUser>(pageNo, pageSize);