yonge 5 vuotta sitten
vanhempi
commit
43852ef3ef

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupStudentFeeDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import java.util.Date;
+import java.util.List;
 
 import org.apache.ibatis.annotations.Param;
 
@@ -31,4 +32,11 @@ public interface MusicGroupStudentFeeDao extends BaseDAO<Long, MusicGroupStudent
 	 * @return
 	 */
 	int updateNextPaymentDate(@Param("musicGroupId") String musicGroupId, @Param("nextPaymentDate") Date nextPaymentDate);
+
+	/**
+	 * 根据可提前缴费的天数查询即将续费的列表
+	 * @param days 可提前缴费天数
+	 * @return
+	 */
+	List<MusicGroupStudentFee> queryWillRenewList(int days);
 }

+ 5 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -2,8 +2,11 @@ package com.ym.mec.biz.service;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
-import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.MusicCardDto;
+import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -75,10 +78,9 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 *  续费
 	 * @param musicGroupId 乐团编号
 	 * @param userId 用户编号
-	 * @param amount 缴费金额
 	 * @return
 	 */
-	boolean renew(String musicGroupId, Integer userId, double amount);
+	Map renew(String musicGroupId, Integer userId);
 
 	/**
 	 * 获取乐团列表

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

@@ -5,4 +5,10 @@ import com.ym.mec.common.service.BaseService;
 
 public interface MusicGroupStudentFeeService extends BaseService<Long, MusicGroupStudentFee> {
 
+	/**
+	 * 刷新续费状态
+	 * @return
+	 */
+	boolean refreshPaymentFeeStatus();
+
 }

+ 73 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1,14 +1,52 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.biz.dal.dao.*;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.ym.mec.biz.dal.dao.ChargeTypeDao;
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
+import com.ym.mec.biz.dal.dao.SchoolDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.MusicCardDto;
-import com.ym.mec.biz.dal.dto.MusicGroupsDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentEntities;
+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.enums.ClassGroupStudentStatusEnum;
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.PayService;
 import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
@@ -19,13 +57,6 @@ import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> implements MusicGroupService {
@@ -65,6 +96,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	@Autowired
 	private SysUserCashAccountService sysUserCashAccountService;
 	
+    @Autowired
+    private PayService payService;
+	
 	@Override
 	public BaseDAO<String, MusicGroup> getDAO() {
 		return musicGroupDao;
@@ -277,8 +311,34 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	}
 
 	@Override
-	public boolean renew(String musicGroupId, Integer userId, double amount) {
-		return true;
+	public Map renew(String musicGroupId, Integer userId) {
+
+		MusicGroup musicGroup = this.get(musicGroupId);
+		if (musicGroup == null) {
+			throw new BizException("乐团不存在");
+		}
+
+		MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
+
+		if (musicGroupStudentFee == null) {
+			throw new BizException("个人信息不存在");
+		}
+		// 判断当前是否是续费状态
+		if (musicGroupStudentFee.getPaymentStatus() != PaymentStatus.NON_PAYMENT) {
+			throw new BizException("已缴费");
+		}
+
+		BigDecimal amount = musicGroupStudentFee.getTemporaryCourseFee();
+		if (amount == null || amount.doubleValue() == 0) {
+			amount = musicGroupStudentFee.getCourseFee();
+		}
+
+		try {
+			return payService.getPayMap(amount, idGeneratorService.generatorId("payment") + "", "https://pay.dayaedu.com/api/yqpay/notify",
+					"http://dev.dayaedu.com", "测试订单", "测试订单");
+		} catch (Exception e) {
+			throw new BizException("调用支付接口出错", e);
+		}
 	}
 
 	@Override

+ 32 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupStudentFeeServiceImpl.java

@@ -1,23 +1,52 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
+import com.ym.mec.biz.dal.entity.SysConfig;
 import com.ym.mec.biz.service.MusicGroupStudentFeeService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 @Service
 public class MusicGroupStudentFeeServiceImpl extends BaseServiceImpl<Long, MusicGroupStudentFee> implements MusicGroupStudentFeeService {
 	
 	@Autowired
 	private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
+	
+	@Autowired
+	private SysConfigDao sysConfigDao;
 
 	@Override
 	public BaseDAO<Long, MusicGroupStudentFee> getDAO() {
 		return musicGroupStudentFeeDao;
 	}
+
+	@Override
+	public boolean refreshPaymentFeeStatus() {
+		
+		int days = 7;
+		
+		SysConfig sysConfig = sysConfigDao.findByParamName("refresh_payment_status_early_days");
+		if(sysConfig != null){
+			days = Integer.parseInt(sysConfig.getParanValue());
+		}
+		
+		List<MusicGroupStudentFee> musicGroupStudentFeeList = musicGroupStudentFeeDao.queryWillRenewList(days);
+		
+		for(MusicGroupStudentFee musicGroupStudentFee : musicGroupStudentFeeList){
+			
+		}
+		
+		//int i = DateUtil.daysBetween(new Date(), musicGroupStudentFee.getNextPaymentDate());
+		//e.setRenewStatus(i < 8 ? 0 : 1);
+		
+		return true;
+	}
 	
 }

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml

@@ -110,4 +110,8 @@
     <update id="updateNextPaymentDate" parameterType="map">
         update music_group_student_fee_ set next_payment_date_ = #{nextPaymentDate},update_time_ = now() WHERE music_group_id_ = #{musicGroupId}
     </update>
+
+    <select id="queryWillRenewList" resultMap="MusicGroupStudentFee">
+        SELECT * FROM music_group_student_fee_ WHERE payment_status_ = 'PAID_COMPLETED' and date_add(now(), interval #{days} day) >= next_payment_date_
+    </select>
 </mapper>

+ 1 - 1
mec-common/common-core/src/main/java/com/ym/mec/common/service/impl/RedisIdGeneratorService.java

@@ -60,7 +60,7 @@ public class RedisIdGeneratorService implements IdGeneratorService {
 		try {
 			ValueOperations<String, Object> valueOper = redisTemplate.opsForValue();
 			Long index = valueOper.increment(key, 1);
-			orderId = prefix.concat(String.format("%1$03d", index)); // 补位操作 保证满足3位
+			orderId = prefix.concat(String.format("%1$05d", index)); // 补位操作 保证满足3位
 		} catch (Exception ex) {
 			log.error("分布式订单号生成失败异常。。。。。", ex);
 		} finally {

+ 67 - 2
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -1,7 +1,5 @@
 package com.ym.mec.student.controller;
 
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -15,6 +13,7 @@ import javax.annotation.Resource;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -23,8 +22,22 @@ 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.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfoDto;
 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.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.MusicGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.service.GoodsService;
 import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.biz.service.MusicGroupSubjectGoodsGroupService;
@@ -34,6 +47,7 @@ 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.util.string.IdWorker;
 
 @RequestMapping("musicGroup")
@@ -57,6 +71,9 @@ public class MusicGroupController extends BaseController {
     private StudentPaymentOrderService studentPaymentOrderService;
     @Autowired
     private PayService payService;
+    
+    @Autowired
+    private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
 
     @ApiOperation("获取学生所在乐团列表")
     @GetMapping(value = "/queryUserMusicGroups")
@@ -119,6 +136,54 @@ public class MusicGroupController extends BaseController {
         return succeed(studentRegistration);
     }
 
+    @ApiOperation(value = "查询续费信息")
+    @GetMapping("/queryRenewInfo")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
+	public HttpResponseResult queryRenewInfo(String musicGroupId) throws Exception {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		Integer userId = sysUser.getId();
+		MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+		if (musicGroup == null) {
+			return failed("乐团不存在");
+		}
+		MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
+
+		if (musicGroupStudentFee == null) {
+			throw new BizException("个人信息不存在");
+		}
+		if (musicGroupStudentFee.getPaymentStatus() != PaymentStatus.NON_PAYMENT) {
+			throw new BizException("已缴费");
+		}
+
+		BigDecimal amount = musicGroupStudentFee.getTemporaryCourseFee();
+		if (amount == null || amount.doubleValue() == 0) {
+			amount = musicGroupStudentFee.getCourseFee();
+		}
+		ModelMap model = new ModelMap();
+		model.put("musicGroup", musicGroup);
+		model.put("amount", amount);
+
+		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("/quitMusicGroup")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
+	public HttpResponseResult quitMusicGroup(String musicGroupId) throws Exception {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		Integer userId = sysUser.getId();
+		return succeed(musicGroupService.quitMusicGroup(musicGroupId, userId));
+	}
+
 
     @ApiOperation(value = "乐团报名支付")
     @PostMapping("/pay")