nickchange
2023-10-10 ee9cb0da4a43bcf523ebb157678f64a2895fba1a
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -12,6 +12,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.course.entity.*;
import com.dsh.course.entity.TAppUser;
import com.dsh.course.entity.dto.StudentQeryDto;
import com.dsh.course.feignclient.account.AppUserClient;
import com.dsh.course.feignclient.account.CoachClient;
import com.dsh.course.feignclient.account.StudentClient;
@@ -49,6 +50,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -153,6 +155,113 @@
        return cpConfigMapper.listAllRegister(query,STime,ETime,query.getAmount());
    }
    @Override
    public List<Map<String, Object>> getStudentTotal(StudentQeryDto studentQeryDto) {
        List<Map<String, Object>> studentTotal = this.baseMapper.getStudentTotal(studentQeryDto);
        for (Map<String, Object> student : studentTotal) {
            BigDecimal cashPayment = (BigDecimal) student.get("cashPayment");
            BigDecimal totalClassHours = (BigDecimal) student.get("totalClassHours");
            BigDecimal hasHours = (BigDecimal) student.get("hasHours");
            BigDecimal hasPayment = cashPayment.divide(totalClassHours, 2, RoundingMode.HALF_UP)
                    .multiply(hasHours).setScale(2, RoundingMode.HALF_UP);
            student.put("hasPayment", hasPayment);
            Integer appUserId = (Integer) student.get("appUserId");
            AppUser appUser = appuClient.queryAppUser(appUserId);
            student.put("province", appUser.getProvince());
            student.put("provinceCode", appUser.getProvinceCode());
            student.put("city", appUser.getCity());
            student.put("cityCode", appUser.getCityCode());
            Student studentId = studentClient.queryStudentById((Integer) student.get("studentId"));
            student.put("studentName", studentId.getName());
        }
        if (studentQeryDto.getCityCode()!=null&&studentQeryDto.getCityCode()!="") {
            String value = studentQeryDto.getCityCode();
            boolean allZeros = value.substring(value.length() - 4).endsWith("0000");
            System.out.println(allZeros); // Output: true
            if (allZeros){
                Iterator<Map<String, Object>> iterator = studentTotal.iterator();
                while (iterator.hasNext()) {
                    Map<String, Object> student = iterator.next();
                    String cityCode = (String) student.get("provinceCode");
                    if (!cityCode.equals(studentQeryDto.getCityCode())) {
                        iterator.remove(); // Remove the element from the list
                    }
                }
            }else{
            Iterator<Map<String, Object>> iterator = studentTotal.iterator();
            while (iterator.hasNext()) {
                Map<String, Object> student = iterator.next();
                String cityCode = (String) student.get("cityCode");
                if (!cityCode.equals(studentQeryDto.getCityCode())) {
                    iterator.remove(); // Remove the element from the list
                }
            }}
        }
        if (studentQeryDto.getStudentName()!=null&&studentQeryDto.getStudentName()!=""){
            List<Map<String, Object>> totallike = new ArrayList<>();
            for (Map<String, Object> student : studentTotal) {
                String studentName = (String) student.get("studentName");
                if (studentName.contains(studentQeryDto.getStudentName())){
                    totallike.add(student);
                }
            }
            return totallike;
        }
        return studentTotal;
    }
    @Override
    public List<Map<String, Object>> bypac(PacQueryDto pacQueryDto) {
        if (pacQueryDto.getCityCode()!=null&&pacQueryDto.getCityCode()!=""){
            String value = pacQueryDto.getCityCode();
            boolean allZeros = value.substring(value.length() - 4).endsWith("0000");
            System.out.println(allZeros); // Output: true
            if (allZeros){
                pacQueryDto.setProvinceCode(pacQueryDto.getCityCode());
                pacQueryDto.setCityCode(null);
            }
        }
        List<Map<String, Object>> maps = this.baseMapper.pacQueryDto(pacQueryDto);
        if (pacQueryDto.getName()!=null&&pacQueryDto.getName()!=""){
            List<Map<String, Object>> totallike = new ArrayList<>();
            for (Map<String, Object> student : maps) {
                String studentName = (String) student.get("name");
                if (studentName.contains(pacQueryDto.getName())){
                    totallike.add(student);
                }
            }
            return totallike;
        }
        return maps;
    }
    @Override
    public List<TCoursePackagePayment> listOne(List<Integer> ids) {
        return this.baseMapper.listOne(ids);
    }
    @Override
    public Integer listStoreId(String code) {
        return this.baseMapper.queryStore(code);
    }
    /**
     * 获取课包购买人数
     * @param coursePackageId