刘俊驰 1 年之前
父节点
当前提交
1bd8a29979

+ 4 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/VipCardRecordController.java

@@ -1,12 +1,14 @@
 package com.yonge.cooleshow.admin.controller;
 package com.yonge.cooleshow.admin.controller;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.google.common.collect.Lists;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
 import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
 import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VipCardRecordSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VipCardRecordSearch;
 import com.yonge.cooleshow.biz.dal.enums.EVipRecordStatus;
 import com.yonge.cooleshow.biz.dal.enums.EVipRecordStatus;
+import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.VipCardRecordService;
 import com.yonge.cooleshow.biz.dal.service.VipCardRecordService;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
@@ -31,6 +33,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import java.util.stream.Collectors;
 
 
 @RestController
 @RestController
 @RequestMapping("${app-config.url.admin:}/vipCardRecord")
 @RequestMapping("${app-config.url.admin:}/vipCardRecord")
@@ -81,7 +84,7 @@ public class VipCardRecordController extends BaseController {
         // 判断是否有待支付订单 如果有返回不可下单
         // 判断是否有待支付订单 如果有返回不可下单
         OrderSearch search = new OrderSearch();
         OrderSearch search = new OrderSearch();
         search.setOrderClient(addVipCardRecord.getClientType().name());
         search.setOrderClient(addVipCardRecord.getClientType().name());
-        search.setGoodType(addVipCardRecord.getVipType().name());
+        search.setGoodType(Lists.newArrayList(GoodTypeEnum.VIP, GoodTypeEnum.SVIP).stream().map(GoodTypeEnum::name).collect(Collectors.joining(",")));
         search.setUserId(addVipCardRecord.getUserId());
         search.setUserId(addVipCardRecord.getUserId());
 
 
         UserOrderVo userOrderVo = userOrderDao.getPendingOrder(search);
         UserOrderVo userOrderVo = userOrderDao.getPendingOrder(search);

+ 1 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VipCardRecordService.java

@@ -2,8 +2,6 @@ package com.yonge.cooleshow.biz.dal.service;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.yonge.cooleshow.biz.dal.dto.VipSubmitReq;
-import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.search.VipRecordSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VipRecordSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityReward;
 import com.yonge.cooleshow.biz.dal.entity.ActivityReward;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
@@ -11,15 +9,11 @@ import com.yonge.cooleshow.biz.dal.enums.EVipType;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.VipRecordVo;
 import com.yonge.cooleshow.biz.dal.vo.VipRecordVo;
-import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
-import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
 import com.yonge.cooleshow.biz.dal.vo.VipCardRecordVo;
 import com.yonge.cooleshow.biz.dal.vo.VipCardRecordVo;
 import com.yonge.cooleshow.biz.dal.dto.search.VipCardRecordSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VipCardRecordSearch;
 import com.yonge.cooleshow.biz.dal.entity.VipCardRecord;
 import com.yonge.cooleshow.biz.dal.entity.VipCardRecord;
 import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
-import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.base.page.PageInfo;
-import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -106,7 +100,7 @@ public interface VipCardRecordService extends IService<VipCardRecord> {
      * @param clientEnum
      * @param clientEnum
      * @return
      * @return
      */
      */
-    VipCardRecordWrapper.UserVip UserVipInfo(Long userId, ClientEnum clientEnum);
+    VipCardRecordWrapper.UserVip userVipInfo(Long userId, ClientEnum clientEnum);
 
 
     void add(VipCardRecordWrapper.AddVipCardRecord addVipCardRecord);
     void add(VipCardRecordWrapper.AddVipCardRecord addVipCardRecord);
 
 

+ 18 - 21
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MemberPriceSettingsServiceImpl.java

@@ -3,11 +3,11 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
 import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanRewardDto;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanRewardDto;
-import com.yonge.cooleshow.biz.dal.dto.VipSubmitReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.entity.*;
@@ -24,16 +24,12 @@ import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
-import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.ActivityShareEnum;
 import com.yonge.cooleshow.common.enums.ActivityShareEnum;
-import com.yonge.cooleshow.common.enums.RewardTypeEnum;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.exception.BizException;
-import com.yonge.toolset.base.string.MessageFormatter;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import com.yonge.toolset.utils.date.DateUtil;
 import com.yonge.toolset.utils.date.DateUtil;
-import jodd.time.TimeUtil;
 import org.joda.time.DateTime;
 import org.joda.time.DateTime;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -46,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 
 
 @Service
 @Service
@@ -148,7 +145,7 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
     private void checkVip(MemberPriceSettingsVo detail, Integer vipDays, Long userId, ClientEnum client, Integer num) {
     private void checkVip(MemberPriceSettingsVo detail, Integer vipDays, Long userId, ClientEnum client, Integer num) {
         // 判断会员剩余天数是否改变
         // 判断会员剩余天数是否改变
         if (detail.getVipType() == EVipType.SVIP && vipDays != null && vipDays > 0) {
         if (detail.getVipType() == EVipType.SVIP && vipDays != null && vipDays > 0) {
-            VipCardRecordWrapper.UserVip userVip = vipCardRecordService.UserVipInfo(userId, client);
+            VipCardRecordWrapper.UserVip userVip = vipCardRecordService.userVipInfo(userId, client);
             if (!userVip.getVipEndDays().equals(vipDays)) {
             if (!userVip.getVipEndDays().equals(vipDays)) {
                 throw new BizException(998, "您当前VIP天数更新,请刷新后尝试");
                 throw new BizException(998, "您当前VIP天数更新,请刷新后尝试");
             }
             }
@@ -223,7 +220,7 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 
 
         // 判断转换天数
         // 判断转换天数
 
 
-        VipCardRecordWrapper.UserVip userVip = vipCardRecordService.UserVipInfo(orderDetailVo.getUserId(), orderDetailVo.getOrderClient());
+        VipCardRecordWrapper.UserVip userVip = vipCardRecordService.userVipInfo(orderDetailVo.getUserId(), orderDetailVo.getOrderClient());
         int svipDays = getSvipDays(detail, orderDetailVo.getGoodNum(), userVip);
         int svipDays = getSvipDays(detail, orderDetailVo.getGoodNum(), userVip);
         if (detail.getVipType() == EVipType.SVIP &&userVip.getVipEndDays() !=null && svipDays >=userVip.getVipEndDays()) {
         if (detail.getVipType() == EVipType.SVIP &&userVip.getVipEndDays() !=null && svipDays >=userVip.getVipEndDays()) {
             addVipCardRecord.setVipDays(userVip.getVipEndDays());
             addVipCardRecord.setVipDays(userVip.getVipEndDays());
@@ -357,20 +354,20 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
         return result;
         return result;
     }
     }
 
 
-    @Deprecated
+//    @Deprecated
 //    @Override
 //    @Override
-    public Boolean addVip(VipSubmitReq vipSubmitReq, ClientEnum client, SysUser sysUser) {
-
-        VipCardRecord vipCardRecord = vipCardRecordService.getVipCardRecord(vipSubmitReq.getUserId(), client, null, null, vipSubmitReq.getType().toString(),
-                            null, vipSubmitReq.getTimes(),SourceTypeEnum.PLATFORM, sysUser.getId(), vipSubmitReq.getReason());
-
-        getUserVipInfoVo(vipCardRecord);
-
-        // 发消息
-        sendAddVipMessage(vipSubmitReq.getUserId(),sysUser.getPhone(),client,vipSubmitReq.getTimes(),vipSubmitReq.getType(),vipSubmitReq.getReason());
-
-        return true;
-    }
+//    public Boolean addVip(VipSubmitReq vipSubmitReq, ClientEnum client, SysUser sysUser) {
+//
+//        VipCardRecord vipCardRecord = vipCardRecordService.getVipCardRecord(vipSubmitReq.getUserId(), client, null, null, vipSubmitReq.getType().toString(),
+//                            null, vipSubmitReq.getTimes(),SourceTypeEnum.PLATFORM, sysUser.getId(), vipSubmitReq.getReason());
+//
+//        getUserVipInfoVo(vipCardRecord);
+//
+//        // 发消息
+//        sendAddVipMessage(vipSubmitReq.getUserId(),sysUser.getPhone(),client,vipSubmitReq.getTimes(),vipSubmitReq.getType(),vipSubmitReq.getReason());
+//
+//        return true;
+//    }
 
 
     @Override
     @Override
     public MemberPriceVo getVipShare(MemberPriceSettingsSearch query) {
     public MemberPriceVo getVipShare(MemberPriceSettingsSearch query) {
@@ -465,7 +462,7 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
         // 判断是否有待支付订单 如果有返回不可下单
         // 判断是否有待支付订单 如果有返回不可下单
         OrderSearch search = new OrderSearch();
         OrderSearch search = new OrderSearch();
         search.setOrderClient(orderGoodsInfo.name());
         search.setOrderClient(orderGoodsInfo.name());
-        search.setGoodType(orderType);
+        search.setGoodType(Lists.newArrayList(GoodTypeEnum.VIP, GoodTypeEnum.SVIP).stream().map(GoodTypeEnum::name).collect(Collectors.joining(",")));
         search.setUserId(userId);
         search.setUserId(userId);
 
 
         UserOrderVo userOrderVo = userOrderDao.getPendingOrder(search);
         UserOrderVo userOrderVo = userOrderDao.getPendingOrder(search);

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -136,7 +136,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     @Override
     @Override
     public StudentVo detail(Long userId) {
     public StudentVo detail(Long userId) {
         StudentVo detail = baseMapper.detail(userId);
         StudentVo detail = baseMapper.detail(userId);
-        VipCardRecordWrapper.UserVip userVip = vipCardRecordService.UserVipInfo(userId, ClientEnum.STUDENT);
+        VipCardRecordWrapper.UserVip userVip = vipCardRecordService.userVipInfo(userId, ClientEnum.STUDENT);
         detail.setUserVip(userVip);
         detail.setUserVip(userVip);
         detail.setVipType(EUserVipType.NORMAL);
         detail.setVipType(EUserVipType.NORMAL);
         List<VipCardRecordWrapper.UserVipInfo> userVipInfos = vipCardRecordService.queryUserVipInfo(Collections.singletonList(userId), ClientEnum.STUDENT.getCode());
         List<VipCardRecordWrapper.UserVipInfo> userVipInfos = vipCardRecordService.queryUserVipInfo(Collections.singletonList(userId), ClientEnum.STUDENT.getCode());
@@ -222,7 +222,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         // 设置会员信息
         // 设置会员信息
 
 
 
 
-        studentHomeVo.setUserVip(vipCardRecordService.UserVipInfo(user.getId(), ClientEnum.STUDENT));
+        studentHomeVo.setUserVip(vipCardRecordService.userVipInfo(user.getId(), ClientEnum.STUDENT));
 
 
 
 
         // IM聊天用户ID
         // IM聊天用户ID

+ 2 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

@@ -56,7 +56,6 @@ import com.yonge.cooleshow.biz.dal.vo.TeacherHomeVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 import com.yonge.cooleshow.biz.dal.wordfilter.WordFilter;
 import com.yonge.cooleshow.biz.dal.wordfilter.WordFilter;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
-import com.yonge.cooleshow.biz.dal.wrapper.StudentWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupWrapper;
@@ -231,7 +230,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         }
         }
 
 
         // 会员信息
         // 会员信息
-        detail.setUserVip(vipCardRecordService.UserVipInfo(detail.getUserId(), ClientEnum.TEACHER));
+        detail.setUserVip(vipCardRecordService.userVipInfo(detail.getUserId(), ClientEnum.TEACHER));
         List<VipCardRecordWrapper.UserVipInfo> userVipInfos = vipCardRecordService.queryUserVipInfo(Collections.singletonList(userId), ClientEnum.TEACHER.getCode());
         List<VipCardRecordWrapper.UserVipInfo> userVipInfos = vipCardRecordService.queryUserVipInfo(Collections.singletonList(userId), ClientEnum.TEACHER.getCode());
         Map<Long, VipCardRecordWrapper.UserVipInfo> curVipMap = userVipInfos.stream().collect(Collectors.toMap(VipCardRecordWrapper.UserVipInfo::getUserId, Function.identity()));
         Map<Long, VipCardRecordWrapper.UserVipInfo> curVipMap = userVipInfos.stream().collect(Collectors.toMap(VipCardRecordWrapper.UserVipInfo::getUserId, Function.identity()));
         VipCardRecordWrapper.UserVipInfo vipType = curVipMap.getOrDefault(userId, new VipCardRecordWrapper.UserVipInfo());
         VipCardRecordWrapper.UserVipInfo vipType = curVipMap.getOrDefault(userId, new VipCardRecordWrapper.UserVipInfo());
@@ -395,7 +394,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
 
         // 会员信息
         // 会员信息
 
 
-        teacherHomeVo.setUserVip(vipCardRecordService.UserVipInfo(teacherHomeVo.getUserId(), ClientEnum.TEACHER));
+        teacherHomeVo.setUserVip(vipCardRecordService.userVipInfo(teacherHomeVo.getUserId(), ClientEnum.TEACHER));
 
 
 
 
         if (YesOrNoEnum.YES.equals(teacher.getMusicianFlag())) {
         if (YesOrNoEnum.YES.equals(teacher.getMusicianFlag())) {

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -27,6 +27,7 @@ import com.yonge.cooleshow.biz.dal.vo.res.OrderPayRes;
 import com.yonge.cooleshow.biz.dal.wrapper.PaymentDivMemberRecordWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.PaymentDivMemberRecordWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.coupon.CouponOrderWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.coupon.CouponOrderWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -157,6 +158,10 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     @Autowired
     @Autowired
     private TenantAlbumPurchaseService tenantAlbumPurchaseService;
     private TenantAlbumPurchaseService tenantAlbumPurchaseService;
 
 
+    @Autowired
+    private VipCardRecordService vipCardRecordService;
+
+
     //验证订单是否可以下单,获取订单金额信息
     //验证订单是否可以下单,获取订单金额信息
     private static final Map<GoodTypeEnum, Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>>> orderCreate = new HashMap<>();
     private static final Map<GoodTypeEnum, Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>>> orderCreate = new HashMap<>();
     //插入订单后执行
     //插入订单后执行
@@ -292,6 +297,9 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
                 if (o.getGoodType().equals(GoodTypeEnum.TENANT_ALBUM) && userOrderVo.getOrderClient().equals(ClientEnum.TENANT)) {
                 if (o.getGoodType().equals(GoodTypeEnum.TENANT_ALBUM) && userOrderVo.getOrderClient().equals(ClientEnum.TENANT)) {
                     TenantAlbumPurchase albumPurchase = tenantAlbumPurchaseService.getByOrderNo(userOrderVo.getOrderNo());
                     TenantAlbumPurchase albumPurchase = tenantAlbumPurchaseService.getByOrderNo(userOrderVo.getOrderNo());
                     o.getBizInfo().setRecordId(albumPurchase.getId());
                     o.getBizInfo().setRecordId(albumPurchase.getId());
+                } else if (o.getGoodType().equals(GoodTypeEnum.SVIP)) {
+                    VipCardRecordWrapper.UserVip userVip = vipCardRecordService.userVipInfo(o.getUserId(), o.getOrderClient());
+                    o.setVipEndDays(userVip.getVipEndDays());
                 }
                 }
             });
             });
 
 
@@ -700,7 +708,12 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
 
 
     @Override
     @Override
     public HttpResponseResult<UserOrderVo> getPendingOrder(OrderSearch query) {
     public HttpResponseResult<UserOrderVo> getPendingOrder(OrderSearch query) {
+        if (query.getGoodType().equals(GoodTypeEnum.VIP.name()) || query.getGoodType().equals(GoodTypeEnum.SVIP.name())) {
+            query.setGoodType(Lists.newArrayList(GoodTypeEnum.VIP, GoodTypeEnum.SVIP).stream().map(GoodTypeEnum::name).collect(Collectors.joining(",")));
+        }
         UserOrderVo userOrderVo = baseMapper.getPendingOrder(query);
         UserOrderVo userOrderVo = baseMapper.getPendingOrder(query);
+
+        // SVIP和VIP同时只能存在一个待支付订单
         if (null != userOrderVo) {
         if (null != userOrderVo) {
             userOrderVo.setOrderDetailList(orderDetailService.getOrderDetilListByOrderNo(userOrderVo.getOrderNo()));
             userOrderVo.setOrderDetailList(orderDetailService.getOrderDetilListByOrderNo(userOrderVo.getOrderNo()));
 
 

+ 24 - 28
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VipCardRecordServiceImpl.java

@@ -97,23 +97,20 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
             return null;
             return null;
         }
         }
         // 按时间区分 个数
         // 按时间区分 个数
-        Integer timeNum = 0;
+        Integer timeNum = orderDetailVo.getGoodNum();
         String periodType  = null;
         String periodType  = null;
 
 
         if (PeriodEnum.DAY.equals(detail.getPeriod())) {
         if (PeriodEnum.DAY.equals(detail.getPeriod())) {
-            timeNum = 1;
             periodType = PeriodEnum.DAY.getCode();
             periodType = PeriodEnum.DAY.getCode();
         } else if (PeriodEnum.MONTH.equals(detail.getPeriod())) {
         } else if (PeriodEnum.MONTH.equals(detail.getPeriod())) {
-            timeNum = 1;
             periodType = PeriodEnum.MONTH.getCode();
             periodType = PeriodEnum.MONTH.getCode();
         } else if (PeriodEnum.QUARTERLY.equals(detail.getPeriod())) {
         } else if (PeriodEnum.QUARTERLY.equals(detail.getPeriod())) {
-            timeNum = 3;
+            timeNum = timeNum*3;
             periodType = PeriodEnum.MONTH.getCode();
             periodType = PeriodEnum.MONTH.getCode();
         } else if (PeriodEnum.YEAR_HALF.equals(detail.getPeriod())) {
         } else if (PeriodEnum.YEAR_HALF.equals(detail.getPeriod())) {
-            timeNum = 6;
+            timeNum = timeNum*6;
             periodType = PeriodEnum.MONTH.getCode();
             periodType = PeriodEnum.MONTH.getCode();
         } else if (PeriodEnum.YEAR.equals(detail.getPeriod())) {
         } else if (PeriodEnum.YEAR.equals(detail.getPeriod())) {
-            timeNum = 1;
             periodType = PeriodEnum.YEAR.getCode();
             periodType = PeriodEnum.YEAR.getCode();
         }
         }
 
 
@@ -131,23 +128,6 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
     @Override
     @Override
     public VipCardRecord getVipCardRecord(Long userId, ClientEnum client, String orderNo, String subOrderNo, String periodType,
     public VipCardRecord getVipCardRecord(Long userId, ClientEnum client, String orderNo, String subOrderNo, String periodType,
                                           Long memberPriceSettingsId, Integer timeNum, SourceTypeEnum sourceType, Long createBy, String reason) {
                                           Long memberPriceSettingsId, Integer timeNum, SourceTypeEnum sourceType, Long createBy, String reason) {
-        //修改用户会员时长
-        Date membershipEndTime = null;
-        if (client.equals(ClientEnum.STUDENT)) {
-            StudentVo studentVo = studentService.detail(userId);
-            if (null == studentVo) {
-                return null;
-            }
-            membershipEndTime = studentVo.getMembershipEndTime();
-        } else if (client.equals(ClientEnum.TEACHER)){
-            TeacherVo teacherVo = teacherService.detail(userId);
-            if (null == teacherVo) {
-                return null;
-            }
-            membershipEndTime = teacherVo.getMembershipEndTime();
-        } else {
-            return null;
-        }
 
 
         VipCardRecord vipCardRecord = new VipCardRecord();
         VipCardRecord vipCardRecord = new VipCardRecord();
         vipCardRecord.setUserId(userId);
         vipCardRecord.setUserId(userId);
@@ -162,11 +142,27 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
         vipCardRecord.setCreateBy(createBy);
         vipCardRecord.setCreateBy(createBy);
         vipCardRecord.setReason(reason);
         vipCardRecord.setReason(reason);
 
 
-        if (null == membershipEndTime || membershipEndTime.before(new Date())) {
-            //没有会员、会员已过期 会员卡生效时间为当前时间
+        MemberPriceSettings memberPriceSettings = memberPriceSettingsDao.selectById(memberPriceSettingsId);
+        if (memberPriceSettings == null) {
+            return null;
+        }
+
+        VipCardRecordWrapper.UserVip userVip = userVipInfo(userId, client);
+
+        if (userVip.getVipType() == EVipType.NOT_VIP) {
             vipCardRecord.setStartTime(new Date());
             vipCardRecord.setStartTime(new Date());
-        } else {
-            vipCardRecord.setStartTime(membershipEndTime);
+        } else if (userVip.getVipType() == EVipType.VIP && memberPriceSettings.getVipType() ==EVipType.VIP){
+            vipCardRecord.setStartTime(userVip.getVipEndDate());
+        } else if  (userVip.getVipType() == EVipType.VIP && memberPriceSettings.getVipType() ==EVipType.SVIP){
+            vipCardRecord.setStartTime(new Date());
+        }else if  (userVip.getVipType() == EVipType.SVIP && memberPriceSettings.getVipType() ==EVipType.VIP){
+            if (userVip.getVipEndDate() !=null) {
+                vipCardRecord.setStartTime(userVip.getVipEndDate());
+            } else {
+                vipCardRecord.setStartTime(userVip.getSvipEndDate());
+            }
+        }else if  (userVip.getVipType() == EVipType.SVIP && memberPriceSettings.getVipType() ==EVipType.SVIP){
+            vipCardRecord.setStartTime(userVip.getSvipEndDate());
         }
         }
         Calendar cal = Calendar.getInstance();
         Calendar cal = Calendar.getInstance();
         cal.setTime(vipCardRecord.getStartTime());
         cal.setTime(vipCardRecord.getStartTime());
@@ -273,7 +269,7 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public VipCardRecordWrapper.UserVip UserVipInfo(Long userId, ClientEnum clientEnum) {
+    public VipCardRecordWrapper.UserVip userVipInfo(Long userId, ClientEnum clientEnum) {
         // 获取生效中的会员记录
         // 获取生效中的会员记录
         VipCardRecordWrapper.UserVip userVip = new VipCardRecordWrapper.UserVip();
         VipCardRecordWrapper.UserVip userVip = new VipCardRecordWrapper.UserVip();
         List<VipCardRecord> vipCardRecords = this.getEfficientVipRecord(Lists.newArrayList(userId),clientEnum);
         List<VipCardRecord> vipCardRecords = this.getEfficientVipRecord(Lists.newArrayList(userId),clientEnum);

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderDetailVo.java

@@ -67,6 +67,10 @@ public class UserOrderDetailVo extends UserOrderDetail {
 
 
     @ApiModelProperty("支付版本 ")
     @ApiModelProperty("支付版本 ")
     private EPaymentVersion paymentVersion;
     private EPaymentVersion paymentVersion;
+
+
+    @ApiModelProperty(value = "vip剩余天数")
+    private Integer vipEndDays =0;
     @Data
     @Data
     public  static class BizInfo implements Serializable {
     public  static class BizInfo implements Serializable {
 
 

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderVo.java

@@ -50,4 +50,5 @@ public class UserOrderVo extends UserOrder {
     @ApiModelProperty("支付配置")
     @ApiModelProperty("支付配置")
     private  UserPaymentOrderWrapper.PaymentConfig paymentConfig;
     private  UserPaymentOrderWrapper.PaymentConfig paymentConfig;
 
 
+
 }
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderMapper.xml

@@ -241,7 +241,7 @@
         </if>
         </if>
         and exists (
         and exists (
             select 1 from user_order_detail d where t.order_no_ = d.order_no_
             select 1 from user_order_detail d where t.order_no_ = d.order_no_
-            and d.good_type_ = #{param.goodType}
+            and find_in_set(d.good_type_ ,#{param.goodType})
             <choose>
             <choose>
                 <when test="param.goodType != null and param.goodType != 'PRACTICE'">
                 <when test="param.goodType != null and param.goodType != 'PRACTICE'">
                     <if test="param.bizId != null">
                     <if test="param.bizId != null">