新增会员卡类型,新增单次扣款功能,并且增加了新增单次扣款的费用轨迹

This commit is contained in:
limqhz
2020-06-29 15:03:54 +08:00
parent e6e450bc02
commit 55f492fa42
10 changed files with 126 additions and 38 deletions

View File

@@ -185,15 +185,18 @@ public class MemberCardService extends BaseServiceImpl {
Date endTime;
MemberCard memberCard = memberCardMapper.findCard(memberCardOrder.getMemberId(),memberCardOrder.getVeneuType(),memberCardOrder.getVenueId());
if (memberCard != null ) {
if (!memberCard.getCardType().equals(VipTypeEnum.getByValue(5).getName())){
if (!memberCard.getCardType().equals(VipTypeEnum.FREECARD.name)){
starTime = DateUtilCard.getDay(memberCard.getEndTime());
}
}
if (memberCardOrder.getCardType().equals(VipTypeEnum.YEARCARD.name)){
endTime = DateUtilCard.getYear(starTime);
}else{
endTime = DateUtilCard.getMouth(starTime,memberCardOrder.getCardType());
}
// 脑残逻辑,太蠢
// if (memberCardOrder.getCardType().equals(VipTypeEnum.YEARCARD.name)
// || memberCardOrder.getCardType().equals(VipTypeEnum.YEARCARD_NO1.name)){
// endTime = DateUtilCard.getYear(starTime);
// }else{
// endTime = DateUtilCard.getMouth(starTime,memberCardOrder.getCardType());
// }
endTime = DateUtilCard.CacByCardType(starTime,memberCardOrder.getCardType());
card.setStartTime(starTime);
card.setEndTime(endTime);
long nowDate = new Date().getTime();

View File

@@ -115,4 +115,20 @@ public class DateUtilCard {
int maxDate = a.get(Calendar.DATE);
return maxDate;
}
/**
* 非免费卡计算起始日期逻辑处理
*/
public static Date CacByCardType(Date starTime,String cardType){
Date endTime = null;
// 按照年计算的逻辑
if (cardType.equals(VipTypeEnum.YEARCARD.name) || cardType.equals(VipTypeEnum.ONCECARD)
|| cardType.equals(VipTypeEnum.PUB_YEARCARD.name) ||cardType.equals(VipTypeEnum.PUB_ONCECARD.name)){
endTime = DateUtilCard.getYear(starTime);
} else {
// 除了免费卡和年卡,都是按照月进行计算(月卡、季卡、半年卡)
endTime = DateUtilCard.getMouth(starTime,cardType);
}
return endTime;
}
}

View File

@@ -1,10 +1,12 @@
package com.sv.service.common;
import com.enums.PayTypeEnum;
import com.enums.VipTypeEnum;
import com.sv.entity.MemberCard;
import com.sv.entity.GiftMemberCard;
import com.sv.entity.MemberCardOrder;
import com.sv.exception.oms.OmsException;
import com.sv.service.api.MemberCardService;
import com.sv.service.api.MemberMoneyLogService;
import com.sv.service.api.util.DateUtilCard;
import com.sv.service.oms.GiftMemberCardService;
import org.springframework.stereotype.Service;
@@ -23,6 +25,9 @@ public class MemberCardCommonService {
@Resource
private GiftMemberCardService giftMemberCardService;
@Resource
private MemberMoneyLogService memberMoneyLogService;
/**
* 生成生成用户会员卡
*/
@@ -41,7 +46,7 @@ public class MemberCardCommonService {
Date starTime = DateUtilCard.getTime(new Date());
Date endTime;
MemberCard memberCard = memberCardService.findCard(memberId,venueType,venueId);
if (cardType.equals(VipTypeEnum.getByValue(5).getName())){
if (cardType.equals(VipTypeEnum.FREECARD.name)){
if (star == null && end == null){
return;
}
@@ -51,11 +56,14 @@ public class MemberCardCommonService {
if (memberCard != null ) {
starTime = DateUtilCard.getDay(memberCard.getEndTime());
}
if (cardType.equals(VipTypeEnum.YEARCARD.name)){
endTime = DateUtilCard.getYear(starTime);
}else{
endTime = DateUtilCard.getMouth(starTime,cardType);
}
// 脑残逻辑,太蠢
// if (cardType.equals(VipTypeEnum.YEARCARD.name)
// || cardType.equals(VipTypeEnum.YEARCARD_NO1.name)){
// endTime = DateUtilCard.getYear(starTime);
// }else{
// endTime = DateUtilCard.getMouth(starTime,cardType);
// }
endTime = DateUtilCard.CacByCardType(starTime,cardType);
}
// 1. 判断用户是否有其他的会员卡,并且不是免费卡,有效时间顺延
card.setStartTime(starTime);
@@ -69,6 +77,21 @@ public class MemberCardCommonService {
}
/**
* 生成生成用户会员卡
*/
@Transactional
public void miniMoney(Integer memberId,Integer miniMoney,String feeType){
if (memberId == null || miniMoney == null || feeType == null){
throw new OmsException("扣费失败,非法参数");
}
/**
* Integer memberId, Integer platformId, Integer type, BigDecimal price, Integer payType,
* String cardType , Integer venueId, Integer venueType, Integer lessonId
*/
memberMoneyLogService.create(memberId,1,9,new BigDecimal(miniMoney).negate(), PayTypeEnum.BALANCE.value,null,null,null,null);
}
/**
* 保存赠送记录
*/