|
|
@@ -13,6 +13,7 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
+import com.ym.mec.biz.dal.enums.*;
|
|
|
import com.ym.mec.biz.service.*;
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
@@ -27,13 +28,6 @@ import com.ym.mec.biz.dal.dto.PageInfoOrder;
|
|
|
import com.ym.mec.biz.dal.dto.SporadicChargeInfoDto;
|
|
|
import com.ym.mec.biz.dal.dto.StudentPaymentOrderDto;
|
|
|
import com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto;
|
|
|
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.PayStatus;
|
|
|
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
|
|
|
import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
@@ -108,6 +102,10 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
private CloudTeacherOrderService cloudTeacherOrderService;
|
|
|
@Autowired
|
|
|
private SysCouponCodeService sysCouponCodeService;
|
|
|
+ @Autowired
|
|
|
+ private VipGroupActivityDao vipGroupActivityDao;
|
|
|
+ @Autowired
|
|
|
+ private StudentService studentService;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Long, StudentPaymentOrder> getDAO() {
|
|
|
@@ -712,4 +710,97 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
public Integer getOrderIdByMusical(String musicGroupId, Integer studentId) {
|
|
|
return studentPaymentOrderDao.getOrderIdByMusical(musicGroupId,studentId);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void activityGive(Integer vipGroupActivityId, Integer userId, Long paymentOrderId) {
|
|
|
+ if(vipGroupActivityId != null){
|
|
|
+ ActivityUserMapper activityUserMapper = new ActivityUserMapper();
|
|
|
+ VipGroupActivity activity = vipGroupActivityDao.get(vipGroupActivityId);
|
|
|
+ //是否赠送课程
|
|
|
+ if(activity.getGiveCourseNum() > 0){
|
|
|
+ if(activity.getGiveCourseType().equals("VIP")){
|
|
|
+ activityUserMapper.setGiveVipFlag(1);
|
|
|
+ }else {
|
|
|
+ activityUserMapper.setGivePracticeFlag(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //是否赠送会员(会员立即生效)
|
|
|
+ if(activity.getMemberTime() > 0){
|
|
|
+ Date now = new Date();
|
|
|
+ // 查询会员订单信息
|
|
|
+ CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
|
|
|
+ cloudTeacherOrder.setStatus(2);
|
|
|
+ cloudTeacherOrder.setUpdateTime(now);
|
|
|
+ cloudTeacherOrder.setAmount(BigDecimal.ZERO);
|
|
|
+ cloudTeacherOrder.setOrderId(paymentOrderId);
|
|
|
+ cloudTeacherOrder.setRemark("购买vip活动赠送会员");
|
|
|
+ cloudTeacherOrder.setLevel(activity.getGiveMemberRankId());
|
|
|
+ cloudTeacherOrder.setStudentId(userId);
|
|
|
+ cloudTeacherOrder.setType(2);
|
|
|
+ PeriodEnum periodEnum = activity.getGivePeriodEnum();
|
|
|
+ switch (periodEnum){
|
|
|
+ case DAY:
|
|
|
+ cloudTeacherOrder.setType(1);
|
|
|
+ break;
|
|
|
+ case MONTH:
|
|
|
+ case QUARTERLY:
|
|
|
+ case YEAR_HALF:
|
|
|
+ cloudTeacherOrder.setType(2);
|
|
|
+ break;
|
|
|
+ case YEAR:
|
|
|
+ cloudTeacherOrder.setType(3);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw new BizException("不支持的周期类型");
|
|
|
+ }
|
|
|
+ Student student = studentService.get(userId);
|
|
|
+ if (student.getMemberRankSettingId() == null || now.after(student.getMembershipEndTime())) {
|
|
|
+ cloudTeacherOrder.setStartTime(now);
|
|
|
+ switch (periodEnum){
|
|
|
+ case DAY:
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addDays(now, activity.getGiveMemberTime()));
|
|
|
+ break;
|
|
|
+ case MONTH:
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addMonths(now, activity.getGiveMemberTime()));
|
|
|
+ break;
|
|
|
+ case QUARTERLY:
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addMonths(now, activity.getGiveMemberTime() * 3));
|
|
|
+ break;
|
|
|
+ case YEAR_HALF:
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addMonths(now, activity.getGiveMemberTime() * 6));
|
|
|
+ break;
|
|
|
+ case YEAR:
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addYears(now, activity.getGiveMemberTime()));
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw new BizException("不支持的周期类型");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ cloudTeacherOrder.setStartTime(DateUtil.addDays(student.getMembershipEndTime(), 1));
|
|
|
+ switch (periodEnum){
|
|
|
+ case DAY:
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addDays(student.getMembershipEndTime(), activity.getGiveMemberTime()));
|
|
|
+ break;
|
|
|
+ case MONTH:
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addMonths(student.getMembershipEndTime(), activity.getGiveMemberTime()));
|
|
|
+ break;
|
|
|
+ case QUARTERLY:
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addMonths(student.getMembershipEndTime(), activity.getGiveMemberTime() * 3));
|
|
|
+ break;
|
|
|
+ case YEAR_HALF:
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addMonths(student.getMembershipEndTime(), activity.getGiveMemberTime() * 6));
|
|
|
+ break;
|
|
|
+ case YEAR:
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addYears(student.getMembershipEndTime(), activity.getGiveMemberTime()));
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw new BizException("不支持的周期类型");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ cloudTeacherOrderService.update(cloudTeacherOrder);
|
|
|
+ // 添加会员有效时长
|
|
|
+ studentService.updateMemberRank(cloudTeacherOrder, periodEnum);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|