Browse Source

Merge remote-tracking branch 'origin/feature/1.0.0' into feature/1.0.0

v_KaixiangGuo 3 năm trước cách đây
mục cha
commit
113b4eeb48
19 tập tin đã thay đổi với 393 bổ sung88 xóa
  1. 10 1
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/ActiveController.java
  2. 1 1
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/RoleManagerController.java
  3. 1 1
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/entity/BaseActiveModifyApplyQrPackageMapping.java
  4. 4 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/entity/BaseFactory.java
  5. 50 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/enums/ActiveModifyTypeEnum.java
  6. 6 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/BaseActiveModifyApplyQrPackageMappingMapper.java
  7. 8 4
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrPackageMapper.java
  8. 34 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/ActiveModifyApplyPackageVO.java
  9. 50 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/BatchInsertActiveModifyApplyQrPackageColumnReq.java
  10. 50 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/ResubmitActiveReq.java
  11. 5 3
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/UpdateActiveReq.java
  12. 0 3
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListLoginUserResourceRes.java
  13. 6 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/ActiveService.java
  14. 113 27
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/ActiveServiceImpl.java
  15. 4 1
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrBoxCodeFormatImpl.java
  16. 1 21
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/RoleManagerServiceImpl.java
  17. 6 0
      abi-cloud-qr-platform-server/src/main/resources/dao/mapper/BaseActiveModifyApplyQrPackageMappingMapper.xml
  18. 5 0
      abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrPackageMapper.xml
  19. 39 26
      abi-cloud-qr-platform-server/src/main/resources/dao/mapper/UserResourceMapper.xml

+ 10 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/ActiveController.java

@@ -40,7 +40,7 @@ public class ActiveController {
         return BaseResponse.create();
     }
 
-    @ApiOperation("编辑活动")
+    @ApiOperation("编辑活动(待审核/审核拒绝 初次)")
     @PostMapping("updateActive")
     public BaseResponse updateActive(@Validated @RequestBody UpdateActiveReq updateActiveReq) throws Exception{
         //编辑活动
@@ -49,6 +49,15 @@ public class ActiveController {
         return BaseResponse.create();
     }
 
+    @ApiOperation("修改码活动(已审核通过)")
+    @PostMapping("resubmitActive")
+    public BaseResponse resubmitActive(@Validated @RequestBody ResubmitActiveReq req) throws Exception{
+        //编辑活动
+        activeService.resubmitActive(req);
+        //包装出参
+        return BaseResponse.create();
+    }
+
     @ApiOperation("分页查询活动")
     @GetMapping("listActive")
     public BaseResponse<ListActiveRes> listActive(@Validated ListActiveReq listActiveReq) throws Exception{

+ 1 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/RoleManagerController.java

@@ -36,7 +36,7 @@ public class RoleManagerController {
         return BaseResponse.create(result);
     }
 
-    @ApiOperation("获取登录用户需要的页面以及按钮权限")
+    @ApiOperation("获取登录用户的页面以及按钮权限")
     @GetMapping("listLoginUserResource")
     public BaseResponse<ListLoginUserResourceRes> listLoginUserResource() throws Exception{
         //获取登录用户需要的页面以及按钮权限

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

@@ -33,7 +33,7 @@ public class BaseActiveModifyApplyQrPackageMapping {
 	@Schema(name = "码包id")
     private Long qrPackageId;
 
-	@Schema(name = "修改类型: 1-新增 2-删除 ")
+	@Schema(name = "修改类型: 1-新增 2-删除")
     private Integer modifyType;
 
 	@Schema(name = "创建时间")

+ 4 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/entity/BaseFactory.java

@@ -1,6 +1,8 @@
 package com.abi.qms.platform.dao.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -68,12 +70,14 @@ public class BaseFactory {
     private Integer valid;
 
     @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
     private LocalDateTime createTime;
 
     @ApiModelProperty(value = "创建人id")
     private Long createBy;
 
     @ApiModelProperty(value = "修改时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
     private LocalDateTime updateTime;
 
     @ApiModelProperty(value = "是否删除")

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

@@ -0,0 +1,50 @@
+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;
+
+/**
+ * @author Eurus
+ * @date 2021/5/31 14:33
+ * @Description: 码活动关联码包 修改类型
+ */
+@Getter
+@AllArgsConstructor
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum ActiveModifyTypeEnum {
+
+    //修改类型: 1-新增 2-删除 3-未修改
+    ADD(1,"新增"),
+    DELETE(2,"删除");
+
+
+    @EnumValue
+    private Integer code;
+    private String name;
+
+    private static final Set<ActiveModifyTypeEnum> ALL = EnumSet.allOf(ActiveModifyTypeEnum.class);
+
+    public static String getName(Integer code) {
+        return ALL.stream()
+                .filter(o -> o.code.equals(code))
+                .map(ActiveModifyTypeEnum::getName)
+                .findAny().orElse(null);
+    }
+
+    public static Integer getCode(String name) {
+        return ALL.stream()
+                .filter(o -> o.name.equals(name))
+                .map(ActiveModifyTypeEnum::getCode)
+                .findAny().orElse(null);
+    }
+
+    public boolean is(Integer code) {
+        return getCode().equals(code);
+    }
+
+}

+ 6 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/BaseActiveModifyApplyQrPackageMappingMapper.java

@@ -1,7 +1,11 @@
 package com.abi.qms.platform.dao.mapper;
 
 import com.abi.qms.platform.dao.entity.BaseActiveModifyApplyQrPackageMapping;
+import com.abi.qms.platform.dto.req.BatchInsertActiveModifyApplyQrPackageColumnReq;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,4 +16,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface BaseActiveModifyApplyQrPackageMappingMapper extends BaseMapper<BaseActiveModifyApplyQrPackageMapping> {
 
+    int batchInsert(@Param("param") BatchInsertActiveModifyApplyQrPackageColumnReq param);
+
 }

+ 8 - 4
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrPackageMapper.java

@@ -1,10 +1,7 @@
 package com.abi.qms.platform.dao.mapper;
 
 import com.abi.qms.platform.dao.entity.QrPackage;
-import com.abi.qms.platform.dao.vo.result.ActivePackageVO;
-import com.abi.qms.platform.dao.vo.result.PackageActiveSearchVO;
-import com.abi.qms.platform.dao.vo.result.QrPackageVO;
-import com.abi.qms.platform.dao.vo.result.QrSingleCheckVO;
+import com.abi.qms.platform.dao.vo.result.*;
 import com.abi.qms.platform.dto.req.ListActivePackageAddReq;
 import com.abi.qms.platform.dto.req.ListQrPackageReq;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -49,4 +46,11 @@ public interface QrPackageMapper extends BaseMapper<QrPackage> {
 	 * 单码查询详细信息
 	 */
 	QrSingleCheckVO getQrSingleCheckDetailById(Long id);
+
+	/**
+	 * 通过码活动申请id查询关联码包列表
+	 * @param page
+	 * @return
+	 */
+	IPage<ActiveModifyApplyPackageVO> listPackageByActiveApplyId(IPage page, @Param("applyId") Long applyId);
 }

+ 34 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/ActiveModifyApplyPackageVO.java

@@ -0,0 +1,34 @@
+package com.abi.qms.platform.dao.vo.result;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author Eurus
+ * @date 2021/5/31 15:54
+ * @Description: 活动编辑申请码包关联子表 返回
+ */
+public class ActiveModifyApplyPackageVO implements Serializable {
+
+    @ApiModelProperty("码包id")
+    private Long packageId;
+
+    @ApiModelProperty("码类型 1-箱码 2-盖码")
+    private Integer qrType;
+
+    @ApiModelProperty("sku名称")
+    private String skuName;
+
+    @ApiModelProperty("品牌名称")
+    private String brandName;
+
+    @ApiModelProperty("上级品牌名称")
+    private String parentBrandName;
+
+    @ApiModelProperty("码数量")
+    private Long qrNumber;
+
+    @ApiModelProperty("修改类型: 1-新增 2-删除")
+    private Integer modifyType;
+}

+ 50 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/BatchInsertActiveModifyApplyQrPackageColumnReq.java

@@ -0,0 +1,50 @@
+package com.abi.qms.platform.dto.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author Eurus
+ * @date 2021/5/31 11:53
+ * @Description: 批量插入活动编辑申请码包关联子表 入参
+ */
+@Data
+@ApiModel
+public class BatchInsertActiveModifyApplyQrPackageColumnReq implements Serializable {
+
+    @ApiModelProperty("修改申请表id")
+    private Long applyId;
+
+    @ApiModelProperty("活动id")
+    private Long activeId;
+
+    @ApiModelProperty("更新用户id")
+    private Long updateBy;
+
+    @ApiModelProperty("创建用户id")
+    private Long createBy;
+
+    @ApiModelProperty("码包id")
+    private List<PackageAndModifyType> packageAndModifyTypeList;
+
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "BatchInsertActiveModifyApplyQrPackageColumnReq_PackageAndModifyType")
+    public static class PackageAndModifyType implements Serializable {
+        @ApiModelProperty("码包id")
+        private Long qrPackageId;
+
+        @ApiModelProperty("修改类型")
+        private Integer modifyType;
+    }
+}

+ 50 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/ResubmitActiveReq.java

@@ -0,0 +1,50 @@
+package com.abi.qms.platform.dto.req;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @author Eurus
+ * @date 2021/5/31 14:43
+ * @Description: 修改码活动(已审核通过) 入参
+ */
+@Data
+@ApiModel
+public class ResubmitActiveReq implements Serializable {
+
+    @ApiModelProperty(value = "码活动id")
+    private Long activeId;
+
+    @ApiModelProperty(value = "活动名称")
+    private String activeName;
+
+    @ApiModelProperty(value = "活动类型 1-utc 2-bof 3-品质信息")
+    private Integer activeType;
+
+    @ApiModelProperty(value = "活动开始日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime beginTime;
+
+    @ApiModelProperty(value = "活动结束日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty(value = "品牌code")
+    private List<String> brandCodeList;
+
+    @ApiModelProperty(value = "活动域名")
+    private String activeUrl;
+
+    @ApiModelProperty(value = "关联码包(新增)")
+    private List<Long> qrPackageIdAddList;
+
+    @ApiModelProperty(value = "关联码包(删除)")
+    private List<Long> qrPackageIdDeleteList;
+}

+ 5 - 3
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/UpdateActiveReq.java

@@ -41,8 +41,10 @@ public class UpdateActiveReq implements Serializable {
     @ApiModelProperty(value = "活动域名")
     private String activeUrl;
 
-    @NotNull(message = "关联码包为空")
-    @ApiModelProperty(value = "关联码包")
-    private List<Long> qrPackageIdList;
+    @ApiModelProperty(value = "关联码包(新增)")
+    private List<Long> qrPackageIdAddList;
+
+    @ApiModelProperty(value = "关联码包(删除)")
+    private List<Long> qrPackageIdDeleteList;
 
 }

+ 0 - 3
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListLoginUserResourceRes.java

@@ -43,9 +43,6 @@ public class ListLoginUserResourceRes implements Serializable {
       @ApiModelProperty(value = "资源内容")
       private String content;
 
-      @ApiModelProperty("子资源列表 当返回要求是树形结构时,才会返回")
-      private List<MenuBean> resourceBeanList;
-
     }
 
   /**

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

@@ -30,6 +30,12 @@ public interface ActiveService{
      */
     void updateActive(UpdateActiveReq updateActiveReq);
 
+    /**
+     * 修改码活动(已审核通过)
+     * @param req
+     */
+    void resubmitActive(ResubmitActiveReq req);
+
     /**
      * 分页查询活动
      * @param listActiveReq

+ 113 - 27
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/ActiveServiceImpl.java

@@ -1,17 +1,12 @@
 package com.abi.qms.platform.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
-import com.abi.qms.platform.dao.entity.BaseActive;
-import com.abi.qms.platform.dao.entity.BaseActiveQrPackageMapping;
-import com.abi.qms.platform.dao.entity.BaseBrand;
-import com.abi.qms.platform.dao.entity.QrPackage;
+import com.abi.qms.platform.dao.entity.*;
 import com.abi.qms.platform.dao.enums.ActiveAuditStatusEnum;
+import com.abi.qms.platform.dao.enums.ActiveModifyTypeEnum;
 import com.abi.qms.platform.dao.enums.QrPackageApplyStatusEnum;
 import com.abi.qms.platform.dao.enums.ValidEnum;
-import com.abi.qms.platform.dao.mapper.BaseActiveMapper;
-import com.abi.qms.platform.dao.mapper.BaseActiveQrPackageMappingMapper;
-import com.abi.qms.platform.dao.mapper.BaseBrandMapper;
-import com.abi.qms.platform.dao.mapper.QrPackageMapper;
+import com.abi.qms.platform.dao.mapper.*;
 import com.abi.qms.platform.dao.vo.result.ActivePackageVO;
 import com.abi.qms.platform.dao.vo.result.PackageActiveSearchVO;
 import com.abi.qms.platform.dto.req.*;
@@ -60,6 +55,12 @@ public class ActiveServiceImpl implements ActiveService {
 
     @Autowired
     private QrPackageMapper qrPackageMapper;
+
+    @Autowired
+    private BaseActiveModifyApplyMapper baseActiveModifyApplyMapper;
+
+    @Autowired
+    private BaseActiveModifyApplyQrPackageMappingMapper baseActiveModifyApplyQrPackageMappingMapper;
     
     /**
      * 新增活动
@@ -108,12 +109,17 @@ public class ActiveServiceImpl implements ActiveService {
      * 编辑活动
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void updateActive(UpdateActiveReq req){
 
         //1-查询活动
         BaseActive active = baseActiveMapper.selectById(req.getId());
         AssertUtil.isNull(active,"活动不存在");
 
+        if(ActiveAuditStatusEnum.REVIEW_PASS.is(active.getAuditStatus())){
+            throw new BusinessException("该数据已审核通过,请调用重新提交审核的接口。");
+        }
+
         //2-修改活动
         Long userId = userUtil.getUser().getId();
         active.setActiveName(req.getActiveName());
@@ -132,7 +138,50 @@ public class ActiveServiceImpl implements ActiveService {
 
 
         //删除添加关联的码包,重新插入
-        updateActivePackageMappiing(req.getId(), req.getQrPackageIdList());
+        updateActivePackageMappiing(req.getId(), req.getQrPackageIdAddList(), req.getQrPackageIdDeleteList());
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void resubmitActive(ResubmitActiveReq req) {
+        //1-查询活动
+        BaseActive active = baseActiveMapper.selectById(req.getActiveId());
+        AssertUtil.isNull(active,"活动不存在");
+
+        if(ActiveAuditStatusEnum.REVIEW_PASS.is(active.getAuditStatus())){
+            throw new BusinessException("该数据已审核通过,请调用重新提交审核的接口。");
+        }
+
+        //删除原有申请单数据
+        UpdateWrapper<BaseActiveModifyApply> basmaUpdate = new UpdateWrapper<>();
+        basmaUpdate.set("is_delete", 1)
+                .eq("active_id", req.getActiveId());
+        baseActiveModifyApplyMapper.update(null, basmaUpdate);
+        UpdateWrapper<BaseActiveModifyApplyQrPackageMapping> basmamUpdate = new UpdateWrapper<>();
+        basmamUpdate.set("is_delete", 1)
+                .eq("active_id", req.getActiveId());
+        baseActiveModifyApplyQrPackageMappingMapper.update(null, basmamUpdate);
+
+        //新增活动申请单
+        Long userId = userUtil.getUser().getId();
+        BaseActiveModifyApply baseActiveModifyApply = new BaseActiveModifyApply();
+        baseActiveModifyApply.setActiveId(req.getActiveId());
+        baseActiveModifyApply.setActiveName(req.getActiveName());
+        baseActiveModifyApply.setActiveType(req.getActiveType());
+        baseActiveModifyApply.setAuditStatus(ActiveAuditStatusEnum.WAIT_REVIEW.getCode());
+        baseActiveModifyApply.setApplyTime(LocalDateTime.now());
+        baseActiveModifyApply.setApplyUserId(userId);
+        baseActiveModifyApply.setApplyUserName(userUtil.getUser().getUserName());
+        baseActiveModifyApply.setBeginTime(req.getBeginTime());
+        baseActiveModifyApply.setEndTime(req.getEndTime());
+        baseActiveModifyApply.setBrandCode(CollectionUtil.isNotEmpty(req.getBrandCodeList()) ? String.join(",", req.getBrandCodeList()) : null);
+        baseActiveModifyApply.setActiveUrl(req.getActiveUrl());
+        baseActiveModifyApply.setUpdateBy(userId);
+        baseActiveModifyApply.setCreateBy(userId);
+        baseActiveModifyApplyMapper.insert(baseActiveModifyApply);
+
+        //批量插入 活动编辑申请码包关联子表
+        batchInsertActiveModifyApplyPackageMappiing(baseActiveModifyApply.getId(), req.getActiveId(), req.getQrPackageIdAddList(), req.getQrPackageIdDeleteList());
     }
 
     /**
@@ -213,6 +262,7 @@ public class ActiveServiceImpl implements ActiveService {
      * 活动启用
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void enableActive(EnableActiveReq req){
         List<Long> ids = req.getIds();
 
@@ -236,6 +286,7 @@ public class ActiveServiceImpl implements ActiveService {
      * 活动禁用
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void disableActive(DisableActiveReq req){
         List<Long> ids = req.getIds();
 
@@ -291,36 +342,33 @@ public class ActiveServiceImpl implements ActiveService {
     }
 
 
-    private void updateActivePackageMappiing(Long activeId, List<Long> qrPackageIdList){
-        //查询已存在的码活动和码包的关联
-        QueryWrapper<BaseActiveQrPackageMapping> baseActiveQrPackageMappingQW = new QueryWrapper<>();
-        baseActiveQrPackageMappingQW.eq("active_id", activeId);
-        baseActiveQrPackageMappingQW.eq("is_delete", 0);
-        List<BaseActiveQrPackageMapping> baseActiveQrPackageMappings = baseActiveQrPackageMappingMapper.selectList(baseActiveQrPackageMappingQW);
-        //聚合绑定的码包
-        List<Long> oldPackageIdList = baseActiveQrPackageMappings.stream().map(BaseActiveQrPackageMapping::getQrPackageId).collect(Collectors.toList());
-
-        //排除要添加的关联码包,和要删除的关联码包
-        List<Long> deleteBatch = new ArrayList<>(oldPackageIdList);
-        deleteBatch.removeAll(qrPackageIdList);
-        List<Long> addBatch = new ArrayList<>(qrPackageIdList);
-        addBatch.removeAll(oldPackageIdList);
+    /**
+     * 更新码活动和码包关联子表
+     * @param activeId
+     * @param qrPackageIdAddList
+     */
+    private void updateActivePackageMappiing(Long activeId, List<Long> qrPackageIdAddList, List<Long> qrPackageIdDeleteList){
+        //添加和删除的去重
+        List<Long> distinctBatch = new ArrayList<>(qrPackageIdAddList);
+        distinctBatch.retainAll(qrPackageIdAddList);
+        qrPackageIdAddList.removeAll(distinctBatch);
+        qrPackageIdDeleteList.removeAll(distinctBatch);
 
         Long loginUserId = userUtil.getUser().getId();
 
         //批量删除
-        if(CollectionUtil.isNotEmpty(deleteBatch)){
+        if(CollectionUtil.isNotEmpty(qrPackageIdDeleteList)){
             UpdateWrapper<BaseActiveQrPackageMapping> aqpmQW = new UpdateWrapper<>();
             aqpmQW.set("is_delete", 1)
                     .set("update_by", loginUserId)
                     .eq("active_id", activeId)
-                    .in("qr_package_id", deleteBatch);
+                    .in("qr_package_id", qrPackageIdDeleteList);
             baseActiveQrPackageMappingMapper.update(null, aqpmQW);
         }
 
         //批量添加
-        if(CollectionUtil.isNotEmpty(addBatch)){
-            List<QrPackage> qrPackages = searchReviewPassPackageByPackageIds(addBatch);
+        if(CollectionUtil.isNotEmpty(qrPackageIdAddList)){
+            List<QrPackage> qrPackages = searchReviewPassPackageByPackageIds(qrPackageIdAddList);
             List<Long> qrPackageIdsAdd = qrPackages.stream().map(QrPackage::getId).collect(Collectors.toList());
             if(CollectionUtil.isNotEmpty(qrPackageIdsAdd)) {
                 baseActiveQrPackageMappingMapper.batchInsert(activeId, qrPackageIdsAdd, loginUserId);
@@ -341,4 +389,42 @@ public class ActiveServiceImpl implements ActiveService {
         return qrPackageMapper.selectList(qrPackageQueryWrapper);
     }
 
+    /**
+     * 批量插入 活动编辑申请码包关联子表
+     * @param activeId
+     * @param qrPackageIdAddList
+     */
+    private void batchInsertActiveModifyApplyPackageMappiing(Long applyId, Long activeId, List<Long> qrPackageIdAddList, List<Long> qrPackageIdDeleteList){
+        //添加和删除的去重
+        List<Long> distinctBatch = new ArrayList<>(qrPackageIdAddList);
+        distinctBatch.retainAll(qrPackageIdDeleteList);
+        qrPackageIdAddList.removeAll(distinctBatch);
+        qrPackageIdDeleteList.removeAll(distinctBatch);
+
+        List<BatchInsertActiveModifyApplyQrPackageColumnReq.PackageAndModifyType> batchInsertamaqpcrpam = new ArrayList<>();
+        Long loginUserId = userUtil.getUser().getId();
+        qrPackageIdAddList.forEach(qrPackageIdAdd -> {
+            BatchInsertActiveModifyApplyQrPackageColumnReq.PackageAndModifyType packageAndModifyType = new BatchInsertActiveModifyApplyQrPackageColumnReq.PackageAndModifyType();
+            packageAndModifyType.setQrPackageId(qrPackageIdAdd);
+            packageAndModifyType.setModifyType(ActiveModifyTypeEnum.ADD.getCode());
+            batchInsertamaqpcrpam.add(packageAndModifyType);
+        });
+
+        qrPackageIdDeleteList.forEach(qrPackageIdDelete -> {
+            BatchInsertActiveModifyApplyQrPackageColumnReq.PackageAndModifyType packageAndModifyType = new BatchInsertActiveModifyApplyQrPackageColumnReq.PackageAndModifyType();
+            packageAndModifyType.setQrPackageId(qrPackageIdDelete);
+            packageAndModifyType.setModifyType(ActiveModifyTypeEnum.DELETE.getCode());
+            batchInsertamaqpcrpam.add(packageAndModifyType);
+        });
+
+        //批量插入
+        BatchInsertActiveModifyApplyQrPackageColumnReq columnReq = new BatchInsertActiveModifyApplyQrPackageColumnReq();
+        columnReq.setApplyId(applyId);
+        columnReq.setActiveId(activeId);
+        columnReq.setCreateBy(loginUserId);
+        columnReq.setUpdateBy(loginUserId);
+        columnReq.setPackageAndModifyTypeList(batchInsertamaqpcrpam);
+        baseActiveModifyApplyQrPackageMappingMapper.batchInsert(columnReq);
+    }
+
 }

+ 4 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrBoxCodeFormatImpl.java

@@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -72,6 +73,8 @@ public class QrBoxCodeFormatImpl implements QrBoxCodeFormatService {
 
         //3-新增or修改
         if (req.getId() != null) {
+            qrBoxCodeFormat.setUpdateTime(LocalDateTime.now());
+            qrBoxCodeFormat.setUpdateBy(userUtil.getUser().getUserName());
             qrBoxCodeFormatMapper.updateById(qrBoxCodeFormat);
         } else {
             qrBoxCodeFormatMapper.insert(qrBoxCodeFormat);
@@ -115,7 +118,7 @@ public class QrBoxCodeFormatImpl implements QrBoxCodeFormatService {
     @Override
     public ListBoxCodeFormatRes listBoxCodeFormat(ListBoxCodeFormatReq req) {
         //数据权限隔离,如果登录账号是包材厂,只能看账号包材厂的数据。否则看全部
-        if (userUtil.getWholeUser().getFactoryId() != null && userUtil.getWholeUser().getFactoryType() != null && FactoryTypeEnum.COVER.is(userUtil.getWholeUser().getFactoryType()) ) {
+        if (userUtil.getWholeUser().getFactoryId() != null && userUtil.getWholeUser().getFactoryType() != null && FactoryTypeEnum.COVER.is(userUtil.getWholeUser().getFactoryType())) {
             req.setFactoryId(userUtil.getWholeUser().getFactoryId());
         }
         //分页查询

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

@@ -321,36 +321,16 @@ public class RoleManagerServiceImpl implements RoleManagerService {
         UserInfo user = userUtil.getUser();
         //获取当前用户的角色
         UserRole role = getRoleByCode(user.getRoleCode());
-        //UserRole role = getRoleByCode("20000000051");
 
         //1-查询菜单
         List<UserResource> userResourceList = userResourceMapper.listLoginMenu(role.getRoleCode());
-        //菜单转树形
-        List<ListLoginUserResourceRes.MenuBean> menuBeanList = new ArrayList<>();
-        //放一个map,用于快捷查找到list  key为父resourceCode
-        Map<String,List<ListLoginUserResourceRes.MenuBean>> resourceListMap = new HashMap<>();
-        //如果父类code为null,那么父list就是顶层list
-        resourceListMap.put(null,menuBeanList);
-        //开始循环放入,因为查询语句排过序,所以查到的顺序,一定是先父后子
-        for(UserResource resource:userResourceList){
-            //先获取父类列表
-            List<ListLoginUserResourceRes.MenuBean> parentList = resourceListMap.get(resource.getParentResourceCode());
-            //然后放入自己
-            ListLoginUserResourceRes.MenuBean menuBean = PojoConverterUtils.copy(resource, ListLoginUserResourceRes.MenuBean.class);
-            parentList.add(menuBean);
-            //如果resourceCode是3位,则需要创建子list
-            if(menuBean.getResourceCode().length()==3){
-                menuBean.setResourceBeanList(new ArrayList<>());
-                resourceListMap.put(menuBean.getResourceCode(),menuBean.getResourceBeanList());
-            }
-        }
 
         //2-查询按钮
         List<UserResource> btnResourceList = userResourceMapper.listResourceTreeByRoleCode(role.getRoleCode(),2);
 
         //构造出参
         ListLoginUserResourceRes res = new ListLoginUserResourceRes();
-        res.setMenuBeanList(menuBeanList);
+        res.setMenuBeanList(PojoConverterUtils.copyList(userResourceList,ListLoginUserResourceRes.MenuBean.class));
         res.setBtnBeanList(PojoConverterUtils.copyList(btnResourceList,ListLoginUserResourceRes.BtnBean.class));
 
         return res;

+ 6 - 0
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/BaseActiveModifyApplyQrPackageMappingMapper.xml

@@ -21,4 +21,10 @@
         id, apply_id, active_id, qr_package_id, modify_type, create_time, create_by, update_time, update_by, is_delete
     </sql>
 
+    <insert id="batchInsert">
+        INSERT INTO base_active_modify_apply_qr_package_mapping (apply_id, active_id, qr_package_id, modify_type, create_by, update_by) VALUES
+        <foreach item="item" index="index" collection="param.packageAndModifyTypeList" separator=",">
+            ( #{param.applyId}, #{param.activeId}, #{item.qrPackageId}, #{item.modifyType}, #{param.createBy}, #{param.updateBy} )
+        </foreach>
+    </insert>
 </mapper>

+ 5 - 0
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrPackageMapper.xml

@@ -239,4 +239,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
         qp.id = #{id}
     </select>
+
+    <!--通过码活动申请id查询关联码包列表-->
+    <select id="listPackageByActiveApplyId" resultType="com.abi.qms.platform.dao.vo.result.ActiveModifyApplyPackageVO">
+
+    </select>
 </mapper>

+ 39 - 26
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/UserResourceMapper.xml

@@ -25,25 +25,30 @@
     <select id="listResourceTreeByRoleCode" resultType="com.abi.qms.platform.dao.entity.UserResource">
         select *
         from user_resource
-        where resource_code in (
-            select resource_code
-            from user_mapping_role_resource
-            where role_code=#{roleCode} and is_delete=0
+        <where>
+            <!-- 非admin角色,通过“查看页面”倒推资源 -->
+            <if test="roleCode!='admin'">
+                resource_code in (
+                    select resource_code
+                    from user_mapping_role_resource
+                    where role_code=#{roleCode} and is_delete=0
 
-            union all
-            select left(resource_code,6)
-            from user_mapping_role_resource
-            where role_code=#{roleCode} and is_delete=0
+                    union all
+                    select left(resource_code,6)
+                    from user_mapping_role_resource
+                    where role_code=#{roleCode} and is_delete=0
 
-            union all
-            select left(resource_code,3)
-            from user_mapping_role_resource
-            where role_code=#{roleCode} and is_delete=0
-        )
-        <!-- 仅查询按钮 -->
-        <if test="resourceType==2">
-            and resource_type = #{resourceType}
-        </if>
+                    union all
+                    select left(resource_code,3)
+                    from user_mapping_role_resource
+                    where role_code=#{roleCode} and is_delete=0
+                )
+            </if>
+            <!-- 仅查询按钮 -->
+            <if test="resourceType!=null">
+                and resource_type = #{resourceType}
+            </if>
+        </where>
 
         order by resource_code
 
@@ -52,19 +57,27 @@
     <select id="listLoginMenu" resultType="com.abi.qms.platform.dao.entity.UserResource">
         select *
         from user_resource
-        where resource_code in (
-            SELECT left(m.resource_code,6)
-            FROM user_mapping_role_resource m
+        <where>
+            <!-- 非admin角色,通过“查看页面”倒推资源 -->
+            <if test="roleCode!='admin'">
+                resource_code in (
+                SELECT left(m.resource_code,6)
+                FROM user_mapping_role_resource m
                 inner join user_resource r on m.resource_code=r.resource_code
-            WHERE m.role_code = #{roleCode} AND m.is_delete = 0 and r.resource_type='3'
+                WHERE m.role_code = #{roleCode} AND m.is_delete = 0 and r.resource_type='3'
 
-            union all
+                union all
 
-            SELECT left(m.resource_code,3)
-            FROM user_mapping_role_resource m
+                SELECT left(m.resource_code,3)
+                FROM user_mapping_role_resource m
                 inner join user_resource r on m.resource_code=r.resource_code
-            WHERE m.role_code = #{roleCode} AND m.is_delete = 0 and r.resource_type='3'
-        )
+                WHERE m.role_code = #{roleCode} AND m.is_delete = 0 and r.resource_type='3'
+                )
+            </if>
+
+            <!-- 仅查询页面资源 -->
+            and resource_type = 1
+        </where>
 
         order by resource_code
     </select>