新增中西汇通vip
This commit is contained in:
@@ -55,7 +55,7 @@ public class ShopProductServiceImpl extends ServiceImpl<ShopProductDao, ShopProd
|
||||
public BigDecimal getVipDiscountAmount(ShopProduct shopProduct) {
|
||||
BigDecimal p = new BigDecimal(0);
|
||||
if (shopProduct.getIsVipPrice()==1){
|
||||
if (userVipService.is456SVip()||userVipService.is78SVip()){
|
||||
if (userVipService.is4569SVip()||userVipService.is78SVip()){
|
||||
p = shopProduct.getPrice().multiply(new BigDecimal(0.8));
|
||||
}else if (!userVipService.noVip()){
|
||||
p = shopProduct.getPrice().multiply(new BigDecimal(0.9));
|
||||
@@ -74,7 +74,7 @@ public class ShopProductServiceImpl extends ServiceImpl<ShopProductDao, ShopProd
|
||||
@Override
|
||||
public BigDecimal getVipPrice(ShopProduct shopProduct) {
|
||||
BigDecimal b = new BigDecimal(0);
|
||||
if (userVipService.is456SVip()||userVipService.is78SVip()){
|
||||
if (userVipService.is4569SVip()||userVipService.is78SVip()){
|
||||
b = shopProduct.getPrice().multiply(new BigDecimal(0.8)).setScale(2,BigDecimal.ROUND_HALF_UP);
|
||||
}else if (!userVipService.noVip()){
|
||||
b = shopProduct.getPrice().multiply(new BigDecimal(0.9)).setScale(2,BigDecimal.ROUND_HALF_UP);
|
||||
|
||||
@@ -55,8 +55,6 @@ public class UserVipController {
|
||||
@Autowired
|
||||
private JfTransactionDetailsService jfTransactionDetailsService;
|
||||
@Autowired
|
||||
private CourseService courseService;
|
||||
@Autowired
|
||||
private CourseCatalogueService courseCatalogueService;
|
||||
|
||||
|
||||
@@ -65,13 +63,15 @@ public class UserVipController {
|
||||
public R getUserVipType() {
|
||||
List<Map<String,Object>> resList = new ArrayList();
|
||||
List<UserVip> l4 = userVipService.list(new LambdaQueryWrapper<UserVip>().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,4).orderByDesc(UserVip::getEndTime));
|
||||
List<UserVip> l9 = userVipService.list(new LambdaQueryWrapper<UserVip>().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,9).orderByDesc(UserVip::getEndTime));
|
||||
List<UserVip> l5 = userVipService.list(new LambdaQueryWrapper<UserVip>().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,5).orderByDesc(UserVip::getEndTime));
|
||||
List<UserVip> l6 = userVipService.list(new LambdaQueryWrapper<UserVip>().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<UserVip> uv4 = userVipService.list(new LambdaQueryWrapper<UserVip>().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,4).orderByDesc(UserVip::getEndTime));
|
||||
List<UserVip> uv9 = userVipService.list(new LambdaQueryWrapper<UserVip>().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,9).orderByDesc(UserVip::getEndTime));
|
||||
List<UserVip> uv5 = userVipService.list(new LambdaQueryWrapper<UserVip>().eq(UserVip::getUserId,ShiroUtils.getUId()).eq(UserVip::getType,5).orderByDesc(UserVip::getEndTime));
|
||||
List<UserVip> uv6 = userVipService.list(new LambdaQueryWrapper<UserVip>().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<l5){
|
||||
if (l4<l6){
|
||||
map.put("tip",(l4-new Date().getTime())/60/60/24/1000);
|
||||
}else {
|
||||
map.put("tip",(l6-new Date().getTime())/60/60/24/1000);
|
||||
}
|
||||
}else {
|
||||
if (l5<l6){
|
||||
map.put("tip",(l5-new Date().getTime())/60/60/24/1000);
|
||||
}else {
|
||||
map.put("tip",(l6-new Date().getTime())/60/60/24/1000);
|
||||
}
|
||||
}
|
||||
List<Long> 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<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<Map<String,Object>> resList = new ArrayList<>();
|
||||
for (List l : ll) {
|
||||
LambdaQueryWrapper<VipBuyConfigEntity> 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<Map<String,Object>> list = vipBuyConfigService.listMaps(wrapper);
|
||||
for (Map<String,Object> 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<VipBuyConfigEntity> yanqiList = vipBuyConfigService.list(new LambdaQueryWrapper<VipBuyConfigEntity>()
|
||||
.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<VipBuyConfigEntity> vcbList = vipBuyConfigService.list(new LambdaQueryWrapper<VipBuyConfigEntity>()
|
||||
.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<String,Object> 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);
|
||||
|
||||
@@ -16,7 +16,7 @@ public interface UserVipService extends IService<UserVip> {
|
||||
boolean istumorVip();
|
||||
boolean isSociologyVip();
|
||||
boolean isPsycheVip();
|
||||
boolean is456SVip();
|
||||
boolean is4569SVip();
|
||||
boolean is78SVip();
|
||||
|
||||
//是否是这门课的vip
|
||||
|
||||
@@ -47,7 +47,7 @@ public class UserVipServiceImpl extends ServiceImpl<UserVipDao, UserVip> impleme
|
||||
List<UserVip> userVipList = userVipDao.selectList(new LambdaQueryWrapper<UserVip>()
|
||||
.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<UserVipDao, UserVip> 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<UserVipDao, UserVip> 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<CourseToMedicine> list = courseToMedicalDao.selectList(new LambdaQueryWrapper<CourseToMedicine>()
|
||||
.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<UserVipDao, UserVip> 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<UserVipDao, UserVip> impleme
|
||||
VipBuyConfigEntity vipBuyConfigEntity = vipBuyConfigDao.selectById(buyOrder.getVipBuyConfigId());
|
||||
if(vipBuyConfigEntity.getType()==1){//医学超级
|
||||
List<UserVip> userVipList = userVipDao.selectList(new LambdaQueryWrapper<UserVip>()
|
||||
.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<UserVipDao, UserVip> 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<UserVip> userVipList = userVipDao.selectList(new LambdaQueryWrapper<UserVip>()
|
||||
.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<UserVipDao, UserVip> 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<UserVipDao, UserVip> 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<UserVip> userVipList = userVipDao.selectList(new LambdaQueryWrapper<UserVip>()
|
||||
.eq(UserVip::getUserId,buyOrder.getUserId())
|
||||
|
||||
Reference in New Issue
Block a user