瀏覽代碼

Merge branch 'maintenance_feature' into online1

周箭河 4 年之前
父節點
當前提交
dc3651da80

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GoodsDao.java

@@ -156,8 +156,16 @@ public interface GoodsDao extends BaseDAO<Integer, Goods> {
 
     /**
      * 根据id获取商品和分类
+     *
      * @param goodsIds
      * @return
      */
     List<Goods> getGoodiesAndCate(@Param("goodsIds") List<Integer> goodsIds);
+
+    /**
+     * 根据子商品获取所有包含的子商品的父商品(全部状态)
+     *
+     * @return
+     */
+    List<Goods> getGoodsByBaseGoodsId(@Param("goodsId") Integer goodsId);
 }

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentInstrumentDao.java

@@ -50,8 +50,9 @@ public interface StudentInstrumentDao extends BaseDAO<Long, StudentInstrument> {
 
     /**
      * 获取用户已购买乐保的商品的记录
+     *
      * @param startTime
      * @return
      */
-    List<StudentInstrument> getOldStudentInstrument(@Param("startTime") Date startTime);
+    List<StudentInstrument> getOldStudentInstrument(@Param("startTime") Date startTime, @Param("goodsIds") List<Integer> goodsIds);
 }

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentInstrumentServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.GoodsDao;
 import com.ym.mec.biz.dal.dao.StudentInstrumentDao;
 import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
@@ -54,6 +55,8 @@ public class StudentInstrumentServiceImpl extends BaseServiceImpl<Long, StudentI
     private GoodsCategoryService goodsCategoryService;
     @Autowired
     private StudentPaymentOrderDetailDao studentPaymentOrderDetailDao;
+    @Autowired
+    private GoodsDao goodsDao;
 
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
@@ -384,7 +387,9 @@ public class StudentInstrumentServiceImpl extends BaseServiceImpl<Long, StudentI
         if (studentInstrument != null) {
             startTime = DateUtil.addMinutes(nowDate, -15);
         }
-        List<StudentInstrument> oldStudentInstruments = studentInstrumentDao.getOldStudentInstrument(startTime);
+        List<Goods> goodies = goodsDao.getGoodsByBaseGoodsId(76);
+        List<Integer> goodsIds = goodies.stream().map(Goods::getId).collect(Collectors.toList());
+        List<StudentInstrument> oldStudentInstruments = studentInstrumentDao.getOldStudentInstrument(startTime,goodsIds);
         for (StudentInstrument oldStudentInstrument : oldStudentInstruments) {
             oldStudentInstrument.setChangeOrderId(oldStudentInstrument.getOrderId());
             if (oldStudentInstrument.getEndTime().compareTo(nowDate) > 0) {

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml

@@ -428,4 +428,9 @@
             #{goodsId}
         </foreach>
     </select>
+
+    <!-- 根据子商品获取所有包含的子商品的父商品(全部状态)-->
+    <select id="getGoodsByBaseGoodsId" resultMap="Goods">
+        SELECT * FROM goods WHERE FIND_IN_SET(#{goodsId}, complement_goods_id_list_)
+    </select>
 </mapper>

+ 10 - 2
mec-biz/src/main/resources/config/mybatis/StudentInstrumentMapper.xml

@@ -213,8 +213,16 @@
         LEFT JOIN goods_category gc on g.goods_category_id_ = gc.id_
         WHERE spo.status_ = 'SUCCESS'
         AND spod2.type_ = 'MUSICAL'
-        AND (spod.goods_id_list_ IN ('437', '438', '439', '440', '441', '442', '443') OR
-        FIND_IN_SET('76', spod.goods_id_list_))
+        AND (
+        <if test="goodsIds != null and goodsIds.size() != 0">
+            spod.goods_id_list_ IN
+            <foreach collection="goodsIds" item="goodsId" open="(" close=")" separator=",">
+                #{goodsId}
+            </foreach>
+            OR
+        </if>
+        FIND_IN_SET('76', spod.goods_id_list_)
+        )
         <if test="startTime != null ">
             AND spo.pay_time_ >= #{startTime}
         </if>