فهرست منبع

Merge remote-tracking branch 'origin/master'

zouxuan 3 سال پیش
والد
کامیت
07104cb223

+ 15 - 17
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/CourseGroupController.java

@@ -1,7 +1,6 @@
 package com.yonge.cooleshow.admin.controller;
 
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.CourseGroupDetailSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.CourseGroupSearch;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
@@ -15,7 +14,6 @@ import com.yonge.toolset.base.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -38,7 +36,7 @@ public class CourseGroupController extends BaseController {
     @Autowired
     private CourseScheduleService courseScheduleService;
 
-    @ApiOperation(value = "课程组管理-陪练课",notes = "{\n" +
+    @ApiOperation(value = "课程组管理-陪练课", notes = "{\n" +
             "    \"subjectId\":20,\n" +
             "    \"search\":\"师\",\n" +
             "    \"status\":\"ING\"\n" +
@@ -48,7 +46,7 @@ public class CourseGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseGroupService.selectPracticeGroup(PageUtil.getPage(search), search)));
     }
 
-    @ApiOperation(value = "课程组管理-陪练课-详情",notes = "{\n" +
+    @ApiOperation(value = "课程组管理-陪练课-详情", notes = "{\n" +
             "    \"courseGroupId\": 140,\n" +
             "    \"teacherSign\": 0,\n" +
             "    \"studentSign\": 0,\n" +
@@ -63,7 +61,7 @@ public class CourseGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseGroupService.selectPracticeGroupDetail(PageUtil.getPage(search), search)));
     }
 
-    @ApiOperation(value = "课程组管理-直播课",notes = "{\n" +
+    @ApiOperation(value = "课程组管理-直播课", notes = "{\n" +
             "    \"subjectId\":73,\n" +
             "    \"search\":\"夏\",\n" +
             "    \"status\":\"ING\"\n" +
@@ -73,7 +71,7 @@ public class CourseGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseGroupService.selectLiveGroup(PageUtil.getPage(search), search)));
     }
 
-    @ApiOperation(value = "课程组管理-直播课-购买学员",notes = "{\n" +
+    @ApiOperation(value = "课程组管理-直播课-购买学员", notes = "{\n" +
             "    \"groupId\":140,\n" +
             "    \"search\":\"游\",\n" +
             "    \"orderNo\":\"22051615250800001\"\n" +
@@ -83,7 +81,7 @@ public class CourseGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseGroupService.selectLiveGroupStudent(PageUtil.getPage(search), search)));
     }
 
-    @ApiOperation(value = "课程组管理-直播课-教学计划",notes = "{\n" +
+    @ApiOperation(value = "课程组管理-直播课-教学计划", notes = "{\n" +
             "    \"groupId\":140,\n" +
             "    \"courseId\":\"391\",\n" +
             "    \"salaryStatus\":\"NOT_START\",\n" +
@@ -95,7 +93,7 @@ public class CourseGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseGroupService.selectLiveGroupPlan(PageUtil.getPage(search), search)));
     }
 
-    @ApiOperation(value = "课程组管理-视频课",notes = "{\n" +
+    @ApiOperation(value = "课程组管理-视频课", notes = "{\n" +
             "    \"subjectId\":21,\n" +
             "    \"search\":\"老\"\n" +
             "}")
@@ -104,7 +102,7 @@ public class CourseGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseGroupService.selectVideoGroup(PageUtil.getPage(search), search)));
     }
 
-    @ApiOperation(value = "课程组管理-视频课-购买学员",notes = "{\n" +
+    @ApiOperation(value = "课程组管理-视频课-购买学员", notes = "{\n" +
             "    \"groupId\":51,\n" +
             "    \"orderNo\":\"22050720002900001\",\n" +
             "    \"search\":\"1\",\n" +
@@ -116,7 +114,7 @@ public class CourseGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseGroupService.selectVideoGroupStudent(PageUtil.getPage(search), search)));
     }
 
-    @ApiOperation(value = "课程组管理-视频课-教学计划",notes = "{\n" +
+    @ApiOperation(value = "课程组管理-视频课-教学计划", notes = "{\n" +
             "    \"groupId\":18\n" +
             "}")
     @PostMapping(value = "/video/plan")
@@ -130,7 +128,7 @@ public class CourseGroupController extends BaseController {
         return succeed(courseGroupService.selectLiveGroupInfo(groupId));
     }
 
-    @ApiOperation(value = "课程组管理-琴房课",notes = "{\n" +
+    @ApiOperation(value = "课程组管理-琴房课", notes = "{\n" +
             "    \"subjectId\":20,\n" +
             "    \"search\":\"师\",\n" +
             "    \"status\":\"ING\"\n" +
@@ -140,7 +138,7 @@ public class CourseGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseGroupService.selectPianoGroup(PageUtil.getPage(search), search)));
     }
 
-    @ApiOperation(value = "课程组管理-琴房课-详情",notes = "{\n" +
+    @ApiOperation(value = "课程组管理-琴房课-详情", notes = "{\n" +
             "    \"courseGroupId\":334,\n" +
             "    \"search\":\"\",\n" +
             "    \"status\":\"\",\n" +
@@ -157,10 +155,10 @@ public class CourseGroupController extends BaseController {
     @ApiOperation(value = "课程组管理-琴房课-详情-学员名单")
     @GetMapping(value = "/piano/student")
     public HttpResponseResult<List<StudentSignVo>> studentSign(@NotNull Long courseId) {
-        return succeed(courseGroupService.studentSign(courseId,null));
+        return succeed(courseGroupService.studentSign(courseId, null));
     }
 
-    @ApiOperation(value = "学员管理-琴房课",notes = "{\n" +
+    @ApiOperation(value = "学员管理-琴房课", notes = "{\n" +
             "    \"studentId\":20,\n" +
             "    \"search\":\"师\",\n" +
             "    \"status\":\"ING\"\n" +
@@ -170,7 +168,7 @@ public class CourseGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseGroupService.selectPianoGroupStudent(PageUtil.getPage(search), search)));
     }
 
-    @ApiOperation(value = "学员管理-琴房课-详情",notes = "{\n" +
+    @ApiOperation(value = "学员管理-琴房课-详情", notes = "{\n" +
             "    \"studentId\":20,\n" +
             "    \"courseGroupId\":334,\n" +
             "    \"search\":\"\",\n" +
@@ -191,7 +189,7 @@ public class CourseGroupController extends BaseController {
         return succeed(courseScheduleService.selectRemainTime(teacherId));
     }
 
-    @ApiOperation(value = "老师管理-琴房课",notes = "{\n" +
+    @ApiOperation(value = "老师管理-琴房课", notes = "{\n" +
             "    \"teacherId\":20,\n" +
             "    \"search\":\"师\",\n" +
             "    \"status\":\"ING\"\n" +
@@ -201,7 +199,7 @@ public class CourseGroupController extends BaseController {
         return succeed(PageUtil.pageInfo(courseGroupService.selectPianoGroupTeacher(PageUtil.getPage(search), search)));
     }
 
-    @ApiOperation(value = "老师管理-琴房课-详情",notes = "{\n" +
+    @ApiOperation(value = "老师管理-琴房课-详情", notes = "{\n" +
             "    \"teacherId\":20,\n" +
             "    \"courseGroupId\":334,\n" +
             "    \"search\":\"\",\n" +

+ 11 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/sdk/WithdrawSdk.java

@@ -1,7 +1,9 @@
 package com.yonge.cooleshow.biz.dal.sdk;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONPath;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.exception.ThirdpartyException;
 import com.yonge.toolset.thirdparty.lingxinpay.Md5EncryptUtils;
 import com.yonge.toolset.thirdparty.lingxinpay.RSA;
@@ -152,8 +154,8 @@ public class WithdrawSdk {
      * @param remark        备注(扩展字段) 只针对测试环境:只要参数合规都会返回交易成功,如果想要模拟交易失败,该字段值中含有“失败”二字即会失败。
      * @return
      */
-    public String withdraw(String outerOrderNo, String name, String mobile, String certificateNo, Integer predictAmount,
-                           String payAccount, String remark) {
+    public HttpResponseResult<Boolean> withdraw(String outerOrderNo, String name, String mobile, String certificateNo, Integer predictAmount,
+                                                String payAccount, String remark) {
         Map<String, Object> map = new HashMap<>();
         map.put("outMemberNo", memberNo);
         map.put("outerOrderNo", outerOrderNo);
@@ -193,11 +195,16 @@ public class WithdrawSdk {
         try {
             String resultJsonStr = HttpUtil.postForHttp(apiUrl + "/bpotop_trade/single", JSONObject.toJSONString(mapParam), null);
             logger.info("单笔请求返回参数:{}", resultJsonStr);
-            return resultJsonStr;
+
+            Map<String,Object> mapTypes = JSON.parseObject(resultJsonStr);
+            String returnCode = String.valueOf(mapTypes.get("return_code"));
+            if (returnCode.equals("T")){
+                return HttpResponseResult.succeed(true);
+            }
         } catch (IOException e) {
             logger.info("发送失败:{}", e);
         }
-        return null;
+        return HttpResponseResult.failed("提现失败");
     }
 
     /**
@@ -236,5 +243,4 @@ public class WithdrawSdk {
         }
         return null;
     }
-
 }

+ 27 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -1155,7 +1155,33 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
 
     @Override
     public IPage<CourseGroupPianoDetailVo> selectPianoGroupTeacherDetail(IPage<CourseGroupPianoDetailVo> page, CourseGroupDetailSearch search) {
-        return baseMapper.selectPianoGroupTeacherDetail(page,search);
+        if (search.getStudentSign() != null) {
+            List<StudentSignVo> list = studentSign(null, CourseScheduleEnum.PIANO_ROOM_CLASS.getCode());
+            List<Long> collect=new ArrayList<>();
+            if (search.getStudentSign() == 0) {//异常学生
+                collect = list.stream().filter(s -> (s.getStudentOutSign() + s.getStudentInSign()) != 2).map(StudentSignVo::getCourseId).collect(Collectors.toList());
+            }
+            if (search.getStudentSign() == 1) {//正常学生
+                collect = list.stream().filter(s -> (s.getStudentOutSign() + s.getStudentInSign()) == 2).map(StudentSignVo::getCourseId).collect(Collectors.toList());
+            }
+            collect.add(Long.valueOf(-1));
+            search.setCourseIds(collect);
+        }
+
+        IPage<CourseGroupPianoDetailVo> detailPage = baseMapper.selectPianoGroupTeacherDetail(page, search);
+        List<CourseGroupPianoDetailVo> records = detailPage.getRecords();
+
+        for (CourseGroupPianoDetailVo record : records) {
+            List<StudentSignVo> studentSigns = studentSign(record.getCourseId(), null);
+            for (StudentSignVo studentSign : studentSigns) {
+                if ((studentSign.getStudentInSign() + studentSign.getStudentOutSign()) == 2) {//签到正常
+                    record.setStudentSign(1);
+                } else {//签到异常
+                    record.setStudentSign(0);
+                }
+            }
+        }
+        return detailPage;
     }
 }
 

+ 5 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -1040,11 +1040,11 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             teacherSalary.setCourseGroupType(payment.getCourseType());
             teacherSalary.setCourseGroupId(payment.getCourseGroupId());
             teacherSalary.setClassNum(payment.getClassNum());
-            //预计获取学生支付单课全部课酬
-            teacherSalary.setExpectSalary(payment.getActualPrice());
-            //实际获取扣除手续费后课酬
-            teacherSalary.setActualSalary(expectPrice.subtract(expectPrice.multiply(practiceServiceRate)).setScale(2, RoundingMode.HALF_UP));//实际
-            teacherSalary.setReduceSalary(BigDecimal.ZERO);
+            teacherSalary.setExpectSalary(expectPrice);//预计薪水
+            BigDecimal actualSalary = expectPrice.subtract(expectPrice.multiply(practiceServiceRate)).setScale(2, RoundingMode.HALF_UP);
+            teacherSalary.setActualSalary(actualSalary);//实际薪水(扣除手续费)
+            teacherSalary.setReduceSalary(expectPrice.subtract(actualSalary));//扣除薪水 = 预计 - 实际
+            teacherSalary.setReduceSalaryRemark(SysConfigConstant.PRACTICE_SERVICE_FEE);//扣除原因
             teacherSalary.setStatus(TeacherSalaryEnum.NOT_START.getCode());
             teacherSalaryList.add(teacherSalary);
             teacherSalary.setCreateTime(now);

+ 13 - 10
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -790,6 +790,8 @@
         <if test="param.search != null and param.search != ''">
             AND (
             g.id_ LIKE concat('%',#{param.search},'%') OR
+            g.teacher_id_ LIKE concat('%',#{param.search},'%') OR
+            u.username_ LIKE concat('%',#{param.search},'%') OR
             g.name_ LIKE concat('%',#{param.search},'%')
             )
         </if>
@@ -816,6 +818,8 @@
         cs.start_time_ AS startTime,
         cs.end_time_ AS endTime,
         p.user_id_ AS studentId,
+        su.username_ AS studentName,
+        su.real_name_ AS studentRealName,
         (CASE WHEN cs.start_time_ &gt;= ta.sign_in_time_ THEN 1 ELSE 0 END) AS teacherInSign,
         (CASE WHEN cs.end_time_ &lt;= ta.sign_out_time_ THEN 1 ELSE 0 END) AS teacherOutSign,
         (CASE WHEN cs.start_time_ &gt;= sa.sign_in_time_ THEN 1 ELSE 0 END) AS studentInSign,
@@ -830,6 +834,7 @@
         LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_
         LEFT JOIN student_attendance sa ON cs.id_=sa.course_schedule_id_
         LEFT JOIN course_schedule_student_payment p ON cs.id_=p.course_id_
+        LEFT JOIN sys_user su ON p.user_id_ = su.id_
         WHERE cs.type_='PIANO_ROOM_CLASS'
         AND p.user_id_=#{param.studentId}
         AND p.course_group_id_=#{param.courseGroupId}) m
@@ -876,10 +881,8 @@
         AND cg.teacher_id_=#{param.teacherId}
         <if test="param.search != null and param.search != ''">
             AND (
-            cg.id_ LIKE concat('%',#{param.search},'%') OR
-            cg.teacher_id_ LIKE concat('%',#{param.search},'%') OR
             cg.name_ LIKE concat('%',#{param.search},'%') OR
-            su.username_ LIKE concat('%',#{param.search},'%')
+            cg.id_ LIKE concat('%',#{param.search},'%')
             )
         </if>
         <if test="param.subjectId != null">
@@ -909,9 +912,6 @@
         su.real_name_ AS studentRealName,
         (CASE WHEN cs.start_time_ &gt;= ta.sign_in_time_ THEN 1 ELSE 0 END) AS teacherInSign,
         (CASE WHEN cs.end_time_ &lt;= ta.sign_out_time_ THEN 1 ELSE 0 END) AS teacherOutSign,
-        (CASE WHEN cs.start_time_ &gt;= sa.sign_in_time_ THEN 1 ELSE 0 END) AS studentInSign,
-        (CASE WHEN cs.end_time_ &lt;= sa.sign_out_time_ THEN 1 ELSE 0 END) AS studentOutSign,
-        (CASE WHEN cs.start_time_ &gt;= sa.sign_in_time_ AND cs.end_time_ &lt;= sa.sign_out_time_ THEN 1 ELSE 0 END) AS studentSign,
         (CASE WHEN cs.start_time_ &gt;= ta.sign_in_time_ AND cs.end_time_ &lt;= ta.sign_out_time_ THEN 1 ELSE 0 END) AS teacherSign
         FROM course_schedule cs
         LEFT JOIN course_group cg ON cs.course_group_id_ = cg.id_
@@ -924,7 +924,13 @@
         LEFT JOIN sys_user su ON cs.teacher_id_ = su.id_
         WHERE cs.type_='PIANO_ROOM_CLASS'
         AND cs.teacher_id_=#{param.teacherId}
-        AND p.course_group_id_=#{param.courseGroupId}) m
+        AND p.course_group_id_=#{param.courseGroupId}
+        <if test="param.studentSign != null">
+            AND cs.id_ IN
+            <foreach collection="param.courseIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>) m
         <where>
             <if test="param.search != null and param.search != ''">
                 AND (
@@ -933,9 +939,6 @@
                 studentId LIKE concat('%',#{param.search},'%')
                 )
             </if>
-            <if test="param.studentSign != null">
-                AND studentSign = #{param.studentSign}
-            </if>
             <if test="param.teacherSign != null">
                 AND teacherSign = #{param.teacherSign}
             </if>

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml

@@ -218,7 +218,7 @@
 
 	<select id="selectPaymentStudentInfo" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo">
         select su.username_ as studentName
-        ,su.avatar_ as stduentAvatar
+        ,su.avatar_ as studentAvatar
         ,cssp.user_id_ as studentId
         from course_schedule cs
         left join course_schedule_student_payment cssp on cs.id_ = cssp.course_id_

+ 0 - 38
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/SubjectController.java

@@ -1,38 +0,0 @@
-package com.yonge.cooleshow.website.controller;
-
-import com.yonge.cooleshow.biz.dal.entity.Subject;
-import com.yonge.cooleshow.biz.dal.service.SubjectService;
-import com.yonge.cooleshow.common.controller.BaseController;
-import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-@RequestMapping("subject")
-@Api(tags = "声部服务")
-@RestController
-public class SubjectController extends BaseController {
-
-	@Autowired
-	private SubjectService subjectService;
-
-	@ApiOperation(value = "根据声部编号查询声部")
-	@GetMapping("/get/{id}")
-	public Object get(@ApiParam(value = "声部编号", required = true) @PathVariable("id") Long id) {
-		return succeed(subjectService.get(id));
-	}
-
-	@ApiOperation(value = "获取声部")
-	@GetMapping("/subjectSelect")
-    public HttpResponseResult<List<Subject>> subjectSelect(){
-        List<Subject> subjectSelect = subjectService.subjectSelect();
-        return succeed(subjectSelect);
-    }
-}

+ 0 - 3
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/SysConfigController.java

@@ -29,7 +29,6 @@ public class SysConfigController extends BaseController {
 
 	@ApiOperation(value = "参数列表")
 	@GetMapping(value = "list")
-    @PreAuthorize("@pcs.hasPermissions('sysConfig/list')")
 	public Object configList(String group) {
 		Map<String,Object> params = new HashMap<String, Object>();
 		params.put("group", group);
@@ -39,7 +38,6 @@ public class SysConfigController extends BaseController {
 
 	@ApiOperation(value = "查询参数")
 	@GetMapping(value = "get")
-    @PreAuthorize("@pcs.hasPermissions('sysConfig/get')")
 	public Object getConfig(Long id) {
 		if (id == null || id <= 0)
 			return failed("请检查输入的ID");
@@ -48,7 +46,6 @@ public class SysConfigController extends BaseController {
 
 	@ApiOperation(value = "查询参数")
 	@GetMapping(value = "queryByParamName")
-    @PreAuthorize("@pcs.hasPermissions('sysConfig/queryByParamName')")
 	public Object queryByParamName(String paramName) {
 		if(StringUtils.isBlank(paramName)){
 			return failed("参数不能为空");

+ 1 - 1
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/MusicTagController.java → cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenMusicTagController.java

@@ -16,7 +16,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/open/MusicTag")
 @Api(value = "音乐标签表", tags = "音乐标签表")
-public class MusicTagController extends BaseController {
+public class OpenMusicTagController extends BaseController {
 
     @Autowired
     private MusicTagService musicTagService;

+ 1 - 1
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/SubjectController.java → cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenSubjectController.java

@@ -18,7 +18,7 @@ import java.util.List;
 @RequestMapping("/open/subject")
 @Api(tags = "声部服务")
 @RestController
-public class SubjectController extends BaseController {
+public class OpenSubjectController extends BaseController {
     @Autowired
     private SubjectService subjectService;