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

fix 声部更换后学生列表显示问题

周箭河 4 лет назад
Родитель
Сommit
9f8eae0af4

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -334,4 +334,11 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      */
     int getUserOrderNumByType(@Param("userId") Integer userId, @Param("orderType") OrderTypeEnum orderType);
 
+
+    /**
+     * 根据ids获取商品
+     * @param ids
+     * @return
+     */
+    List<UserGoodsDto> getUserGoods(@Param("ids") String ids);
 }

+ 19 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -66,6 +66,8 @@ public class StudentManageServiceImpl implements StudentManageService {
     private StudentExtracurricularExercisesSituationDao studentExtracurricularExercisesSituationDao;
     @Autowired
     private MusicGroupQuitDao musicGroupQuitDao;
+    @Autowired
+    private SubjectChangeDao subjectChangeDao;
 
     @Override
     public PageInfo<StudentManageListDto> findStudentsByOrganId(StudentManageQueryInfo queryInfo) {
@@ -213,7 +215,23 @@ public class StudentManageServiceImpl implements StudentManageService {
         //获取学员报名时所选乐器
         if (musicGroups.size() > 0) {
             for (StudentManageBaseInfoOfMusicGroupDto e : musicGroups) {
-                e.setUserGoodsDtos(studentPaymentOrderDao.findGoodsIds(e.getMusicGroupId(), e.getUserId()));
+                List<UserGoodsDto> userGoods = new ArrayList<>();
+                SubjectChange studentLastChange = subjectChangeDao.getStudentLastChange(e.getUserId(), e.getMusicGroupId());
+                if (studentLastChange != null) {
+                    String goodsIds = "";
+                    if (studentLastChange.getChangeMusical() != null) {
+                        goodsIds += studentLastChange.getChangeMusical();
+                    }
+                    if (studentLastChange.getChangeAccessories() != null) {
+                        goodsIds += StringUtils.isNotBlank(goodsIds) ? "," + studentLastChange.getChangeAccessories() : studentLastChange.getChangeAccessories();
+                    }
+                    if (StringUtils.isNotBlank(goodsIds)) {
+                        userGoods = studentPaymentOrderDao.getUserGoods(goodsIds);
+                    }
+                } else {
+                    userGoods = studentPaymentOrderDao.findGoodsIds(e.getMusicGroupId(), e.getUserId());
+                }
+                e.setUserGoodsDtos(userGoods);
             }
         }
         List<MusicGroupQuit> userMusicQuits = musicGroupQuitDao.getUserMusicQuit(userId);

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -384,6 +384,10 @@
           AND spo.user_id_ = #{userId}
     </select>
 
+    <select id="getUserGoods" resultMap="userGoodsDto">
+        SELECT id_ goods_id_, name_ goods_name_ FROM goods WHERE FIND_IN_SET(id_,#{ids})
+    </select>
+
     <select id="findOrdersByStatus" resultMap="StudentPaymentOrder">
         SELECT *
         FROM student_payment_order