Commit 1f368a5d authored by zhaji's avatar zhaji

"feature-zhaJi:优化金额相关校验逻辑"

parent c39075c6
...@@ -189,8 +189,8 @@ public interface CommonConstants { ...@@ -189,8 +189,8 @@ public interface CommonConstants {
/** /**
* 月份(阿里编码规约不允许直接使用‘魔法值’) * 月份(阿里编码规约不允许直接使用‘魔法值’)
* @Author pwang * @Author zhaji
* @Date 2019-08-02 16:39 * @Date 2022-07-28 16:39
**/ **/
String[] MonthStrArray = {"0","1","2","3","4","5","6","7","8","9","10","11","12"}; String[] MonthStrArray = {"0","1","2","3","4","5","6","7","8","9","10","11","12"};
...@@ -409,14 +409,14 @@ public interface CommonConstants { ...@@ -409,14 +409,14 @@ public interface CommonConstants {
String SEVEN_STRING = "7"; String SEVEN_STRING = "7";
/** /**
* 工资最小不能小于零 * 工资最大不能超过9999999.99
*/ */
public static final String MONEY_MAX = "9999999.99"; public static final BigDecimal MONEY_MAX = new BigDecimal("9999999.99");
/** /**
* 工资最小不能小于零 * 工资最小不能小于零
*/ */
public static final String MONEY_MIN = "0"; public static final BigDecimal MONEY_MIN = new BigDecimal(0);
public static final int TWENTY_INT = 20; public static final int TWENTY_INT = 20;
......
...@@ -10,6 +10,7 @@ import lombok.Data; ...@@ -10,6 +10,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NonNull; import lombok.NonNull;
import org.checkerframework.common.value.qual.StringVal; import org.checkerframework.common.value.qual.StringVal;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
...@@ -37,6 +38,7 @@ public class TInsuranceCompany extends BaseEntity { ...@@ -37,6 +38,7 @@ public class TInsuranceCompany extends BaseEntity {
*/ */
@NotBlank(message = "保险公司名称不能为空") @NotBlank(message = "保险公司名称不能为空")
@Schema(description = "保险公司名称") @Schema(description = "保险公司名称")
@Length(max =60,message = "保险公司名称必须小于等于60")
private String companyName; private String companyName;
/** /**
...@@ -44,6 +46,7 @@ public class TInsuranceCompany extends BaseEntity { ...@@ -44,6 +46,7 @@ public class TInsuranceCompany extends BaseEntity {
*/ */
@NotBlank(message = "保险公司地址不能为空") @NotBlank(message = "保险公司地址不能为空")
@Schema(description = "保险公司地址") @Schema(description = "保险公司地址")
@Length(max =50,message = "保险公司地址必须小于等于50")
private String companyAddress; private String companyAddress;
/** /**
...@@ -51,6 +54,7 @@ public class TInsuranceCompany extends BaseEntity { ...@@ -51,6 +54,7 @@ public class TInsuranceCompany extends BaseEntity {
*/ */
@NotBlank(message = "对接人不能为空") @NotBlank(message = "对接人不能为空")
@Schema(description = "对接人") @Schema(description = "对接人")
@Length(max =20,message = "险种名称必须小于等于20")
private String companyDocking; private String companyDocking;
/** /**
......
...@@ -8,10 +8,10 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -8,10 +8,10 @@ import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/** /**
* 险种表 * 险种表
...@@ -34,6 +34,7 @@ public class TInsuranceType extends BaseEntity { ...@@ -34,6 +34,7 @@ public class TInsuranceType extends BaseEntity {
*/ */
@NotBlank(message = "险种名称不能为空") @NotBlank(message = "险种名称不能为空")
@Schema(description = "险种名称") @Schema(description = "险种名称")
@Length(max =50,message = "险种名称必须小于等于50")
private String name; private String name;
/** /**
...@@ -48,6 +49,7 @@ public class TInsuranceType extends BaseEntity { ...@@ -48,6 +49,7 @@ public class TInsuranceType extends BaseEntity {
*/ */
@NotBlank(message = "收款单位名称不能为空") @NotBlank(message = "收款单位名称不能为空")
@Schema(description = "收款单位名称") @Schema(description = "收款单位名称")
@Length(max =50,message = "收款单位名称必须小于等于50")
private String receiptUnitName; private String receiptUnitName;
/** /**
...@@ -55,6 +57,7 @@ public class TInsuranceType extends BaseEntity { ...@@ -55,6 +57,7 @@ public class TInsuranceType extends BaseEntity {
*/ */
@NotBlank(message = "收款银行名称不能为空") @NotBlank(message = "收款银行名称不能为空")
@Schema(description = "收款银行名称") @Schema(description = "收款银行名称")
@Length(max =50,message = "收款银行名称必须小于等于50")
private String bankName; private String bankName;
/** /**
...@@ -62,6 +65,7 @@ public class TInsuranceType extends BaseEntity { ...@@ -62,6 +65,7 @@ public class TInsuranceType extends BaseEntity {
*/ */
@NotBlank(message = "收款银行账号不能为空") @NotBlank(message = "收款银行账号不能为空")
@Schema(description = "收款银行账号") @Schema(description = "收款银行账号")
@Length(max =50,message = "收款银行账号必须小于等于50")
private String bankNo; private String bankNo;
/** /**
......
...@@ -34,7 +34,7 @@ public class TInsuranceTypeStandard extends BaseEntity { ...@@ -34,7 +34,7 @@ public class TInsuranceTypeStandard extends BaseEntity {
*/ */
@Schema(description = "险种主键ID") @Schema(description = "险种主键ID")
@NotBlank(message = "险种主键ID不能为空") @NotBlank(message = "险种主键ID不能为空")
private Long insuranceTypeId; private String insuranceTypeId;
/** /**
* 购买标准 * 购买标准
......
...@@ -4,6 +4,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; ...@@ -4,6 +4,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ValidityConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ValidityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import java.math.BigDecimal;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -154,22 +155,22 @@ public class ValidityUtil { ...@@ -154,22 +155,22 @@ public class ValidityUtil {
/** /**
* 判断是否是整数或者是携带一位或者两位的小数 * 判断是否是整数或者是携带一位或者两位的小数
* @param refundMoney 金额 * @param money 金额
* @return boolean * @return boolean
*/ */
public static boolean validateMoney(final String refundMoney) { public static boolean validateMoney(final String money) {
if(Common.isEmpty(refundMoney)){ if(Common.isEmpty(money)){
return Boolean.FALSE ; return Boolean.FALSE ;
} }
if(!BigDecimalUtils.isBigDecimal(refundMoney)){ if(!BigDecimalUtils.isBigDecimal(money)){
return Boolean.FALSE ; return Boolean.FALSE ;
} }
if(!refundMoney.matches(ValidityConstants.POSITIVE_INTEGER_PATTERN_TWO_FLOAT)){ if(!money.matches(ValidityConstants.POSITIVE_INTEGER_PATTERN_TWO_FLOAT)){
return Boolean.FALSE ; return Boolean.FALSE ;
} }
boolean max = refundMoney.compareTo(CommonConstants.MONEY_MAX) < 0; BigDecimal bigDecimalMoney= new BigDecimal(money);
boolean min = refundMoney.compareTo(CommonConstants.MONEY_MIN) > 0; boolean max = bigDecimalMoney.compareTo(CommonConstants.MONEY_MAX) >0;
if (!max || !min){ if(max){
return Boolean.FALSE ; return Boolean.FALSE ;
} }
return Boolean.TRUE; return Boolean.TRUE;
......
...@@ -132,7 +132,7 @@ public class InsuranceAddParam implements Serializable { ...@@ -132,7 +132,7 @@ public class InsuranceAddParam implements Serializable {
* 险种主键 * 险种主键
*/ */
@JsonIgnore @JsonIgnore
private Long insuranceTypeId; private String insuranceTypeId;
/** /**
* 商险购买地省code * 商险购买地省code
......
...@@ -128,7 +128,7 @@ public class InsuranceBatchParam implements Serializable { ...@@ -128,7 +128,7 @@ public class InsuranceBatchParam implements Serializable {
* 险种主键 * 险种主键
*/ */
@JsonIgnore @JsonIgnore
private Long insuranceTypeId; private String insuranceTypeId;
/** /**
* 商险购买地省code * 商险购买地省code
......
...@@ -155,5 +155,5 @@ public class InsuranceEditParam implements Serializable { ...@@ -155,5 +155,5 @@ public class InsuranceEditParam implements Serializable {
* 险种主键 * 险种主键
*/ */
@JsonIgnore @JsonIgnore
private Long insuranceTypeId; private String insuranceTypeId;
} }
...@@ -48,4 +48,7 @@ public interface TInsuranceTypeMapper extends BaseMapper<TInsuranceType> { ...@@ -48,4 +48,7 @@ public interface TInsuranceTypeMapper extends BaseMapper<TInsuranceType> {
* @return {@link IPage< InsuranceTypeVo>} * @return {@link IPage< InsuranceTypeVo>}
*/ */
IPage<InsuranceTypeVo> selectInsuranceTypePage(Page page, @Param("insuranceType") TInsuranceType insuranceType); IPage<InsuranceTypeVo> selectInsuranceTypePage(Page page, @Param("insuranceType") TInsuranceType insuranceType);
InsuranceTypeVo getInsuranceTypeDetailById(String id);
} }
...@@ -58,26 +58,38 @@ public class TInsuranceTypeServiceImpl extends ServiceImpl<TInsuranceTypeMapper, ...@@ -58,26 +58,38 @@ public class TInsuranceTypeServiceImpl extends ServiceImpl<TInsuranceTypeMapper,
* 新增险种信息 * 新增险种信息
* *
* @author zhaji * @author zhaji
* @param insuranceType 新增参数 * @param insuranceType 新增险种信息
* @return {@link R} * @return {@link R}
*/ */
@Override @Override
public R saveInsuranceType(TInsuranceType insuranceType) { public R saveInsuranceType(TInsuranceType insuranceType) {
if(Common.isEmpty(insuranceType)){
return R.failed("新增的险种信息为空");
}
YifuUser user = SecurityUtils.getUser(); YifuUser user = SecurityUtils.getUser();
String companyId = insuranceType.getInsuranceCompanyId(); String companyId = insuranceType.getInsuranceCompanyId();
String bankNo = insuranceType.getBankNo(); String bankNo = insuranceType.getBankNo();
if(!Common.isNumber(bankNo)){ String bankName = insuranceType.getBankName();
String receiptUnitName = insuranceType.getReceiptUnitName();
if (!ValidityUtil.validate50(insuranceType.getName())){
return R.failed("险种格式不正确");
}
if(!ValidityUtil.validatePositiveInt(bankNo) || !ValidityUtil.validate50(bankNo)){
return R.failed("银行账号格式不正确"); return R.failed("银行账号格式不正确");
} }
if(!ValidityUtil.validate50(bankName)){
return R.failed("收款银行格式不正确");
}
if(!ValidityUtil.validate50(receiptUnitName)){
return R.failed("收款单位名称格式不正确");
}
LambdaQueryWrapper<TInsuranceCompany> companyWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TInsuranceCompany> companyWrapper = new LambdaQueryWrapper<>();
companyWrapper.eq(TInsuranceCompany::getId,companyId).eq(TInsuranceCompany::getDeleteFlag, CommonConstants.ZERO_INT); companyWrapper.eq(TInsuranceCompany::getId,companyId).eq(TInsuranceCompany::getDeleteFlag, CommonConstants.ZERO_INT);
TInsuranceCompany insuranceCompany = insuranceCompanyService.getOne(companyWrapper); TInsuranceCompany insuranceCompany = insuranceCompanyService.getOne(companyWrapper);
if(Common.isEmpty(insuranceCompany)){ if(Common.isEmpty(insuranceCompany)){
return R.failed("所属保险公司不存在或已被删除"); return R.failed("所属保险公司不存在或已被删除");
} }
if (!ValidityUtil.validate50(insuranceType.getName())){
return R.failed("险种名称过长");
}
LambdaQueryWrapper<TInsuranceType> typeWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TInsuranceType> typeWrapper = new LambdaQueryWrapper<>();
typeWrapper.eq(TInsuranceType :: getInsuranceCompanyId ,companyId).eq(TInsuranceType::getName,insuranceType.getName()).eq(TInsuranceType::getDeleteFlag, CommonConstants.ZERO_INT); typeWrapper.eq(TInsuranceType :: getInsuranceCompanyId ,companyId).eq(TInsuranceType::getName,insuranceType.getName()).eq(TInsuranceType::getDeleteFlag, CommonConstants.ZERO_INT);
TInsuranceType type = getOne(typeWrapper); TInsuranceType type = getOne(typeWrapper);
...@@ -104,12 +116,10 @@ public class TInsuranceTypeServiceImpl extends ServiceImpl<TInsuranceTypeMapper, ...@@ -104,12 +116,10 @@ public class TInsuranceTypeServiceImpl extends ServiceImpl<TInsuranceTypeMapper,
if (Common.isEmpty(id)){ if (Common.isEmpty(id)){
return R.failed("险种ID不能为空"); return R.failed("险种ID不能为空");
} }
InsuranceTypeVo insuranceTypeVo = new InsuranceTypeVo(); InsuranceTypeVo insuranceTypeVo = this.baseMapper.getInsuranceTypeDetailById(id);
TInsuranceType byId = getById(id); if(Common.isEmpty(insuranceTypeVo)){
if(Common.isEmpty(byId) || byId.getDeleteFlag() == CommonConstants.ONE_INT){
return R.failed("当前险种信息不存在或已被删除"); return R.failed("当前险种信息不存在或已被删除");
} }
BeanCopyUtils.copyProperties(byId,insuranceTypeVo);
List<TInsuranceTypeRate> tInsuranceTypeRates = this.baseMapper.selectInsuranceTypeRateList(id); List<TInsuranceTypeRate> tInsuranceTypeRates = this.baseMapper.selectInsuranceTypeRateList(id);
List<TInsuranceTypeStandard> tInsuranceTypeStandards = this.baseMapper.selectInsuranceTypeStandardList(id); List<TInsuranceTypeStandard> tInsuranceTypeStandards = this.baseMapper.selectInsuranceTypeStandardList(id);
insuranceTypeVo.setInsuranceTypeRateList(tInsuranceTypeRates); insuranceTypeVo.setInsuranceTypeRateList(tInsuranceTypeRates);
......
...@@ -46,7 +46,7 @@ public class TInsuranceTypeStandardServiceImpl extends ServiceImpl<TInsuranceTyp ...@@ -46,7 +46,7 @@ public class TInsuranceTypeStandardServiceImpl extends ServiceImpl<TInsuranceTyp
* 查询购买标准列表 * 查询购买标准列表
* *
* @author zhaji * @author zhaji
* @param id * @param id 购买标准id
* @return {@link R} * @return {@link R}
*/ */
@Override @Override
...@@ -67,7 +67,7 @@ public class TInsuranceTypeStandardServiceImpl extends ServiceImpl<TInsuranceTyp ...@@ -67,7 +67,7 @@ public class TInsuranceTypeStandardServiceImpl extends ServiceImpl<TInsuranceTyp
* 删除购买标准 * 删除购买标准
* *
* @author zhaji * @author zhaji
* @param id * @param id 购买标准id
* @return {@link R} * @return {@link R}
*/ */
@Override @Override
...@@ -100,7 +100,7 @@ public class TInsuranceTypeStandardServiceImpl extends ServiceImpl<TInsuranceTyp ...@@ -100,7 +100,7 @@ public class TInsuranceTypeStandardServiceImpl extends ServiceImpl<TInsuranceTyp
* 新增购买标准 * 新增购买标准
* *
* @author zhaji * @author zhaji
* @param insuranceTypeStandard * @param insuranceTypeStandard 购买标准
* @return {@link R} * @return {@link R}
*/ */
@Override @Override
...@@ -110,22 +110,22 @@ public class TInsuranceTypeStandardServiceImpl extends ServiceImpl<TInsuranceTyp ...@@ -110,22 +110,22 @@ public class TInsuranceTypeStandardServiceImpl extends ServiceImpl<TInsuranceTyp
if (Common.isEmpty(insuranceTypeStandard)){ if (Common.isEmpty(insuranceTypeStandard)){
return R.failed("新增的购买标准信息为空"); return R.failed("新增的购买标准信息为空");
} }
Long insuranceTypeId = insuranceTypeStandard.getInsuranceTypeId(); String insuranceTypeId = insuranceTypeStandard.getInsuranceTypeId();
TInsuranceType byId = tInsuranceTypeService.getById(insuranceTypeId); TInsuranceType byId = tInsuranceTypeService.getById(insuranceTypeId);
if ( Common.isEmpty(byId) || CommonConstants.ONE_INT == byId.getDeleteFlag()){ if ( Common.isEmpty(byId) || CommonConstants.ONE_INT == byId.getDeleteFlag()){
return R.failed("当前险种信息不存在或已被删除"); return R.failed("险种信息不存在或已被删除");
} }
String buyStandard = insuranceTypeStandard.getBuyStandard(); String buyStandard = insuranceTypeStandard.getBuyStandard();
String medicalQuota = insuranceTypeStandard.getMedicalQuota(); String medicalQuota = insuranceTypeStandard.getMedicalQuota();
String dieDisableQuota = insuranceTypeStandard.getDieDisableQuota(); String dieDisableQuota = insuranceTypeStandard.getDieDisableQuota();
if (!ValidityUtil.validateMoney(buyStandard)){ if (!ValidityUtil.validateMoney(buyStandard)){
return R.failed("当前购买标准格式不正确"); return R.failed("购买标准格式不正确");
} }
if (!ValidityUtil.validateMoney(medicalQuota)){ if (!ValidityUtil.validateMoney(medicalQuota)){
return R.failed("当前医疗额度格式不正确"); return R.failed("医疗额度格式不正确");
} }
if (!ValidityUtil.validateMoney(dieDisableQuota)){ if (!ValidityUtil.validateMoney(dieDisableQuota)){
return R.failed("当前身故或残疾额度格式不正确"); return R.failed("身故或残疾额度格式不正确");
} }
LambdaQueryWrapper<TInsuranceTypeStandard> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TInsuranceTypeStandard> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TInsuranceTypeStandard::getInsuranceTypeId,insuranceTypeStandard.getInsuranceTypeId()) queryWrapper.eq(TInsuranceTypeStandard::getInsuranceTypeId,insuranceTypeStandard.getInsuranceTypeId())
...@@ -137,7 +137,6 @@ public class TInsuranceTypeStandardServiceImpl extends ServiceImpl<TInsuranceTyp ...@@ -137,7 +137,6 @@ public class TInsuranceTypeStandardServiceImpl extends ServiceImpl<TInsuranceTyp
insuranceTypeStandard.setCreateBy(user.getId()); insuranceTypeStandard.setCreateBy(user.getId());
insuranceTypeStandard.setCreateName(user.getNickname()); insuranceTypeStandard.setCreateName(user.getNickname());
insuranceTypeStandard.setCreateTime(LocalDateTime.now()); insuranceTypeStandard.setCreateTime(LocalDateTime.now());
return R.ok(this.baseMapper.insert(insuranceTypeStandard),"新增购买标准成功"); return R.ok(this.baseMapper.insert(insuranceTypeStandard),"新增购买标准成功");
}else{ }else{
return R.failed("当前险种下的购买标准已存在"); return R.failed("当前险种下的购买标准已存在");
......
...@@ -71,5 +71,24 @@ ...@@ -71,5 +71,24 @@
a.DELETE_FLAG = 0 a.DELETE_FLAG = 0
</select> </select>
<select id="getInsuranceTypeDetailById" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceTypeVo">
select
a.ID as id,
a.NAME as name ,
b.COMPANY_NAME as insuranceCompanyName,
a.INSURANCE_COMPANY_ID as insuranceCompanyId,
a.RECEIPT_UNIT_NAME as receiptUnitName,
a.BANK_NAME as bankName,
a.BANK_NO as bankNo
from
t_insurance_type a,
t_insurance_company b
where
a.INSURANCE_COMPANY_ID = b.ID
and
a.ID = #{id}
and
a.DELETE_FLAG = 0
</select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment