瀏覽代碼

增加发送短信和推送接口

周箭河 4 年之前
父節點
當前提交
919fef374d

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChildrenDayReserveDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 
+import com.ym.mec.biz.dal.dto.ChildrenDayMsgDto;
 import com.ym.mec.biz.dal.dto.ChildrenStatisticsDetailDto;
 import com.ym.mec.biz.dal.dto.ChildrenStatisticsDto;
 import com.ym.mec.biz.dal.entity.ChildrenDayReserve;
@@ -14,6 +15,7 @@ public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReser
 
     /**
      * 获取后台考级活动列表
+     *
      * @param params
      * @return
      */
@@ -21,6 +23,7 @@ public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReser
 
     /**
      * 获取后台考级活动列表
+     *
      * @param params
      * @return
      */
@@ -28,6 +31,7 @@ public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReser
 
     /**
      * 根据用户id获取用户预约信息
+     *
      * @param userId
      * @return
      */
@@ -35,6 +39,7 @@ public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReser
 
     /**
      * 获取后台考级活动详情列表
+     *
      * @param params
      * @return
      */
@@ -42,6 +47,7 @@ public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReser
 
     /**
      * 获取后台考级活动详情列表
+     *
      * @param params
      * @return
      */
@@ -49,8 +55,17 @@ public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReser
 
     /**
      * 统计
+     *
      * @param params
      * @return
      */
     ChildrenStatisticsDto childrenStatistics(Map<String, Object> params);
+
+    /**
+     * 获取发送的信息的用户
+     *
+     * @param msgDtos
+     * @return
+     */
+    List<ChildrenStatisticsDetailDto> getSendMsgList(@Param("msgDtos") List<ChildrenDayMsgDto> msgDtos);
 }

+ 29 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ChildrenDayMsgDto.java

@@ -0,0 +1,29 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+public class ChildrenDayMsgDto {
+
+    @ApiModelProperty(value = "分部id", required = false)
+    private Integer organId;
+
+    @ApiModelProperty(value = "乐团id", required = false)
+    private String musicGroupId;
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+}

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

@@ -169,7 +169,9 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     BACKSTAGE_STUDENT_APPLY_QUIT_GROUP("BACKSTAGE_STUDENT_APPLY_QUIT_GROUP", "学员申请退团"),
 
     BACKSTAGE_STUDENT_APPLY_QUIT_COURSE("BACKSTAGE_STUDENT_APPLY_QUIT_COURSE", "学员申请退课"),
-    BACKSTAGE_STUDENT_APPLY_WITHDRAW("BACKSTAGE_STUDENT_APPLY_WITHDRAW", "学员申请提现");
+    BACKSTAGE_STUDENT_APPLY_WITHDRAW("BACKSTAGE_STUDENT_APPLY_WITHDRAW", "学员申请提现"),
+    CHILDREN_DAY_NOTICE_PUSH("CHILDREN_DAY_NOTICE_PUSH", "技能评测考级报名推送"),
+    CHILDREN_DAY_NOTICE_MSG("CHILDREN_DAY_NOTICE_MSG", "技能评测考级报名短信");
 
     MessageTypeEnum(String code, String msg) {
         this.code = code;

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ChildrenDayReserveService.java

@@ -10,6 +10,7 @@ import com.ym.mec.biz.dal.page.ChildrenReserveQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
 import java.util.Map;
 
 public interface ChildrenDayReserveService extends BaseService<Integer, ChildrenDayReserve> {
@@ -65,4 +66,12 @@ public interface ChildrenDayReserveService extends BaseService<Integer, Children
      * @return
      */
     Boolean orderCallback(StudentPaymentOrder studentPaymentOrder);
+
+    /**
+     * 发送短信和推送
+     *
+     * @param msgDtos
+     * @return
+     */
+    Boolean sendMsg(List<ChildrenDayMsgDto> msgDtos);
 }

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ChildrenDayReserveServiceImpl.java

@@ -15,6 +15,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.http.HttpUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -432,4 +433,27 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
         }
         return true;
     }
+
+    @Override
+    public Boolean sendMsg(List<ChildrenDayMsgDto> msgDtos) {
+        List<ChildrenStatisticsDetailDto> reserves = childrenDayReserveDao.getSendMsgList(msgDtos);
+
+        Map<Integer, String> userMap = new HashMap<>();
+        Map<Integer, String> userPhoneMap = new HashMap<>();
+
+        for (ChildrenStatisticsDetailDto reserve : reserves) {
+            userMap.put(reserve.getUserId(), reserve.getUserId().toString());
+            userPhoneMap.put(reserve.getUserId(), reserve.getPhone());
+        }
+
+        String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
+        String pushUrl = baseApiUrl + "/#/childrenPayment";
+
+        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.CHILDREN_DAY_NOTICE_PUSH,
+                userMap, null, 0, "5?" + pushUrl, "STUDENT");
+
+        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.CHILDREN_DAY_NOTICE_MSG,
+                userPhoneMap, null, 0, null, null, pushUrl);
+        return true;
+    }
 }

+ 32 - 15
mec-biz/src/main/resources/config/mybatis/ChildrenDayReserveMapper.xml

@@ -124,20 +124,20 @@
     </select>
 
     <select id="childrenStatistics" resultMap="ChildrenStatisticsDtoMap">
-        SELECT  SUM(CASE WHEN cdd.grade_price_ > 0 THEN 1 ELSE NULL END) 'instrumental_music_num_',
-                SUM(CASE WHEN cdd.theory_price_ > 0 THEN 1 ELSE NULL END) 'music_theory_num_',
-                SUM(CASE WHEN cdd.vip_1v1_price_ > 0 THEN 1 ELSE NULL END) 'buy_vip1_num_',
-                SUM(cdd.vip_1v1_price_) 'buy_vip1_amount_',
-                SUM(CASE WHEN cdd.vip_1v2_price_ > 0 THEN 1 ELSE NULL END) 'buy_vip2_num_',
-                SUM(cdd.vip_1v2_price_) 'buy_vip2_amount_',
-                SUM(CASE WHEN cdd.theory_course_price_ > 0 THEN 1 ELSE NULL END) 'buy_music_theory_num_',
-                SUM(cdd.theory_course_price_) 'buy_music_theory_amount_',
-                SUM(cdd.total_amount_) 'total_amount_'
+        SELECT SUM(CASE WHEN cdd.grade_price_ > 0 THEN 1 ELSE NULL END) 'instrumental_music_num_',
+        SUM(CASE WHEN cdd.theory_price_ > 0 THEN 1 ELSE NULL END) 'music_theory_num_',
+        SUM(CASE WHEN cdd.vip_1v1_price_ > 0 THEN 1 ELSE NULL END) 'buy_vip1_num_',
+        SUM(cdd.vip_1v1_price_) 'buy_vip1_amount_',
+        SUM(CASE WHEN cdd.vip_1v2_price_ > 0 THEN 1 ELSE NULL END) 'buy_vip2_num_',
+        SUM(cdd.vip_1v2_price_) 'buy_vip2_amount_',
+        SUM(CASE WHEN cdd.theory_course_price_ > 0 THEN 1 ELSE NULL END) 'buy_music_theory_num_',
+        SUM(cdd.theory_course_price_) 'buy_music_theory_amount_',
+        SUM(cdd.total_amount_) 'total_amount_'
         FROM children_day_reserve cdr
-                 LEFT JOIN children_day_degree_info cdd ON cdr.id_ = cdd.reserve_id_
-                 LEFT JOIN music_group mg ON mg.id_ = cdr.music_group_id_
-                 LEFT JOIN cooperation_organ co ON co.id_ = cdr.cooperation_organ_id_
-                 LEFT JOIN organization o ON o.id_ = cdr.organ_id_
+        LEFT JOIN children_day_degree_info cdd ON cdr.id_ = cdd.reserve_id_
+        LEFT JOIN music_group mg ON mg.id_ = cdr.music_group_id_
+        LEFT JOIN cooperation_organ co ON co.id_ = cdr.cooperation_organ_id_
+        LEFT JOIN organization o ON o.id_ = cdr.organ_id_
         <include refid="queryChildrenStatisticsSql"/>
     </select>
     <sql id="queryChildrenStatisticsSql">
@@ -179,7 +179,8 @@
         <include refid="queryChildrenStatisticsDetailSql"/>
     </select>
     <select id="queryChildrenStatisticsDetail" resultMap="ChildrenStatisticsDetailDtoMap">
-        SELECT su.username_,su.phone_,cdr.user_id_,cdr.is_reserve_,s.name_ subject_name_,cdd.grade_level_,cdd.theory_level_,
+        SELECT su.username_,su.phone_,cdr.user_id_,cdr.is_reserve_,s.name_
+        subject_name_,cdd.grade_level_,cdd.theory_level_,
         CASE WHEN cdd.vip_1v1_price_ > 0 OR cdd.vip_1v2_price_ > 0 THEN 1 ELSE 0 END buy_vip_flag_,
         CASE WHEN cdd.theory_course_price_ > 0 THEN 1 ELSE 0 END buy_theory_course_flag_,cdd.total_amount_
         FROM children_day_reserve cdr
@@ -193,7 +194,8 @@
     <sql id="queryChildrenStatisticsDetailSql">
         <where>
             <if test="search != null and search != ''">
-                AND (cdr.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+                AND (cdr.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE
+                CONCAT('%',#{search},'%'))
             </if>
             <if test="isReserve != null">
                 AND cdr.is_reserve_ = #{isReserve}
@@ -241,4 +243,19 @@
             </if>
         </where>
     </sql>
+
+    <select id="getSendMsgList" resultMap="ChildrenStatisticsDetailDtoMap">
+        SELECT cdr.*,su.phone_ FROM children_day_reserve cdr
+        LEFT JOIN sys_user su ON su.id_ = cdr.user_id_
+        <where>
+            <foreach collection="msgDtos" item="msgDto" separator=",">
+                <if test="msgDto.musicGroupId != null">
+                    OR (cdr.organ_id_=#{msgDto.organId} AND cdr.music_group_id_ = #{msgDto.musicGroupId})
+                </if>
+                <if test="msgDto.musicGroupId == null">
+                    OR (cdr.organ_id_=#{msgDto.organId} AND cdr.music_group_id_ IS NULL)
+                </if>
+            </foreach>
+        </where>
+    </select>
 </mapper>

+ 12 - 3
mec-web/src/main/java/com/ym/mec/web/controller/ChildrenReserveController.java

@@ -3,6 +3,7 @@ package com.ym.mec.web.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dto.ChildrenDayMsgDto;
 import com.ym.mec.biz.dal.dto.ChildrenStatisticsDetailDto;
 import com.ym.mec.biz.dal.dto.ChildrenStatisticsDto;
 import com.ym.mec.biz.dal.entity.Employee;
@@ -44,11 +45,11 @@ public class ChildrenReserveController extends BaseController {
         Employee employee = employeeDao.get(sysUser.getId());
         if (StringUtils.isEmpty(queryInfo.getOrganId())) {
             queryInfo.setOrganId(employee.getOrganIdList());
-        }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+        } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
             return failed("用户所在分部异常");
-        }else {
+        } else {
             List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
-            if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+            if (!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))) {
                 return failed("非法请求");
             }
         }
@@ -61,4 +62,12 @@ public class ChildrenReserveController extends BaseController {
     public HttpResponseResult<PageInfo<ChildrenStatisticsDetailDto>> queryStatisticsDetailPage(ChildrenReserveQueryInfo queryInfo) {
         return succeed(childrenDayReserveService.queryStatisticsDetailPage(queryInfo));
     }
+
+
+    @ApiOperation(value = "发送短信和推送")
+    @GetMapping("/sendMsg")
+    @PreAuthorize("@pcs.hasPermissions('childrenReserve/sendMsg')")
+    public HttpResponseResult sendMsg(@RequestBody List<ChildrenDayMsgDto> msgDto) {
+        return succeed(childrenDayReserveService.sendMsg(msgDto));
+    }
 }