瀏覽代碼

Merge branch 'feature/1.0.0' of github.com:ab-inbev-apac/abi-cloud-qr-platform into feature/1.0.0

tanzhongran 3 年之前
父節點
當前提交
f9a0bda688

+ 31 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/enums/ValidatorEnum.java

@@ -0,0 +1,31 @@
+package com.abi.qms.platform.dao.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.EnumSet;
+import java.util.Set;
+
+/**
+ * @className: com.abi.qms.platform.dao.enums-> ValidatorEnums
+ * @description:
+ * @author: Marko.W
+ * @createDate: 2021-06-21 18:12
+ * @version: 1.0
+ * @todo:
+ */
+@Getter
+@AllArgsConstructor
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum ValidatorEnum {
+
+    EMAIL("email", "邮箱"),
+    PHONE("phone", "手机号"),
+    ;
+    @EnumValue
+    private String validatorCode;
+    private String validatorName;
+
+}

+ 93 - 109
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/FactoryServiceImpl.java

@@ -2,15 +2,7 @@ package com.abi.qms.platform.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.abi.qms.platform.dao.entity.*;
-import com.abi.qms.platform.dao.entity.BaseFactory;
-import com.abi.qms.platform.dao.entity.QrBoxCodeFormat;
-import com.abi.qms.platform.dao.entity.QrPackage;
-import com.abi.qms.platform.dao.entity.UserInfo;
-import com.abi.qms.platform.dao.enums.DataLimitEnum;
-import com.abi.qms.platform.dao.enums.FactoryTypeEnum;
-import com.abi.qms.platform.dao.enums.FirstFactoryEnum;
-import com.abi.qms.platform.dao.enums.TrueFalseEnum;
-import com.abi.qms.platform.dao.enums.ValidEnum;
+import com.abi.qms.platform.dao.enums.*;
 import com.abi.qms.platform.dao.mapper.*;
 import com.abi.qms.platform.dto.req.*;
 import com.abi.qms.platform.dto.res.*;
@@ -37,6 +29,8 @@ import java.util.List;
 import java.util.Objects;
 import java.util.regex.Pattern;
 
+import static com.abi.qms.platform.valid.PropertyValidator.checkPattern;
+
 /**
  * <p>
  * 供应商管理
@@ -365,115 +359,105 @@ public class FactoryServiceImpl implements FactoryService {
         if (StringUtils.isBlank(factoryProperty.getFactoryName())) {
             errorMessage.append("供应商名称").append("为空,");
         }
-        if (StringUtils.isNotBlank(factoryProperty.getFactoryType())) {
-            if(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()) == null){
-                errorMessage.append("供应商类型").append("枚举值不正确,");
-            }else {
-                //包材厂校验
-                if (FactoryTypeEnum.COVER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))){
-                    if (StringUtils.isNotBlank(factoryProperty.getIsFirstFactory())) {
-                        if(FirstFactoryEnum.getCode(factoryProperty.getIsFirstFactory()) == null){
-                            errorMessage.append("是否一级供应商").append("枚举值不正确,");
-                        }
-                    }else {
-                        errorMessage.append("是否一级供应商").append("为空,");
-                    }
-                    //查询包材厂id名称是否匹配
-                    if (!StringUtils.isBlank(factoryProperty.getFactoryCode())) {
-                        QueryWrapper<BaseSapCoverFactory> sapCoverFactoryQW = new QueryWrapper<>();
-                        sapCoverFactoryQW.eq("sap_cover_factory_id", factoryProperty.getFactoryCode());
-                        sapCoverFactoryQW.eq("is_delete", 0);
-                        BaseSapCoverFactory baseSapCoverFactory = baseSapCoverFactoryMapper.selectOne(sapCoverFactoryQW);
-                        if (ObjectUtils.isEmpty(baseSapCoverFactory)){
-                            errorMessage.append("供应商在包材厂中").append("不存在,");
-                        }else {
-                            if (!StringUtils.isBlank(factoryProperty.getFactoryName())
-                                    && !factoryProperty.getFactoryName().equals(baseSapCoverFactory.getSapCoverFactoryName())){
-                                errorMessage.append("供应商名称").append("与供应商id不匹配,");
-                            }
-                        }
-                    }
+        //描述
+        if (StringUtils.isBlank(factoryProperty.getDescription()) && factoryProperty.getDescription().length() > 50) {
+            errorMessage.append("描述").append("超出50限制,");
+        }
+
+        if(StringUtils.isBlank(factoryProperty.getFactoryType())){
+            errorMessage.append("供应商类型").append("为空,");
+            return errorMessage.toString();
+        }
+        if(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()) == null){
+            errorMessage.append("供应商类型").append("枚举值不正确,");
+            return errorMessage.toString();
+        }
+
+
+
+        //包材厂校验
+        if (FactoryTypeEnum.COVER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))){
+            if (StringUtils.isNotBlank(factoryProperty.getIsFirstFactory())) {
+                if(FirstFactoryEnum.getCode(factoryProperty.getIsFirstFactory()) == null){
+                    errorMessage.append("是否一级供应商").append("枚举值不正确,");
                 }
-                //二级包材厂ID格式校验
-                if (FactoryTypeEnum.TWO_COVER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))
-                        && !StringUtils.isBlank(factoryProperty.getFactoryCode())){
-                    String factoryCodeFormatString = "[0-9]*";
-                    Pattern factoryCodeFormat = Pattern.compile(factoryCodeFormatString);
-                    if (!factoryCodeFormat.matcher(factoryProperty.getFactoryCode()).matches()) {
-                        errorMessage.append("包材厂ID").append("格式不正确,");
+            }else {
+                errorMessage.append("是否一级供应商").append("为空,");
+            }
+            //查询包材厂id名称是否匹配
+            if (!StringUtils.isBlank(factoryProperty.getFactoryCode())) {
+                QueryWrapper<BaseSapCoverFactory> sapCoverFactoryQW = new QueryWrapper<>();
+                sapCoverFactoryQW.eq("sap_cover_factory_id", factoryProperty.getFactoryCode());
+                sapCoverFactoryQW.eq("is_delete", 0);
+                BaseSapCoverFactory baseSapCoverFactory = baseSapCoverFactoryMapper.selectOne(sapCoverFactoryQW);
+                if (ObjectUtils.isEmpty(baseSapCoverFactory)){
+                    errorMessage.append("供应商在包材厂中").append("不存在,");
+                }else {
+                    if (!StringUtils.isBlank(factoryProperty.getFactoryName())
+                            && !factoryProperty.getFactoryName().equals(baseSapCoverFactory.getSapCoverFactoryName())){
+                        errorMessage.append("供应商名称").append("与供应商id不匹配,");
                     }
                 }
+            }
+        }
+        //二级包材厂ID格式校验
+        if (FactoryTypeEnum.TWO_COVER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))
+                && !StringUtils.isBlank(factoryProperty.getFactoryCode())){
+            String factoryCodeFormatString = "[0-9]*";
+            Pattern factoryCodeFormat = Pattern.compile(factoryCodeFormatString);
+            if (!factoryCodeFormat.matcher(factoryProperty.getFactoryCode()).matches()) {
+                errorMessage.append("包材厂ID").append("格式不正确,");
+            }
+        }
 
-                //包材厂与二级包材厂参数校验
-                if (!FactoryTypeEnum.BEER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))) {
-                    //邮箱判空或格式校验
-                    if (StringUtils.isBlank(factoryProperty.getEmail())) {
-                        errorMessage.append("邮箱").append("为空,");
-                    }else {
-                        String emailFormatString = "^[a-z0-9A-Z]{1,50}+[- | a-z0-9A-Z . _]{0,50}+@([a-z0-9A-Z]{0,50}+(-[a-z0-9A-Z]+)?\\.)+[a-z]{1,10}$";
-                        Pattern emailFormat = Pattern.compile(emailFormatString);
-                        if (!emailFormat.matcher(factoryProperty.getEmail()).matches()) {
-                            errorMessage.append("邮箱").append("格式不正确,");
-                        }
-                    }
-                    //详细地址判空或格式校验
-                    if (StringUtils.isBlank(factoryProperty.getAddress())) {
-                        errorMessage.append("详细地址").append("为空,");
-                    }else {
-                        if (factoryProperty.getAddress().length() > 50){
-                            errorMessage.append("详细地址").append("超出5o限制,");
-                        }
-                    }
-                    //手机号判空或格式校验
-                    if (StringUtils.isBlank(factoryProperty.getKeymanMobile())) {
-                        errorMessage.append("联系人手机号").append("为空,");
-                    }else {
-                        //手机号格式校验
-                        String keymanMobileFormatString = "^1[0-9]{10}$";
-                        Pattern keymanMobileFormat = Pattern.compile(keymanMobileFormatString);
-                        if (!keymanMobileFormat.matcher(factoryProperty.getKeymanMobile()).matches()){
-                            errorMessage.append("联系人手机号").append("格式不正确,");
-                        }
-                    }
-                    if (StringUtils.isBlank(factoryProperty.getProvince())) {
-                        errorMessage.append("省").append("为空,");
-                    }
-                    if (StringUtils.isBlank(factoryProperty.getCity())) {
-                        errorMessage.append("市").append("为空,");
-                    }
-                    if (StringUtils.isBlank(factoryProperty.getDistrict())) {
-                        errorMessage.append("区").append("为空,");
-                    }
-                    if (StringUtils.isBlank(factoryProperty.getKeymanName())) {
-                        errorMessage.append("联系人姓名").append("为空,");
-                    }
+        //包材厂与二级包材厂参数校验
+        if (!FactoryTypeEnum.BEER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))) {
+            //邮箱判空或格式校验
+            if (!checkPattern(ValidatorEnum.EMAIL, factoryProperty.getEmail())){
+                errorMessage.append("邮箱").append("格式不正确,");
+            }
+
+            //详细地址判空或格式校验
+            if (StringUtils.isBlank(factoryProperty.getAddress())) {
+                errorMessage.append("详细地址").append("为空,");
+            }else {
+                if (factoryProperty.getAddress().length() > 50){
+                    errorMessage.append("详细地址").append("超出5o限制,");
+                }
+            }
+            //手机号判空或格式校验
+            if (!checkPattern(ValidatorEnum.PHONE,factoryProperty.getKeymanMobile())){
+                errorMessage.append("联系人手机号").append("格式不正确,");
+            }
+            if (StringUtils.isBlank(factoryProperty.getProvince())) {
+                errorMessage.append("省").append("为空,");
+            }
+            if (StringUtils.isBlank(factoryProperty.getCity())) {
+                errorMessage.append("市").append("为空,");
+            }
+            if (StringUtils.isBlank(factoryProperty.getDistrict())) {
+                errorMessage.append("区").append("为空,");
+            }
+            if (StringUtils.isBlank(factoryProperty.getKeymanName())) {
+                errorMessage.append("联系人姓名").append("为空,");
+            }
+        }else {
+            //查询啤酒厂id名称是否匹配
+            if (!StringUtils.isBlank(factoryProperty.getFactoryCode())) {
+                QueryWrapper<BaseSapBeerFactory> sapBeerFactoryQW = new QueryWrapper<>();
+                sapBeerFactoryQW.eq("sap_beer_factory_id", factoryProperty.getFactoryCode());
+                sapBeerFactoryQW.eq("is_delete", 0);
+                BaseSapBeerFactory baseSapBeerFactory = baseSapBeerFactoryMapper.selectOne(sapBeerFactoryQW);
+                if (ObjectUtils.isEmpty(baseSapBeerFactory)){
+                    errorMessage.append("供应商在啤酒厂中").append("不存在,");
                 }else {
-                    //查询啤酒厂id名称是否匹配
-                    if (!StringUtils.isBlank(factoryProperty.getFactoryCode())) {
-                        QueryWrapper<BaseSapBeerFactory> sapBeerFactoryQW = new QueryWrapper<>();
-                        sapBeerFactoryQW.eq("sap_beer_factory_id", factoryProperty.getFactoryCode());
-                        sapBeerFactoryQW.eq("is_delete", 0);
-                        BaseSapBeerFactory baseSapBeerFactory = baseSapBeerFactoryMapper.selectOne(sapBeerFactoryQW);
-                        if (ObjectUtils.isEmpty(baseSapBeerFactory)){
-                            errorMessage.append("供应商在啤酒厂中").append("不存在,");
-                        }else {
-                            if (!StringUtils.isBlank(factoryProperty.getFactoryName())
-                                    && !factoryProperty.getFactoryName().equals(baseSapBeerFactory.getSapBeerFactoryName())){
-                                errorMessage.append("供应商名称").append("与供应商id不匹配,");
-                            }
-                        }
+                    if (!StringUtils.isBlank(factoryProperty.getFactoryName())
+                            && !factoryProperty.getFactoryName().equals(baseSapBeerFactory.getSapBeerFactoryName())){
+                        errorMessage.append("供应商名称").append("与供应商id不匹配,");
                     }
                 }
             }
-        }else {
-            errorMessage.append("供应商类型").append("为空,");
         }
-
-        //描述
-        if (StringUtils.isBlank(factoryProperty.getDescription()) && factoryProperty.getDescription().length() > 50) {
-            errorMessage.append("描述").append("超出50限制,");
-        }
-
         return errorMessage.toString();
     }
 

+ 39 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/valid/EmailValidator.java

@@ -0,0 +1,39 @@
+package com.abi.qms.platform.valid;
+
+import com.abi.qms.platform.dao.enums.ValidatorEnum;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.regex.Pattern;
+
+/**
+ * @className: com.abi.qms.platform.valid-> EmailValidator
+ * @description:
+ * @author: Marko.W
+ * @createDate: 2021-06-21 18:02
+ * @version: 1.0
+ * @todo:
+ */
+@Component
+public class EmailValidator extends PropertyValidator{
+
+
+    @Override
+    public Boolean doCheck(String email){
+        if (StringUtils.isBlank(email)) {
+            return false;
+        }
+        String emailFormatString = "^[a-z0-9A-Z]{1,50}+[- | a-z0-9A-Z . _]{0,50}+@([a-z0-9A-Z]{0,50}+(-[a-z0-9A-Z]+)?\\.)+[a-z]{1,10}$";
+        Pattern emailFormat = Pattern.compile(emailFormatString);
+        if (!emailFormat.matcher(email).matches()) {
+            return false;
+        }
+        return true;
+    }
+
+    @PostConstruct
+    public void init(){
+        validatorMap.put(ValidatorEnum.EMAIL, this);
+    }
+}

+ 37 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/valid/PhoneNoValidator.java

@@ -0,0 +1,37 @@
+package com.abi.qms.platform.valid;
+
+import com.abi.qms.platform.dao.enums.ValidatorEnum;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.annotation.PostConstruct;
+import java.util.regex.Pattern;
+
+/**
+ * @className: com.abi.qms.platform.valid-> PhoneNoValidator
+ * @description:
+ * @author: Marko.W
+ * @createDate: 2021-06-25 17:52
+ * @version: 1.0
+ * @todo:
+ */
+public class PhoneNoValidator extends PropertyValidator{
+
+    @Override
+    public Boolean doCheck(String phone){
+
+        if (StringUtils.isBlank(phone)){
+            return false;
+        }
+        //手机号格式校验
+        String keymanMobileFormatString = "^1[0-9]{10}$";
+        Pattern keymanMobileFormat = Pattern.compile(keymanMobileFormatString);
+        if (!keymanMobileFormat.matcher(phone).matches()){
+            return false;
+        }
+        return true;
+    }
+    @PostConstruct
+    public void init(){
+        validatorMap.put(ValidatorEnum.PHONE, this);
+    }
+}

+ 51 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/valid/PropertyValidator.java

@@ -0,0 +1,51 @@
+package com.abi.qms.platform.valid;
+
+import com.abi.qms.platform.dao.enums.ValidatorEnum;
+import com.abi.task.common.api.exception.BusinessException;
+import com.google.common.collect.Maps;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.HashMap;
+
+/**
+ * @className: com.abi.qms.platform.valid-> FactoryPropertyValidator
+ * @description:
+ * @author: Marko.W
+ * @createDate: 2021-06-21 11:59
+ * @version: 1.0
+ * @todo:
+ */
+public abstract class PropertyValidator {
+
+
+    public static final HashMap<ValidatorEnum,PropertyValidator> validatorMap = Maps.newHashMap();
+
+
+    public static Boolean checkPattern(ValidatorEnum validatorName,String content){
+        PropertyValidator validator = getValidator(validatorName);
+        return validator.doCheck(content);
+    }
+
+
+    private static PropertyValidator getValidator(ValidatorEnum validatorName){
+        PropertyValidator validator = validatorMap.get(validatorName);
+        if (ObjectUtils.isEmpty(validator)){
+            throw new BusinessException("暂不支持的验证类型");
+        }
+        return validator;
+    }
+
+
+
+    /**
+     * valid 校验格式
+     * default
+     * @param str
+     * @return
+     */
+    public Boolean doCheck(String str) {
+        return null;
+    }
+
+}