Explorar o código

Merge remote-tracking branch 'origin/master'

Joburgess %!s(int64=5) %!d(string=hai) anos
pai
achega
064cb1604e

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherCloseDto.java

@@ -40,12 +40,23 @@ public class TeacherCloseDto {
     @ApiModelProperty(value = "实际结算薪水")
     private BigDecimal actualSalary;
 
+    @ApiModelProperty(value = "预计结算薪水")
+    private BigDecimal expectSalary;
+
     @ApiModelProperty(value = "实际结算时间")
     private Date settlementTime;
 
     @ApiModelProperty(value = "补贴")
     private BigDecimal subsidy;
 
+    public BigDecimal getExpectSalary() {
+        return expectSalary;
+    }
+
+    public void setExpectSalary(BigDecimal expectSalary) {
+        this.expectSalary = expectSalary;
+    }
+
     public Integer getCourseScheduleId() {
         return courseScheduleId;
     }

+ 35 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentOrder.java

@@ -105,9 +105,18 @@ public class StudentPaymentOrder {
 	
 	private SysUser user = new SysUser();
 
-
+	//零星费用
 	private BigDecimal sporadicAmount;
-	
+
+	//乐器费用
+	private BigDecimal musicalFee;
+
+	//教辅费用
+	private BigDecimal teachingFee;
+
+	//手续费
+	private BigDecimal transferFee;
+
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -319,4 +328,28 @@ public class StudentPaymentOrder {
 	public void setSporadicAmount(BigDecimal sporadicAmount) {
 		this.sporadicAmount = sporadicAmount;
 	}
+
+	public BigDecimal getMusicalFee() {
+		return musicalFee;
+	}
+
+	public void setMusicalFee(BigDecimal musicalFee) {
+		this.musicalFee = musicalFee;
+	}
+
+	public BigDecimal getTeachingFee() {
+		return teachingFee;
+	}
+
+	public void setTeachingFee(BigDecimal teachingFee) {
+		this.teachingFee = teachingFee;
+	}
+
+	public BigDecimal getTransferFee() {
+		return transferFee;
+	}
+
+	public void setTransferFee(BigDecimal transferFee) {
+		this.transferFee = transferFee;
+	}
 }

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -115,6 +115,10 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
                 String channelType = rpMap.get("channelType").equals("1") ? "WXPay" : (rpMap.get("channelType").equals("2") ? "Alipay" : "quickPay");
                 rpMap.put("channelType", channelType);
 
+                if (orderNoList.contains(rpMap.get("merOrderNo"))) {
+                    orderNoList.remove(rpMap.get("merOrderNo"));
+                }
+
                 if (Arrays.asList(statusArr).contains(rpMap.get("tradeState"))) {
                     try {
                         updateOrder(rpMap); //更新订单
@@ -123,9 +127,6 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
                         continue;
                     }
                 }
-                if (orderNoList.contains(rpMap.get("merOrderNo"))) {
-                    orderNoList.remove(rpMap.get("merOrderNo"));
-                }
             }
             closeOrders(orderNoList); //关闭订单
         }

+ 8 - 6
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -557,16 +557,18 @@
     </resultMap>
     <select id="queryStudentPer" resultMap="StudentRegisterPerDtoMap">
         SELECT a.name_ organ_name_,a.num student_num_,b.num per_num_,ifnull(b.num,0)*100/a.num per_ FROM (
-        SELECT b.name_,COUNT(a.id_) num,b.id_ FROM sys_user a LEFT JOIN organization b on a.organ_id_=b.id_
+        SELECT b.name_,COUNT(a.id_) num,b.id_ FROM sys_user a LEFT JOIN organization b ON a.organ_id_=b.id_
         WHERE a.id_ IN(
-        SELECT b.id_ FROM course_schedule_student_payment a LEFT JOIN sys_user b ON a.user_id_=b.id_ WHERE b.user_type_='STUDENT' GROUP BY a.user_id_,b.organ_id_ )
-        AND b.del_flag_ = 0
+        SELECT b.id_ FROM course_schedule_student_payment a LEFT JOIN sys_user b ON a.user_id_=b.id_
+        LEFT JOIN course_schedule c ON a.course_schedule_id_=c.id_ WHERE b.user_type_='STUDENT' AND c.status_ IN('UNDERWAY','NOT_START')
+        GROUP BY a.user_id_,b.organ_id_ )
         GROUP BY organ_id_) a
         LEFT JOIN
-        (SELECT b.name_,COUNT(a.id_) num,b.id_ FROM sys_user a LEFT JOIN organization b on a.organ_id_=b.id_
+        (SELECT b.name_,COUNT(a.id_) num,b.id_ FROM sys_user a LEFT JOIN organization b ON a.organ_id_=b.id_
         WHERE a.id_ IN(
-        SELECT b.id_ FROM course_schedule_student_payment a LEFT JOIN sys_user b ON a.user_id_=b.id_ WHERE b.user_type_='STUDENT' AND password_ IS NOT NULL GROUP BY a.user_id_,b.organ_id_ )
-        AND b.del_flag_ = 0
+        SELECT b.id_ FROM course_schedule_student_payment a LEFT JOIN sys_user b ON a.user_id_=b.id_
+        LEFT JOIN course_schedule c ON a.course_schedule_id_ = c.id_
+        WHERE b.user_type_='STUDENT' AND password_ IS NOT NULL AND c.status_ IN('UNDERWAY','NOT_START') GROUP BY a.user_id_,b.organ_id_ )
         GROUP BY organ_id_) b
         ON a.id_=b.id_
         WHERE a.name_ IS NOT NULL

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -307,6 +307,7 @@
         <result property="signInStatus" column="sign_in_status_"/>
         <result property="signOutStatus" column="sign_out_status_"/>
         <result property="actualSalary" column="actual_salary_"/>
+        <result property="expectSalary" column="expect_salary_"/>
         <result property="subsidy" column="subsidy_"/>
         <result property="settlementTime" column="settlement_time_"/>
         <result property="courseScheduleId" column="course_schedule_id_"/>
@@ -316,7 +317,7 @@
         csts.teacher_role_,ta.current_class_times_,cg.total_class_times_,
         IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) sign_in_status_,
         IF(ta.sign_out_status_ IS NULL,3,ta.sign_out_status_) sign_out_status_,
-        csts.actual_salary_,csts.settlement_time_,csts.subsidy_
+        csts.actual_salary_,csts.settlement_time_,csts.subsidy_,csts.expect_salary_
         FROM course_schedule cs
         LEFT JOIN course_schedule_teacher_salary csts ON cs.id_ = csts.course_schedule_id_
         LEFT JOIN teacher_attendance ta ON cs.id_ = ta.course_schedule_id_ AND ta.teacher_id_ = csts.user_id_

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/controller/SmsCodeController.java

@@ -68,7 +68,7 @@ public class SmsCodeController extends BaseController {
         }
         String redisKey = Constants.KAPTCHA_SESSION_KEY + phone;
         if(redisTemplate.hasKey(redisKey)){
-            if(StringUtils.equals(redisTemplate.opsForValue().get(redisKey),code)){
+            if(StringUtils.equalsIgnoreCase(redisTemplate.opsForValue().get(redisKey),code)){
                 return succeed();
             }
         }

+ 2 - 1
mec-student/src/main/java/com/ym/mec/student/controller/SmsCodeController.java

@@ -3,6 +3,7 @@ package com.ym.mec.student.controller;
 import com.google.code.kaptcha.Constants;
 import com.google.code.kaptcha.Producer;
 import com.google.code.kaptcha.servlet.KaptchaServlet;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.service.SmsCodeService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
@@ -69,7 +70,7 @@ public class SmsCodeController extends BaseController {
         }
         String redisKey = Constants.KAPTCHA_SESSION_KEY + phone;
         if(redisTemplate.hasKey(redisKey)){
-            if(StringUtils.equals(redisTemplate.opsForValue().get(redisKey),code)){
+            if(StringUtils.equalsIgnoreCase(redisTemplate.opsForValue().get(redisKey),code)){
                 return succeed();
             }
         }

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/SmsCodeController.java

@@ -68,7 +68,7 @@ public class SmsCodeController extends BaseController {
         }
         String redisKey = Constants.KAPTCHA_SESSION_KEY + phone;
         if(redisTemplate.hasKey(redisKey)){
-            if(StringUtils.equals(redisTemplate.opsForValue().get(redisKey),code)){
+            if(StringUtils.equalsIgnoreCase(redisTemplate.opsForValue().get(redisKey),code)){
                 return succeed();
             }
         }

+ 25 - 3
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -3,6 +3,7 @@ package com.ym.mec.web.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
 import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
 import com.ym.mec.biz.dal.dto.StudentHasCourseDto;
 import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
@@ -10,7 +11,9 @@ import com.ym.mec.biz.dal.dto.musicalListDetailDto;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
@@ -56,6 +59,8 @@ public class ExportController extends BaseController {
     private EmployeeDao employeeDao;
     @Autowired
     private StudentPaymentOrderService studentPaymentOrderService;
+    @Autowired
+    private StudentPaymentOrderDetailDao studentPaymentOrderDetailDao;
 
     @ApiOperation(value = "导出学员是否有课")
     @PostMapping("export/studentHasCourse")
@@ -153,8 +158,8 @@ public class ExportController extends BaseController {
     }
 
     @ApiOperation(value = "订单列表导出")
-    @RequestMapping("order/orderList")
-    @PreAuthorize("@pcs.hasPermissions('order/orderList')")
+    @RequestMapping("export/orderList")
+    @PreAuthorize("@pcs.hasPermissions('export/orderList')")
     public void orderList(StudentPaymentOrderQueryInfo queryInfo, HttpServletResponse response) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (!sysUser.getIsSuperAdmin()) {
@@ -177,18 +182,35 @@ public class ExportController extends BaseController {
                 row.setExpectAmount(perAmount.add(balancePaymentAmount));
                 row.setActualAmount(perAmount.add(balancePaymentAmount));
             }
+            BigDecimal transferFee = (row.getActualAmount().subtract(balancePaymentAmount).multiply(new BigDecimal(0.28)).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_UP);
+            row.setTransferFee(transferFee);
             if(row.getGroupType().equals(GroupType.SPORADIC)){
                 row.setSporadicAmount(row.getActualAmount());
                 row.setExpectAmount(BigDecimal.ZERO);
                 row.setActualAmount(BigDecimal.ZERO);
             }
+            List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailDao.findApplyOrderGoods(row.getId());
+            BigDecimal musicalFee = BigDecimal.ZERO;
+            BigDecimal teachingFee = BigDecimal.ZERO;
+            if(orderDetails.size() > 0) {
+                for (StudentPaymentOrderDetail orderDetail : orderDetails) {
+                    if (orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL)) {
+                        musicalFee =  musicalFee.add(orderDetail.getPrice());
+                    } else if (orderDetail.getType().equals(OrderDetailTypeEnum.ACCESSORIES) || orderDetail.getType().equals(OrderDetailTypeEnum.TEACHING)) {
+                        teachingFee =  teachingFee.add(orderDetail.getPrice());
+                    }
+                }
+            }
+            row.setMusicalFee(musicalFee);
+            row.setTeachingFee(teachingFee);
+
         }
 
         try {
             String[] header = {"序号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "支付金额", "到账时间",
             "关联乐团ID/VIP课ID","课程形态","押金","乐器","教辅费用","零星收款费用","零星收款类别","手续费","专业","分部","单位/学校","备注"};
             String[] body = {"id", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "actualAmount", "payTime", "musicGroupId",
-            "groupType",    "groupType","groupType","groupType","SporadicAmount","SporadicAmount","groupType","groupType","groupType","groupType","memo"};
+            "groupType","musicalFee","musicalFee","teachingFee","SporadicAmount","SporadicAmount","transferFee","groupType","groupType","groupType","memo"};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, studentPaymentOrderPageInfo.getRows());
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");