1
This commit is contained in:
parent
f51de77f15
commit
f881f603f0
@ -11,6 +11,9 @@ import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO;
|
||||
import cn.iocoder.yudao.module.base.vo.IndexDataVO;
|
||||
import cn.iocoder.yudao.module.base.vo.StudentInfoVO;
|
||||
import cn.iocoder.yudao.module.course.entity.Process;
|
||||
import cn.iocoder.yudao.module.course.entity.SchoolCommission;
|
||||
import cn.iocoder.yudao.module.course.mapper.SchoolCommissionMapper;
|
||||
import cn.iocoder.yudao.module.course.mapper.SchoolCourseOrderMapper;
|
||||
import cn.iocoder.yudao.module.course.service.ProcessService;
|
||||
import cn.iocoder.yudao.module.exam.mapper.ExamBatchItemMapper;
|
||||
import cn.iocoder.yudao.module.exam.service.ExamBatchItemService;
|
||||
@ -46,6 +49,10 @@ public class DataViewServiceImpl implements DataViewService {
|
||||
private ExamBatchItemService examBatchItemService;
|
||||
@Autowired
|
||||
private ExamBatchItemMapper examBatchItemMapper;
|
||||
@Autowired
|
||||
private SchoolCourseOrderMapper courseOrderMapper;
|
||||
@Autowired
|
||||
private SchoolCommissionMapper commissionMapper;
|
||||
|
||||
/**
|
||||
* 查询学员详情
|
||||
@ -156,10 +163,20 @@ public class DataViewServiceImpl implements DataViewService {
|
||||
studentInfoMap.put("schoolAmount",schoolAmount);
|
||||
studentInfoMap.put("schoolRate",0!=schoolRate?(Double.parseDouble(df.format(schoolRate))*100):0);
|
||||
rtnObj.setStudentInfo(studentInfoMap);
|
||||
/*4.财务情况--TODO*/
|
||||
/*4.财务情况--*/
|
||||
//应收
|
||||
Double showedReceive = courseOrderMapper.selectByCoachUserId(coachId,startTimeStr,endTimeStr);
|
||||
//应付
|
||||
List<SchoolCommission> schoolCommissionList = commissionMapper.selectByCoachId(coachId,startTimeStr,endTimeStr);
|
||||
double showedPay =0.0;
|
||||
for (SchoolCommission item:schoolCommissionList){
|
||||
if(null!=item.getCommissionAmount()){
|
||||
showedPay =showedPay+item.getCommissionAmount().doubleValue();
|
||||
}
|
||||
}
|
||||
Map<String,Object> moneyInfoMap = new HashMap<>();
|
||||
moneyInfoMap.put("inAmount",0);
|
||||
moneyInfoMap.put("outAmount",0);
|
||||
moneyInfoMap.put("inAmount",null==showedReceive?0:showedReceive);
|
||||
moneyInfoMap.put("outAmount",showedPay);
|
||||
rtnObj.setMoneyInfo(moneyInfoMap);
|
||||
}else if("coach".equals(type)){
|
||||
//教练查询
|
||||
@ -172,9 +189,16 @@ public class DataViewServiceImpl implements DataViewService {
|
||||
studentInfoMap.put("overNum",overNum);
|
||||
studentInfoMap.put("noOverNum",noOverNum);
|
||||
rtnObj.setStudentInfo(studentInfoMap);
|
||||
/*4.财务情况-查教练自己应得的提成-TODO*/
|
||||
/*4.财务情况-查教练自己应得的提成-*/
|
||||
List<SchoolCommission> schoolCommissionList = commissionMapper.selectByCoachId(coachId,startTimeStr,endTimeStr);
|
||||
double showedPay =0.0;
|
||||
for (SchoolCommission item:schoolCommissionList){
|
||||
if(null!=item.getCommissionAmount()){
|
||||
showedPay =showedPay+item.getCommissionAmount().doubleValue();
|
||||
}
|
||||
}
|
||||
Map<String,Object> moneyInfoMap = new HashMap<>();
|
||||
moneyInfoMap.put("money",0);
|
||||
moneyInfoMap.put("money",showedPay);
|
||||
rtnObj.setMoneyInfo(moneyInfoMap);
|
||||
}
|
||||
/*2.训练情况*/
|
||||
|
@ -1,12 +1,21 @@
|
||||
package cn.iocoder.yudao.module.base.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.iocoder.yudao.common.SchoolRoleEnum;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
|
||||
import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolCoachMapper;
|
||||
import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolStudentMapper;
|
||||
import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachService;
|
||||
import cn.iocoder.yudao.module.base.vo.*;
|
||||
import cn.iocoder.yudao.module.course.entity.SchoolCommission;
|
||||
import cn.iocoder.yudao.module.course.mapper.SchoolCommissionMapper;
|
||||
import cn.iocoder.yudao.module.exam.mapper.ExamBatchItemMapper;
|
||||
import cn.iocoder.yudao.module.exam.vo.ExamBatchItemVO;
|
||||
import cn.iocoder.yudao.module.jx.domain.DriveSchoolCar;
|
||||
import cn.iocoder.yudao.module.jx.service.IDriveSchoolCarService;
|
||||
import cn.iocoder.yudao.module.jx.utils.StringUtils;
|
||||
import cn.iocoder.yudao.module.staff.entity.CompanyStaff;
|
||||
import cn.iocoder.yudao.module.staff.service.CompanyStaffService;
|
||||
@ -15,19 +24,22 @@ import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
|
||||
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
||||
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
||||
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||
import cn.iocoder.yudao.module.train.mapper.TrainMapper;
|
||||
import cn.iocoder.yudao.module.train.vo.TrainVO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.text.DecimalFormat;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
import static cn.iocoder.yudao.common.BaseConstants.PASSWORD_DEFAULT;
|
||||
import static cn.iocoder.yudao.framework.common.config.CommonStr.USER_TYPE_STAFF;
|
||||
@ -53,6 +65,17 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl<DlDriveSchoolCoac
|
||||
private PermissionApi permissionApi;
|
||||
@Resource
|
||||
private UniqueCodeService uniqueCodeService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private IDriveSchoolCarService schoolCarService;
|
||||
@Autowired
|
||||
private DlDriveSchoolStudentMapper studentMapper;
|
||||
@Autowired
|
||||
private ExamBatchItemMapper examBatchItemMapper;
|
||||
@Autowired
|
||||
private TrainMapper trainMapper;
|
||||
@Autowired
|
||||
private SchoolCommissionMapper commissionMapper;
|
||||
|
||||
|
||||
/**
|
||||
@ -242,11 +265,142 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl<DlDriveSchoolCoac
|
||||
**/
|
||||
@Override
|
||||
public CoachInfoVO getCoachById(String id) {
|
||||
DecimalFormat df = new DecimalFormat("#.00");
|
||||
CoachInfoVO result = new CoachInfoVO();
|
||||
/*1.教练信息*/
|
||||
DlDriveSchoolCoach coach = getById(id);
|
||||
//教练信息
|
||||
result.setCoachInfo(coach);
|
||||
|
||||
/*2.车辆信息*/
|
||||
DriveSchoolCar schoolCar = new DriveSchoolCar();
|
||||
if(null!=coach.getUserId()){
|
||||
schoolCar = schoolCarService.selectByCoachId(coach.getUserId());
|
||||
if(null!=schoolCar.getCarRegisterDate()){
|
||||
Long carOld = DateUtil.betweenYear(schoolCar.getCarRegisterDate(),new Date(),true);
|
||||
schoolCar.setCarOld(carOld);
|
||||
}
|
||||
}
|
||||
result.setCar(schoolCar);
|
||||
/*3.统计教练的学生基本信息*/
|
||||
//毕业情况
|
||||
List<DlDriveSchoolStudentVO> studentVOList = studentMapper.selectStudentListCoach(coach.getUserId(),null,null);
|
||||
int overNum = (int) studentVOList.stream().filter(item -> null != item.getGradTime()).count();
|
||||
int noOverNum = studentVOList.size()-overNum;
|
||||
Map<String,Object> studentInfoMap = new HashMap<>();
|
||||
studentInfoMap.put("overNum",overNum);
|
||||
studentInfoMap.put("noOverNum",noOverNum);
|
||||
//考试情况
|
||||
List<ExamBatchItemVO> examBatchItemVOList = examBatchItemMapper.selectByCoachId(coach.getUserId(),null,null);
|
||||
Double subject2Num = 0.0;
|
||||
Double subject3Num = 0.0;
|
||||
Double subject2PassNum = 0.0;
|
||||
Double subject3PassNum = 0.0;
|
||||
for (ExamBatchItemVO exam:examBatchItemVOList){
|
||||
if(2==exam.getSubject()){
|
||||
subject2Num++;
|
||||
if(null!=exam.getIfPass() && exam.getIfPass()){
|
||||
//考试通过
|
||||
subject2PassNum++;
|
||||
}
|
||||
}else if(3==exam.getSubject()){
|
||||
subject3Num++;
|
||||
if(null!=exam.getIfPass() && exam.getIfPass()){
|
||||
//考试通过
|
||||
subject3PassNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
double subject2Rate=0;
|
||||
double subject3Rate=0;
|
||||
if(0!=subject2Num && 0!=subject2PassNum){
|
||||
subject2Rate = subject2PassNum / subject2Num;
|
||||
}
|
||||
if(0!=subject3Num && 0!=subject3PassNum){
|
||||
subject3Rate = subject3PassNum / subject3Num;
|
||||
}
|
||||
studentInfoMap.put("subject2All",subject2Num);
|
||||
studentInfoMap.put("subject2Pass",subject2PassNum);
|
||||
studentInfoMap.put("subject2Rate",0!=subject2Rate?(Double.parseDouble(df.format(subject2Rate))*100):0);
|
||||
studentInfoMap.put("subject3All",subject3Num);
|
||||
studentInfoMap.put("subject3Pass",subject3PassNum);
|
||||
studentInfoMap.put("subject3Rate",0!=subject3Rate?(Double.parseDouble(df.format(subject3Rate))*100):0);
|
||||
//招生情况
|
||||
List<DlDriveSchoolStudentVO> studentList = studentMapper.selectStudentList(coach.getUserId(), null, null);
|
||||
int coachNum=0;
|
||||
double coachAmount=0;
|
||||
for (DlDriveSchoolStudentVO item:studentList){
|
||||
if("02".equals(item.getSource())){
|
||||
//教练自招
|
||||
coachNum++;
|
||||
coachAmount = coachAmount+item.getPriceAmount();
|
||||
}
|
||||
}
|
||||
studentInfoMap.put("coachNum",coachNum);
|
||||
studentInfoMap.put("coachAmount",coachAmount);
|
||||
//训练情况
|
||||
List<TrainVO> trainList = trainMapper.selectTrainByCondition(coach.getUserId(),null,null);
|
||||
Set<Long> allUserSet = new HashSet<>();
|
||||
Double trainTime = 0.0;
|
||||
for (TrainVO item:trainList){
|
||||
allUserSet.add(item.getUserId());
|
||||
if(null!=item.getTrainTime()){
|
||||
trainTime =trainTime+item.getTrainTime();
|
||||
}
|
||||
}
|
||||
studentInfoMap.put("trainUserNum",allUserSet.size());
|
||||
studentInfoMap.put("trainTime",trainTime);
|
||||
result.setStudentInfoMap(studentInfoMap);
|
||||
/*4.财务情况*/
|
||||
List<SchoolCommission> commissionList = commissionMapper.selectByCoachId(coach.getUserId(),null,null);
|
||||
//科目2当月应付
|
||||
Double subject2MonthShowed = 0.0;
|
||||
//科目2累计已付
|
||||
Double subject2Payed = 0.0;
|
||||
//科目2累计应付
|
||||
Double subject2Showed = 0.0;
|
||||
//科目3当月应付
|
||||
Double subject3MonthShowed = 0.0;
|
||||
//科目3累计已付
|
||||
Double subject3Payed = 0.0;
|
||||
//科目3累计应付
|
||||
Double subject3Showed = 0.0;
|
||||
//当月时间范围
|
||||
// 获取当前月份的开始时间和结束时间
|
||||
DateTime startOfMonth = DateUtil.beginOfMonth(DateUtil.date());
|
||||
DateTime endOfMonth = DateUtil.endOfMonth(DateUtil.date());
|
||||
for (SchoolCommission item:commissionList){
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
String localDateTimeNowStr = item.getCreateTime().format(formatter);
|
||||
DateTime createTime = DateUtil.parse(localDateTimeNowStr);
|
||||
if("2".equals(item.getSubject())){
|
||||
//科目二
|
||||
subject2Showed=subject2Showed+item.getCommissionAmount().doubleValue();
|
||||
if(null!=item.getIfPay() && item.getIfPay()){
|
||||
subject2Payed=subject2Payed+item.getCommissionAmount().doubleValue();
|
||||
}
|
||||
if(createTime.isAfterOrEquals(startOfMonth) && createTime.isBeforeOrEquals(endOfMonth)){
|
||||
//在当月内
|
||||
subject2MonthShowed = subject2MonthShowed+item.getCommissionAmount().doubleValue();
|
||||
}
|
||||
}else if("3".equals(item.getSubject())){
|
||||
//科目三
|
||||
subject3Showed=subject3Showed+item.getCommissionAmount().doubleValue();
|
||||
if(null!=item.getIfPay() && item.getIfPay()){
|
||||
subject3Payed=subject3Payed+item.getCommissionAmount().doubleValue();
|
||||
}
|
||||
if(createTime.isAfterOrEquals(startOfMonth) && createTime.isBeforeOrEquals(endOfMonth)){
|
||||
//在当月内
|
||||
subject3MonthShowed = subject3MonthShowed+item.getCommissionAmount().doubleValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
Map<String,Object> financeMap = new HashMap<>();
|
||||
financeMap.put("subject2MonthShowed",subject2MonthShowed);
|
||||
financeMap.put("subject2Showed",subject2Showed);
|
||||
financeMap.put("subject2Payed",subject2Payed);
|
||||
financeMap.put("subject3MonthShowed",subject3MonthShowed);
|
||||
financeMap.put("subject3Showed",subject3Showed);
|
||||
financeMap.put("subject3Payed",subject3Payed);
|
||||
result.setFinanceMap(financeMap);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1,17 +1,20 @@
|
||||
package cn.iocoder.yudao.module.base.vo;
|
||||
|
||||
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
|
||||
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolStudent;
|
||||
import cn.iocoder.yudao.module.course.entity.Process;
|
||||
import cn.iocoder.yudao.module.exam.vo.ExamBatchItemVO;
|
||||
import cn.iocoder.yudao.module.train.entity.Train;
|
||||
import cn.iocoder.yudao.module.jx.domain.DriveSchoolCar;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class CoachInfoVO {
|
||||
/**教练基本信息*/
|
||||
private DlDriveSchoolCoach coachInfo;
|
||||
/**教练车辆信息*/
|
||||
private DriveSchoolCar car;
|
||||
/**教练学生信息*/
|
||||
private Map<String,Object> studentInfoMap;
|
||||
/**财务情况*/
|
||||
private Map<String,Object> financeMap;
|
||||
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 提成记录 DO
|
||||
@ -67,5 +68,13 @@ public class SchoolCommission extends TenantBaseDO {
|
||||
* 审核人姓名
|
||||
*/
|
||||
private String checkName;
|
||||
/**
|
||||
* 是否已付
|
||||
*/
|
||||
private Boolean ifPay;
|
||||
/**
|
||||
* 是否已付
|
||||
*/
|
||||
private Date payTime;
|
||||
|
||||
}
|
@ -1,7 +1,6 @@
|
||||
package cn.iocoder.yudao.module.course.mapper;
|
||||
|
||||
import cn.iocoder.yudao.module.course.entity.SchoolCommission;
|
||||
import cn.iocoder.yudao.module.course.vo.ProcessVO;
|
||||
import cn.iocoder.yudao.module.course.vo.SchoolCommissionVO;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@ -9,6 +8,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 提成记录 Mapper
|
||||
*
|
||||
@ -28,5 +29,7 @@ public interface SchoolCommissionMapper extends BaseMapper<SchoolCommission> {
|
||||
**/
|
||||
IPage<SchoolCommissionVO> queryPage(@Param("entity") SchoolCommissionVO entity, Page<SchoolCommissionVO> page);
|
||||
|
||||
List<SchoolCommission> selectByCoachId(@Param("coachId")Long coachId,@Param("startTime")String startTime,@Param("endTime")String endTime);
|
||||
|
||||
|
||||
}
|
@ -27,4 +27,15 @@ public interface SchoolCourseOrderMapper extends BaseMapper<SchoolCourseOrder> {
|
||||
* @date 10:11 2025/2/25
|
||||
**/
|
||||
IPage<SchoolCourseOrderVO> queryPage(@Param("entity")SchoolCourseOrderVO entity, Page<SchoolCommissionVO> page);
|
||||
|
||||
/**
|
||||
*
|
||||
* @author vinjor-M
|
||||
* @date 14:38 2025/2/25
|
||||
* @param coachId 教练userId
|
||||
* @param startTime 开始时间
|
||||
* @param endTime 结束时间
|
||||
* @return java.util.List<cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO>
|
||||
**/
|
||||
Double selectByCoachUserId(@Param("coachId")Long coachId,@Param("startTime")String startTime,@Param("endTime")String endTime);
|
||||
}
|
@ -2,11 +2,9 @@ package cn.iocoder.yudao.module.jx.domain;
|
||||
|
||||
import cn.iocoder.yudao.annotation.Excel;
|
||||
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
|
||||
import cn.iocoder.yudao.module.jx.core.page.TenantBaDO;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
@ -116,4 +114,8 @@ public class DriveSchoolCar extends TenantBaseDO
|
||||
private BigDecimal compulsoryIns;
|
||||
/** 商业险 */
|
||||
private BigDecimal busiIns;
|
||||
|
||||
/** 车龄 */
|
||||
@TableField(exist = false)
|
||||
private Long carOld;
|
||||
}
|
||||
|
@ -65,4 +65,6 @@ public interface IDriveSchoolCarService extends IService<DriveSchoolCar>
|
||||
public int deleteDriveSchoolCarById(Long id);
|
||||
|
||||
String importCars(List<DriveSchoolCar> carsList, boolean updateSupport, String operName) throws Exception;
|
||||
|
||||
DriveSchoolCar selectByCoachId(Long coachId);
|
||||
}
|
||||
|
@ -1,9 +1,11 @@
|
||||
package cn.iocoder.yudao.module.jx.service.impl;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachService;
|
||||
import cn.iocoder.yudao.module.jx.domain.DriveSchoolCar;
|
||||
import cn.iocoder.yudao.module.jx.mapper.DriveSchoolCarMapper;
|
||||
import cn.iocoder.yudao.module.jx.service.IDriveSchoolCarService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@ -140,4 +142,13 @@ public class DriveSchoolCarServiceImpl extends ServiceImpl<DriveSchoolCarMapper,
|
||||
}
|
||||
return "数据已全部导入成功!";
|
||||
}
|
||||
|
||||
@Override
|
||||
public DriveSchoolCar selectByCoachId(Long coachId) {
|
||||
LambdaQueryWrapper<DriveSchoolCar> queryWrapper = new LambdaQueryWrapper<DriveSchoolCar>()
|
||||
.eq(DriveSchoolCar::getUserId,coachId)
|
||||
.orderByDesc(BaseDO::getCreateTime);
|
||||
List<DriveSchoolCar> list = this.list(queryWrapper);
|
||||
return list.isEmpty()?null:list.get(0);
|
||||
}
|
||||
}
|
||||
|
@ -26,4 +26,22 @@
|
||||
</where>
|
||||
order by main.create_time desc
|
||||
</select>
|
||||
<select id="selectByCoachId" resultType="cn.iocoder.yudao.module.course.entity.SchoolCommission">
|
||||
SELECT
|
||||
dsc.*
|
||||
FROM
|
||||
drive_school_commission dsc
|
||||
WHERE
|
||||
dsc.deleted = 0
|
||||
<if test="coachId != null and coachId != ''">
|
||||
AND dsc.coach_user_id = #{coachId}
|
||||
</if>
|
||||
<if test="startTime!=null and startTime!=''">
|
||||
AND dsc.create_time >= #{startTime}
|
||||
</if>
|
||||
<if test="endTime!=null and endTime!=''">
|
||||
AND dsc.create_time <= #{endTime}
|
||||
</if>
|
||||
ORDER BY dsc.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
@ -20,4 +20,27 @@
|
||||
<if test="entity.userName != null and entity.userName != ''"> and main.user_name like concat('%', #{entity.userName}, '%')</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="selectByCoachUserId" resultType="java.lang.Double">
|
||||
SELECT
|
||||
SUM(dsco.reserve_money+dsco.rest_money )
|
||||
FROM
|
||||
drive_school_course_order dsco
|
||||
<if test="coachId != null and coachId != ''">
|
||||
LEFT JOIN drive_school_student dss ON dsco.user_id = dss.user_id
|
||||
AND dss.deleted = 0
|
||||
</if>
|
||||
WHERE
|
||||
dsco.deleted = 0
|
||||
AND dsco.payment_status IN ( '2', '3', '4', '5' )
|
||||
<if test="coachId != null and coachId != ''">
|
||||
AND dss.source_user_id = #{coachId}
|
||||
</if>
|
||||
<if test="startTime!=null and startTime!=''">
|
||||
AND dsco.create_time >= #{startTime}
|
||||
</if>
|
||||
<if test="endTime!=null and endTime!=''">
|
||||
AND dsco.create_time <= #{endTime}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user