Browse Source

管乐迷商城改造

zouxuan 1 year ago
parent
commit
a67cb07dba

+ 5 - 2
mec-application/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -140,9 +140,10 @@ public class TaskController extends BaseController {
     private DegreeService degreeService;
 	@Autowired
 	private ImPluginContext imPluginContext;
-
     @Autowired
     private UserMusicService userMusicService;
+    @Autowired
+    private MusicGroupPaymentCalenderRepairService musicGroupPaymentCalenderRepairService;
 
 	@GetMapping(value = "/initSysMusicCompareDayData")
 	public void initSysMusicCompareDayData(){
@@ -234,9 +235,11 @@ public class TaskController extends BaseController {
 	}
 
 	@GetMapping(value = "/pushWaitSendMessageTask")
-	// 每天9点推送前一天22点之后的推送消息
 	public void pushWaitSendMessageTask(){
+		// 每天9点推送前一天22点之后的推送消息
 		sysMessageService.pushWaitSendMessageTask();
+		// 学校缴费回款提醒
+		musicGroupPaymentCalenderRepairService.pushWaitSendMessageTask();
 	}
 
 	@GetMapping(value = "/repertoryWarn")

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

@@ -1,13 +1,20 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.WaitSendMessageDto;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderRepair;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 public interface MusicGroupPaymentCalenderRepairDao extends BaseDAO<Long, MusicGroupPaymentCalenderRepair> {
 
 
     void deleteByCalenderId(@Param("calenderId") Long calenderId);
 
     MusicGroupPaymentCalenderRepair findByCalenderId(@Param("calenderId") Long calenderId);
+
+    List<WaitSendMessageDto> queryWaitSendMessage();
+
+    void updateSendRemind(@Param("ids") List<Integer> ids);
 }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/WaitSendMessageDto.java

@@ -0,0 +1,22 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class WaitSendMessageDto {
+
+    private Integer id;
+
+    @ApiModelProperty(value = "学校名称", required = false)
+    private String schoolName;
+
+    @ApiModelProperty(value = "缴费批次", required = false)
+    private String batchNo;
+
+    @ApiModelProperty(value = "责任人手机号", required = false)
+    private String phone;
+
+    @ApiModelProperty(value = "用户编号", required = false)
+    private Integer userId;
+}

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupCalenderRefundPeriod.java

@@ -48,6 +48,9 @@ public class MusicGroupCalenderRefundPeriod {
 
 	@ApiModelProperty(value = "责任人",required = false)
 	private Integer responsiblePerson;
+
+	@ApiModelProperty(value = "是否发送回款提醒",required = false)
+	private Boolean sendRemind = false;
 	
 	/**  */
 	private java.util.Date createTime;

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java

@@ -246,6 +246,7 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     SMS_TENANT_RECHARGE("SMS_TENANT_RECHARGE",   "云教室充值"),
     SMS_TENANT_INSUFFICIENT_BALANCE("SMS_TENANT_INSUFFICIENT_BALANCE",  "余额不足"),
     SMS_TENANT_EXPIRE("SMS_TENANT_EXPIRE",  "云教室欠费"),
+    SMS_WAIT_REMINDER_PAYMENT("SMS_WAIT_REMINDER_PAYMENT",  "待回款提醒"),
 
 
     STUDENT_SMS_CLOUD_PAYMENT("STUDENT_SMS_CLOUD_PAYMENT",  "待缴费订单"),

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderRepairService.java

@@ -9,4 +9,6 @@ public interface MusicGroupPaymentCalenderRepairService extends BaseService<Long
     void deleteByCalenderId(Long calenderId);
 
     MusicGroupPaymentCalenderRepair findByCalenderId(Long calenderId);
+
+    void pushWaitSendMessageTask();
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderGoodsServiceImpl.java

@@ -57,6 +57,14 @@ public class MusicGroupPaymentCalenderGoodsServiceImpl extends ServiceImpl<Music
             List<Integer> goodsIds = goodsList.stream().map(e -> e.getGoodsId()).collect(Collectors.toList());
             List<Goods> goodies = goodsDao.getGoodies(goodsIds);
             Map<Integer,Goods> goodsMap = goodies.stream().collect(Collectors.toMap(Goods::getId, e -> e));
+            for (MusicGroupPaymentCalenderGoods e : goodsList) {
+                Goods goods = goodsMap.get(e.getGoodsId());
+                e.setGoodsSn(goods.getSn());
+                e.setTotalPrice(goods.getGroupPurchasePrice().multiply(new BigDecimal(e.getNum())));
+                e.setSinglePrice(goods.getGroupPurchasePrice());
+                e.setCalenderId(musicGroupPaymentBaseCalender.getCalenderId());
+                e.setChildGoodsJson(goods.getComplementGoodsJson());
+            }
             //计算原价
             return goodsList.stream().map(e -> {
                 Goods goods = goodsMap.get(e.getGoodsId());

+ 28 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderRepairServiceImpl.java

@@ -2,22 +2,27 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderRepairDao;
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentBaseCalender;
+import com.ym.mec.biz.dal.dto.WaitSendMessageDto;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderRepair;
 import com.ym.mec.biz.dal.enums.CalenderBaseServiceEnum;
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderBaseService;
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderRepairService;
-import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysTenantConfigService;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.AUDITING;
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.NO;
@@ -36,6 +41,8 @@ public class MusicGroupPaymentCalenderRepairServiceImpl extends BaseServiceImpl<
 
     @Autowired
     private SysTenantConfigService sysTenantConfigService;
+    @Autowired
+    private SysMessageService sysMessageService;
 
     public MusicGroupPaymentCalenderRepairServiceImpl() {
         MusicGroupPaymentCalenderBaseService.calenderBaseServiceMap.put(CalenderBaseServiceEnum.MUSIC_REPAIR,this);
@@ -93,6 +100,23 @@ public class MusicGroupPaymentCalenderRepairServiceImpl extends BaseServiceImpl<
         return musicGroupPaymentCalenderRepairDao.findByCalenderId(calenderId);
     }
 
+    @Override
+    public void pushWaitSendMessageTask() {
+        //获取截止回款日期还未回款的数据
+        List<WaitSendMessageDto> messageDtos = musicGroupPaymentCalenderRepairDao.queryWaitSendMessage();
+        if (CollectionUtils.isNotEmpty(messageDtos)) {
+            for (WaitSendMessageDto messageDto : messageDtos) {
+                //发送消息
+                Map<Integer, String> receivers = new HashMap<>(1);
+                receivers.put(messageDto.getUserId(), messageDto.getPhone());
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
+                        MessageTypeEnum.SMS_WAIT_REMINDER_PAYMENT, receivers, null, 0, null, null,messageDto.getSchoolName(),messageDto.getBatchNo());
+            }
+            List<Integer> ids = messageDtos.stream().map(e -> e.getId()).collect(Collectors.toList());
+            musicGroupPaymentCalenderRepairDao.updateSendRemind(ids);
+        }
+    }
+
     private BigDecimal getAmount(MusicGroupPaymentBaseCalender baseCalender,String configName){
         MusicGroupPaymentCalenderRepair musicRepair = baseCalender.getMusicRepair();
         if(musicRepair != null){

+ 16 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderRepairMapper.xml

@@ -55,7 +55,13 @@
 		update_time_ = NOW()
 	</set> WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
-	
+	<update id="updateSendRemind">
+		UPDATE music_group_payment_calender_repair SET send_remind_ = 1 WHERE id_
+		<foreach collection="ids" item="id" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</update>
+
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
 		DELETE FROM music_group_payment_calender_repair WHERE id_ = #{id} 
@@ -76,4 +82,13 @@
     <select id="findByCalenderId" resultMap="MusicGroupPaymentCalenderRepair">
 		SELECT * FROM music_group_payment_calender_repair WHERE calender_id_ = #{calenderId}
 	</select>
+    <select id="queryWaitSendMessage" resultType="com.ym.mec.biz.dal.dto.WaitSendMessageDto">
+		select mgcrp.id_ id,s.name_ schoolName,mgpc.batch_no_ batchNo,su.phone_ phone,mgcrp.responsible_person_ userId
+		from music_group_calender_refund_period mgcrp
+		left join music_group_payment_calender mgpc ON mgpc.id_ = mgcrp.calender_id_
+		left join music_group mg ON mg.id_ = mgpc.music_group_id_
+		left join school s ON s.id_ = mg.school_id_
+		left join sys_user su ON su.id_ = mgcrp.responsible_person_
+		where mgcrp.refund_date_ = CURDATE() AND mgcrp.refund_flag_ = 0 AND mgcrp.responsible_person_ IS NOT NULL
+	</select>
 </mapper>

+ 3 - 2
mec-task/src/main/java/com/ym/mec/task/jobs/MusicSchoolTermPushTask.java

@@ -3,13 +3,14 @@ package com.ym.mec.task.jobs;
 import com.ym.mec.task.TaskRemoteService;
 import com.ym.mec.task.core.BaseTask;
 import com.ym.mec.task.core.TaskException;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 @Service
 public class MusicSchoolTermPushTask extends BaseTask {
 
-    @Autowired
+    @Resource
     private TaskRemoteService taskRemoteService;
 
     @Override