Joburgess 5 years ago
parent
commit
f73361f8a4

+ 2 - 2
cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml

@@ -51,8 +51,8 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.cms.dal.entity.SysNewsInformation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO sys_news_information (id_,title_,content_,cover_image_,type_,status_,create_time_,update_time_,link_url_,href_target_,order_,del_flag_,href_target_)
-		VALUES(#{id},#{title},#{content},#{coverImage},#{type},#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now(),#{linkUrl},#{hrefTarget},#{order},0,#{hrefTarget})
+		INSERT INTO sys_news_information (id_,title_,content_,cover_image_,type_,status_,create_time_,update_time_,link_url_,href_target_,order_,del_flag_)
+		VALUES(#{id},#{title},#{content},#{coverImage},#{type},#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now(),#{linkUrl},#{hrefTarget},#{order},0)
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserCashAccountDao.java

@@ -2,6 +2,9 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface SysUserCashAccountDao extends BaseDAO<Integer, SysUserCashAccount> {
 	
@@ -12,4 +15,13 @@ public interface SysUserCashAccountDao extends BaseDAO<Integer, SysUserCashAccou
 	 */
 	SysUserCashAccount getLocked(Integer userId);
 
-}
+	/**
+	 * @describe 根据用户编号获取现金账户信息
+	 * @author Joburgess
+	 * @date 2019/11/17
+	 * @param userIds: 用户编号列表
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.SysUserCashAccount>
+	 */
+	List<SysUserCashAccount> findByUserIds(@Param("userIds") List<Integer> userIds);
+
+}

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentManageListDto.java

@@ -3,8 +3,8 @@ package com.ym.mec.biz.dal.dto;
 import com.ym.mec.common.enums.UserGenderEnum;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.math.BigDecimal;
 import java.util.Date;
-import java.util.List;
 
 /**
  * @Author Joburgess
@@ -36,6 +36,17 @@ public class StudentManageListDto {
     @ApiModelProperty(value = "年级",required = false)
     private String currentGrade;
 
+    @ApiModelProperty(value = "课程余额")
+    private BigDecimal courseBalance;
+
+    public BigDecimal getCourseBalance() {
+        return courseBalance;
+    }
+
+    public void setCourseBalance(BigDecimal courseBalance) {
+        this.courseBalance = courseBalance;
+    }
+
     public String getCurrentClass() {
         return currentClass;
     }

+ 13 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -1,11 +1,9 @@
 package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.StudentManageDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.VipGroupDao;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.StudentManageService;
 import com.ym.mec.common.page.PageInfo;
@@ -19,6 +17,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Author Joburgess
@@ -35,6 +34,8 @@ public class StudentManageServiceImpl implements StudentManageService {
     private StudentPaymentOrderDao studentPaymentOrderDao;
     @Autowired
     private VipGroupDao vipGroupDao;
+    @Autowired
+    private SysUserCashAccountDao sysUserCashAccountDao;
 
     @Override
     public PageInfo findStudentsByOrganId(StudentManageQueryInfo queryInfo) {
@@ -48,6 +49,14 @@ public class StudentManageServiceImpl implements StudentManageService {
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = studentManageDao.findStudentsByOrganId(params);
+            List<Integer> userIds = dataList.stream()
+                    .map(StudentManageListDto::getUserId).collect(Collectors.toList());
+            List<SysUserCashAccount> byUserIds = sysUserCashAccountDao.findByUserIds(userIds);
+            Map<Integer, SysUserCashAccount> collect = byUserIds.stream()
+                    .collect(Collectors.toMap(SysUserCashAccount::getUserId, sysUserCashAccount -> sysUserCashAccount));
+            dataList.forEach(studentManageListDto -> {
+                studentManageListDto.setCourseBalance(collect.get(studentManageListDto.getUserId()).getCourseBalance());
+            });
         }
         if (count == 0) {
             dataList = new ArrayList<>();

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

@@ -196,7 +196,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				true);
 
 		BigDecimal tempFee = costInfo.get("totalPrice").multiply(new BigDecimal(0.6));
-		if(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary().compareTo(tempFee)>0){
+		BigDecimal totalSalary = vipGroupApplyBaseInfoDto.getOfflineTeacherSalary().multiply(new BigDecimal(vipGroupApplyBaseInfoDto.getOfflineClassesNum()))
+				.add(vipGroupApplyBaseInfoDto.getOnlineTeacherSalary().multiply(new BigDecimal(vipGroupApplyBaseInfoDto.getOnlineClassesNum())));
+		if(totalSalary.compareTo(tempFee)>0){
 			throw new BizException("课酬异常");
 		}
 
@@ -658,6 +660,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("请指定课程形式");
 		}
 
+		if(Objects.isNull(vipGroup.getSingleClassMinutes())){
+			throw new BizException("请指定课程时长");
+		}
+
 		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId().intValue());
 		if(Objects.isNull(vipGroupCategory)){
 			throw new BizException("未找到课程形式");

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/SysUserCashAccountMapper.xml

@@ -87,5 +87,11 @@
     <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM sys_user_cash_account
 	</select>
+    <select id="findByUserIds" resultMap="SysUserCashAccount">
+        SELECT * FROM sys_user_cash_account WHERE user_id_ IN
+        <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
+            #{userId}
+        </foreach>
+    </select>
 
 </mapper>