he2802 3 жил өмнө
parent
commit
23c1efdb61
20 өөрчлөгдсөн 242 нэмэгдсэн , 55 устгасан
  1. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamActivityApplyBo.java
  2. 3 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamActivityUserVo.java
  3. 25 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamActivityServiceImpl.java
  4. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsSpecAttributeMapper.java
  5. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsSpecMapper.java
  6. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsSpecAttributeService.java
  7. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsSpecService.java
  8. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java
  9. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsSpecAttributeServiceImpl.java
  10. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsSpecServiceImpl.java
  11. 60 39
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsSpecTemplateServiceImpl.java
  12. 29 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/UserMockActivityAddBo.java
  13. 4 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java
  14. 12 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserMockSubscribeService.java
  15. 36 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockSubscribeServiceImpl.java
  16. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java
  17. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamActivityMapper.xml
  18. 16 0
      zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsSpecAttributeMapper.xml
  19. 16 0
      zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsSpecMapper.xml
  20. 3 4
      zhongzheng-system/src/main/resources/mapper/modules/mock/MockApplyMapper.xml

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamActivityApplyBo.java

@@ -49,6 +49,10 @@ public class ExamActivityApplyBo implements Serializable {
     @ApiModelProperty("科目IDs")
     private String mockSubjectIds;
 
+    /**模考绑定科目IDs */
+    @ApiModelProperty("模考绑定科目IDs")
+    private String mockMajorSubjectIds;
+
     /** 报考科目(多个用逗号隔开) */
     @ApiModelProperty("报考科目(多个用逗号隔开)")
     private String userMajors;

+ 3 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamActivityUserVo.java

@@ -37,7 +37,7 @@ public class ExamActivityUserVo implements Serializable {
     private String companyName;
     /** 用户身份证号码 */
     @ApiModelProperty("用户身份证号码")
-    @Excel(name = "用户身份证号码")
+//    @Excel(name = "用户身份证号码")
     private String userIdCard;
     /** 用户手机号码 */
     @ApiModelProperty("用户手机号码")
@@ -51,8 +51,10 @@ public class ExamActivityUserVo implements Serializable {
     @ApiModelProperty("科目IDs")
     private String mockSubjectIds;
     @ApiModelProperty("专业名称")
+    @Excel(name = "报考专业")
     private String mockMajorName;
     @ApiModelProperty("科目名称(多个按逗号隔开)")
+    @Excel(name = "报考科目")
     private String mockSubjectNames;
 
 }

+ 25 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamActivityServiceImpl.java

@@ -26,13 +26,16 @@ import com.zhongzheng.modules.exam.vo.ExamActivityVo;
 import com.zhongzheng.modules.goods.domain.Goods;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
+import com.zhongzheng.modules.mock.bo.UserMockActivityAddBo;
 import com.zhongzheng.modules.mock.domain.MockMajor;
 import com.zhongzheng.modules.mock.domain.MockMajorSubject;
 import com.zhongzheng.modules.mock.service.IMockMajorService;
 import com.zhongzheng.modules.mock.service.IMockMajorSubjectService;
 import com.zhongzheng.modules.user.domain.User;
+import com.zhongzheng.modules.user.service.IUserMockSubscribeService;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.wx.service.IWxLoginService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -70,6 +73,8 @@ public class ExamActivityServiceImpl extends ServiceImpl<ExamActivityMapper, Exa
     private IMockMajorSubjectService mockMajorSubjectService;
     @Autowired
     private IUserService userService;
+    @Autowired
+    private IUserMockSubscribeService userMockSubscribeService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -112,7 +117,24 @@ public class ExamActivityServiceImpl extends ServiceImpl<ExamActivityMapper, Exa
         examActivityUser.setUserPhone(user.getTelphone());
         examActivityUser.setCreateTime(DateUtils.getNowTime());
         examActivityUser.setUpdateTime(DateUtils.getNowTime());
+        if (ObjectUtils.isNull(user.getNickname())){
+            user.setNickname(bo.getUserName());
+        }
+        if (ObjectUtils.isNull(user.getSex())){
+            user.setSex(bo.getUserSex());
+        }
+        if (ObjectUtils.isNull(user.getCompanyName())){
+            user.setCompanyName(bo.getCompanyName());
+        }
+        userService.updateById(user);
         iExamActivityUserService.save(examActivityUser);
+        //生成活动模考数据
+        UserMockActivityAddBo addBo = new UserMockActivityAddBo();
+        addBo.setUserId(bo.getUserId());
+        addBo.setMockApplyId(entity.getMockApplyId());
+        addBo.setMockMajorSubjectIds(Arrays.stream(bo.getMockMajorSubjectIds().split(",")).map(x -> Long.valueOf(x)).collect(Collectors.toList()));
+        userMockSubscribeService.addUserActivityMock(addBo);
+
         ExamActivity activity = getById(bo.getActivityId());
         ExamActivityApplyVo vo = new ExamActivityApplyVo();
         BeanUtils.copyProperties(activity,vo);
@@ -172,8 +194,9 @@ public class ExamActivityServiceImpl extends ServiceImpl<ExamActivityMapper, Exa
             }
             if (ObjectUtils.isNotNull(item.getMockSubjectIds())){
                 List<CourseSubject> subjects = courseSubjectService.listByIds(Arrays.stream(item.getMockSubjectIds().split(",")).collect(Collectors.toList()));
-                String names = subjects.stream().map(CourseSubject::getSubjectName).collect(Collectors.joining());
-                item.setMockSubjectNames(names);
+//                String names = subjects.stream().map(CourseSubject::getSubjectName).collect(Collectors.joining());
+                List<String> names = subjects.stream().map(CourseSubject::getSubjectName).collect(Collectors.toList());
+                item.setMockSubjectNames(StringUtils.join(names, ","));
             }
         });
         return activityUserList;

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsSpecAttributeMapper.java

@@ -2,8 +2,11 @@ package com.zhongzheng.modules.goods.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.goods.bo.GoodsSpecAttributeAddBo;
 import com.zhongzheng.modules.goods.domain.GoodsSpecAttribute;
 
+import java.util.List;
+
 /**
  * 【请填写功能名称】Mapper接口
  *
@@ -12,4 +15,5 @@ import com.zhongzheng.modules.goods.domain.GoodsSpecAttribute;
  */
 public interface GoodsSpecAttributeMapper extends BaseMapper<GoodsSpecAttribute> {
 
+    Integer saveBatchEntity(List<GoodsSpecAttributeAddBo> specAttrList);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsSpecMapper.java

@@ -1,8 +1,11 @@
 package com.zhongzheng.modules.goods.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.goods.bo.GoodsSpecAddBo;
 import com.zhongzheng.modules.goods.domain.GoodsSpec;
 
+import java.util.List;
+
 /**
  * 【请填写功能名称】Mapper接口
  *
@@ -11,4 +14,6 @@ import com.zhongzheng.modules.goods.domain.GoodsSpec;
  */
 public interface GoodsSpecMapper extends BaseMapper<GoodsSpec> {
 
+    Integer saveBatchEntity(List<GoodsSpecAddBo> boList);
+
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsSpecAttributeService.java

@@ -49,4 +49,7 @@ public interface IGoodsSpecAttributeService extends IService<GoodsSpecAttribute>
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    Integer saveBatchEntity(List<GoodsSpecAttributeAddBo> specAttrList);
+
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsSpecService.java

@@ -50,4 +50,7 @@ public interface IGoodsSpecService extends IService<GoodsSpec> {
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    Integer saveBatchEntity(List<GoodsSpecAddBo> bos);
+
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -101,6 +101,9 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
     @Autowired
     private  ICourseSubjectService iCourseSubjectService;
 
+    @Autowired
+    private  IGoodsSpecService goodsSpecService;
+
     @Override
     public GoodsVo queryById(Long goodsId){
         Goods db = this.baseMapper.selectById(goodsId);
@@ -741,6 +744,10 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
             if (ObjectUtils.isNotNull(business)) {
                 vo.setBusinessName(business.getAliasName());
             }
+            int count = goodsSpecService.count(new LambdaQueryWrapper<GoodsSpec>()
+                    .eq(GoodsSpec::getSpecTemplateId, x.getSpecTemplateId())
+                    .eq(GoodsSpec::getStatus, 1));
+            vo.setSpecNumber(count);
             return vo;
         }).collect(Collectors.toList());
 

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsSpecAttributeServiceImpl.java

@@ -100,4 +100,9 @@ public class GoodsSpecAttributeServiceImpl extends ServiceImpl<GoodsSpecAttribut
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public Integer saveBatchEntity(List<GoodsSpecAttributeAddBo> specAttrList) {
+        return baseMapper.saveBatchEntity(specAttrList);
+    }
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsSpecServiceImpl.java

@@ -110,5 +110,10 @@ public class GoodsSpecServiceImpl extends ServiceImpl<GoodsSpecMapper, GoodsSpec
         return this.removeByIds(ids);
     }
 
+    @Override
+    public Integer saveBatchEntity(List<GoodsSpecAddBo> bos) {
+        return baseMapper.saveBatchEntity(bos);
+    }
+
 
 }

+ 60 - 39
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsSpecTemplateServiceImpl.java

@@ -88,6 +88,7 @@ public class GoodsSpecTemplateServiceImpl extends ServiceImpl<GoodsSpecTemplateM
         lqw.eq(bo.getBusinessId() != null, GoodsSpecTemplate::getBusinessId, bo.getBusinessId());
         lqw.like(StrUtil.isNotBlank(bo.getName()), GoodsSpecTemplate::getName, bo.getName());
         lqw.eq(bo.getStatus() != null, GoodsSpecTemplate::getStatus, bo.getStatus());
+        lqw.orderByDesc(GoodsSpecTemplate::getCreateTime);
         List<GoodsSpecTemplateVo> vos = entity2Vo(this.list(lqw));
         if (CollectionUtils.isNotEmpty(vos)){
             vos.forEach(item -> {
@@ -238,33 +239,57 @@ public class GoodsSpecTemplateServiceImpl extends ServiceImpl<GoodsSpecTemplateM
         if (CollectionUtils.isNotEmpty(specList)){
             //重新添加规格
             Integer sort = 1;
+            //新增规格和规格值
             for (GoodsSpecAddBo spec : specList) {
-                GoodsSpec goodsSpec = new GoodsSpec();
-                BeanUtil.copyProperties(spec,goodsSpec);
-                goodsSpec.setSpecTemplateId(bo.getSpecTemplateId());
-                goodsSpec.setCreateTime(DateUtils.getNowTime());
-                goodsSpec.setUpdateTime(DateUtils.getNowTime());
-                goodsSpec.setSort(sort);
-                goodsSpecService.save(goodsSpec);
-                spec.setSpecId(goodsSpec.getSpecId());
-                if (CollectionUtils.isNotEmpty(spec.getSpecAttrList())){
-                    Integer attrSortId = 1;
-                    for (GoodsSpecAttributeAddBo item : spec.getSpecAttrList()) {
-                        GoodsSpecAttribute goodsSpecAttribute = new GoodsSpecAttribute();
-                        BeanUtil.copyProperties(item, goodsSpecAttribute);
-                        goodsSpecAttribute.setCreateTime(DateUtils.getNowTime());
-                        goodsSpecAttribute.setUpdateTime(DateUtils.getNowTime());
-                        goodsSpecAttribute.setSpecId(goodsSpec.getSpecId());
+                spec.setSpecTemplateId(bo.getSpecTemplateId());
+                spec.setCreateTime(DateUtils.getNowTime());
+                spec.setUpdateTime(DateUtils.getNowTime());
+                spec.setSort(sort);
+                sort ++;
+            }
+            goodsSpecService.saveBatchEntity(specList);
+            for (GoodsSpecAddBo specAddBo : specList) {
+                Integer attrSort = 1;//排序值
+                if (CollectionUtils.isNotEmpty(specAddBo.getSpecAttrList())){
+                    for (GoodsSpecAttributeAddBo item : specAddBo.getSpecAttrList()) {
+                        item.setCreateTime(DateUtils.getNowTime());
+                        item.setUpdateTime(DateUtils.getNowTime());
+                        item.setSpecId(specAddBo.getSpecId());
                         if (ObjectUtils.isNull(item.getSort())){
-                            goodsSpecAttribute.setSort(attrSortId);
+                            item.setSort(attrSort);
                         }
-                        goodsSpecAttributeService.save(goodsSpecAttribute);
-                        item.setSpecAttributeId(goodsSpecAttribute.getSpecAttributeId());
-                        attrSortId ++;
+                        attrSort ++;
                     }
+                    goodsSpecAttributeService.saveBatchEntity(specAddBo.getSpecAttrList());
                 }
-                sort ++;
             }
+//            for (GoodsSpecAddBo spec : specList) {
+//                GoodsSpec goodsSpec = new GoodsSpec();
+//                BeanUtil.copyProperties(spec,goodsSpec);
+//                goodsSpec.setSpecTemplateId(bo.getSpecTemplateId());
+//                goodsSpec.setCreateTime(DateUtils.getNowTime());
+//                goodsSpec.setUpdateTime(DateUtils.getNowTime());
+//                goodsSpec.setSort(sort);
+//                goodsSpecService.save(goodsSpec);
+//                spec.setSpecId(goodsSpec.getSpecId());
+//                if (CollectionUtils.isNotEmpty(spec.getSpecAttrList())){
+//                    Integer attrSortId = 1;
+//                    for (GoodsSpecAttributeAddBo item : spec.getSpecAttrList()) {
+//                        GoodsSpecAttribute goodsSpecAttribute = new GoodsSpecAttribute();
+//                        BeanUtil.copyProperties(item, goodsSpecAttribute);
+//                        goodsSpecAttribute.setCreateTime(DateUtils.getNowTime());
+//                        goodsSpecAttribute.setUpdateTime(DateUtils.getNowTime());
+//                        goodsSpecAttribute.setSpecId(goodsSpec.getSpecId());
+//                        if (ObjectUtils.isNull(item.getSort())){
+//                            goodsSpecAttribute.setSort(attrSortId);
+//                        }
+//                        goodsSpecAttributeService.save(goodsSpecAttribute);
+//                        item.setSpecAttributeId(goodsSpecAttribute.getSpecAttributeId());
+//                        attrSortId ++;
+//                    }
+//                }
+//                sort ++;
+//            }
         }
     };
 
@@ -318,31 +343,27 @@ public class GoodsSpecTemplateServiceImpl extends ServiceImpl<GoodsSpecTemplateM
         Integer sort = 1;//排序值
         //新增规格和规格值
         for (GoodsSpecAddBo bo : bos) {
-            GoodsSpec goodsSpec = new GoodsSpec();
-            BeanUtil.copyProperties(bo,goodsSpec);
-            goodsSpec.setSpecTemplateId(goodsSpecTemplate.getSpecTemplateId());
-            goodsSpec.setCreateTime(DateUtils.getNowTime());
-            goodsSpec.setUpdateTime(DateUtils.getNowTime());
-            goodsSpec.setSort(sort);
-            goodsSpecService.save(goodsSpec);
-            bo.setSpecId(goodsSpec.getSpecId());
+            bo.setSpecTemplateId(goodsSpecTemplate.getSpecTemplateId());
+            bo.setCreateTime(DateUtils.getNowTime());
+            bo.setUpdateTime(DateUtils.getNowTime());
+            bo.setSort(sort);
+            sort ++;
+        }
+        goodsSpecService.saveBatchEntity(bos);
+        for (GoodsSpecAddBo specAddBo : bos) {
             Integer attrSort = 1;//排序值
-            if (CollectionUtils.isNotEmpty(bo.getSpecAttrList())){
-                for (GoodsSpecAttributeAddBo item : bo.getSpecAttrList()) {
-                    GoodsSpecAttribute goodsSpecAttribute = new GoodsSpecAttribute();
-                    BeanUtil.copyProperties(item, goodsSpecAttribute);
-                    goodsSpecAttribute.setCreateTime(DateUtils.getNowTime());
-                    goodsSpecAttribute.setUpdateTime(DateUtils.getNowTime());
-                    goodsSpecAttribute.setSpecId(goodsSpec.getSpecId());
+            if (CollectionUtils.isNotEmpty(specAddBo.getSpecAttrList())){
+                for (GoodsSpecAttributeAddBo item : specAddBo.getSpecAttrList()) {
+                    item.setCreateTime(DateUtils.getNowTime());
+                    item.setUpdateTime(DateUtils.getNowTime());
+                    item.setSpecId(specAddBo.getSpecId());
                     if (ObjectUtils.isNull(item.getSort())){
                         item.setSort(attrSort);
                     }
-                    goodsSpecAttributeService.save(goodsSpecAttribute);
-                    item.setSpecAttributeId(goodsSpecAttribute.getSpecAttributeId());
                     attrSort ++;
                 }
+                goodsSpecAttributeService.saveBatchEntity(specAddBo.getSpecAttrList());
             }
-            sort ++;
         }
         specAttrRelList = new ArrayList<>();
         //组装规格属性列表

+ 29 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/UserMockActivityAddBo.java

@@ -0,0 +1,29 @@
+package com.zhongzheng.modules.mock.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 模考安排添加对象 mock_apply
+ *
+ * @author ruoyi
+ * @date 2022-05-24
+ */
+@Data
+@ApiModel("用户模考对象")
+public class UserMockActivityAddBo {
+
+    @ApiModelProperty("用户ID")
+    private Long userId;
+    /** 模考ID */
+    @ApiModelProperty("模考ID")
+    private Long mockApplyId;
+    /** 模考绑定科目IDs */
+    @ApiModelProperty("模考绑定科目IDs")
+    private List<Long> mockMajorSubjectIds;
+
+}

+ 4 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -686,8 +686,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 billGoodsAddBo.setOrderGoodsId(orderGoods.getOrderGoodsId());
                 billGoodsAddBo.setAmount(orderGoods.getGoodsReceived());
                 billGoodsList.add(billGoodsAddBo);
-                //商品是否有活动模考
-                iUserMockSubscribeService.addActivityMock(orderGoods.getGoodsId(),add.getUserId());
+//                //商品是否有活动模考
+//                iUserMockSubscribeService.addActivityMock(orderGoods.getGoodsId(),add.getUserId());
             }
             billSheetAddBo.setGoodsList(billGoodsList);
             billRs = iOrderBillSheetService.placeBillInputOrder(billSheetAddBo);
@@ -720,8 +720,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         //给用户增加商品考试次数前培次数
         iWxPayService.updateUserExamGoods(orderGoods, order);
         iWxPayService.joinLockGrade(order.getOrderSn(), orderGoods.getGoodsId(), orderGoods.getOrderGoodsId());
-        //商品是否有活动模考
-        iUserMockSubscribeService.addActivityMock(orderGoods.getGoodsId(),order.getUserId());
+//        //商品是否有活动模考
+//        iUserMockSubscribeService.addActivityMock(orderGoods.getGoodsId(),order.getUserId());
     }
 
     @Override

+ 12 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserMockSubscribeService.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.user.service;
 
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
+import com.zhongzheng.modules.mock.bo.UserMockActivityAddBo;
 import com.zhongzheng.modules.user.domain.UserMockSubscribe;
 import com.zhongzheng.modules.user.vo.UserMockSubscribeVo;
 import com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo;
@@ -66,8 +67,17 @@ public interface IUserMockSubscribeService extends IService<UserMockSubscribe> {
 	 * 活动模考数据生成
 	 * @author change
 	 * @date 2022/8/31 16:28
-	 * @param goodId
+	 * @param mockApplyId
 	 * @return java.lang.Boolean
 	 */
-	Boolean addActivityMock(Long goodId,Long userId);
+	Boolean addActivityMock(Long mockApplyId,Long userId);
+
+	/**
+	 * 活动模考数据生成
+	 * @author change
+	 * @date 2022/8/31 16:28
+	 * @param bo
+	 * @return java.lang.Boolean
+	 */
+	Boolean addUserActivityMock(UserMockActivityAddBo bo);
 }

+ 36 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockSubscribeServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
+import com.zhongzheng.modules.mock.bo.UserMockActivityAddBo;
 import com.zhongzheng.modules.mock.domain.MockApply;
 import com.zhongzheng.modules.mock.domain.MockMajorSubject;
 import com.zhongzheng.modules.mock.domain.MockMajorSubjectGoods;
@@ -436,9 +437,9 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
     }
 
     @Override
-    public Boolean addActivityMock(Long goodsId,Long userId) {
+    public Boolean addActivityMock(Long mockApplyId,Long userId) {
         //获取商品绑定的活动模考数据
-        List<UserMockSubscribeAddBo> addBos = baseMapper.getMockByGooId(goodsId);
+        List<UserMockSubscribeAddBo> addBos = baseMapper.getMockByGooId(mockApplyId);
         if (CollectionUtils.isEmpty(addBos)){
             return true;
         }
@@ -462,4 +463,37 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
         }).collect(Collectors.toList());
         return saveBatch(list);
     }
+
+    @Override
+    public Boolean addUserActivityMock(UserMockActivityAddBo bo) {
+        //模考信息
+        MockApply mockApply = iMockApplyService.getById(bo.getMockApplyId());
+        if (mockApply.getStatus() != 1 ){
+            //当前模考安排已经删除或者过期
+            return false;
+        }
+        if (DateUtils.getNowTime() > mockApply.getActivityEndTime()){
+            //不在活动时间内
+            return false;
+        }
+        List<UserMockSubscribe> subscribes = bo.getMockMajorSubjectIds().stream().map(item -> {
+            UserMockSubscribe entity = new UserMockSubscribe();
+            entity.setUserId(bo.getUserId());
+//            entity.setEachExamId();
+            entity.setSubscribeStatus(1);
+            entity.setBeforeStatus(0);
+            entity.setExamStatus(0);
+            entity.setHandStatus(0);
+            entity.setApplyId(bo.getMockApplyId());
+            entity.setMockMajorSubjectId(item);
+            entity.setCreateTime(DateUtils.getNowTime());
+            entity.setUpdateTime(DateUtils.getNowTime());
+            entity.setMockRemind(0);
+            entity.setLiveSubscribe(0);
+            entity.setHasLiveSubscribe(0);
+            entity.setHasMockRemind(0);
+            return entity;
+        }).collect(Collectors.toList());
+        return saveBatch(subscribes);
+    }
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -404,7 +404,7 @@ public class WxPayServiceImpl implements IWxPayService {
                     //给用户增加商品考试次数前培次数
                     updateUserExamGoods(g, order);
                     //商品是否绑定活动模考
-                    iUserMockSubscribeService.addActivityMock(g.getGoodsId(),order.getUserId());
+//                    iUserMockSubscribeService.addActivityMock(g.getGoodsId(),order.getUserId());
                 }
             }
 

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamActivityMapper.xml

@@ -17,6 +17,7 @@
         <if test="name != null and name != ''">
             AND (ea.name like concat('%', #{name}, '%'))
         </if>
+        ORDER BY ea.create_time DESC
     </select>
 
     <select id="getActivityUserList" parameterType="java.lang.Long"

+ 16 - 0
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsSpecAttributeMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.goods.mapper.GoodsSpecAttributeMapper">
+
+    <insert id="saveBatchEntity" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="specAttributeId">
+        INSERT INTO
+        goods_spec_attribute (spec_id, `name`, `code`, sort, status,create_time,update_time)
+        VALUES
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.specId}, #{item.name}, #{item.code},#{item.sort},#{item.status},#{item.createTime}, #{item.updateTime})
+        </foreach>
+    </insert>
+
+</mapper>

+ 16 - 0
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsSpecMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.goods.mapper.GoodsSpecMapper">
+
+    <insert id="saveBatchEntity" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="specId">
+        INSERT INTO
+        goods_spec (spec_template_id, `name`, `code`, sort, status,create_time,update_time)
+        VALUES
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.specTemplateId}, #{item.name}, #{item.code},#{item.sort},#{item.status},#{item.createTime}, #{item.updateTime})
+        </foreach>
+    </insert>
+
+</mapper>

+ 3 - 4
zhongzheng-system/src/main/resources/mapper/modules/mock/MockApplyMapper.xml

@@ -105,7 +105,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 cb.business_name,
                 cpt.project_name
         FROM mock_apply ma
-                LEFT JOIN mock_major mj ON ma.apply_id = mj.apply_id
+                <if test="majorId != null and majorId != ''">
+                LEFT JOIN mock_major mj ON ma.apply_id = mj.apply_id AND mj.major_id = #{majorId}
+                </if>
                 LEFT JOIN course_education_type cet ON ma.education_type_id = cet.id
                 LEFT JOIN course_business cb ON ma.business_id = cb.id
                 LEFT JOIN course_project_type cpt ON ma.project_id = cpt.id
@@ -126,9 +128,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="businessId != null and businessId != ''">
             and ma.business_id = #{businessId}
         </if>
-        <if test="majorId != null and majorId != ''">
-            and mj.major_id = #{majorId}
-        </if>
         <if test="searchKey != null and searchKey != ''">
             and (ma.apply_name LIKE CONCAT('%',#{searchKey},'%') OR ma.code LIKE CONCAT('%',#{searchKey},'%'))
         </if>