Jelajahi Sumber

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

liujunchi 3 tahun lalu
induk
melakukan
c1c1ed69a2

+ 21 - 11
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -18,7 +18,6 @@ import com.yonge.cooleshow.biz.dal.dto.search.*;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.service.*;
-import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
@@ -27,6 +26,7 @@ import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
+import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import com.yonge.toolset.utils.date.DateUtil;
 import org.apache.commons.collections.CollectionUtils;
@@ -719,8 +719,10 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         BigDecimal liveServiceRate = new BigDecimal(liveServiceRateStr).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
         //总课酬  1 - (1 * 手续费率)
         BigDecimal totalRatePrice = expectPrice.subtract(expectPrice.multiply(liveServiceRate)).setScale(2, RoundingMode.HALF_UP);
-        //获取每节课的课酬 key 课堂数  value 课酬
-        Map<Integer, BigDecimal> singerCourseSalary = WrapperUtil.getAveragePrice(courseGroup.getCourseNum(), totalRatePrice);
+        //获取每节课的实际课酬 key 课堂数  value 课酬
+        Map<Integer, BigDecimal> singerActualCourseSalary = WrapperUtil.getAveragePrice(courseGroup.getCourseNum(), totalRatePrice);
+        //获取每节课的预计原课酬 key 课堂数  value 课酬
+        Map<Integer, BigDecimal> singerExpectCourseSalary = WrapperUtil.getAveragePrice(courseGroup.getCourseNum(), expectPrice);
         //写入课酬表计算-根据课程组总金额计算分配到每节课的金额
         Date now = new Date();
         List<CourseScheduleTeacherSalary> teacherSalaryList = new ArrayList<>();
@@ -732,10 +734,18 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
             teacherSalary.setCourseGroupType(course.getType());
             teacherSalary.setCourseGroupId(course.getCourseGroupId());
             teacherSalary.setClassNum(course.getClassNum());
-            teacherSalary.setExpectSalary(singerCourseSalary.get(course.getClassNum()));
-            teacherSalary.setReduceSalary(BigDecimal.ZERO);
             teacherSalary.setCreateTime(now);
             teacherSalary.setStatus(TeacherSalaryEnum.NOT_START.getCode());
+            //预计课酬
+            BigDecimal ex = singerExpectCourseSalary.get(course.getClassNum());
+            //实际课酬
+            BigDecimal ac = singerActualCourseSalary.get(course.getClassNum());
+            teacherSalary.setExpectSalary(ex);
+            teacherSalary.setActualSalary(ac);
+            //预计课酬-实际课酬 = 扣除费用
+            teacherSalary.setReduceSalary(ex.subtract(ac));
+            //备注是为直播课手续费
+            teacherSalary.setReduceSalaryRemark(SysConfigConstant.LIVE_SERVICE_RATE);
             teacherSalaryList.add(teacherSalary);
         });
         courseScheduleTeacherSalaryService.getDao().insertBatch(teacherSalaryList);
@@ -750,7 +760,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                 imGroupService.autoCreate(courseGroup.getId(), CourseScheduleEnum.LIVE.getCode());
             } else {//存在->加入当前学员
                 String imGroupId = imGroup.getId();
-                Set<Long> userIds = new HashSet<>(Arrays.asList(studentPayment.getUserId()));
+                Set<Long> userIds = new HashSet<>(Collections.singletonList(studentPayment.getUserId()));
                 imGroupMemberService.initGroupMembers(imGroupId, userIds, ImGroupMemberRoleType.STUDENT);
             }
         } catch (Exception e) {
@@ -1106,7 +1116,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     public IPage<CourseGroupPianoDetailVo> selectPianoGroupDetail(IPage<CourseGroupPianoDetailVo> page, CourseGroupDetailSearch search) {
         if (search.getStudentSign() != null) {
             List<StudentSignVo> list = studentSign(null, CourseScheduleEnum.PIANO_ROOM_CLASS.getCode());
-            List<Long> collect=new ArrayList<>();
+            List<Long> collect = new ArrayList<>();
             if (search.getStudentSign() == 0) {//异常学生
                 collect = list.stream().filter(s -> (s.getStudentOutSign() + s.getStudentInSign()) != 2).map(StudentSignVo::getCourseId).collect(Collectors.toList());
             }
@@ -1145,26 +1155,26 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
 
     @Override
     public IPage<CourseGroupPianoDetailVo> selectPianoGroupStudentDetail(IPage<CourseGroupPianoDetailVo> page, CourseGroupDetailSearch search) {
-        return baseMapper.selectPianoGroupStudentDetail(page,search);
+        return baseMapper.selectPianoGroupStudentDetail(page, search);
     }
 
     @Override
     public IPage<CourseGroupPianoVo> selectPianoGroupTeacher(IPage<CourseGroupPianoVo> page, CourseGroupSearch search) {
-        return baseMapper.selectPianoGroupTeacher(page,search);
+        return baseMapper.selectPianoGroupTeacher(page, search);
     }
 
     @Override
     public IPage<CourseGroupPianoDetailVo> selectPianoGroupTeacherDetail(IPage<CourseGroupPianoDetailVo> page, CourseGroupDetailSearch search) {
         if (search.getStudentSign() != null) {
             List<StudentSignVo> list = studentSign(null, CourseScheduleEnum.PIANO_ROOM_CLASS.getCode());
-            List<Long> collect=new ArrayList<>();
+            List<Long> collect = new ArrayList<>();
             if (search.getStudentSign() == 0) {//异常学生
                 collect = list.stream().filter(s -> (s.getStudentOutSign() + s.getStudentInSign()) != 2).map(StudentSignVo::getCourseId).collect(Collectors.toList());
             }
             if (search.getStudentSign() == 1) {//正常学生
                 collect = list.stream().filter(s -> (s.getStudentOutSign() + s.getStudentInSign()) == 2).map(StudentSignVo::getCourseId).collect(Collectors.toList());
             }
-            collect.add(Long.valueOf(-1));
+            collect.add((long) -1);
             search.setCourseIds(collect);
         }
 

+ 5 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -1040,11 +1040,11 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             teacherSalary.setCourseGroupType(payment.getCourseType());
             teacherSalary.setCourseGroupId(payment.getCourseGroupId());
             teacherSalary.setClassNum(payment.getClassNum());
-            //预计获取学生支付单课全部课酬
-            teacherSalary.setExpectSalary(payment.getActualPrice());
-            //实际获取扣除手续费后课酬
-            teacherSalary.setActualSalary(expectPrice.subtract(expectPrice.multiply(practiceServiceRate)).setScale(2, RoundingMode.HALF_UP));//实际
-            teacherSalary.setReduceSalary(BigDecimal.ZERO);
+            teacherSalary.setExpectSalary(expectPrice);//预计薪水
+            BigDecimal actualSalary = expectPrice.subtract(expectPrice.multiply(practiceServiceRate)).setScale(2, RoundingMode.HALF_UP);
+            teacherSalary.setActualSalary(actualSalary);//实际薪水(扣除手续费)
+            teacherSalary.setReduceSalary(expectPrice.subtract(actualSalary));//扣除薪水 = 预计 - 实际
+            teacherSalary.setReduceSalaryRemark(SysConfigConstant.PRACTICE_SERVICE_FEE);//扣除原因
             teacherSalary.setStatus(TeacherSalaryEnum.NOT_START.getCode());
             teacherSalaryList.add(teacherSalary);
             teacherSalary.setCreateTime(now);

+ 4 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImUserFriendMapper.xml

@@ -13,8 +13,7 @@
     </resultMap>
 
     <sql id="Base_Column_List">
-        id_
-        , user_id_, friend_id_, friend_nickname_,friend_avatar_, memo_, create_time_, update_time_
+        id_, user_id_, friend_id_, friend_nickname_,friend_avatar_, memo_, create_time_, update_time_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
@@ -25,6 +24,9 @@
             (#{entity.userId}, #{entity.friendId}, #{entity.friendNickname}, #{entity.friendAvatar}, #{entity.memo}, #{entity.createTime},
             #{entity.updateTime})
         </foreach>
+        ON DUPLICATE KEY UPDATE
+        user_id_ = VALUES(user_id_),
+        friend_id_ = VALUES(friend_id_)
     </insert>
     <select id="findByUserIdAndFriendId" resultMap="BaseResultMap">
         SELECT <include refid="Base_Column_List"/> FROM im_user_friend WHERE user_id_ = #{userId} AND friend_id_ = #{friendId} LIMIT 1