diff --git a/src/main/java/com/peanut/modules/book/service/impl/ShopProductServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/ShopProductServiceImpl.java index 83ec2211..838236e1 100644 --- a/src/main/java/com/peanut/modules/book/service/impl/ShopProductServiceImpl.java +++ b/src/main/java/com/peanut/modules/book/service/impl/ShopProductServiceImpl.java @@ -55,7 +55,7 @@ public class ShopProductServiceImpl extends ServiceImpl> resList = new ArrayList(); List l4 = userVipService.list(new LambdaQueryWrapper().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,4).orderByDesc(UserVip::getEndTime)); + List l9 = userVipService.list(new LambdaQueryWrapper().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,9).orderByDesc(UserVip::getEndTime)); List l5 = userVipService.list(new LambdaQueryWrapper().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,5).orderByDesc(UserVip::getEndTime)); List l6 = userVipService.list(new LambdaQueryWrapper().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,6).orderByDesc(UserVip::getEndTime)); - if (l4.size()>0&&l5.size()>0&&l6.size()>0){ + if (l4.size()>0&&l9.size()>0&&l5.size()>0&&l6.size()>0){ Date t4 = l4.get(0).getEndTime(); + Date t9 = l9.get(0).getEndTime(); Date t5 = l5.get(0).getEndTime(); Date t6 = l6.get(0).getEndTime(); - if (t4.getTime()==t5.getTime()&&t5.getTime()==t6.getTime()){ + if (t4.getTime()==t9.getTime()&&t9.getTime()==t5.getTime()&&t5.getTime()==t6.getTime()){ Map map = new HashMap(); map.put("type",1); map.put("endTime",t4); @@ -82,6 +82,10 @@ public class UserVipController { map4.put("type",4); map4.put("endTime",t4); tempList.add(map4); + Map map9 = new HashMap(); + map9.put("type",9); + map9.put("endTime",t9); + tempList.add(map9); Map map5 = new HashMap(); map5.put("type",5); map5.put("endTime",t5); @@ -112,6 +116,12 @@ public class UserVipController { map.put("endTime",l5.get(0).getEndTime()); resList.add(map); } + if (l9.size()>0){ + Map map = new HashMap(); + map.put("type",9); + map.put("endTime",l9.get(0).getEndTime()); + resList.add(map); + } if (l6.size()>0){ Map map = new HashMap(); map.put("type",6); @@ -182,7 +192,10 @@ public class UserVipController { ll.add(Arrays.asList(2)); }else { ll.add(Arrays.asList(1)); - ll.add(Arrays.asList(4,5,6)); + ll.add(Arrays.asList(4)); + ll.add(Arrays.asList(9)); + ll.add(Arrays.asList(5)); + ll.add(Arrays.asList(6)); ll.add(Arrays.asList(2)); ll.add(Arrays.asList(7,8)); } @@ -208,26 +221,24 @@ public class UserVipController { boolean flag = false; if ("1".equals(map.get("type").toString())){ List uv4 = userVipService.list(new LambdaQueryWrapper().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,4).orderByDesc(UserVip::getEndTime)); + List uv9 = userVipService.list(new LambdaQueryWrapper().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,9).orderByDesc(UserVip::getEndTime)); List uv5 = userVipService.list(new LambdaQueryWrapper().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,5).orderByDesc(UserVip::getEndTime)); List uv6 = userVipService.list(new LambdaQueryWrapper().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,6).orderByDesc(UserVip::getEndTime)); - if (uv4.size() > 0 && uv5.size() > 0 && uv6.size() > 0){//办理过 - if (uv4.get(0).getState()==0&&uv5.get(0).getState()==0&&uv6.get(0).getState()==0){ + if (uv4.size() > 0 && uv9.size() > 0 && uv5.size() > 0 && uv6.size() > 0){//办理过 + if (uv4.get(0).getState()==0&&uv9.get(0).getState()==0&&uv5.get(0).getState()==0&&uv6.get(0).getState()==0){ long l4 = uv4.get(0).getEndTime().getTime(); + long l9 = uv9.get(0).getEndTime().getTime(); long l5 = uv5.get(0).getEndTime().getTime(); long l6 = uv6.get(0).getEndTime().getTime(); - if (l4 tempList = new ArrayList(); + tempList.add(l4); + tempList.add(l9); + tempList.add(l5); + tempList.add(l6); + tempList = tempList.stream().sorted((long1,long2)->{ + return Long.compare(long1,long2); + }).collect(Collectors.toList()); + map.put("tip",(tempList.get(0)-new Date().getTime())/60/60/24/1000); map.put("state",0); }else { map.put("state",1); @@ -286,6 +297,45 @@ public class UserVipController { return R.ok().put("res", resList); } + //vip配置列表 + @RequestMapping("/vipBuyConfigList") + public R vipBuyConfigList() { + List ll = new ArrayList<>(); + ll.add(Arrays.asList(1)); + ll.add(Arrays.asList(4)); + ll.add(Arrays.asList(9)); + ll.add(Arrays.asList(5)); + ll.add(Arrays.asList(6)); + ll.add(Arrays.asList(2)); + ll.add(Arrays.asList(7,8)); + List> resList = new ArrayList<>(); + for (List l : ll) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + wrapper.select(VipBuyConfigEntity::getType,VipBuyConfigEntity::getTitle); + wrapper.and(r->r.eq(VipBuyConfigEntity::getDateType,0).or(f->f.eq(VipBuyConfigEntity::getDateType,1).lt(VipBuyConfigEntity::getStartTime,new Date()).gt(VipBuyConfigEntity::getEndTime,new Date()))); + wrapper.in(VipBuyConfigEntity::getType,l); + wrapper.groupBy(VipBuyConfigEntity::getType); + List> list = vipBuyConfigService.listMaps(wrapper); + for (Map map:list){ + Map originalPriceAndCourseCount = getOriginalPriceAndCourseCount(map.get("type").toString()); + map.put("originalPrice",originalPriceAndCourseCount.get("originalPrice"));//模块下课程一年原价 + map.put("courseCount",originalPriceAndCourseCount.get("courseCount"));//模块下课程数量 + map.put("vcbList",null);//vip商品列表 + map.put("yanqiList",null);//延期商品列表 + List yanqiList = vipBuyConfigService.list(new LambdaQueryWrapper() + .and(r->r.eq(VipBuyConfigEntity::getDateType,0).or(f->f.eq(VipBuyConfigEntity::getDateType,1).lt(VipBuyConfigEntity::getStartTime,new Date()).gt(VipBuyConfigEntity::getEndTime,new Date()))) + .eq(VipBuyConfigEntity::getType,map.get("type")+"1")); + map.put("yanqiList",yanqiList); + List vcbList = vipBuyConfigService.list(new LambdaQueryWrapper() + .and(r->r.eq(VipBuyConfigEntity::getDateType,0).or(f->f.eq(VipBuyConfigEntity::getDateType,1).lt(VipBuyConfigEntity::getStartTime,new Date()).gt(VipBuyConfigEntity::getEndTime,new Date()))) + .eq(VipBuyConfigEntity::getType,map.get("type"))); + map.put("vcbList",vcbList); + } + resList.addAll(list); + } + return R.ok().put("res", resList); + } + //是否是这门课的vip @RequestMapping("/ownCourseCatalogueByVip") public R ownCourseCatalogueByVip(@RequestBody Map params) { @@ -411,10 +461,11 @@ public class UserVipController { Map map = new HashMap(); map.put("courseCount",0); map.put("originalPrice",0); - if ("4".equals(type)||"5".equals(type)||"6".equals(type)){ + if ("4".equals(type)||"9".equals(type)||"5".equals(type)||"6".equals(type)){ List list = new ArrayList<>(); if ("4".equals(type)){ userVipService.bottomLabel(1,list); + }else if ("9".equals(type)){ userVipService.bottomLabel(74,list); }else if ("5".equals(type)){ userVipService.bottomLabel(2,list); diff --git a/src/main/java/com/peanut/modules/common/service/UserVipService.java b/src/main/java/com/peanut/modules/common/service/UserVipService.java index 9069bf46..b5a55913 100644 --- a/src/main/java/com/peanut/modules/common/service/UserVipService.java +++ b/src/main/java/com/peanut/modules/common/service/UserVipService.java @@ -16,7 +16,7 @@ public interface UserVipService extends IService { boolean istumorVip(); boolean isSociologyVip(); boolean isPsycheVip(); - boolean is456SVip(); + boolean is4569SVip(); boolean is78SVip(); //是否是这门课的vip diff --git a/src/main/java/com/peanut/modules/common/service/impl/UserVipServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/UserVipServiceImpl.java index 20eb7562..a5c018d2 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/UserVipServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/UserVipServiceImpl.java @@ -47,7 +47,7 @@ public class UserVipServiceImpl extends ServiceImpl impleme List userVipList = userVipDao.selectList(new LambdaQueryWrapper() .eq(UserVip::getUserId, ShiroUtils.getUId()) .eq(UserVip::getState,0) - .in(UserVip::getType,4,5,6)); + .in(UserVip::getType,4,9,5,6)); if (userVipList.size() > 0) { return false; }else { @@ -81,8 +81,8 @@ public class UserVipServiceImpl extends ServiceImpl impleme } @Override - public boolean is456SVip() { - if (isVip(4)&&isVip(5)&&isVip(6)){ + public boolean is4569SVip() { + if (isVip(4)&&isVip(9)&&isVip(5)&&isVip(6)){ return true; } return false; @@ -113,13 +113,14 @@ public class UserVipServiceImpl extends ServiceImpl impleme .eq(UserVip::getUserId, u==null?ShiroUtils.getUId():u.getId()) .eq(UserVip::getState,0)); for (UserVip userVip : userVipList) { - if (userVip.getType()==4||userVip.getType()==5||userVip.getType()==6) { + if (userVip.getType()==4||userVip.getType()==9||userVip.getType()==5||userVip.getType()==6) { List list = courseToMedicalDao.selectList(new LambdaQueryWrapper() .eq(CourseToMedicine::getCourseId,courseId)); for (CourseToMedicine ctm:list) { CourseMedicine cm = topLabel(ctm.getMedicalId()); if (cm != null){ - if (((cm.getId()==1||cm.getId()==74)&&userVip.getType()==4)||//中医学、中西汇通 + if ((cm.getId()==1&&userVip.getType()==4)||//中医学 + (cm.getId()==74&&userVip.getType()==9)||//中西汇通 (cm.getId()==2&&userVip.getType()==5)||//针灸学 (cm.getId()==5&&userVip.getType()==6)){//肿瘤学 return userVip; @@ -166,8 +167,10 @@ public class UserVipServiceImpl extends ServiceImpl impleme .eq(CourseToMedicine::getCourseId,courseId)); for (CourseToMedicine ctm:mlist) { CourseMedicine cm = topLabel(ctm.getMedicalId()); - if (cm.getId()==1||cm.getId()==74){//中医学、中西汇通 + if (cm.getId()==1){//中医学 set.add(4); + }else if (cm.getId() == 74) {//中西汇通 + set.add(9); }else if (cm.getId() == 2) {//针灸学 set.add(5); }else if (cm.getId() == 5) {//肿瘤学 @@ -225,8 +228,11 @@ public class UserVipServiceImpl extends ServiceImpl impleme VipBuyConfigEntity vipBuyConfigEntity = vipBuyConfigDao.selectById(buyOrder.getVipBuyConfigId()); if(vipBuyConfigEntity.getType()==1){//医学超级 List userVipList = userVipDao.selectList(new LambdaQueryWrapper() - .eq(UserVip::getUserId,buyOrder.getUserId()).eq(UserVip::getState,0).in(UserVip::getType,4,5,6)); - for (int i=4;i<=6;i++){ + .eq(UserVip::getUserId,buyOrder.getUserId()).eq(UserVip::getState,0).in(UserVip::getType,4,9,5,6)); + for (int i=4;i<=7;i++){ + if (i==7){ + i=9; + } UserVip userVip = new UserVip(); userVip.setUserId(buyOrder.getUserId()); userVip.setType(i); @@ -247,7 +253,10 @@ public class UserVipServiceImpl extends ServiceImpl impleme } } }else if(vipBuyConfigEntity.getType()==11){//延期医学超级 - for (int i=4;i<7;i++){ + for (int i=4;i<=7;i++){ + if (i==7){ + i=9; + } List userVipList = userVipDao.selectList(new LambdaQueryWrapper() .eq(UserVip::getUserId,buyOrder.getUserId()).eq(UserVip::getType,i).orderByDesc(UserVip::getEndTime)); UserVip userVip = userVipList.get(0); @@ -303,7 +312,7 @@ public class UserVipServiceImpl extends ServiceImpl impleme userVipDao.insert(uv); } } - }else if (vipBuyConfigEntity.getType()==4||vipBuyConfigEntity.getType()==5||vipBuyConfigEntity.getType()==6|| + }else if (vipBuyConfigEntity.getType()==4||vipBuyConfigEntity.getType()==9||vipBuyConfigEntity.getType()==5||vipBuyConfigEntity.getType()==6|| vipBuyConfigEntity.getType()==7||vipBuyConfigEntity.getType()==8){ UserVip userVip = new UserVip(); userVip.setUserId(buyOrder.getUserId()); @@ -311,7 +320,7 @@ public class UserVipServiceImpl extends ServiceImpl impleme userVip.setStartTime(new Date()); userVip.setEndTime(DateUtils.addYears(userVip.getStartTime(),vipBuyConfigEntity.getYear())); userVipDao.insert(userVip); - }else if (vipBuyConfigEntity.getType()==41||vipBuyConfigEntity.getType()==51||vipBuyConfigEntity.getType()==61|| + }else if (vipBuyConfigEntity.getType()==41||vipBuyConfigEntity.getType()==91||vipBuyConfigEntity.getType()==51||vipBuyConfigEntity.getType()==61|| vipBuyConfigEntity.getType()==71||vipBuyConfigEntity.getType()==81){ List userVipList = userVipDao.selectList(new LambdaQueryWrapper() .eq(UserVip::getUserId,buyOrder.getUserId())