Просмотр исходного кода

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

tanzhongran 3 лет назад
Родитель
Сommit
fca7849653

+ 1 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrBoxMappingMapper.java

@@ -48,7 +48,7 @@ public interface QrBoxMappingMapper extends BaseMapper<QrBoxMapping> {
      * @param req
      * @return
      */
-    QrBoxMappingVO getIndexQrBoxCodeMappingOne(@Param("req") QrOneBoxCodeMappingReq req);
+    QrBoxMapping getIndexQrBoxCodeMappingOne(@Param("req") QrOneBoxCodeMappingReq req);
 
     /**
      * 微信 - 箱码/条码详情

+ 7 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QrSingleCheckVO.java

@@ -47,6 +47,9 @@ public class QrSingleCheckVO implements Serializable {
 	@ApiModelProperty("二维码类型 1-箱码 2-盖码")
 	private Integer qrType;
 
+	@ApiModelProperty(value = "活动code(即页面上的手输的活动id)")
+	private String activeCode;
+
 	@ApiModelProperty("活动名称")
 	private String activeName;
 
@@ -56,7 +59,10 @@ public class QrSingleCheckVO implements Serializable {
 	@ApiModelProperty(value = "活动类型 1-utc 2-bof 3-品质信息")
 	private Integer activeType;
 
-	@ApiModelProperty(value = "激活状态")
+	@ApiModelProperty(value = "(作废)激活状态 0-未激活 1-已激活 2-已作废")
+	private Integer packageActiveStatus;
+
+	@ApiModelProperty(value = "激活状态 0-未激活 1-已激活")
 	private Integer activeStatus;
 
 	@ApiModelProperty(value = "活动开始日期")

+ 7 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/GetQrSingleCheckDetailRes.java

@@ -49,6 +49,9 @@ public class GetQrSingleCheckDetailRes {
     @ApiModelProperty("二维码类型 1-箱码 2-盖码")
     private Integer qrType;
 
+    @ApiModelProperty(value = "活动code(即页面上的手输的活动id)")
+    private String activeCode;
+
     @ApiModelProperty("活动名称")
     private String activeName;
 
@@ -58,7 +61,10 @@ public class GetQrSingleCheckDetailRes {
     @ApiModelProperty(value = "活动类型 1-utc 2-bof 3-品质信息")
     private Integer activeType;
 
-    @ApiModelProperty(value = "激活状态")
+    @ApiModelProperty(value = "(作废)激活状态 0-未激活 1-已激活 2-已作废")
+    private Integer packageActiveStatus;
+
+    @ApiModelProperty(value = "激活状态 0-未激活 1-已激活")
     private Integer activeStatus;
 
     @ApiModelProperty(value = "活动开始日期")

+ 18 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/QrPackageService.java

@@ -1,7 +1,9 @@
 package com.abi.qms.platform.service;
 
 
+import com.abi.qms.platform.dao.entity.QrBoxMapping;
 import com.abi.qms.platform.dao.entity.QrPackage;
+import com.abi.qms.platform.dao.tablestore.entity.QrCode;
 import com.abi.qms.platform.dto.req.DeleteQrPackageReq;
 import com.abi.qms.platform.dto.req.DownloadQrPackageReq;
 import com.abi.qms.platform.dto.req.GetPackageCodeReq;
@@ -144,4 +146,20 @@ public interface QrPackageService {
      * @return
      */
     WxQrPackageDetailRes getWxQrPackageDetail(WxQrPackageDetailReq wxQrPackageDetailReq);
+
+    /**
+     * 查看码是否作废
+     * @param qrCode
+     * @return
+     */
+    boolean getPackeageInvalid (String qrCode);
+
+
+    /**
+     * 根据码数据获取激活信息
+     * @param qrCode 码对象
+     * @return
+     */
+    QrBoxMapping getPackeageActivation (QrCode qrCode);
+
 }

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

@@ -83,6 +83,11 @@ public class FactoryServiceImpl implements FactoryService {
         factoryQw.eq("is_delete", 0);
         if (req.getId() != null) {
             factoryQw.ne("id", req.getId());
+        }else {
+            //判断二级供应商id只能为数字
+            if (FactoryTypeEnum.TWO_COVER.is(req.getFactoryType())) {
+                checkFactoryCode(req.getFactoryCode());
+            }
         }
         List<BaseFactory> checkFactoryList = baseFactoryMapper.selectList(factoryQw);
         if (CollectionUtil.isNotEmpty(checkFactoryList)) {
@@ -513,6 +518,19 @@ public class FactoryServiceImpl implements FactoryService {
         res.setStatus(getIsEncryptionReq.getIsQrCodeEncode());
         return res;
     }
+
+
+    /**
+     * 二级供应商ID只能为数字
+     * @param factoryCode
+     */
+    private void checkFactoryCode(String factoryCode) {
+        String factoryCodeFormatString = "[0-9]*";
+        Pattern factoryCodeFormat = Pattern.compile(factoryCodeFormatString);
+        if (!factoryCodeFormat.matcher(factoryCode).matches()) {
+            throw new BusinessException(ErrorCodeEnum.ERROR_PARAM.getCode(), "供应商ID只能为数字");
+        }
+    }
 //    6.03已废弃
 //    @Override
 //    public ListFactorySelectRes listPackageFactorySelect(ListFactorySelectReq req) {

+ 70 - 21
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrPackageServiceImpl.java

@@ -34,14 +34,7 @@ import com.abi.qms.platform.dao.mapper.QrPackageMapper;
 import com.abi.qms.platform.dao.mapper.QrPackageSapOrderItemMapper;
 import com.abi.qms.platform.dao.mapper.QrRepertoryColumnMapper;
 import com.abi.qms.platform.dao.tablestore.entity.QrCode;
-import com.abi.qms.platform.dao.vo.result.PackageActiveVO;
-import com.abi.qms.platform.dao.vo.result.QrBoxMappingVO;
-import com.abi.qms.platform.dao.vo.result.QrPackageBatchVO;
-import com.abi.qms.platform.dao.vo.result.QrPackageDownloadRecordVO;
-import com.abi.qms.platform.dao.vo.result.QrPackageVO;
-import com.abi.qms.platform.dao.vo.result.QrPackageWxVO;
-import com.abi.qms.platform.dao.vo.result.QrSingleCheckVO;
-import com.abi.qms.platform.dao.vo.result.WxQrPackageDetailVO;
+import com.abi.qms.platform.dao.vo.result.*;
 import com.abi.qms.platform.dto.req.DeleteQrPackageReq;
 import com.abi.qms.platform.dto.req.DownloadQrPackageReq;
 import com.abi.qms.platform.dto.req.GetPackageCodeReq;
@@ -69,10 +62,7 @@ import com.abi.qms.platform.dto.res.WxQrPackageDetailRes;
 import com.abi.qms.platform.infrastructure.constant.RedisKey;
 import com.abi.qms.platform.infrastructure.event.CodePackageCreateEvent;
 import com.abi.qms.platform.infrastructure.util.*;
-import com.abi.qms.platform.service.FactoryService;
-import com.abi.qms.platform.service.MaterialService;
-import com.abi.qms.platform.service.QrPackageBookingOrderService;
-import com.abi.qms.platform.service.QrPackageService;
+import com.abi.qms.platform.service.*;
 import com.abi.task.common.api.exception.BusinessException;
 import com.abi.task.common.api.exception.ErrorCodeEnum;
 import com.abi.task.common.tablestore.TableStorePlusUtils;
@@ -182,6 +172,9 @@ public class QrPackageServiceImpl implements QrPackageService {
     @Autowired
     private ApplicationContext applicationContext;
 
+    @Autowired
+    private QrBoxMappingService qrBoxMappingService;
+
 //    @Autowired
 //    private SendMqUtil sendMqUtil;
 
@@ -931,6 +924,7 @@ public class QrPackageServiceImpl implements QrPackageService {
             //存在活动数据
             PackageActiveVO packageActive = baseActiveMapper.getPackageActive(qrSingleCheckVO.getActiveId());
             if (!ObjectUtils.isEmpty(packageActive)) {
+                qrSingleCheckVO.setActiveCode(packageActive.getActiveCode());
                 qrSingleCheckVO.setActiveName(packageActive.getActiveName());
                 qrSingleCheckVO.setActiveUrl(packageActive.getActiveUrl());
                 qrSingleCheckVO.setActiveType(packageActive.getActiveType());
@@ -951,17 +945,20 @@ public class QrPackageServiceImpl implements QrPackageService {
         }
 
         //1-查询码关联激活信息单条数据
-        QrOneBoxCodeMappingReq qrOneBoxCodeMappingReq = new QrOneBoxCodeMappingReq();
-        qrOneBoxCodeMappingReq.setPackageId(qrCode.getPackageId());
-        qrOneBoxCodeMappingReq.setQrIndex(qrCode.getCodeIndex());
-        QrBoxMappingVO qrBoxMappingVO = qrBoxMappingMapper.getIndexQrBoxCodeMappingOne(qrOneBoxCodeMappingReq);
+        QrBoxMapping indexQrBoxCodeMappingOne = getPackeageActivation(qrCode);
 
         //存在激活关联信息
-        if (ObjectUtils.isNotEmpty(qrBoxMappingVO)) {
-            qrSingleCheckVO.setBoxCode(qrBoxMappingVO.getBoxCode());//条码序号
-            qrSingleCheckVO.setActiveTime(qrBoxMappingVO.getActiveTime());//激活时间
-            qrSingleCheckVO.setActiveUserName(qrBoxMappingVO.getActiveUserName());//激活时间
-            qrSingleCheckVO.setActiveStatus(qrBoxMappingVO.getActiveStatus());//激活状态
+        if (ObjectUtils.isNotEmpty(indexQrBoxCodeMappingOne)) {
+            qrSingleCheckVO.setBoxCode(indexQrBoxCodeMappingOne.getBoxCode());//条码序号
+            qrSingleCheckVO.setActiveTime(indexQrBoxCodeMappingOne.getActiveTime());//激活时间
+            qrSingleCheckVO.setActiveUserName(indexQrBoxCodeMappingOne.getActiveUserName());//激活时间
+            qrSingleCheckVO.setActiveStatus(indexQrBoxCodeMappingOne.getActiveStatus());//激活状态
+            qrSingleCheckVO.setPackageActiveStatus(indexQrBoxCodeMappingOne.getActiveStatus());//赋值原始状态
+        }
+
+        //满足废除条件
+        if (getPackeageInvalid(req.getQrCode())){
+            qrSingleCheckVO.setPackageActiveStatus(2);//状态重置为废除
         }
 
         //转化出参
@@ -1087,4 +1084,56 @@ public class QrPackageServiceImpl implements QrPackageService {
         }
 
     }
+
+
+    /**
+     * 查看码是否作废
+     * @param qrCode 码code
+     * @return
+     */
+    @Override
+    public boolean getPackeageInvalid(String qrCode) {
+        //调用tablestore查询码信息
+        QrCode qrCodeVo = tableStorePlusUtils.selectOne(QrCode.class, qrCode);
+        AssertUtil.isNull(qrCodeVo, "码数据不存在");
+
+        //码数据是否作废
+        if (qrCodeVo.getInvalid() == 1){
+            return true;
+        }
+
+        //查询码包信息
+        QrPackage qrPackage = qrPackageMapper.selectById(qrCodeVo.getPackageId());
+        AssertUtil.isNull(qrPackage, "码包数据不存在");
+
+        //码包数据是否作废
+        if (qrPackage.getInvalid() == 1){
+            return true;
+        }
+
+        //关联表是否作废
+        QrBoxMapping qrBoxMapping = getPackeageActivation(qrCodeVo);
+        if (ObjectUtils.isNotEmpty(qrBoxMapping) && qrBoxMapping.getInvalid() == 1){
+            return true;
+        }
+
+        return false;
+    }
+
+
+    /**
+     * 查询码关联激活信息单条数据
+     * @param qrCode code对象
+     * @return
+     */
+    public QrBoxMapping getPackeageActivation(QrCode qrCode) {
+
+        //查询码关联激活信息单条数据
+        QrOneBoxCodeMappingReq qrOneBoxCodeMappingReq = new QrOneBoxCodeMappingReq();
+        qrOneBoxCodeMappingReq.setPackageId(qrCode.getPackageId());
+        qrOneBoxCodeMappingReq.setQrIndex(qrCode.getCodeIndex());
+        QrBoxMapping qrBoxMapping = qrBoxMappingMapper.getIndexQrBoxCodeMappingOne(qrOneBoxCodeMappingReq);
+
+        return qrBoxMapping;
+    }
 }

+ 1 - 1
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrBoxMappingMapper.xml

@@ -68,7 +68,7 @@
         </where>
     </select>
 
-    <select id="getIndexQrBoxCodeMappingOne" resultType="com.abi.qms.platform.dao.vo.result.QrBoxMappingVO">
+    <select id="getIndexQrBoxCodeMappingOne" resultType="com.abi.qms.platform.dao.entity.QrBoxMapping">
         SELECT
         <include refid="Base_Column_List"/>
         FROM