zouxuan 4 éve
szülő
commit
a76a2f72e5

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java

@@ -111,7 +111,7 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
 
     List<MusicGroupPaymentCalender> queryByIds(@Param("calenderId") Set<Long> calenderId);
 
-    List<Long> queryEndIds(@Param("configValue") String configValue, @Param("format") String format);
+    List<Long> queryEndIds(@Param("configValue") String configValue, @Param("format") String format, @Param("musicGroupIds") List<String> musicGroupIds);
 
     List<CalenderPushDto> getCalenderPushDto(@Param("calenderIds") Collection<Long> calenderIds);
 
@@ -307,4 +307,10 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
      */
     MusicGroupPaymentCalender getSchoolCalender(@Param("calenderId") Long calenderId);
 
+    /**
+     * 获取
+     * @param calenderIds
+     * @return
+     */
+    List<String> queryMusicGroupIds(List<Long> calenderIds);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportVipGroupActivityDto.java

@@ -29,6 +29,9 @@ public class ExportVipGroupActivityDto {
     @ApiModelProperty(value = "活动持续时间")
     private String time;
 
+    @ApiModelProperty(value = "课程安排时间")
+    private String courseTime;
+
     @ApiModelProperty(value = "活动类型")
     private String type;
 
@@ -47,6 +50,14 @@ public class ExportVipGroupActivityDto {
     @ApiModelProperty(value = "线下课结算公式")
     private String offlineSalarySettlement;
 
+    public String getCourseTime() {
+        return courseTime;
+    }
+
+    public void setCourseTime(String courseTime) {
+        this.courseTime = courseTime;
+    }
+
     public String getOrganName() {
         return organName;
     }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/IndexErrInfoDto.java

@@ -15,7 +15,7 @@ public class IndexErrInfoDto<T> {
 
     private String desc;
 
-    private int num;
+    private int num = 0;
 
     private List<T> result;
 

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

@@ -12,6 +12,7 @@ public enum IndexErrorType implements BaseEnum<String, IndexErrorType> {
 
     STUDENT_NOT_PAYMENT("STUDENT_NOT_PAYMENT", "学员未缴费"),
     STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP("STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP", "学员退团申请"),
+    WAIT_CREATE_PAYMENT_CALENDER("WAIT_CREATE_PAYMENT_CALENDER", "待创建缴费项目"),
     ;
 
     private String code;

+ 25 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -2,9 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 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.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.IndexBaseDto;
 import com.ym.mec.biz.dal.entity.IndexErrInfoDto;
 import com.ym.mec.biz.dal.entity.Organization;
@@ -18,7 +16,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
 import com.ym.mec.biz.service.IndexBaseMonthDataService;
-import com.ym.mec.biz.dal.dao.IndexBaseMonthDataDao;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -29,6 +26,8 @@ import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static com.ym.mec.biz.dal.enums.IndexErrorType.WAIT_CREATE_PAYMENT_CALENDER;
+
 @Service
 public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBaseMonthData> implements IndexBaseMonthDataService {
 	
@@ -41,6 +40,10 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 	@Autowired
 	private MusicGroupDao musicGroupDao;
 	@Autowired
+	private SysConfigDao sysConfigDao;
+	@Autowired
+	private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
+	@Autowired
 	private SysUserFeignService sysUserFeignService;
 
 	private static ThreadLocal<Set<Integer>> organIds = new ThreadLocal<Set<Integer>>(){
@@ -327,8 +330,24 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		}
 		//当前用户是否是分部经理
 		List<Integer> userRole = employeeDao.queryUserRole(sysUser.getId());
-		List<String> musicGroupIds = musicGroupDao.queryIdsByEduIdAndOrganIds(userRole.contains(3)?sysUser.getId():null,organIds);
 		//获取关联的乐团列表
-		return null;
+		List<String> musicGroupIds = musicGroupDao.queryIdsByEduIdAndOrganIds(userRole.contains(3)?sysUser.getId():null,organIds);
+		String configValue1 = sysConfigDao.findConfigValue("push_create_payment_calender");
+		Date date = new Date();
+		String format = DateUtil.format(date, DateUtil.DEFAULT_PATTERN);
+		List<IndexErrInfoDto> result = new ArrayList<>();
+		IndexErrInfoDto indexErrInfoDto = new IndexErrInfoDto();
+		indexErrInfoDto.setErrorType(WAIT_CREATE_PAYMENT_CALENDER);
+		indexErrInfoDto.setDesc(WAIT_CREATE_PAYMENT_CALENDER.getMsg());
+		if(musicGroupIds.size() > 0){
+			List<Long> calenderIds = musicGroupPaymentCalenderDao.queryEndIds(configValue1, format,musicGroupIds);
+			if(calenderIds.size() > 0){
+				List<String> musicGroupIdList = musicGroupPaymentCalenderDao.queryMusicGroupIds(calenderIds);
+				indexErrInfoDto.setResult(musicGroupIdList);
+			}
+			indexErrInfoDto.setNum(calenderIds.size());
+		}
+		result.add(indexErrInfoDto);
+		return result;
 	}
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -911,7 +911,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		}
 		// 获取离截止还有指定时间的缴费项,并发送推送消息给指定老师
 		String configValue1 = sysConfigDao.findConfigValue("push_create_payment_calender");
-		List<Long> calenderIds = musicGroupPaymentCalenderDao.queryEndIds(configValue1, format);
+		List<Long> calenderIds = musicGroupPaymentCalenderDao.queryEndIds(configValue1, format,null);
 		if (calenderIds != null && calenderIds.size() > 0) {
 			List<CalenderPushDto> calenderPushDtos = musicGroupPaymentCalenderDao.getCalenderPushDto(calenderIds);
 			Map<Long, List<CalenderPushDto>> collect = calenderPushDtos.stream().collect(Collectors.groupingBy(CalenderPushDto::getCalenderId));

+ 9 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -631,6 +631,14 @@
 		WHERE cg.id_ = #{classGroupId} LIMIT 1
     </select>
     <select id="queryIdsByEduIdAndOrganIds" resultType="java.lang.String">
-        SELECT * FROM music_group
+        SELECT DISTINCT id_ FROM music_group
+        <where>
+            <if test="educationId != null">
+                AND educational_teacher_id_ = #{educationId}
+            </if>
+            <if test="organIds != null and organIds != ''">
+                AND FIND_IN_SET(organ_id_,#{organIds})
+            </if>
+        </where>
     </select>
 </mapper>

+ 15 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml

@@ -348,7 +348,14 @@
     </select>
     <select id="queryEndIds" resultType="java.lang.Long">
         SELECT DISTINCT mgpc.id_ FROM music_group_payment_calender mgpc
-        WHERE mgpc.payment_valid_end_date_ IS NOT NULL AND DATEDIFF(mgpc.payment_valid_end_date_,#{format}) = #{configValue} AND mgpc.payment_type_ IN ('MUSIC_APPLY','MUSIC_RENEW')
+        WHERE mgpc.payment_valid_end_date_ IS NOT NULL AND DATEDIFF(mgpc.payment_valid_end_date_,#{format}) = #{configValue}
+        AND mgpc.payment_type_ IN ('MUSIC_APPLY','MUSIC_RENEW')
+        <if test="musicGroupIds != null">
+            AND mgpc.music_group_id_ IN
+            <foreach collection="musicGroupIds" open="(" close=")" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
     </select>
     <resultMap id="CalenderPushDto" type="com.ym.mec.biz.dal.dto.CalenderPushDto">
         <result property="paymentValidEndDate" column="payment_valid_end_date_"/>
@@ -562,4 +569,11 @@
     <select id="getSchoolCalender" resultMap="MusicGroupPaymentCalender">
         SELECT * FROM music_group_payment_calender WHERE id_ = #{calenderId} AND status_ IN ('NO', 'OPEN', 'OVER', 'PAID');
     </select>
+    <select id="queryMusicGroupIds" resultType="java.lang.String">
+        SELECT music_group_id_ FROM music_group_payment_calender
+        WHERE id_ IN
+        <foreach collection="calenderIds" item="calenderId" open="(" close=")" separator=",">
+            #{calenderId}
+        </foreach>
+    </select>
 </mapper>

+ 2 - 0
mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml

@@ -193,6 +193,7 @@
 		<result column="vip_group_category_id_list_" property="vipGroupCategoryIdList" />
 		<result column="open_flag_" property="openFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="time_" property="time" />
+		<result column="course_time_" property="courseTime" />
 		<result column="type_" property="type" />
 		<result column="dis_count_" property="disCount" />
 		<result column="online_salary_type_" property="onlineSalaryType" />
@@ -204,6 +205,7 @@
 	<select id="exportVipGroupActivity" resultMap="exportVipGroupActivityMap">
 		SELECT GROUP_CONCAT(distinct o.`name_`) organ_name_,vga.id_ , vga.`name_`,vga.`description_`,GROUP_CONCAT(distinct vgc.`name_`) vip_group_category_id_list_ ,
 		((NOW() &lt; vga.end_time_ AND NOW() > vga.start_time_) OR vga.end_time_ IS NULL) open_flag_,concat(vga.`start_time_`,' - ',vga.`end_time_` ) time_,
+		concat(vga.courses_start_time_,' - ',vga.courses_end_time_) course_time_,
 		case when vga.`type_` = 'BASE_ACTIVITY' then '基础活动' when vga.`type_` = 'DISCOUNT' then '折扣' else '赠送课时' end type_ ,
 		case when vga.`type_` = 'DISCOUNT' then concat(vga.`attribute1_`,'%')  end dis_count_ ,
 		case when JSON_EXTRACT(vga.`salary_settlement_json_`,'$.onlineSalarySettlement.salarySettlementType') = 'RATIO_DISCOUNT' then '课程单价比例折扣'

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -163,10 +163,10 @@ public class ExportController extends BaseController {
         OutputStream outputStream = response.getOutputStream();
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部名称", "活动编号", "活动名称", "活动内容", "适用课程类型",
-                    "启用状态", "活动持续时间", "活动类型", "活动折扣", "线上课结算类型", "线上课结算公式",
+                    "启用状态", "活动持续时间", "课程安排时间", "活动类型", "活动折扣", "线上课结算类型", "线上课结算公式",
                     "线下课结算类型", "线下课结算公式"}, new String[]{
                     "organName", "id", "name", "description", "vipGroupCategoryIdList",
-                    "openFlag.msg", "time", "type", "disCount", "onlineSalaryType", "onlineSalarySettlement", "offlineSalaryType", "offlineSalarySettlement"}, rows);
+                    "openFlag.msg", "time", "courseTime", "type", "disCount", "onlineSalaryType", "onlineSalarySettlement", "offlineSalaryType", "offlineSalarySettlement"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attac:wq" +
                     "hment;filename=vipGroupActivity-" + DateUtil.getDate(new Date()) + ".xls");

+ 22 - 0
mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java

@@ -158,4 +158,26 @@ public class IndexController extends BaseController {
 		}
 		return succeed(indexService.getIndexErrData(organIds));
 	}
+
+	@GetMapping("/getRemindMatterData")
+	public HttpResponseResult getRemindMatterData(String organIds){
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("用户信息获取失败");
+		}
+		if (!sysUser.getIsSuperAdmin()) {
+			Employee employee = employeeService.get(sysUser.getId());
+			if (StringUtils.isBlank(organIds)) {
+				organIds = employee.getOrganIdList();
+			}else if(StringUtils.isEmpty(employee.getOrganIdList())){
+				return failed("用户所在分部异常");
+			}else {
+				List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+				if(!list.containsAll(Arrays.asList(organIds.split(",")))){
+					return failed("非法请求");
+				}
+			}
+		}
+		return succeed(indexService.getRemindMatterData(organIds));
+	}
 }