From 1d07f8271751880bdfbf3ea41e696f9ee719888b Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期四, 17 八月 2023 08:48:36 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java |  578 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 576 insertions(+), 2 deletions(-)

diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
index fc79a76..994cab8 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
@@ -1,17 +1,26 @@
 package com.dsh.guns.modular.system.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.dsh.course.feignClient.course.CoursePackageClient;
-import com.dsh.course.feignClient.course.model.QueryCoursePackageLists;
+import com.dsh.course.feignClient.course.*;
+import com.dsh.course.feignClient.course.model.*;
+import com.dsh.guns.config.UserExt;
 import com.dsh.guns.core.support.HttpKit;
+import com.dsh.guns.core.util.ToolUtil;
 import com.dsh.guns.modular.system.model.TStore;
 import com.dsh.guns.modular.system.service.ICoursePackageService;
 import com.dsh.guns.modular.system.service.IStoreService;
+import com.dsh.guns.modular.system.util.ResultUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -27,6 +36,24 @@
 
     @Autowired
     private IStoreService storeService;
+
+    @Resource
+    private CoursePackagePaymentConfigClient coursePackagePaymentConfigClient;
+
+    @Resource
+    private CoursePackageDiscountClient coursePackageDiscountClient;
+
+    @Resource
+    private CoursePackagePaymentClient coursePackagePaymentClient;
+
+    @Resource
+    private CoursePackageSchedulingClient coursePackageSchedulingClient;
+
+    @Resource
+    private CoursePackageStudentClient coursePackageStudentClient;
+
+    @Resource
+    private CancelledClassesClient cancelledClassesClient;
 
 
 
@@ -65,4 +92,551 @@
         }
         return mapPage;
     }
+
+
+    /**
+     * 添加课包数据
+     * @param coursePackage
+     * @param coursePackagePaymentConfig
+     */
+    @Override
+    public void addCoursePackage(TCoursePackage coursePackage, String coursePackagePaymentConfig) {
+        Integer integer = coursePackageClient.addCoursePackage(coursePackage);
+        JSONArray jsonArray = JSON.parseArray(coursePackagePaymentConfig);
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject jsonObject = jsonArray.getJSONObject(i);
+            Integer classHours = jsonObject.getInteger("classHours");
+            Double cashPayment = jsonObject.getDouble("cashPayment");
+            Integer playPaiCoin = jsonObject.getInteger("playPaiCoin");
+            CoursePackagePaymentConfig coursePackagePaymentConfig1 = new CoursePackagePaymentConfig();
+            coursePackagePaymentConfig1.setCoursePackageId(integer);
+            coursePackagePaymentConfig1.setClassHours(classHours);
+            coursePackagePaymentConfig1.setCashPayment(cashPayment);
+            coursePackagePaymentConfig1.setPlayPaiCoin(playPaiCoin);
+            coursePackagePaymentConfigClient.addCoursePackagePaymentConfig(coursePackagePaymentConfig1);
+        }
+    }
+
+
+    /**
+     * 根据id获取数据
+     * @param id
+     * @return
+     */
+    @Override
+    public TCoursePackage queryById(Integer id) {
+        return coursePackageClient.queryById(id);
+    }
+
+
+    /**
+     * 编辑数据
+     * @param coursePackage
+     * @param coursePackagePaymentConfig
+     */
+    @Override
+    public void updateCoursePackage(TCoursePackage coursePackage, String coursePackagePaymentConfig) {
+        coursePackageClient.updateCoursePackage(coursePackage);
+        coursePackagePaymentConfigClient.delCoursePackagePaymentConfig(coursePackage.getId());
+        JSONArray jsonArray = JSON.parseArray(coursePackagePaymentConfig);
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject jsonObject = jsonArray.getJSONObject(i);
+            Integer classHours = jsonObject.getInteger("classHours");
+            Double cashPayment = jsonObject.getDouble("cashPayment");
+            Integer playPaiCoin = jsonObject.getInteger("playPaiCoin");
+            CoursePackagePaymentConfig coursePackagePaymentConfig1 = new CoursePackagePaymentConfig();
+            coursePackagePaymentConfig1.setCoursePackageId(coursePackage.getId());
+            coursePackagePaymentConfig1.setClassHours(classHours);
+            coursePackagePaymentConfig1.setCashPayment(cashPayment);
+            coursePackagePaymentConfig1.setPlayPaiCoin(playPaiCoin);
+            coursePackagePaymentConfigClient.addCoursePackagePaymentConfig(coursePackagePaymentConfig1);
+        }
+    }
+
+
+    /**
+     * 修改数据
+     * @param coursePackage
+     */
+    @Override
+    public void editCoursePackageState(TCoursePackage coursePackage) {
+        coursePackageClient.updateCoursePackage(coursePackage);
+    }
+
+
+    /**
+     * 编辑课包折扣
+     * @param json
+     * @return
+     */
+    @Override
+    public ResultUtil setCoursePackageDiscount(Integer id, String json) {
+        List<TCoursePackageDiscount> list = new ArrayList<>();
+        JSONArray jsonArray = JSON.parseArray(json);
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject jsonObject = jsonArray.getJSONObject(i);
+            Integer coursePackagePaymentConfigId = jsonObject.getInteger("coursePackagePaymentConfigId");
+            JSONArray coursePackageDiscount = jsonObject.getJSONArray("coursePackageDiscount");
+            if(coursePackageDiscount.size() == 0){
+                continue;
+            }
+            for (int j = 0; j < coursePackageDiscount.size(); j++) {
+                JSONObject cpd = coursePackageDiscount.getJSONObject(j);
+                Integer type = cpd.getInteger("type");
+                switch (type){
+                    case 1:
+                        JSONObject content1 = cpd.getJSONObject("content");
+                        if(null == content1){
+                            return ResultUtil.error("请填写有效的会员折扣");
+                        }
+                        Double discountMember = content1.getDouble("discountMember");
+                        if(null == discountMember){
+                            return ResultUtil.error("请填写有效的会员折扣价格");
+                        }
+                        break;
+                    case 2:
+                        JSONObject content2 = cpd.getJSONObject("content");
+                        if(null == content2){
+                            return ResultUtil.error("请填写有效的续课优惠");
+                        }
+                        Double continuingMember = content2.getDouble("continuingMember");
+                        if(null == continuingMember){
+                            return ResultUtil.error("请填写有效的会员续课价格");
+                        }
+                        Double continuingUser = content2.getDouble("continuingUser");
+                        if(null == continuingUser){
+                            return ResultUtil.error("请填写有效的用户续课价格");
+                        }
+                        break;
+                    case 3:
+                        JSONArray content3 = cpd.getJSONArray("content");
+                        if(content3.size() == 0){
+                            return ResultUtil.error("请配置有效的限时折扣");
+                        }
+                        for (int k = 0; k < content3.size(); k++) {
+                            JSONObject jsonObject1 = content3.getJSONObject(k);
+                            String startDate = jsonObject1.getString("startDate");
+                            String endDate = jsonObject1.getString("endDate");
+                            String startTime = jsonObject1.getString("startTime");
+                            String endTime = jsonObject1.getString("endTime");
+                            JSONArray weeks = jsonObject1.getJSONArray("weeks");
+                            Double cashPayment = jsonObject1.getDouble("cashPayment");
+                            if(ToolUtil.isEmpty(startDate)){
+                                return ResultUtil.error("请填写有效的折扣有效期");
+                            }
+                            if(ToolUtil.isEmpty(endDate)){
+                                return ResultUtil.error("请填写有效的折扣有效期");
+                            }
+                            if(ToolUtil.isEmpty(startTime)){
+                                return ResultUtil.error("请填写有效的折扣时间");
+                            }
+                            if(ToolUtil.isEmpty(endTime)){
+                                return ResultUtil.error("请填写有效的折扣时间");
+                            }
+                            if(null == weeks || weeks.size() == 0){
+                                return ResultUtil.error("请选择有效的折扣时间星期天");
+                            }
+                            if(null == cashPayment){
+                                return ResultUtil.error("请填写有效的折扣金额");
+                            }
+                        }
+                        break;
+                    case 4:
+                        JSONArray content4 = cpd.getJSONArray("content");
+                        if(content4.size() == 0){
+                            return ResultUtil.error("请配置有效的赠送课时");
+                        }
+                        for (int k = 0; k < content4.size(); k++) {
+                            JSONObject jsonObject1 = content4.getJSONObject(k);
+                            String startDate = jsonObject1.getString("startDate");
+                            String endDate = jsonObject1.getString("endDate");
+                            String startTime = jsonObject1.getString("startTime");
+                            String endTime = jsonObject1.getString("endTime");
+                            JSONArray weeks = jsonObject1.getJSONArray("weeks");
+                            Double hour = jsonObject1.getDouble("hour");
+                            if(ToolUtil.isEmpty(startDate)){
+                                return ResultUtil.error("请填写有效的赠送有效期");
+                            }
+                            if(ToolUtil.isEmpty(endDate)){
+                                return ResultUtil.error("请填写有效的赠送有效期");
+                            }
+                            if(ToolUtil.isEmpty(startTime)){
+                                return ResultUtil.error("请填写有效的赠送时间");
+                            }
+                            if(ToolUtil.isEmpty(endTime)){
+                                return ResultUtil.error("请填写有效的赠送时间");
+                            }
+                            if(null == weeks || weeks.size() == 0){
+                                return ResultUtil.error("请选择有效的赠送时间星期天");
+                            }
+                            if(null == hour){
+                                return ResultUtil.error("请填写有效的赠送课时数");
+                            }
+                        }
+                        break;
+                }
+
+                TCoursePackageDiscount coursePackageDiscount1 = new TCoursePackageDiscount();
+                coursePackageDiscount1.setCoursePackageId(id);
+                coursePackageDiscount1.setCoursePackagePaymentConfigId(coursePackagePaymentConfigId);
+                coursePackageDiscount1.setType(type);
+                coursePackageDiscount1.setContent(cpd.getString("content"));
+                coursePackageDiscount1.setAuditStatus(2);
+                coursePackageDiscount1.setInsertTime(new Date());
+                list.add(coursePackageDiscount1);
+            }
+        }
+        coursePackageDiscountClient.setCoursePackageDiscount(list);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 获取课程报名信息
+     * @param id
+     * @param userName
+     * @param studentName
+     * @return
+     */
+    @Override
+    public Page<Map<String, Object>> queryRegistrationRecord(Integer id, String userName, String studentName) {
+        QueryRegistrationRecord queryRegistrationRecord = new QueryRegistrationRecord();
+        queryRegistrationRecord.setCoursePackageId(id);
+        queryRegistrationRecord.setUserName(userName);
+        queryRegistrationRecord.setStudentName(studentName);
+        HttpServletRequest request = HttpKit.getRequest();
+        queryRegistrationRecord.setLimit(Integer.valueOf(request.getParameter("limit")));
+        queryRegistrationRecord.setOffset(Integer.valueOf(request.getParameter("offset")));
+        queryRegistrationRecord.setSort(request.getParameter("sort"));
+        queryRegistrationRecord.setOrder(request.getParameter("order"));
+        Page<Map<String, Object>> mapPage = coursePackagePaymentClient.queryRegistrationRecord(queryRegistrationRecord);
+        return mapPage;
+    }
+
+
+    /**
+     * 获取课包上课信息
+     * @param id
+     * @return
+     */
+    @Override
+    public Page<Map<String, Object>> queryCoursePackageSchedulingList(Integer id) {
+        QueryCoursePackageSchedulingList queryClassRecord = new QueryCoursePackageSchedulingList();
+        queryClassRecord.setCoursePackageId(id);
+        HttpServletRequest request = HttpKit.getRequest();
+        queryClassRecord.setLimit(Integer.valueOf(request.getParameter("limit")));
+        queryClassRecord.setOffset(Integer.valueOf(request.getParameter("offset")));
+        queryClassRecord.setSort(request.getParameter("sort"));
+        queryClassRecord.setOrder(request.getParameter("order"));
+        Page<Map<String, Object>> mapPage = coursePackageSchedulingClient.queryCoursePackageSchedulingList(queryClassRecord);
+        return mapPage;
+    }
+
+
+    /**
+     * 获取排课对应学员数据
+     * @param id
+     * @return
+     */
+    @Override
+    public Page<Map<String, Object>> queryCoursePackageStudentList(Long id, String userName, String studentName) {
+        QueryCoursePackageStudentList queryCoursePackageStudentList = new QueryCoursePackageStudentList();
+        queryCoursePackageStudentList.setCoursePackageSchedulingId(id);
+        queryCoursePackageStudentList.setUserName(userName);
+        queryCoursePackageStudentList.setStudentName(studentName);
+        HttpServletRequest request = HttpKit.getRequest();
+        queryCoursePackageStudentList.setLimit(Integer.valueOf(request.getParameter("limit")));
+        queryCoursePackageStudentList.setOffset(Integer.valueOf(request.getParameter("offset")));
+        queryCoursePackageStudentList.setSort(request.getParameter("sort"));
+        queryCoursePackageStudentList.setOrder(request.getParameter("order"));
+        return coursePackageStudentClient.queryCoursePackageStudentList(queryCoursePackageStudentList);
+    }
+
+
+    /**
+     * 取消预约
+     * @param id
+     * @return
+     */
+    @Override
+    public ResultUtil cancelReservation(Long id) {
+        CoursePackageStudent coursePackageStudent = coursePackageStudentClient.queryCoursePackageStudentById(id);
+        if(coursePackageStudent.getSignInOrNot() == 1){
+            return ResultUtil.error("无法取消预约");
+        }
+        coursePackageStudent = new CoursePackageStudent();
+        coursePackageStudent.setId(id);
+        coursePackageStudent.setReservationStatus(0);
+        coursePackageStudentClient.editCoursePackageStudent(coursePackageStudent);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 修改缺席状态
+     * @param id
+     * @return
+     */
+    @Override
+    public ResultUtil setAbsenceStatus(Long id) {
+        CoursePackageStudent coursePackageStudent = coursePackageStudentClient.queryCoursePackageStudentById(id);
+        if(coursePackageStudent.getReservationStatus() == 0){
+            return ResultUtil.error("该数据已取消预约");
+        }
+        coursePackageStudent = new CoursePackageStudent();
+        coursePackageStudent.setId(id);
+        coursePackageStudent.setSignInOrNot(0);
+        coursePackageStudentClient.editCoursePackageStudent(coursePackageStudent);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 取消本次排课
+     * @param id
+     * @return
+     */
+    @Override
+    public ResultUtil cancelClassSchedule(Long id) {
+        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingClient.queryCoursePackageSchedulingById(id);
+        if(coursePackageScheduling.getStatus() != 1){
+            return ResultUtil.error("不能取消本次");
+        }
+        List<CoursePackageStudent> coursePackageStudents = coursePackageStudentClient.queryByCoursePackageSchedulingId(id);
+        if(coursePackageStudents.size() > 0){
+            return ResultUtil.error("不能取消本次");
+        }
+        coursePackageScheduling = new CoursePackageScheduling();
+        coursePackageScheduling.setId(id);
+        coursePackageScheduling.setStatus(4);
+        coursePackageSchedulingClient.editCoursePackageScheduling(coursePackageScheduling);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 添加课后练习
+     * @param id
+     * @param courseId
+     * @param integral
+     * @return
+     */
+    @Override
+    public ResultUtil afterClassExercises(Long id, Integer courseId, Integer integral) {
+        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingClient.queryCoursePackageSchedulingById(id);
+        if(coursePackageScheduling.getStatus() != 3){
+            return ResultUtil.error("不能发布课后练习");
+        }
+        coursePackageScheduling.setCourseId(courseId);
+        coursePackageScheduling.setIntegral(integral);
+        coursePackageSchedulingClient.editCoursePackageScheduling(coursePackageScheduling);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 上传消课凭证
+     * @param id
+     * @param cancelClasses
+     * @param deductClassHour
+     * @return
+     */
+    @Override
+    public ResultUtil cancellationRecord(Long id, String cancelClasses, Integer deductClassHour) {
+        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingClient.queryCoursePackageSchedulingById(id);
+        if(coursePackageScheduling.getStatus() == 1 || coursePackageScheduling.getStatus() == 4){
+            return ResultUtil.error("不能添加消课凭证");
+        }
+        coursePackageScheduling.setCancelClasses(cancelClasses);
+        coursePackageScheduling.setDeductClassHour(deductClassHour);
+        coursePackageSchedulingClient.editCoursePackageScheduling(coursePackageScheduling);
+
+        List<CoursePackageStudent> coursePackageStudents = coursePackageStudentClient.queryByCoursePackageSchedulingId(id);
+        for (CoursePackageStudent coursePackageStudent : coursePackageStudents) {
+            if(coursePackageStudent.getReservationStatus() == 0){
+                continue;
+            }
+            TCoursePackagePayment tCoursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackageStudent.getCoursePackagePaymentId());
+            tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours() - deductClassHour);
+            if(coursePackageStudent.getSignInOrNot() == 0){
+                tCoursePackagePayment.setAbsencesNumber(tCoursePackagePayment.getAbsencesNumber() + 1);
+            }
+            coursePackagePaymentClient.editCoursePackagePayment(tCoursePackagePayment);
+
+            CancelledClasses cancelledClasses = new CancelledClasses();
+            cancelledClasses.setType(1);
+            cancelledClasses.setCoursePackageId(coursePackageStudent.getCoursePackageId());
+            cancelledClasses.setCoursePackagePaymentId(coursePackageStudent.getCoursePackagePaymentId());
+            cancelledClasses.setCoursePackageSchedulingId(coursePackageStudent.getCoursePackageSchedulingId());
+            cancelledClasses.setVoucher(cancelClasses);
+            cancelledClasses.setCancelledClassesNumber(deductClassHour);
+            cancelledClasses.setInsertTime(new Date());
+            cancelledClassesClient.addCancelledClasses(cancelledClasses);
+        }
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 获取未预约排课学员列表
+     * @param coursePackageSchedulingId
+     * @param userName
+     * @param studentName
+     * @return
+     */
+    @Override
+    public Page<Map<String, Object>> queryWalkInStudentList(Long coursePackageSchedulingId, String userName, String studentName) {
+        QueryWalkInStudentList queryWalkInStudentList = new QueryWalkInStudentList();
+        queryWalkInStudentList.setCoursePackageSchedulingId(coursePackageSchedulingId);
+        queryWalkInStudentList.setUserName(userName);
+        queryWalkInStudentList.setStudentName(studentName);
+        HttpServletRequest request = HttpKit.getRequest();
+        queryWalkInStudentList.setLimit(Integer.valueOf(request.getParameter("limit")));
+        queryWalkInStudentList.setOffset(Integer.valueOf(request.getParameter("offset")));
+        queryWalkInStudentList.setSort(request.getParameter("sort"));
+        queryWalkInStudentList.setOrder(request.getParameter("order"));
+        return coursePackagePaymentClient.queryWalkInStudentList(queryWalkInStudentList);
+    }
+
+
+    /**
+     * 手动预约课程
+     * @param coursePackagePaymentId
+     * @param coursePackageSchedulingId
+     * @return
+     */
+    @Override
+    public ResultUtil courseReservation(Long coursePackagePaymentId, Long coursePackageSchedulingId) {
+        QueryCoursePackageStudent queryCoursePackageStudent = new QueryCoursePackageStudent();
+        queryCoursePackageStudent.setCoursePackagePaymentId(coursePackagePaymentId);
+        queryCoursePackageStudent.setCoursePackageSchedulingId(coursePackageSchedulingId);
+        queryCoursePackageStudent.setReservationStatus(1);
+        List<CoursePackageStudent> coursePackageStudents = coursePackageStudentClient.queryCoursePackageStudent(queryCoursePackageStudent);
+        if(coursePackageStudents.size() > 0){
+            return ResultUtil.error("不能重复预约");
+        }
+
+        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingClient.queryCoursePackageSchedulingById(coursePackageSchedulingId);
+        TCoursePackage tCoursePackage = coursePackageClient.queryById(coursePackageScheduling.getCoursePackageId());
+        queryCoursePackageStudent = new QueryCoursePackageStudent();
+        queryCoursePackageStudent.setCoursePackageId(coursePackageScheduling.getCoursePackageId());
+        queryCoursePackageStudent.setReservationStatus(1);
+        List<CoursePackageStudent> coursePackageStudents1 = coursePackageStudentClient.queryCoursePackageStudent(queryCoursePackageStudent);
+        if(coursePackageStudents1.size() >= tCoursePackage.getMaxSubscribeNumber()){
+            return ResultUtil.error("已达到最多预约人数");
+        }
+
+        TCoursePackagePayment coursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackagePaymentId);
+        CoursePackageStudent coursePackageStudent = new CoursePackageStudent();
+        coursePackageStudent.setAppUserId(coursePackagePayment.getAppUserId());
+        coursePackageStudent.setStudentId(coursePackagePayment.getStudentId());
+        coursePackageStudent.setCoursePackageId(coursePackagePayment.getCoursePackageId());
+        coursePackageStudent.setCoursePackagePaymentId(coursePackagePaymentId);
+        coursePackageStudent.setCoursePackageSchedulingId(coursePackageSchedulingId);
+        coursePackageStudent.setSignInOrNot(1);
+        coursePackageStudent.setReservationStatus(1);
+        coursePackageStudent.setInsertTime(new Date());
+        coursePackageStudentClient.addCoursePackageStudent(coursePackageStudent);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 退课操作
+     * @param coursePackagePaymentId
+     * @param certificate
+     * @return
+     */
+    @Override
+    public ResultUtil dropTheClass(Long coursePackagePaymentId, String certificate) {
+        TCoursePackagePayment coursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackagePaymentId);
+        if(coursePackagePayment.getStatus() == 2){
+            return ResultUtil.error("不能重复操作");
+        }
+        coursePackagePayment.setStatus(2);
+        coursePackagePayment.setCertificate(certificate);
+        coursePackagePayment.setWithdrawalTime(new Date());
+        //修改课时,费用线下自己处理不走线上
+        Integer laveClassHours = coursePackagePayment.getLaveClassHours();
+        if(laveClassHours == 0){
+            return ResultUtil.error("无可退数量");
+        }
+        coursePackagePayment.setDropoutsNumber(laveClassHours);
+        coursePackagePayment.setLaveClassHours(0);
+        coursePackagePaymentClient.editCoursePackagePayment(coursePackagePayment);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 补课操作
+     * @param coursePackagePaymentId
+     * @return
+     */
+    @Override
+    public ResultUtil makeUpMissedLessons(Long coursePackagePaymentId) {
+        TCoursePackagePayment coursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackagePaymentId);
+        if(coursePackagePayment.getStatus() == 2){
+            return ResultUtil.error("该学员已退课");
+        }
+        if(coursePackagePayment.getAbsencesNumber() == 0){
+            return ResultUtil.error("当前不需要补课");
+        }
+        coursePackagePayment.setAbsencesNumber(coursePackagePayment.getAbsencesNumber() - 1);
+        coursePackagePaymentClient.editCoursePackagePayment(coursePackagePayment);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 获取课包审核列表
+     * @param provinceCode
+     * @param cityCode
+     * @param coursePackageTypeId
+     * @param name
+     * @param auditStatus
+     * @return
+     */
+    @Override
+    public Page<Map<String, Object>> queryExamineCoursePackageLists(String provinceCode, String cityCode, Integer coursePackageTypeId, String name, Integer auditStatus) {
+        QueryExamineCoursePackageLists queryExamineCoursePackageLists = new QueryExamineCoursePackageLists();
+        queryExamineCoursePackageLists.setProvinceCode(provinceCode);
+        queryExamineCoursePackageLists.setCityCode(cityCode);
+        queryExamineCoursePackageLists.setCoursePackageTypeId(coursePackageTypeId);
+        queryExamineCoursePackageLists.setName(name);
+        queryExamineCoursePackageLists.setAuditStatus(auditStatus);
+        HttpServletRequest request = HttpKit.getRequest();
+        queryExamineCoursePackageLists.setLimit(Integer.valueOf(request.getParameter("limit")));
+        queryExamineCoursePackageLists.setOffset(Integer.valueOf(request.getParameter("offset")));
+        queryExamineCoursePackageLists.setSort(request.getParameter("sort"));
+        queryExamineCoursePackageLists.setOrder(request.getParameter("order"));
+        Page<Map<String, Object>> mapPage = coursePackageClient.queryExamineCoursePackageLists(queryExamineCoursePackageLists);
+        List<Map<String, Object>> records = mapPage.getRecords();
+        for (Map<String, Object> record : records) {
+            TStore store = storeService.getById(Integer.valueOf(record.get("storeId").toString()));
+            record.put("store", store.getName());
+        }
+        return mapPage;
+    }
+
+
+    /**
+     * 审核课包
+     * @param id
+     * @param auditStatus
+     * @param authRemark
+     * @return
+     */
+    @Override
+    public ResultUtil setCoursePackageAuditStatus(Integer id, Integer auditStatus, String authRemark) {
+        TCoursePackage tCoursePackage = coursePackageClient.queryById(id);
+        if(tCoursePackage.getAuditStatus() != 1){
+            return ResultUtil.error("不能重复审核");
+        }
+        tCoursePackage.setAuditStatus(auditStatus);
+        tCoursePackage.setAuditUserId(UserExt.getUser().getId());
+        tCoursePackage.setAuthRemark(authRemark);
+        coursePackageClient.updateCoursePackage(tCoursePackage);
+        return ResultUtil.success();
+    }
 }

--
Gitblit v1.7.1