Browse Source

Merge remote-tracking branch 'origin/master'

zouxuan 4 years ago
parent
commit
e7a88cb6b7

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMessageDao.java

@@ -1,15 +1,19 @@
 package com.ym.mec.biz.dal.dao;
 
 import java.util.List;
+import java.util.Map;
 
 import org.apache.ibatis.annotations.Param;
 
 import com.ym.mec.biz.dal.dto.Mapper;
+import com.ym.mec.biz.dal.dto.SysMessageDto;
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.common.dal.BaseDAO;
 
 public interface SysMessageDao extends BaseDAO<Long, SysMessage> {
+	
+	public List<SysMessageDto> queryListPage(Map<String, Object> params);
 
 	public List<SysMessage> queryUserInRecentMinList(@Param("mobile") String mobile, @Param("recentMin") int recentMin, @Param("type") MessageSendMode type);
 

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SysMessageDto.java

@@ -0,0 +1,17 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.SysMessage;
+
+public class SysMessageDto extends SysMessage {
+
+	private SysUser user = new SysUser();
+
+	public SysUser getUser() {
+		return user;
+	}
+
+	public void setUser(SysUser user) {
+		this.user = user;
+	}
+}

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -5,13 +5,18 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.ym.mec.biz.dal.dto.SysMessageDto;
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 
 public interface SysMessageService extends BaseService<Long, SysMessage> {
+	
+	public PageInfo<SysMessageDto> queryListPage(QueryInfo queryInfo);
 
 	/**
 	 * 修改消息对象

+ 17 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -3276,6 +3276,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				
 				//删除评论
 				courseScheduleReviewDao.delByCourseScheduleId(courseScheduleId);
+
+				List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseScheduleId);
+				if(!CollectionUtils.isEmpty(courseScheduleStudentPayments)){
+					List<Integer> studentIds = courseScheduleStudentPayments.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toList());
+					studentServeService.updateExercisesSituation(oldCourseSchedule.getClassDate(), studentIds, oldCourseSchedule.getActualTeacherId());
+				}
 			}
 
 			// 计算课程时长
@@ -5275,15 +5281,21 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		Map<Integer, CourseScheduleStudentPayment> mainStudentCourseMap = courseScheduleStudentPayments.stream().filter(c -> courseMergeInfo.getId().equals(c.getCourseScheduleId())).collect(Collectors.toMap(CourseScheduleStudentPayment::getUserId, c -> c, (c1, c2) -> c1));
 		List<CourseScheduleStudentPayment> newPayments = new ArrayList<>();
 		List<CourseScheduleStudentPayment> updatePayments = new ArrayList<>();
+		for (Map.Entry<Integer, CourseScheduleStudentPayment> mainStudentCourseMapEntry : mainStudentCourseMap.entrySet()) {
+			BigDecimal salary = courseScheduleStudentPayments.stream().filter(c -> mainStudentCourseMapEntry.getKey().equals(c.getUserId())).map(CourseScheduleStudentPayment::getExpectPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+			CourseScheduleStudentPayment updatePayment = mainStudentCourseMapEntry.getValue();
+			updatePayment.setExpectPrice(salary);
+			updatePayments.add(updatePayment);
+		}
+
 		for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
 			CourseScheduleStudentPayment updatePayment = mainStudentCourseMap.get(courseScheduleStudentPayment.getUserId());
 			if(Objects.nonNull(updatePayment)&&updatePayment.getCourseScheduleId().equals(courseScheduleStudentPayment.getCourseScheduleId())){
 				continue;
 			}
-			if(updatePayment.getUserId().equals(courseScheduleStudentPayment.getUserId())){
-				updatePayment.setExpectPrice(updatePayment.getExpectPrice().add(courseScheduleStudentPayment.getExpectPrice()));
+			if(Objects.nonNull(updatePayment)&&updatePayment.getUserId().equals(courseScheduleStudentPayment.getUserId())){
+
 				courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
-				updatePayments.add(updatePayment);
 				updatePayments.add(courseScheduleStudentPayment);
 				continue;
 			}
@@ -5292,6 +5304,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			newPayment.setCourseScheduleId(courseMergeInfo.getId());
 			newPayment.setClassGroupId(courseMergeInfo.getClassGroupId());
 			courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
+			newPayment.setId(null);
+			newPayments.add(newPayment);
 			updatePayments.add(courseScheduleStudentPayment);
 		}
 

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

@@ -396,7 +396,7 @@ public class StudentServeServiceImpl implements StudentServeService {
                 List<StudentServeCourseDto> futureCourseInfo = typeCourseMap.get(CourseSchedule.CourseScheduleType.PRACTICE);
                 List<StudentServeCourseDto> weekCourseInfo = typeCourseMap.get(CourseSchedule.CourseScheduleType.PRACTICE).stream().filter(c -> c.getCourseStartTime().compareTo(nextMonday) < 0).collect(Collectors.toList());
                 if(CollectionUtils.isEmpty(weekCourseInfo)){
-                    Set<Integer> teacherIds = weekCourseInfo.stream().map(StudentServeCourseDto::getActualTeacherId).collect(Collectors.toSet());
+                    Set<Integer> teacherIds = futureCourseInfo.stream().map(StudentServeCourseDto::getActualTeacherId).collect(Collectors.toSet());
                     for (Integer teacherId : teacherIds) {
                         StudentExtracurricularExercisesSituation studentExtracurricularExercisesSituation=new StudentExtracurricularExercisesSituation(studentCourseMapEntry.getKey(),
                                 teacherId,nowDate.get(DateUtil.weekFields.weekOfYear()),
@@ -541,6 +541,7 @@ public class StudentServeServiceImpl implements StudentServeService {
 
         for (StudentExtracurricularExercisesSituation weekServiceWithStudent : weekServiceWithStudents) {
             List<StudentServeCourseHomeworkDto> studentHomeworks = studentHomeworkMap.get(weekServiceWithStudent.getStudentId());
+            weekServiceWithStudent.setActualExercisesNum(0);
             if(!CollectionUtils.isEmpty(studentHomeworks)&&weekServiceWithStudent.getServeType().equals("HOMEWORK")){
                 weekServiceWithStudent.setActualExercisesNum(1);
                 long replyNum = studentHomeworks.stream().filter(e -> YesOrNoEnum.YES.equals(e.getStatus())).count();

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dao.SysMessageDao;
 import com.ym.mec.biz.dal.dao.WaitSendMessageDao;
 import com.ym.mec.biz.dal.dto.Mapper;
+import com.ym.mec.biz.dal.dto.SysMessageDto;
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.entity.SysMessageConfig;
 import com.ym.mec.biz.dal.entity.WaitSendMessage;
@@ -21,13 +22,17 @@ import com.ym.mec.common.entity.ImPlayMidiMessage;
 import com.ym.mec.common.entity.ImPrivateMessage;
 import com.ym.mec.common.entity.ImTxtMessage;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.redis.service.RedisCache;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
+import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.string.MessageFormatter;
+
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -87,6 +92,26 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		return sysMessageDao;
 	}
 
+	@Override
+	public PageInfo<SysMessageDto> queryListPage(QueryInfo queryInfo) {
+		PageInfo<SysMessageDto> pageInfo = new PageInfo<SysMessageDto>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+		
+		List<SysMessageDto> dataList = null;
+		int count = this.findCount(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = sysMessageDao.queryListPage(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<SysMessageDto>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
 	/**
 	 * 添加消息
 	 * @param subject 消息主题

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -278,6 +278,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 					courseHomework.setClassGroupId(currentCourseDetail.getClassId().intValue());
 					courseHomework.setExpiryDate(DateUtil.addDays(date,7));
 
+					courseHomeworkService.insert(courseHomework);
+
 					List<StudentCourseHomework> studentCourseHomeworks = studentCourseHomeworkDao
 							.constructInitialStudentHomeworkRecordsWithPayment(teacherAttendance.getCourseScheduleId(),
 									courseHomework.getId());
@@ -292,9 +294,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 							iterator.remove();
 						}
 					}
-
 					courseHomework.setExpectNum(studentCourseHomeworks.size());
-					courseHomeworkService.insert(courseHomework);
+					courseHomeworkService.update(courseHomework);
 
 					studentCourseHomeworkDao.batchInsertStudentCourseHomeworkRecord(studentCourseHomeworks);
 					List<Integer> studentIds = studentCourseHomeworks.stream().map(StudentCourseHomework::getUserId).collect(Collectors.toList());

+ 3 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1825,7 +1825,9 @@
                cs.leave_student_num_,
                cs.schoole_id_
         FROM course_schedule cs
-        WHERE cs.class_date_ BETWEEN #{startDate} AND #{endDate}
+        WHERE
+            (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
+            AND cs.class_date_ BETWEEN #{startDate} AND #{endDate}
           AND cs.group_type_ = 'MUSIC'
           AND (cs.del_flag_ IS NULL OR cs.del_flag_ = 0)
     </select>

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

@@ -408,6 +408,7 @@
 			ee.id_ homework_id_,
 			eer.id_ student_homework_id_,
 			ee.title_,
+		 	NULL course_schedule_id_,
 			ee.teacher_id_,
 			tea.real_name_ teacher_name_,
 			NULL group_id_,
@@ -433,6 +434,7 @@
 			ch.id_ homework_id_,
 			sch.id_ student_homework_id_,
 			NULL title_,
+		    cs.id_ course_schedule_id_,
 			cs.actual_teacher_id_,
 			tea.real_name_ teacher_name_,
 			cs.music_group_id_ group_id_,

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

@@ -163,7 +163,7 @@
 				<if test="situation.serveType!=null">
 					serve_type_=#{situation.serveType},
 				</if>
-				<if test="situation.courseIds!=null and situation.courseIds!=''">
+				<if test="situation.courseIds!=null">
 					course_ids_=#{situation.courseIds},
 				</if>
 				update_time_ = NOW()

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

@@ -347,7 +347,7 @@
                 </if>
             </if>
             <if test="noneTqType != null">
-                and spro.mer_no_ != '淘微信'
+                and spro.mer_no_ != '淘微信'
             </if>
         </where>
 		order by spro.id_ desc
@@ -378,7 +378,7 @@
         		</if>
         	</if>
             <if test="noneTqType != null">
-                and spro.mer_no_ != '淘微信'
+                and spro.mer_no_ != '淘微信'
             </if>
         </where>
 		order by spro.id_ desc

+ 24 - 13
mec-biz/src/main/resources/config/mybatis/SysMessageMapper.xml

@@ -24,6 +24,10 @@
         <result column="jpush_type_" property="jpushType"/>
     </resultMap>
     
+    <resultMap type="com.ym.mec.biz.dal.dto.SysMessageDto" id="messageDto" extends="message">
+        <result column="username_" property="user.username"/>
+    </resultMap>
+    
     <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
     	<result column="key_" property="key"/>
         <result column="value_" property="value"/>
@@ -32,31 +36,31 @@
 	<sql id="queryCondition">
 		<where>
 			<if test="jpushType != null and jpushType != ''">
-				and (jpush_type_ = #{jpushType} OR jpush_type_ IS NULL)
+				and (m.jpush_type_ = #{jpushType} OR m.jpush_type_ IS NULL)
 			</if>
 			<if test="userId != null">
-				and user_id_ = #{userId}
+				and m.user_id_ = #{userId}
 			</if>
 			<if test="receiver != null">
-				and receiver_ like '%' #{receiver} '%'
+				and m.receiver_ like '%' #{receiver} '%'
 			</if>
 			<if test="status != null">
-				and status_ = #{status,jdbcType=TINYINT}
+				and m.status_ = #{status,jdbcType=TINYINT}
 			</if>
 			<if test="readStatus != null">
-				and read_status_ = #{readStatus,jdbcType=TINYINT}
+				and m.read_status_ = #{readStatus,jdbcType=TINYINT}
 			</if>
 			<if test="title != null">
-				and title_ like '%' #{title} '%'
+				and m.title_ like '%' #{title} '%'
 			</if>
 			<if test="type != null">
-				and type_ = #{type}
+				and m.type_ = #{type}
 			</if>
 			<if test="group != null">
-				and group_ = #{group}
+				and m.group_ = #{group}
 			</if>
 			<if test="readStatus != null">
-				and read_status_ = #{readStatus}
+				and m.read_status_ = #{readStatus}
 			</if>
 		</where>
 	</sql>
@@ -158,15 +162,22 @@
     </update>
 
     <select id="queryCount" parameterType="map" resultType="int">
-		select count(*) from sys_message
+		select count(m.id_) from sys_message m
 		<include refid="queryCondition" />
-		order by create_on_ desc
+		order by m.create_on_ desc
 	</select>
 
 	<select id="queryPage" parameterType="map" resultMap="message">
-		select * from sys_message
+		select m.* from sys_message m
+		<include refid="queryCondition" />
+		order by m.create_on_ desc
+		<include refid="global.limit" />
+	</select>
+
+	<select id="queryListPage" parameterType="map" resultMap="messageDto">
+		select m.*,u.username_ from sys_message m left join sys_user u on m.user_id_ = u.id_
 		<include refid="queryCondition" />
-		order by create_on_ desc
+		order by m.create_on_ desc
 		<include refid="global.limit" />
 	</select>
 

+ 14 - 0
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/Payment.java

@@ -116,6 +116,20 @@ public class Payment {
         return payment;
     }
 
+    public static Map<String, Object> queryConfirmList(String paymentId) throws Exception {
+        Map<String, Object> paymentParams = new HashMap<>();
+        paymentParams.put("app_id", ConfigInit.appId);
+        paymentParams.put("payment_id", paymentId);
+
+        Map<String, Object> payment = com.huifu.adapay.model.Payment.queryConfirmList(paymentParams);
+        String error_code = (String) payment.get("error_code");
+        if (null != error_code) {
+            String errorMsg = (String) payment.get("error_msg");
+            throw new ThirdpartyException(errorMsg);
+        }
+        return payment;
+    }
+
 
     public static Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, String sellerNo, List<Map<String, Object>> tempRoutingList) throws Exception {
         Map<String, Object> paymentParams = new LinkedHashMap<>();

+ 31 - 10
mec-web/src/main/java/com/ym/mec/web/controller/AdapayController.java

@@ -28,6 +28,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
+import java.math.BigDecimal;
 import java.util.*;
 
 @RequestMapping("adapay")
@@ -137,7 +138,7 @@ public class AdapayController extends BaseController {
         long createdLte = DateUtil.getLastSecondWithDay(endTime).getTime();
         int pageIndex = 1;
         List<Map<String, Object>> data = new ArrayList<>();
-        while (profiles.equals("prod")) {
+        while (profiles.equals("dev")) {
             Map<String, Object> paymentList = Payment.queryList(pageIndex, createdGte, createdLte);
             JSONArray payments = (JSONArray) paymentList.get("payments");
             if (!paymentList.get("status").equals("succeeded")) {
@@ -163,17 +164,37 @@ public class AdapayController extends BaseController {
                     } else {
                         paymentMap.put("status", "交易失败");
                     }
-                    JSONArray divMembers = (JSONArray) paymentMap.get("div_members");
-                    for (Object divMember : divMembers) {
-                        Map<String, Object> divMemberMap = (Map<String, Object>) divMember;
-                        divMemberMap.putAll(paymentMap);
-                        if (divMemberMap.get("member_id").equals("0")) {
-                            divMemberMap.put("member_id", ConfigInit.merNo);
+                    if (paymentMap.get("pay_mode").equals("delay")) {
+                        Map<String, Object> confirmMap = Payment.queryConfirmList(paymentMap.get("id").toString());
+                        JSONArray confirms = (JSONArray) confirmMap.get("payment_confirms");
+                        for (Object confirm : confirms) {
+                            Map<String, Object> divMemberMap = (Map<String, Object>) confirm;
+                            divMemberMap.putAll(paymentMap);
+
+                            JSONArray divMembers = (JSONArray) divMemberMap.get("div_members");
+                            Map<String, Object> divMember = (Map<String, Object>) divMembers.get(0);
+                            divMemberMap.putAll(divMember);
+                            if (divMemberMap.get("member_id").equals("0")) {
+                                divMemberMap.put("member_id", ConfigInit.merNo);
+                            }
+                            BigDecimal feeAmt = (new BigDecimal(divMemberMap.get("amount").toString())).multiply(new BigDecimal("0.28")).divide(new BigDecimal(100),2, BigDecimal.ROUND_HALF_UP);
+                            divMemberMap.put("fee_amt", feeAmt);
+                            data.add(divMemberMap);
                         }
-                        if (divMemberMap.get("fee_flag").equals("N")) {
-                            divMemberMap.put("fee_amt", "0.00");
+
+                    } else {
+                        JSONArray divMembers = (JSONArray) paymentMap.get("div_members");
+                        for (Object divMember : divMembers) {
+                            Map<String, Object> divMemberMap = (Map<String, Object>) divMember;
+                            divMemberMap.putAll(paymentMap);
+                            if (divMemberMap.get("member_id").equals("0")) {
+                                divMemberMap.put("member_id", ConfigInit.merNo);
+                            }
+                            if (divMemberMap.get("fee_flag").equals("N")) {
+                                divMemberMap.put("fee_amt", "0.00");
+                            }
+                            data.add(divMemberMap);
                         }
-                        data.add(divMemberMap);
                     }
                 }
             }

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

@@ -3,9 +3,6 @@ package com.ym.mec.web.controller;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
-import java.io.IOException;
-
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -15,15 +12,12 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.SysMessage;
+import com.ym.mec.biz.dal.dto.SysMessageDto;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
-import com.ym.mec.util.validator.CommonValidator;
 
 @RestController
 @Api(tags = "消息服务")
@@ -47,7 +41,7 @@ public class SysMessageController extends BaseController {
 			queryInfo.setUserId(sysUser.getId());
 		}
 		queryInfo.setType(MessageSendMode.SEO.getCode());
-		PageInfo<SysMessage> pageInfo = sysMessageService.queryPage(queryInfo);
+		PageInfo<SysMessageDto> pageInfo = sysMessageService.queryListPage(queryInfo);
 		return succeed(pageInfo);
 	}