diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java index 0eac59e2..ea5f1eee 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java @@ -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> set = validator.validate(object,groups); + StringBuilder msg = new StringBuilder(); + Set> set = validator.validate(object, groups); for (ConstraintViolation constraintViolation : set) { - throw new JeroBootException(constraintViolation.getMessage()); + msg.append(constraintViolation.getMessage()).append("
"); + } + if (StringUtils.isNotBlank(msg)) { + throw new JeroBootException(msg.toString()); } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java index 95cdd0ef..f4d21d38 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java @@ -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 add(@Validated @RequestBody PayMemberProjectSubitem payMemberProjectSubitem) { + public Result add(@RequestBody PayMemberProjectSubitem payMemberProjectSubitem) { + ValidUtil.validate(payMemberProjectSubitem); memberProjectSubitemService.add(payMemberProjectSubitem); return Result.OK("添加成功!"); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProjectSubitem.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProjectSubitem.java index f0b1e3a1..6fa1c88d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProjectSubitem.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProjectSubitem.java @@ -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; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java index e807219f..0cce4f43 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java @@ -36,7 +36,7 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PayMemberProject::getProjectName,payMemberProject.getProjectName()); Integer integer = baseMapper.selectCount(wrapper); if (integer>0){ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java index 510f1f9a..5b8c0775 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java @@ -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 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); } /** diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/valid/group/ChargeNotice.java b/jero-boot-incoming-payment/src/main/java/com/jero/valid/group/ChargeNotice.java new file mode 100644 index 00000000..00f35552 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/valid/group/ChargeNotice.java @@ -0,0 +1,9 @@ +package com.jero.valid.group; + +/** + * 收费通知组 + * @author liJiaRao + * @date 2021-08-27 14:28 + */ +public @interface ChargeNotice { +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/valid/group/Contract.java b/jero-boot-incoming-payment/src/main/java/com/jero/valid/group/Contract.java new file mode 100644 index 00000000..ea150113 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/valid/group/Contract.java @@ -0,0 +1,9 @@ +package com.jero.valid.group; + +/** + * 合同组 + * @author liJiaRao + * @date 2021-08-27 14:29 + */ +public @interface Contract { +} diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index b21f2be8..94e2e0d7 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -114,7 +114,7 @@ public class SysUserController { public Result> queryPageList(SysUser user,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) { Result> result = new Result>(); - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap()); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap()); //TODO 外部模拟登陆临时账号,列表不显示 queryWrapper.ne("username","_reserve_user_external"); Page page = new Page(pageNo, pageSize);