Преглед на файлове

Merge remote-tracking branch 'origin/master'

Joburgess преди 5 години
родител
ревизия
3bcfb1b543

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -145,4 +145,15 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      */
     int countStudentCourseNumWithGroup(@Param("groupType") GroupType groupType,
                                        @Param("groupId") String groupId);
+
+    /**
+     * 根据乐团,vip状态获取编号
+     * @return
+     */
+    Set<Integer> queryMusicStudentPer();
+    /**
+     * 根据乐团,vip状态获取编号
+     * @return
+     */
+    Set<Integer> queryVipStudentPer();
 }

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -193,4 +193,5 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @return
      */
     List<Map<String, String>> queryMusicGroupNameMap(@Param("musicGroupIds") Set<String> musicGroupIds);
+
 }

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -2,15 +2,15 @@ package com.ym.mec.biz.dal.dao;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
-import com.ym.mec.biz.dal.dto.StudentRegisterPerDto;
-import com.ym.mec.biz.dal.entity.MusicGroup;
 import org.apache.ibatis.annotations.Param;
 
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
 import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
 import com.ym.mec.biz.dal.dto.StudentInfo;
+import com.ym.mec.biz.dal.dto.StudentRegisterPerDto;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
@@ -302,7 +302,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      *
      * @return
      */
-    List<StudentRegisterPerDto> queryStudentPer();
+    List<StudentRegisterPerDto> queryStudentPer(@Param("userIds") Set<Integer> userIds);
 
     /**
      * 获取乐团报名信息和学校信息

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SporadicChargeInfo.java

@@ -26,6 +26,10 @@ public class SporadicChargeInfo {
 
 	private BigDecimal balance;
 
+	private Integer userId;
+
+	private String userName;
+
 	@ApiModelProperty(value = "收费详情", required = true)
 	private String detail;
 
@@ -42,6 +46,22 @@ public class SporadicChargeInfo {
 	@ApiModelProperty(value = "是否删除", required = true)
 	private Integer delFlag;
 
+	public String getUserName() {
+		return userName;
+	}
+
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
+
+	public Integer getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Integer userId) {
+		this.userId = userId;
+	}
+
 	public Integer getDelFlag() {
 		return delFlag;
 	}

+ 9 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java

@@ -1,14 +1,16 @@
 package com.ym.mec.biz.dal.entity;
 
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.KitPurchaseMethodEnum;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
-import java.math.BigDecimal;
-import java.sql.Date;
 
 /**
  * 对应数据库表(student_registration):
@@ -61,10 +63,10 @@ public class StudentRegistration {
     private String remark;
 
     @ApiModelProperty(value = "添加时间", required = false)
-    private java.util.Date createTime;
+    private Date createTime;
 
     @ApiModelProperty(value = "更新时间", required = false)
-    private java.util.Date updateTime;
+    private Date updateTime;
 
     @ApiModelProperty(value = "家长姓名", required = false)
     private String parentsName;

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SporadicChargeInfoService.java

@@ -20,4 +20,11 @@ public interface SporadicChargeInfoService extends BaseService<Integer, Sporadic
      * @return
      */
     PageInfo queryDetailPage(SporadicChargeInfoQueryInfo queryInfo);
+
+    /**
+     * 单查询
+     * @param id
+     * @return
+     */
+    SporadicChargeInfo getDetail(Integer id);
 }

+ 17 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SporadicChargeInfoImpl.java

@@ -86,14 +86,29 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
 		List<SporadicChargeInfo> rows = pageInfo.getRows();
 		if(rows != null && rows.size() > 0){
 			Set<Integer> organIds = rows.stream().map(e -> e.getOrganId()).collect(Collectors.toSet());
+			List<Integer> userIds = rows.stream().map(e -> e.getUserId()).collect(Collectors.toList());
 			Set<Integer> operatorIds = rows.stream().map(e -> e.getOperatorId()).collect(Collectors.toSet());
 			Map<Integer,String> organNames = MapUtil.convertMybatisMap(organizationDao.findOrganNameMap(StringUtils.join(organIds,",")));
-			Map<Integer,String> OperatorNames = MapUtil.convertMybatisMap(teacherDao.queryNameByIds(StringUtils.join(operatorIds,",")));
+			Map<Integer,String> operatorNames = MapUtil.convertMybatisMap(teacherDao.queryNameByIds(StringUtils.join(operatorIds,",")));
+			Map<Integer,String> userNames = MapUtil.convertMybatisMap(teacherDao.queryUsernameByIds(userIds));
 			rows.forEach(e->{
 				e.setOrganName(organNames.get(e.getOrganId()));
-				e.setOperatorName(OperatorNames.get(e.getOperatorId()));
+				if(e.getUserId() != null){
+					e.setUserName(userNames.get(e.getUserId()));
+				}
+				e.setOperatorName(operatorNames.get(e.getOperatorId()));
 			});
 		}
 		return pageInfo;
 	}
+
+	@Override
+	public SporadicChargeInfo getDetail(Integer id) {
+		SporadicChargeInfo sporadicChargeInfo = sporadicChargeInfoDao.get(id);
+		if(sporadicChargeInfo.getUserId() != null){
+			SysUser sysUser = sysUserFeignService.queryUserById(sporadicChargeInfo.getUserId());
+			sporadicChargeInfo.setUserName(sysUser.getUsername());
+		}
+		return sporadicChargeInfo;
+	}
 }

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

@@ -35,6 +35,8 @@ public class StudentManageServiceImpl implements StudentManageService {
     @Autowired
     private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
     @Autowired
+    private CourseScheduleStudentPaymentDao scheduleStudentPaymentDao;
+    @Autowired
     private TeacherDao teacherDao;
     @Autowired
     private StudentRegistrationDao studentRegistrationDao;
@@ -342,7 +344,10 @@ public class StudentManageServiceImpl implements StudentManageService {
 
     @Override
     public List<StudentRegisterPerDto> queryStudentPer() {
-        return studentRegistrationDao.queryStudentPer();
+        Set<Integer> musicUserIds = scheduleStudentPaymentDao.queryMusicStudentPer();
+        Set<Integer> vipUserIds = scheduleStudentPaymentDao.queryVipStudentPer();
+        musicUserIds.addAll(vipUserIds);
+        return studentRegistrationDao.queryStudentPer(musicUserIds);
     }
 
     @Override

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

@@ -791,6 +791,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 studentPaymentOrderService.update(waitPayOrder);
                 MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(studentRegistration.getUserId(), studentRegistration.getMusicGroupId());
                 musicGroupStudentFee.setLatestPaidTime(nowDate);
+                musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
+                musicGroupStudentFee.setTemporaryCourseFee(BigDecimal.ZERO);
                 musicGroupStudentFee.setUpdateTime(nowDate);
                 musicGroupStudentFeeDao.update(musicGroupStudentFee);
                 //添加学生

+ 13 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -200,6 +200,19 @@
     <select id="countStudentCourseNumWithGroup" resultType="int">
 		SELECT COUNT(id_) FROM course_schedule_student_payment WHERE group_type_=#{groupType} AND music_group_id_=#{groupId}
 	</select>
+    <select id="queryMusicStudentPer" resultType="java.lang.Integer">
+		SELECT cssp.user_id_ FROM course_schedule_student_payment cssp
+		LEFT JOIN music_group mg ON cssp.music_group_id_ = mg.id_ AND cssp.group_type_ = 'MUSIC'
+		LEFT JOIN student_registration sr ON cssp.user_id_ = sr.user_id_ AND cssp.music_group_id_ = sr.music_group_id_
+		WHERE mg.status_ = 'PROGRESS' AND sr.music_group_status_ != 'QUIT'
+		GROUP BY cssp.user_id_
+	</select>
+    <select id="queryVipStudentPer" resultType="java.lang.Integer">
+		SELECT cssp.user_id_ FROM course_schedule_student_payment cssp
+		LEFT JOIN vip_group vg ON cssp.music_group_id_ = vg.id_
+		WHERE vg.status_ IN (2,4) AND cssp.group_type_ = 'VIP'
+		GROUP BY cssp.user_id_
+	</select>
 
     <delete id="deleteStudentCourseSchedule">
 		DELETE FROM course_schedule_student_payment WHERE user_id_ = #{userId} AND course_schedule_id_ IN

+ 9 - 5
mec-biz/src/main/resources/config/mybatis/SporadicChargeInfo.xml

@@ -15,7 +15,7 @@
 		<result column="operator_id_" property="operatorId" />
 		<result column="del_flag_" property="delFlag" />
 		<result column="organ_name_" property="organName" />
-		<result column="organ_name_" property="organName" />
+		<result column="user_id_" property="userId" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -32,8 +32,8 @@
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SporadicChargeInfo"
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO sporadic_charge_info
-		(title_,charge_type_,organ_id_,amount_,detail_,create_time_,update_time_,operator_id_)
-		VALUES(#{title},#{chargeType},#{organId},#{amount},#{detail},now(),now(),#{operatorId})
+		(title_,charge_type_,organ_id_,amount_,detail_,create_time_,update_time_,operator_id_,user_id_)
+		VALUES(#{title},#{chargeType},#{organId},#{amount},#{detail},now(),now(),#{operatorId},#{userId})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -61,6 +61,9 @@
 			<if test="operatorId != null">
 				operator_id_ = #{operatorId},
 			</if>
+			<if test="userId != null">
+				user_id_ = #{userId},
+			</if>
 		</set>
 		WHERE id_ = #{id}
 	</update>
@@ -73,8 +76,9 @@
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="SporadicChargeInfo" parameterType="map">
 		SELECT * FROM sporadic_charge_info sci
+		LEFT JOIN sys_user su ON su.id_ = sci.user_id_
 		<include refid="queryPageSql"/>
-		ORDER BY id_ DESC
+		ORDER BY sci.id_ DESC
 		<include refid="global.limit" />
 	</select>
 
@@ -88,7 +92,7 @@
 				AND sci.charge_type_ = #{chargeType}
 			</if>
 			<if test="search != null">
-				AND sci.title_ LIKE CONCAT('%',#{search},'%')
+				AND (sci.title_ LIKE CONCAT('%',#{search},'%') OR su.username LIKE CONCAT('%',#{search},'%'))
 			</if>
 		</where>
 	</sql>

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -642,6 +642,7 @@
         LEFT JOIN student_registration sr ON su.id_ = sr.user_id_ AND cssp.music_group_id_ = sr.music_group_id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
         WHERE cssp.id_ IS NOT NULL AND su.user_type_ = 'STUDENT' AND (sr.music_group_status_ != 'QUIT' OR sr.id_ IS NULL) AND su.password_ IS NULL
+        AND (mg.status_ = 'PROGRESS' OR vg.status_ IN (2,4))
         <if test="organId != null and organId != ''">
             AND FIND_IN_SET(su.organ_id_,#{organId})
         </if>

+ 9 - 7
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -500,7 +500,7 @@
     </update>
     
     <select id="queryStudentNum" resultType="map">
-        SELECT count(sr.id_) total_num_,sum(case when sr.create_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) new_num_,sum(case when sr.music_group_status_ = 'QUIT' and sr.update_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) quit_num_
+        SELECT count(distinct sr.user_id_) total_num_,sum(case when sr.create_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) new_num_,sum(case when sr.music_group_status_ = 'QUIT' and sr.update_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) quit_num_
         FROM student_registration sr left join music_group mg on sr.music_group_id_ = mg.id_
         <where>
     		<if test="organId != null">
@@ -564,16 +564,18 @@
     <select id="queryStudentPer" resultMap="StudentRegisterPerDtoMap">
         SELECT a.name_ organ_name_,a.num_ student_num_,b.num_ per_num_,ifnull(b.num_,0)*100/a.num_ per_
         FROM (SELECT o.id_,o.name_,COUNT(DISTINCT su.id_) num_ FROM sys_user su
-        LEFT JOIN course_schedule_student_payment cssp ON su.id_ = cssp.user_id_
-        LEFT JOIN student_registration sr ON su.id_ = sr.user_id_ AND cssp.music_group_id_ = sr.music_group_id_
         LEFT JOIN organization o ON su.organ_id_ = o.id_
-        WHERE cssp.id_ IS NOT NULL AND su.user_type_ = 'STUDENT' AND (sr.id_ IS NULL OR sr.music_group_status_ != 'QUIT')
+        WHERE su.user_type_ = 'STUDENT' AND su.id_ IN
+        <foreach collection="userIds" separator="," open="(" close=")" item="item">
+            #{item}
+        </foreach>
         GROUP BY su.organ_id_) a
         LEFT JOIN
         (SELECT su.organ_id_ id_,COUNT(DISTINCT su.id_) num_ FROM sys_user su
-        LEFT JOIN course_schedule_student_payment cssp ON su.id_ = cssp.user_id_
-        LEFT JOIN student_registration sr ON su.id_ = sr.user_id_ AND cssp.music_group_id_ = sr.music_group_id_
-        WHERE cssp.id_ IS NOT NULL AND su.user_type_ = 'STUDENT' AND (sr.id_ IS NULL OR sr.music_group_status_ != 'QUIT') AND su.password_ IS NOT NULL
+        WHERE su.user_type_ = 'STUDENT' AND su.password_ IS NOT NULL AND su.id_ IN
+        <foreach collection="userIds" separator="," open="(" close=")" item="item">
+            #{item}
+        </foreach>
         GROUP BY su.organ_id_) b
         ON a.id_ = b.id_
         ORDER BY per_ DESC

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/SporadicChargeInfoController.java

@@ -61,7 +61,7 @@ public class SporadicChargeInfoController extends BaseController {
 	@GetMapping("/get")
 	@PreAuthorize("@pcs.hasPermissions('sporadicChargeInfo/get')")
 	public Object get(Integer id) {
-		return succeed(sporadicChargeInfoService.get(id));
+		return succeed(sporadicChargeInfoService.getDetail(id));
 	}
 
 	@ApiOperation(value = "新增")