Kaynağa Gözat

管乐迷商城改造

zouxuan 1 yıl önce
ebeveyn
işleme
b94629dc24

+ 2 - 1
mec-application/src/main/java/com/ym/mec/web/controller/MusicGroupCalenderRefundPeriodController.java

@@ -1,6 +1,7 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.biz.dal.dto.CooperationCalenderRefundDto;
+import com.ym.mec.biz.dal.dto.CooperationCalenderRefundUpdateDto;
 import com.ym.mec.biz.dal.entity.MusicGroupCalenderRefundPeriod;
 import com.ym.mec.biz.dal.page.CooperationRefundQueryInfo;
 import com.ym.mec.biz.service.MusicGroupCalenderRefundPeriodService;
@@ -56,7 +57,7 @@ public class MusicGroupCalenderRefundPeriodController extends BaseController {
     @PostMapping("/batchUpdate")
     @PreAuthorize("@pcs.hasPermissions('musicGroupCalenderRefundPeriod/batchUpdate')")
     @AuditLogAnnotation(operateName = "批量修改")
-    public HttpResponseResult batchUpdate(@RequestBody List<MusicGroupCalenderRefundPeriod> refundPeriods) {
+    public HttpResponseResult batchUpdate(@RequestBody List<CooperationCalenderRefundUpdateDto> refundPeriods) {
         musicGroupCalenderRefundPeriodService.batchUpdate(refundPeriods);
         return succeed();
     }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupCalenderRefundPeriodDao.java

@@ -29,4 +29,6 @@ public interface MusicGroupCalenderRefundPeriodDao extends BaseDAO<Integer, Musi
     void deleteByCalenderId(@Param("calenderId") Long calenderId);
 
     void batchUpdate(@Param("refundPeriods") List<MusicGroupCalenderRefundPeriod> refundPeriods);
+
+    List<MusicGroupCalenderRefundPeriod> queryByIds(@Param("periodsIds") List<Long> periodsIds);
 }

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CooperationCalenderRefundUpdateDto.java

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class CooperationCalenderRefundUpdateDto {
+
+    @ApiModelProperty(value = "回款周期编号",required = false)
+    private Long id;
+
+    @ApiModelProperty(value = "回款金额",required = false)
+    private BigDecimal refundAmount;
+
+    @ApiModelProperty(value = "修改原因",required = false)
+    private String memo;
+}

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupCalenderRefundPeriodService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.CooperationCalenderRefundDto;
+import com.ym.mec.biz.dal.dto.CooperationCalenderRefundUpdateDto;
 import com.ym.mec.biz.dal.dto.CooperationRefundDto;
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentBaseCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupCalenderRefundPeriod;
@@ -36,5 +37,5 @@ public interface MusicGroupCalenderRefundPeriodService extends BaseService<Integ
     */
     Boolean calcRefundAmount(Long calenderId,String orderNo, BigDecimal amount);
 
-    void batchUpdate(List<MusicGroupCalenderRefundPeriod> refundPeriods);
+    void batchUpdate(List<CooperationCalenderRefundUpdateDto> refundPeriods);
 }

+ 15 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupCalenderRefundPeriodServiceImpl.java

@@ -4,6 +4,7 @@ import com.ym.mec.biz.dal.dao.MusicGroupCalenderRefundPeriodDao;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.CooperationCalenderRefundDto;
+import com.ym.mec.biz.dal.dto.CooperationCalenderRefundUpdateDto;
 import com.ym.mec.biz.dal.dto.CooperationRefundDto;
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentBaseCalender;
 import com.ym.mec.biz.dal.entity.MusicGroup;
@@ -190,14 +191,22 @@ public class MusicGroupCalenderRefundPeriodServiceImpl extends BaseServiceImpl<I
     }
 
     @Override
-    public void batchUpdate(List<MusicGroupCalenderRefundPeriod> refundPeriods) {
-        refundPeriods.forEach(e->{
-            e.setIncome(null);
-            e.setRefundDate(null);
-            if (e.getSubRefundAmount() == null || e.getSubRefundAmount().compareTo(BigDecimal.ZERO) == 0) {
+    public void batchUpdate(List<CooperationCalenderRefundUpdateDto> refundPeriods) {
+        List<Long> periodsIds = refundPeriods.stream().map(e -> e.getId()).collect(Collectors.toList());
+        List<MusicGroupCalenderRefundPeriod> periods = musicGroupCalenderRefundPeriodDao.queryByIds(periodsIds);
+        Map<Long, CooperationCalenderRefundUpdateDto> periodMap = refundPeriods.stream().collect(Collectors.toMap(e -> e.getId(), e -> e));
+        periods.forEach(e->{
+            CooperationCalenderRefundUpdateDto dto = periodMap.get(e.getId());
+            e.setRefundAmount(dto.getRefundAmount());
+            e.setMemo(dto.getMemo());
+            if (e.getRefundAmount().compareTo(e.getIncome()) <= 0) {
+                e.setSubRefundAmount(BigDecimal.ZERO);
                 e.setRefundFlag(true);
+            } else {
+                e.setSubRefundAmount(e.getRefundAmount().subtract(e.getIncome()));
+                e.setRefundFlag(false);
             }
         });
-        musicGroupCalenderRefundPeriodDao.batchUpdate(refundPeriods);
+        musicGroupCalenderRefundPeriodDao.batchUpdate(periods);
     }
 }

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupCalenderRefundPeriodMapper.xml

@@ -209,4 +209,10 @@
 		left join music_group_payment_calender mgpc ON mgpc.id_ = crp.calender_id_
 		<include refid="queryCoopRefundSql"/>
 	</select>
+	<select id="queryByIds" resultMap="MusicGroupCalenderRefundPeriod">
+		SELECT * FROM music_group_calender_refund_period WHERE id_ IN
+		<foreach collection="periodsIds" item="id" open="(" close=")" separator=",">
+			#{id}
+		</foreach>
+	</select>
 </mapper>