nickchange
2023-10-23 12916db6e7946a31f4fbc5c48a27e7769683b034
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java
@@ -3,7 +3,9 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.course.entity.CoursePackagePaymentConfig;
import com.dsh.course.entity.TCoursePackage;
@@ -16,6 +18,8 @@
import com.dsh.course.mapper.TCoursePackageDiscountMapper;
import com.dsh.course.mapper.TCoursePackageMapper;
import com.dsh.course.mapper.TCoursePackagePaymentMapper;
import com.dsh.course.model.DiscountList;
import com.dsh.course.model.QueryDiscountList;
import com.dsh.course.model.vo.response.Details;
import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse;
import com.dsh.course.service.TCoursePackageDiscountService;
@@ -291,8 +295,8 @@
    public ExchangeCoursePackageResponse getWeekFreeCourseDetails(Integer coursePackageDiscountId,String lat,String lon) {
        ExchangeCoursePackageResponse packageResponse = new ExchangeCoursePackageResponse();
        TCoursePackageDiscount coursePackageDiscount = this.baseMapper.selectById(coursePackageDiscountId);
        packageResponse.setCoursePackageDiscountId(coursePackageDiscount.getCoursePackageId());
        Integer coursePackageId = coursePackageDiscount.getCoursePackageId();
        packageResponse.setCoursePackageDiscountId(coursePackageId);
        TCoursePackage coursePackage = tcpMapper.selectById(coursePackageId);
@@ -309,7 +313,9 @@
        distanceVo.setStoreId(coursePackage.getStoreId());
        String s = sreClient.calculateDistance(distanceVo);
        packageResponse.setDistance(Double.valueOf(s));
        if (coursePackageDiscount.getType() == 1 || coursePackageDiscount.getType() == 2){
            return packageResponse;
        }
        JSONArray jsonArray = JSON.parseArray(coursePackageDiscount.getContent());
        JSONObject jsonObject = jsonArray.getJSONObject(0);
        CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(coursePackageDiscount.getCoursePackagePaymentConfigId());
@@ -334,37 +340,13 @@
            packageResponse.setDiscountPrice(vipPrice);
            packageResponse.setWanpaiGold(paymentConfig.getPlayPaiCoin());
        }
        List<Integer> weeks = StrUtils.dealStrToList(coursePackage.getClassWeeks());
        if (weeks.size() > 0){
        String[] split = coursePackage.getClassWeeks().split(";");
        if (split.length > 0){
            StringBuilder courWeeks = new StringBuilder("每");
            for (Integer integer : weeks) {
                switch (integer){
                    case 1:
                        courWeeks.append("周一、");
                        break;
                    case 2:
                        courWeeks.append("周二、");
                        break;
                    case 3:
                        courWeeks.append("周三、");
                        break;
                    case 4:
                        courWeeks.append("周四、");
                        break;
                    case 5:
                        courWeeks.append("周五、");
                        break;
                    case 6:
                        courWeeks.append("周六、");
                        break;
                    case 7:
                        courWeeks.append("周末、");
                        break;
                    default:
                        break;
                }
            for (String integer : split) {
                courWeeks.append(integer).append("、");
            }
            if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == ','){
            if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == '、'){
                courWeeks.deleteCharAt(courWeeks.length() - 1);
            }
            packageResponse.setWeekTime(courWeeks.toString());
@@ -373,8 +355,64 @@
        return packageResponse;
    }
    @Override
    public List<DiscountList> queryDiscountListAudit(QueryDiscountList queryDiscountList) {
        Page<DiscountList> discountListPage = new Page<>(queryDiscountList.getOffset(), queryDiscountList.getLimit());
        List<DiscountList> discountLists = this.baseMapper.queryDiscountListAudit(discountListPage, queryDiscountList.getPCode(), queryDiscountList.getCCode(), queryDiscountList.getName(), queryDiscountList.getType(), queryDiscountList.getIds());
        for (DiscountList discountList : discountLists) {
            List<TCoursePackageDiscount> tCoursePackageDiscounts = this.baseMapper.selectList(new LambdaQueryWrapper<TCoursePackageDiscount>().eq(TCoursePackageDiscount::getCoursePackageId, discountList.getCourseId()).ne(TCoursePackageDiscount::getAuditStatus,2).orderByAsc(TCoursePackageDiscount::getType));
            long count = tCoursePackageDiscounts.stream().filter(e -> e.getAuditStatus().equals(2)).count();
            if(count>0){
                discountList.setStatus(2);
            }else {
                discountList.setStatus(1);
            }
            String type="";
            for (int i = 0; i < tCoursePackageDiscounts.size(); i++) {
                if(tCoursePackageDiscounts.get(i).getType()==1){
                    type += "会员折扣、";
                }else if(tCoursePackageDiscounts.get(i).getType()==3){
                    type += "限时折扣、";
                }else if(tCoursePackageDiscounts.get(i).getType()==4){
                    type += "赠送课时、";
                }
            }
            if(type.length()>0){
                type = type.substring(0,type.length()-1);
            }
            discountList.setType(type);
        }
        return discountLists;
    }
    @Override
    public List<DiscountList> queryDiscountList(QueryDiscountList queryDiscountList) {
        Page<DiscountList> discountListPage = new Page<>(queryDiscountList.getOffset(), queryDiscountList.getLimit());
        List<DiscountList> discountLists = this.baseMapper.queryDiscountList(discountListPage, queryDiscountList.getPCode(), queryDiscountList.getCCode(), queryDiscountList.getName(), queryDiscountList.getType(), queryDiscountList.getIds());
        for (DiscountList discountList : discountLists) {
            List<TCoursePackageDiscount> tCoursePackageDiscounts = this.baseMapper.selectList(new LambdaQueryWrapper<TCoursePackageDiscount>().eq(TCoursePackageDiscount::getCoursePackageId, discountList.getCourseId()).eq(TCoursePackageDiscount::getAuditStatus,2).orderByAsc(TCoursePackageDiscount::getType));
            long count = tCoursePackageDiscounts.stream().filter(e -> e.getStatus().equals(2)).count();
            if(count>0){
                discountList.setStatus(2);
            }else {
                discountList.setStatus(1);
            }
            String type="";
            for (int i = 0; i < tCoursePackageDiscounts.size(); i++) {
                if(tCoursePackageDiscounts.get(i).getType()==1){
                    type += "会员折扣、";
                }else if(tCoursePackageDiscounts.get(i).getType()==3){
                    type += "限时折扣、";
                }else if(tCoursePackageDiscounts.get(i).getType()==4){
                    type += "赠送课时、";
                }
            }
            if(type.length()>0){
                type = type.substring(0,type.length()-1);
            }
            discountList.setType(type);
        }
        return discountLists;
    }
    private static boolean isDateWithinRange(Date date, Date startTime, Date endTime) {
        return date.after(startTime) && date.before(endTime);