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

修改下水前一天发生短信模板

caotao 9 часов назад
Родитель
Сommit
fc692e5927

+ 8 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyage/VoyageMapper.java

@@ -112,4 +112,12 @@ public interface VoyageMapper extends BaseMapperX<VoyageDO> {
      * @return Map<voyageId, count>
      */
     List<Map<String, Object>> countBatchByVoyageIds(@Param("voyageIds") List<Long> voyageIds);
+
+    /**
+     * 查询订单的航次
+     * @param day 提前天数
+     * @param type 上水、下水
+     * @return
+     */
+    List<Map<String, Object>> queryOrderVoyage(@Param("day")int day,@Param("direction") int type);
 }

+ 8 - 0
ship-module-product/ship-module-product-biz/src/main/resources/mapper/voyage/VoyageMapper.xml

@@ -70,4 +70,12 @@
         group by b.voyage_id
     </select>
 
+    <select id="queryOrderVoyage" resultType="java.util.Map">
+        select distinct pv.boarding_address,pv.id voyageId from trade_order td
+            LEFT JOIN product_voyage pv ON td.voyage_id = pv.id
+            LEFT JOIN resource_route rr ON pv.route_id = rr.id
+        where DATE_FORMAT(td.travel_date, '%Y-%m-%d') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL (-#{day}) DAY), '%Y-%m-%d')
+          and td.deleted='0' and  td.order_status in (0,1,2,3,6,7,8,9,12,13,14,15) and rr.direction = #{direction}
+    </select>
+
 </mapper>

+ 3 - 3
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -251,11 +251,11 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
      */
     List<Long> selectCanBuyInsuranceOrder();
 
-    List<Map<String, Object>> queryOrderLink(@Param("day") int day,@Param("direction")int direction);
+    List<Map<String, Object>> queryOrderLink(@Param("day") int day,@Param("direction")int direction,@Param("voyageId")Long voyageId);
 
-    List<Map<String, Object>> queryOrderJzPhone(@Param("day") int day,@Param("direction")int direction);
+    List<Map<String, Object>> queryOrderJzPhone(@Param("day") int day,@Param("direction")int direction,@Param("voyageId")Long voyageId);
 
-    List<Map<String, Object>> queryOrderVisitorMobile(@Param("day") int day,@Param("direction") int direction);
+    List<Map<String, Object>> queryOrderVisitorMobile(@Param("day") int day,@Param("direction") int direction,@Param("voyageId")Long voyageId);
 
     List<Map<String, Object>> getTradeJz();
 

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderDownSmsOneJob.java

@@ -20,7 +20,7 @@ public class OrderDownSmsOneJob  implements JobHandler {
     public String execute(String s){
         log.info(">>>>>>>>>>>>>>>>>>>>>> OrderDownSmsOneJob Begin <<<<<<<<<<<<<<<<<<<<<<");
         try {
-            smsSendconfigService.upSmsSendMsg(2,"SMS_505150033",1);
+            smsSendconfigService.upSmsSendMsg(2,"SMS_505445105",1);
         } catch (Exception e) {
             log.error(">>>>>>>>>>>>>>>>>>>>>> OrderDownSmsOneJob Error <<<<<<<<<<<<<<<<<<<<<<");
             log.error(e.getMessage(), e);

+ 58 - 45
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/smsSendconfig/SmsSendconfigServiceImpl.java

@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.framework.mybatis.core.util.MyBatisUtils;
+import com.yc.ship.module.product.dal.mysql.voyage.VoyageMapper;
 import com.yc.ship.module.system.dal.dataobject.dict.DictDataDO;
 import com.yc.ship.module.system.dal.dataobject.sms.SmsTemplateDO;
 import com.yc.ship.module.system.dal.mysql.dict.DictDataMapper;
@@ -79,6 +80,8 @@ public class SmsSendconfigServiceImpl implements SmsSendconfigService {
     private SmsTemplateMapper smsTemplateMapper;
     @Resource
     private DictDataMapper dictDataMapper;
+    @Resource
+    private VoyageMapper voyageMapper;
 
     @Override
     public Long createSmsSendconfig(SmsSendconfigSaveReqVO createReqVO) {
@@ -311,55 +314,65 @@ public class SmsSendconfigServiceImpl implements SmsSendconfigService {
     @Override
     @Async
     public void upSmsSendMsg(int type, String code, int day) {
-        // 查询订单联系人
-        List<Map<String,Object>> linkList = tradeOrderMapper.queryOrderLink(day,type);
-        // 查询接站登记人
-        List<Map<String,Object>> jzPhoneList = tradeOrderMapper.queryOrderJzPhone(day,type);
-        // 查询订单游客电话
-        List<Map<String,Object>> visitorMobileList = tradeOrderMapper.queryOrderVisitorMobile(day,type);
-        // 查询短信配置
-        SmsTemplateDO smsTemplateDO = smsTemplateMapper.selectByCode(code);
-        // 合并两个列表并去重
-        Set<String> phoneSet = new HashSet<>();
-        Map<String, Map<String, Object>> phoneDataMap = new HashMap<>();
-        processPhoneList(linkList, "link_mobile", phoneSet, phoneDataMap);
-        processPhoneList(jzPhoneList, "phone", phoneSet, phoneDataMap);
-        processPhoneList(visitorMobileList, "mobile", phoneSet, phoneDataMap);
-
-        List<String> phoneList = new ArrayList<>(phoneSet);
-        List<String> params = smsTemplateDO.getParams();// ["【pick】","【time】"]
-        Map<String, Object> templateParams = new HashMap<>();
-        if(type == 1){
-            // 上水
-            // 获取上水抵达三峡游客中心 查询数据字典
-            List<DictDataDO> arriveDataLis = dictDataMapper.selectListByStatusAndDictType(0, "up_arrive");
-            if(day == 1){
-                // 获取上水登船时间 查询数据字典
-                List<DictDataDO> dictDataList = dictDataMapper.selectListByStatusAndDictType(0, "up_board");
-                templateParams.put(params.get(0), dictDataList.get(0).getLabel());
-                templateParams.put(params.get(1), arriveDataLis.get(0).getLabel());
-            }else{
-                templateParams.put(params.get(0), DateUtil.format(DateUtil.offsetDay(new Date(), day), "yyyy年MM月dd日"));
-                templateParams.put(params.get(1), arriveDataLis.get(0).getLabel());
-            }
-        }else{
-            // 下水
-            if(day == 1){
-                // 获取下水登船时间 查询数据字典
-                List<DictDataDO> dictDataList = dictDataMapper.selectListByStatusAndDictType(0, "down_board");
-                templateParams.put(params.get(0), dictDataList.get(0).getLabel());
-            }else{
-                templateParams.put(params.get(0), DateUtil.format(DateUtil.offsetDay(new Date(), day), "yyyy年MM月dd日"));
-            }
-        }
-        if(CollectionUtil.isNotEmpty(phoneList)){
-            for(String phone : phoneList){
+        // 获取航次信息
+        List<Map<String,Object>> voyageList = voyageMapper.queryOrderVoyage(day,type);
+        if(CollectionUtil.isNotEmpty(voyageList)){
+            for(Map<String,Object> voyageMap: voyageList){
+                // 查询订单联系人
+                List<Map<String,Object>> linkList = tradeOrderMapper.queryOrderLink(day,type,(Long)voyageMap.get("voyageId"));
+                // 查询接站登记人
+                List<Map<String,Object>> jzPhoneList = tradeOrderMapper.queryOrderJzPhone(day,type,(Long)voyageMap.get("voyageId"));
+                // 查询订单游客电话
+                List<Map<String,Object>> visitorMobileList = tradeOrderMapper.queryOrderVisitorMobile(day,type,(Long)voyageMap.get("voyageId"));
+                // 查询短信配置
+                SmsTemplateDO smsTemplateDO = smsTemplateMapper.selectByCode(code);
+                // 合并两个列表并去重
+                Set<String> phoneSet = new HashSet<>();
+                Map<String, Map<String, Object>> phoneDataMap = new HashMap<>();
+                processPhoneList(linkList, "link_mobile", phoneSet, phoneDataMap);
+                processPhoneList(jzPhoneList, "phone", phoneSet, phoneDataMap);
+                processPhoneList(visitorMobileList, "mobile", phoneSet, phoneDataMap);
+
+                List<String> phoneList = new ArrayList<>(phoneSet);
+                List<String> params = smsTemplateDO.getParams();// ["【pick】","【time】"]
+                Map<String, Object> templateParams = new HashMap<>();
+                if(type == 1){
+                    // 上水
+                    // 获取上水抵达三峡游客中心 查询数据字典
+                    List<DictDataDO> arriveDataLis = dictDataMapper.selectListByStatusAndDictType(0, "up_arrive");
+                    if(day == 1){
+                        // 获取上水登船时间 查询数据字典
+                        List<DictDataDO> dictDataList = dictDataMapper.selectListByStatusAndDictType(0, "up_board");
+                        templateParams.put(params.get(0), dictDataList.get(0).getLabel());
+                        templateParams.put(params.get(1), arriveDataLis.get(0).getLabel());
+                    }else{
+                        templateParams.put(params.get(0), DateUtil.format(DateUtil.offsetDay(new Date(), day), "yyyy年MM月dd日"));
+                        templateParams.put(params.get(1), arriveDataLis.get(0).getLabel());
+                    }
+                }else{
+                    // 下水
+                    if(day == 1){
+                        // 获取下水登船时间 查询数据字典
+                        List<DictDataDO> dictDataList = dictDataMapper.selectListByStatusAndDictType(0, "down_board");
+                        templateParams.put(params.get(1), dictDataList.get(0).getLabel());
+                    }else{
+                        templateParams.put(params.get(0), DateUtil.format(DateUtil.offsetDay(new Date(), day), "yyyy年MM月dd日"));
+                    }
+                }
+                if(CollectionUtil.isNotEmpty(phoneList)){
+                    for(String phone : phoneList){
+                        if(type == 2 && day == 1){
+                            templateParams.put(params.get(0),voyageMap.get("boarding_address"));
+                        }
 //                log.info("【短信发送】:phone:{}", phone);
 //                log.info("【短信发送】:templateParams:{}", templateParams);
-                smsSendService.sendSingleSmsToAdmin(phone, null, smsTemplateDO.getId(), templateParams);
-            }
+                        smsSendService.sendSingleSmsToAdmin(phone, null, smsTemplateDO.getId(), templateParams);
+                    }
 //            smsSendService.sendSingleSmsToAdmin("18071246889", null, smsTemplateDO.getId(), templateParams);
+                }
+            }
         }
+
     }
 
     private void processPhoneList(List<Map<String, Object>> dataList, String phoneKey,

+ 8 - 5
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -1608,12 +1608,12 @@
         <if test="vo.otaId != null and vo.otaId != ''">
             AND td.source_id = #{vo.otaId}
         </if>
-        <if test="vo.otaIds != null and vo.otaIds.size()>0">
+        <!--<if test="vo.otaIds != null and vo.otaIds.size()>0">
             AND td.source_id IN
             <foreach collection="vo.otaIds" item="item" separator="," open="(" close=")">
                 #{item}
             </foreach>
-        </if>
+        </if>-->
         <if test="vo.otaCateIds!=null and vo.otaCateIds.size()>0">
             and od.ota_category_id in
             <foreach collection="vo.otaCateIds" item="item" separator=","  open="(" close=")">
@@ -2923,7 +2923,8 @@
                                                 LEFT JOIN product_voyage pv ON td.voyage_id = pv.id
                                                 LEFT JOIN resource_route rr ON pv.route_id = rr.id
         where DATE_FORMAT(td.travel_date, '%Y-%m-%d') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL (-#{day}) DAY), '%Y-%m-%d')
-          and td.deleted='0' and td.link_mobile is not null and td.order_status in (0,1,2,3,6,7,8,9,12,13,14,15) and rr.direction = #{direction}
+          and td.deleted='0' and td.link_mobile is not null and td.order_status in (0,1,2,3,6,7,8,9,12,13,14,15)
+          and rr.direction = #{direction} and td.voyage_id = #{voyageId}
     </select>
 
     <select id="queryOrderJzPhone" resultType="java.util.Map">
@@ -2933,7 +2934,8 @@
                                            LEFT JOIN product_voyage pv ON td.voyage_id = pv.id
                                            LEFT JOIN resource_route rr ON pv.route_id = rr.id
         where DATE_FORMAT(td.travel_date, '%Y-%m-%d') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL (-#{day}) DAY), '%Y-%m-%d')
-          and td.deleted='0' and tzd.phone is not null and td.order_status in (0,1,2,3,6,7,8,9,12,13,14,15) and rr.direction = #{direction}
+          and td.deleted='0' and tzd.phone is not null and td.order_status in (0,1,2,3,6,7,8,9,12,13,14,15)
+          and rr.direction = #{direction} and td.voyage_id = #{voyageId}
     </select>
 
     <select id="queryOrderVisitorMobile" resultType="java.util.Map">
@@ -2942,7 +2944,8 @@
                                            LEFT JOIN product_voyage pv ON td.voyage_id = pv.id
                                            LEFT JOIN resource_route rr ON pv.route_id = rr.id
         where DATE_FORMAT(td.travel_date, '%Y-%m-%d') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL (-#{day}) DAY), '%Y-%m-%d')
-          and td.deleted='0' and (tv.mobile is not null and tv.mobile !='') and tv.deleted='0' and td.order_status in (0,1,2,3,6,7,8,9,12,13,14,15) and rr.direction = #{direction}
+          and td.deleted='0' and (tv.mobile is not null and tv.mobile !='') and tv.deleted='0'
+          and td.order_status in (0,1,2,3,6,7,8,9,12,13,14,15) and rr.direction = #{direction} and td.voyage_id = #{voyageId}
 
     </select>
     <select id="getTradeJz" resultType="java.util.Map">