Explorar o código

管乐迷迭代

zouxuan %!s(int64=3) %!d(string=hai) anos
pai
achega
2952adc43e

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -714,4 +714,13 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
     List<StudentInstrument> queryMusicStudentInstrument(Map<String, Object> params);
 
     int countMusicStudentInstrument(Map<String, Object> params);
+
+    /**
+    * @description: 获取乐团在读和有乐保的人数
+     * @param musicGroupIds
+    * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroup>
+    * @author zx
+    * @date 2021/11/10 17:55
+    */
+    List<MusicGroup> countInstrument(@Param("musicGroupIds") List<String> musicGroupIds);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicStudentInstrumentDto.java

@@ -8,8 +8,18 @@ public class MusicStudentInstrumentDto{
 
     private String avatar;
 
+    private String phone;
+
     private Boolean hasInstrument;
 
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
     public Integer getUserId() {
         return userId;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java

@@ -192,6 +192,17 @@ public class MusicGroup {
 	@ApiModelProperty(value = "作业是否发送消息",required = true)
 	private Integer homeworkPushFlag = 1;
 
+	@ApiModelProperty(value = "有乐保的人数",required = true)
+	private Integer hasInstrumentNum;
+
+	public Integer getHasInstrumentNum() {
+		return hasInstrumentNum;
+	}
+
+	public void setHasInstrumentNum(Integer hasInstrumentNum) {
+		this.hasInstrumentNum = hasInstrumentNum;
+	}
+
 	public Integer getHomeworkPushFlag() {
 		return homeworkPushFlag;
 	}

+ 26 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -2131,7 +2131,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             returnTotalFee = returnTotalFee.add(returnFeeDto.getMaintenanceFee());
         }
         if(returnFeeDto.getIsReturnMemberFee()){
-            returnTotalFee = returnTotalFee.add(returnFeeDto.getMemberFee());
+//            returnTotalFee = returnTotalFee.add(returnFeeDto.getMemberFee());
         }
         if(returnFeeDto.getIsReturnMusicalFee()){
             returnTotalFee = returnTotalFee.add(returnFeeDto.getMusicalFee());
@@ -2403,13 +2403,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 				}
             }
 
-            if (amount.doubleValue() > 0) {
+            if (returnTotalFee.doubleValue() > 0) {
                 SysUserCashAccountLog sysUserCashAccountLog = new SysUserCashAccountLog();
                 sysUserCashAccountLog.setGroupType(GroupType.MUSIC);
                 sysUserCashAccountLog.setUserId(userId);
                 sysUserCashAccountLog.setOrganId(musicGroup.getOrganId());
                 sysUserCashAccountLog.setGroupId(musicGroupId);
-                sysUserCashAccountLog.setAmount(amount);
+                sysUserCashAccountLog.setAmount(returnTotalFee);
                 sysUserCashAccountLog.setReturnFeeType(ReturnFeeEnum.MUSIC);
                 sysUserCashAccountLog.setComment("退出乐团");
                 sysUserCashAccountLogDao.insert(sysUserCashAccountLog);
@@ -2727,15 +2727,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
 
         if (amount.doubleValue() > 0) {
-            SysUserCashAccountLog sysUserCashAccountLog = new SysUserCashAccountLog();
-            sysUserCashAccountLog.setGroupType(GroupType.MUSIC);
-            sysUserCashAccountLog.setUserId(userId);
-            sysUserCashAccountLog.setOrganId(musicGroup.getOrganId());
-            sysUserCashAccountLog.setGroupId(musicGroupId);
-            sysUserCashAccountLog.setAmount(amount);
-            sysUserCashAccountLog.setReturnFeeType(ReturnFeeEnum.MUSIC);
-            sysUserCashAccountLog.setComment("退出乐团");
-            sysUserCashAccountLogDao.insert(sysUserCashAccountLog);
+            //这个接口没有退费的操作了
+//            SysUserCashAccountLog sysUserCashAccountLog = new SysUserCashAccountLog();
+//            sysUserCashAccountLog.setGroupType(GroupType.MUSIC);
+//            sysUserCashAccountLog.setUserId(userId);
+//            sysUserCashAccountLog.setOrganId(musicGroup.getOrganId());
+//            sysUserCashAccountLog.setGroupId(musicGroupId);
+//            sysUserCashAccountLog.setAmount(amount);
+//            sysUserCashAccountLog.setReturnFeeType(ReturnFeeEnum.MUSIC);
+//            sysUserCashAccountLog.setComment("退出乐团");
+//            sysUserCashAccountLogDao.insert(sysUserCashAccountLog);
             // 增加交易流水
 //            sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",
 //                    PlatformCashAccountDetailTypeEnum.REFUNDS, null, SUCCESS, "退出乐团", null);
@@ -3298,6 +3299,19 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = musicGroupDao.findMusicGroups(params);
+            List<String> musicGroupIds = dataList.stream().map(e -> e.getId()).collect(Collectors.toList());
+            List<MusicGroup> instrument = studentRegistrationDao.countInstrument(musicGroupIds);
+            if(instrument != null && instrument.size() > 0){
+                Map<String, List<MusicGroup>> collect = instrument.stream().collect(Collectors.groupingBy(MusicGroup::getId));
+                for (MusicGroup musicGroup : dataList) {
+                    List<MusicGroup> musicGroups = collect.get(musicGroup.getId());
+                    if(musicGroups != null && musicGroups.size() > 0){
+                        MusicGroup musicGroup1 = musicGroups.get(0);
+                        musicGroup.setPayNum(musicGroup1.getPayNum());
+                        musicGroup.setHasInstrumentNum(musicGroup1.getHasInstrumentNum());
+                    }
+                }
+            }
         }
         if (count == 0) {
             dataList = new ArrayList<>();

+ 20 - 2
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -1808,10 +1808,11 @@
         <result property="username" column="username_"/>
         <result property="userId" column="user_id_"/>
         <result property="avatar" column="avatar_"/>
+        <result property="phone" column="phone_"/>
         <result property="hasInstrument" column="has_instrument_"/>
     </resultMap>
     <select id="queryMusicStudentInstrument" resultMap="MusicStudentInstrumentDto">
-        SELECT sr.user_id_,su.username_,su.avatar_,CASE WHEN spo.id_ IS NULL THEN 0 ELSE 1 END has_instrument_ FROM student_registration sr
+        SELECT sr.user_id_,su.username_,su.phone_,su.avatar_,CASE WHEN spo.id_ IS NULL THEN 0 ELSE 1 END has_instrument_ FROM student_registration sr
         LEFT JOIN student_instrument si ON sr.user_id_ = si.student_id_ AND si.del_flag_ = 0 AND si.end_time_ > NOW()
         LEFT JOIN student_payment_order spo ON spo.id_ = si.order_id_ AND spo.music_group_id_ = sr.music_group_id_ AND spo.status_ = 'SUCCESS'
         LEFT JOIN sys_user su ON su.id_ = sr.user_id_
@@ -1825,9 +1826,26 @@
     <select id="countMusicStudentInstrument" resultType="int">
         SELECT COUNT(DISTINCT sr.user_id_) FROM student_registration sr
         LEFT JOIN sys_user su ON su.id_ = sr.user_id_
-        WHERE sr.music_group_status_ = 'NORMAL' AND sr.music_group_id_ = #{musicGroupId}
+        LEFT JOIN student_instrument si ON sr.user_id_ = si.student_id_ AND si.del_flag_ = 0 AND si.end_time_ > NOW()
+        LEFT JOIN student_payment_order spo ON spo.id_ = si.order_id_ AND spo.music_group_id_ = sr.music_group_id_ AND spo.status_ = 'SUCCESS'
+        WHERE sr.music_group_status_ = 'NORMAL' AND sr.music_group_id_ = #{musicGroupId} AND (si.order_id_ IS NULL OR spo.id_ IS NOT NULL)
         <if test="search != null and search != ''">
             AND (sr.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
         </if>
     </select>
+    <resultMap id="MusicGroup" type="com.ym.mec.biz.dal.entity.MusicGroup">
+        <result property="payNum" column="pay_num_"/>
+        <result property="hasInstrumentNum" column="has_instrument_num_"/>
+        <result property="id" column="music_group_id_"/>
+    </resultMap>
+    <select id="countInstrument" resultMap="MusicGroup">
+        SELECT sr.music_group_id_,COUNT(DISTINCT sr.user_id_) pay_num_,SUM(CASE WHEN spo.id_ IS NULL THEN 0 ELSE 1 END) has_instrument_num_ FROM student_registration sr
+        LEFT JOIN student_instrument si ON sr.user_id_ = si.student_id_ AND si.del_flag_ = 0 AND si.end_time_ > NOW()
+        LEFT JOIN student_payment_order spo ON spo.id_ = si.order_id_ AND spo.music_group_id_ = sr.music_group_id_ AND spo.status_ = 'SUCCESS'
+        WHERE sr.music_group_status_ = 'NORMAL' AND (si.order_id_ IS NULL OR spo.id_ IS NOT NULL) AND sr.music_group_id_ IN
+        <foreach collection="musicGroupIds" separator="," item="id" open="(" close=")">
+            #{id}
+        </foreach>
+        GROUP BY sr.music_group_id_
+    </select>
 </mapper>

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/SysUserCashAccountLogMapper.xml

@@ -102,7 +102,8 @@
                 AND FIND_IN_SET(cal.organ_id_,#{organId})
             </if>
             <if test="search != null and search != ''">
-                AND (cal.user_id_ = #{search} OR cal.group_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR cal.trans_no_ LIKE CONCAT('%',#{search},'%'))
+                AND (cal.id_ = #{search} OR cal.user_id_ = #{search} OR cal.group_id_ = #{search}
+                OR su.username_ LIKE CONCAT('%',#{search},'%') OR cal.trans_no_ LIKE CONCAT('%',#{search},'%'))
             </if>
         </where>
     </sql>