浏览代码

Merge remote-tracking branch 'origin/master'

Joburgess 5 年之前
父节点
当前提交
c1ae8bbd89

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

@@ -113,9 +113,10 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 *  续费
 	 * @param musicGroupId 乐团编号
 	 * @param userId 用户编号
+	 * @param isUseBalancePayment 是否使用余额付款
 	 * @return
 	 */
-	Map renew(String musicGroupId, Integer userId);
+	Map renew(String musicGroupId, Integer userId, boolean isUseBalancePayment);
 
 	/**
 	 * 学生支付订单

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

@@ -29,4 +29,11 @@ public interface SysUserCashAccountService extends BaseService<Integer, SysUserC
 	 * @return
 	 */
 	boolean transferCourseBalanceToBalance(Integer userId);
+	
+	/**
+	 * 获取行级锁
+	 * @param userId
+	 * @return
+	 */
+	SysUserCashAccount getLocked(Integer userId);
 }

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

@@ -735,6 +735,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			}
 			teacherIds.addAll(oldCourseScheduleList.stream().map(e -> e.getActualTeacherId()).collect(Collectors.toSet()));
 			Map<Integer,String> map = new HashMap<>(teacherIds.size());
+			teacherIds.removeAll(Collections.singleton(null));
 			teacherIds.forEach(e->{
 				map.put(e,e.toString());
 			});
@@ -1035,6 +1036,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if (courseScheduleIdList.size() > 0) {
 			// vip课自动签退
 			teacherAttendanceDao.updateViPSignOutStatus(courseScheduleIdList.stream().map(a -> a.toString()).collect(Collectors.joining(",")));
+			//教师考勤当前课时+1
+
 		}
 		
 		return true;

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

@@ -130,7 +130,11 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 		PageInfo<EmployeeDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
-
+		String organId = queryInfo.getOrganId();
+		if(StringUtils.isNotEmpty(organId)){
+			String[] organIds = organId.split(",");
+			params.put("organIds",organIds);
+		}
 		List<EmployeeDto> dataList = null;
 		int count = employeeDao.queryEmployByOrganIdCount(params);
 		if (count > 0) {

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

@@ -721,7 +721,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public Map renew(String musicGroupId, Integer userId) {
+    public Map renew(String musicGroupId, Integer userId, boolean isUseBalancePayment) {
 
         MusicGroup musicGroup = this.get(musicGroupId);
         if (musicGroup == null) {
@@ -742,6 +742,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (amount == null || amount.doubleValue() == 0) {
             amount = musicGroupStudentFee.getCourseFee();
         }
+        
+        if(isUseBalancePayment){
+        	SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
+        	if(userCashAccount == null){
+        		throw new BizException("用户账户找不到");
+        	}
+        	
+        }
 
         try {
             Map<String, Object> payMap = payService.getPayMap(amount, idGeneratorService.generatorId("payment") + "", "https://pay.dayaedu.com/api/yqpay/notify",

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserCashAccountServiceImpl.java

@@ -11,6 +11,7 @@ import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -107,4 +108,9 @@ public class SysUserCashAccountServiceImpl extends BaseServiceImpl<Integer, SysU
 		return true;
 	}
 
+	@Override
+	public SysUserCashAccount getLocked(Integer userId) {
+		return sysUserCashAccountDao.getLocked(userId);
+	}
+
 }

+ 17 - 13
mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -184,8 +184,11 @@
         FROM employee e LEFT JOIN sys_user su ON e.user_id_ = su.id_
         <where>
             su.user_type_ = 'SYSTEM'
-            <if test="organId != null">
-                AND FIND_IN_SET(su.organ_id_,#{organId})
+            <if test="organIds != null">
+                AND
+                <foreach collection="organIds" item="item" open="(" close=")" separator=" OR ">
+                    FIND_IN_SET(#{item},e.organ_id_list_)
+                </foreach>
             </if>
             <if test="search != null">
                 AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
@@ -198,19 +201,20 @@
     </select>
 
     <select id="queryEmployByOrganIdCount" resultType="int">
-        SELECT COUNT(ue.user_id_)
-        FROM (SELECT e.user_id_,su.real_name_,su.gender_,su.phone_,su.user_type_,e.job_nature_,su.lock_flag_,
-        e.entry_date_,e.demission_date_,e.organ_id_list_,e.create_time_
+        SELECT COUNT(DISTINCT e.user_id_)
         FROM employee e LEFT JOIN sys_user su ON e.user_id_ = su.id_
         <where>
-            <if test="organId != null">
-                FIND_IN_SET(su.organ_id_,#{organId})
-            </if>
-        </where>) ue
-        WHERE ue.user_type_ LIKE '%SYSTEM%'
-        <if test="search != null">
-            AND (ue.real_name_ LIKE CONCAT('%',#{search},'%') OR ue.phone_ LIKE CONCAT('%',#{search},'%'))
-        </if>
+            su.user_type_ = 'SYSTEM'
+            <if test="organIds != null">
+                AND
+                <foreach collection="organIds" item="item" open="(" close=")" separator=" OR ">
+                    FIND_IN_SET(#{item},e.organ_id_list_)
+                </foreach>
+            </if>
+            <if test="search != null">
+                AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+            </if>
+        </where>
     </select>
     <select id="queryUserRole" resultType="java.lang.Integer">
         SELECT sur.role_id_ FROM sys_user_role sur WHERE sur.user_id_ = #{userId}

+ 58 - 28
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -1,34 +1,59 @@
 package com.ym.mec.student.controller;
 
-import com.huifu.adapay.model.payment.PayChannelEnum;
-import com.huifu.adapay.model.payment.Payment;
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
-import com.ym.mec.biz.dal.dto.RegisterPayDto;
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
-import com.ym.mec.biz.dal.enums.*;
-import com.ym.mec.biz.service.*;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.exception.BizException;
-import com.ym.mec.common.service.IdGeneratorService;
-import com.ym.mec.thirdparty.adapay.Pay;
-import com.ym.mec.util.string.IdWorker;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import javax.annotation.Resource;
+
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.util.*;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dto.RegisterPayDto;
+import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.GoodsType;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
+import com.ym.mec.biz.service.GoodsService;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.MusicGroupSubjectGoodsGroupService;
+import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
+import com.ym.mec.biz.service.PayService;
+import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.service.IdGeneratorService;
 
 @RequestMapping("musicGroup")
 @Api(tags = "乐团服务")
@@ -175,14 +200,19 @@ public class MusicGroupController extends BaseController {
         return succeed(model);
     }
 
-    @ApiOperation(value = "续费")
-    @GetMapping("/renew")
-    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
-    public HttpResponseResult renew(String musicGroupId) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        Integer userId = sysUser.getId();
-        return succeed(musicGroupService.renew(musicGroupId, userId));
-    }
+	@ApiOperation(value = "续费")
+	@GetMapping("/renew")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "isUseBalancePayment", value = "是否使用余额付款", required = true, dataType = "Boolean") })
+	public HttpResponseResult renew(String musicGroupId, Boolean isUseBalancePayment) throws Exception {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		Integer userId = sysUser.getId();
+		
+		if (isUseBalancePayment == null) {
+			isUseBalancePayment = false;
+		}
+		return succeed(musicGroupService.renew(musicGroupId, userId, isUseBalancePayment));
+	}
 
     @ApiOperation(value = "退团")
     @PostMapping("/quitMusicGroup")