Browse Source

fengji 团练宝缴费激活

yanite 3 years ago
parent
commit
0b3f324a6b

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CloudTeacherOrderDao.java

@@ -7,7 +7,9 @@ import java.util.Map;
 import java.util.Set;
 
 import com.ym.mec.biz.dal.dto.CloudTeacherActiveTargetDetailDto;
+import com.ym.mec.biz.dal.entity.CloudTeacherStudent;
 import com.ym.mec.biz.dal.page.CloudTeacherActiveQueryInfo;
+import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
 import org.apache.ibatis.annotations.Param;
 
 import com.ym.mec.biz.dal.dto.CloudTeacherOrderDto;
@@ -84,8 +86,13 @@ public interface CloudTeacherOrderDao extends BaseDAO<Long, CloudTeacherOrder> {
 
     /**
      * 获取学员云教练活动金额
+     * @MapKey
      * @param studentIds
      * @return
      */
     List<Map<Long, BigDecimal>> queryActiveAmountMap(@Param("studentIds") List<Integer> studentIds);
+
+    int findInactiveCount(Map<String, Object> params);
+
+    List<CloudTeacherStudent> queryInactive(Map<String, Object> params);
 }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CloudTeacherOrderQueryInfo.java

@@ -12,6 +12,12 @@ public class CloudTeacherOrderQueryInfo extends QueryInfo {
 	@ApiModelProperty(value = "学生编号", required = false)
 	private Integer studentId;
 
+	@ApiModelProperty(value = "学员姓名/编号/电话", required = false)
+	private String queryCondition;
+
+	@ApiModelProperty(value = "声部Id", required = false)
+	private Integer subjectId;
+
 	public Integer getStatus() {
 		return status;
 	}
@@ -27,4 +33,20 @@ public class CloudTeacherOrderQueryInfo extends QueryInfo {
 	public void setStudentId(Integer studentId) {
 		this.studentId = studentId;
 	}
+
+	public String getQueryCondition() {
+		return queryCondition;
+	}
+
+	public void setQueryCondition(String queryCondition) {
+		this.queryCondition = queryCondition;
+	}
+
+	public Integer getSubjectId() {
+		return subjectId;
+	}
+
+	public void setSubjectId(Integer subjectId) {
+		this.subjectId = subjectId;
+	}
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CloudTeacherOrderService.java

@@ -3,7 +3,10 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.dto.CloudTeacherOrderDto;
 import com.ym.mec.biz.dal.entity.CloudTeacher;
 import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
+import com.ym.mec.biz.dal.entity.CloudTeacherStudent;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.math.BigDecimal;
@@ -14,6 +17,15 @@ import java.util.Set;
 
 public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacherOrder> {
 
+    /**
+     * 查询未激活用户
+     */
+    PageInfo<CloudTeacherStudent> queryInactive(CloudTeacherOrderQueryInfo cloudTeacherOrderQueryInfo);
+
+    /**
+     * 机构付款指定学生并激活
+     */
+    Boolean pay(List<CloudTeacherStudent> orders);
 
     /**
      * 将订单详情云教练加入云教练购买列表

+ 58 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudTeacherOrderServiceImpl.java

@@ -1,12 +1,16 @@
 package com.ym.mec.biz.service.impl;
 
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
+import com.ym.mec.biz.service.TenantConfigService;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -15,10 +19,6 @@ import com.ym.mec.biz.dal.dao.CloudTeacherDao;
 import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao;
 import com.ym.mec.biz.dal.dao.CourseScheduleDao;
 import com.ym.mec.biz.dal.dto.CloudTeacherOrderDto;
-import com.ym.mec.biz.dal.entity.CloudTeacher;
-import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.PeriodEnum;
 import com.ym.mec.biz.service.CloudTeacherOrderService;
 import com.ym.mec.biz.service.StudentService;
@@ -40,6 +40,8 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
     @Autowired
     private StudentService studentService;
 
+    @Autowired
+    private TenantConfigService tenantConfigService;
 
     @Override
     public BaseDAO<Long, CloudTeacherOrder> getDAO() {
@@ -47,6 +49,54 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
     }
 
     @Override
+    public PageInfo<CloudTeacherStudent> queryInactive(CloudTeacherOrderQueryInfo queryInfo) {
+        PageInfo<CloudTeacherStudent> pageInfo = new PageInfo<CloudTeacherStudent>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+        List<CloudTeacherStudent> dataList = null;
+        int count = cloudTeacherOrderDao.findInactiveCount(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = cloudTeacherOrderDao.queryInactive(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<CloudTeacherStudent>();
+        }
+        pageInfo.setRows(dataList);
+
+        // List<TenantConfig> tenCfg = tenantConfigService.list(new Wrapper<TenantConfig>());
+        for (CloudTeacherStudent cst: dataList) {
+            if (cst.getTime() == null) continue;
+            TenantConfig tenantConfig = tenantConfigService.getById(cst.getTenantId());
+            JSONObject cfg = JSON.parseObject(tenantConfig.getConfig());
+            JSONObject memberConfig = (JSONObject) cfg.get("member_config");
+            if (cst.getType() == 1) {
+                double divide = memberConfig.getDouble("month_divide");
+                cst.setPrice(divide * cst.getTime());
+            } else if (cst.getType() == 2) { // 月
+                double divide = memberConfig.getDouble("month_divide");
+                cst.setPrice(divide * cst.getTime());
+            } else if (cst.getType() == 3) {
+                double divide = memberConfig.getDouble("quarter_divide");
+                cst.setPrice(divide * cst.getTime());
+            } else if (cst.getType() == 4) {
+                double divide = memberConfig.getDouble("half_year_divide");
+                cst.setPrice(divide * cst.getTime());
+            } else if (cst.getType() == 5) {
+                double divide = memberConfig.getDouble("year_divide");
+                cst.setPrice(divide * cst.getTime());
+            }
+        }
+        return pageInfo;
+    }
+
+    @Override
+    public Boolean pay(List<CloudTeacherStudent> orders) {
+        return true;
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
 	public Boolean addOrderDetail2CloudTeacher(StudentPaymentOrder order,BigDecimal cloudTeacherFee) {
 		CloudTeacherOrder cloudTeacherOrder = cloudTeacherOrderDao.queryByOrderId(order.getId());

+ 50 - 0
mec-biz/src/main/resources/config/mybatis/CloudTeacherOrderMapper.xml

@@ -275,6 +275,56 @@
         </if>
         GROUP BY student_id_
     </select>
+
+    <select id="queryInactive" resultType="com.ym.mec.biz.dal.entity.CloudTeacherStudent">
+        select
+               cto.id_ as cloudTeacherOrderId,
+               cto.student_id_ as studentId,
+               cto.type_ as type,
+               case cto.type_
+                   when 1 then '天'
+                   when 2 then '月'
+                   when 3 then '季'
+                   when 4 then '半年'
+                   when 5 then '年'
+                   else ''
+               end as typeLabel,
+               cto.time_ as time,
+               sj.name as subject,
+               u.tenant_id_ as tenantId,
+               u.username_ as name,
+               u.phone_ as phone
+        from cloud_teacher_order cto
+        left join student s on cto.student_id_ = s.user_id_
+        left join sys_user u on cto.student_id_ = u.id_
+        left join subject sj on s.subject_id_list_ = sj.id_
+        <where>
+            cto.status_ = #{status}
+            <if test="queryCondition != nul and queryCondition != ''">
+                AND (u.username_ LIKE CONCAT('%', #{queryCondition}, '%') or u.phone_ = #{queryCondition} or u.id_ = #{queryCondition})
+            </if>
+            <if test="subjectId">
+                AND (s.subject_id_list_ = #{subjectId})
+            </if>
+        </where>
+        <include refid="global.limit"/>
+    </select>
+
+    <select id="findInactiveCount" resultType="java.lang.Integer">
+        select count(1) from cloud_teacher_order cto
+        left join student s on cto.student_id_ = s.user_id_
+        left join sys_user u on cto.student_id_ = u.id_
+        <where>
+            cto.status_ = #{status}
+            <if test="queryCondition != nul and queryCondition != ''">
+                AND (u.username_ LIKE CONCAT('%', #{queryCondition}, '%') or u.phone_ = #{queryCondition} or u.id_ = #{queryCondition})
+            </if>
+            <if test="subjectId">
+                AND (s.subject_id_list_ = #{subjectId})
+            </if>
+        </where>
+    </select>
+
     <sql id="queryCloudTeacherActiveDetailSql">
         <where>
             cto.status_ != 0 AND cto.active_remark_ = '202109'

+ 6 - 6
mec-web/src/main/java/com/ym/mec/web/controller/SysManualController.java

@@ -1,16 +1,18 @@
 package com.ym.mec.web.controller;
 
-
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ym.mec.biz.dal.entity.SysManual;
 import com.ym.mec.biz.dal.page.SysManualQueryInfo;
 import com.ym.mec.biz.service.SysManualService;
+import com.ym.mec.common.page.QueryWrapperUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import com.ym.mec.common.controller.BaseController;
 
+import java.util.List;
+
 /**
  * (SysManual)表控制层
  *
@@ -31,11 +33,9 @@ public class SysManualController extends BaseController {
     @ApiOperation(value = "查询操作手册")
     @GetMapping("/list")
     public Object list(SysManualQueryInfo queryInfo) {
-        if (queryInfo.getMenuId() != 0) {
-            return succeed(sysManualService.list(new QueryWrapper<SysManual>().eq("menu_id_", queryInfo.getMenuId())));
-        } else {
-            return succeed(sysManualService.list(new QueryWrapper<SysManual>()));
-        }
+        QueryWrapper<SysManual> queryWrapper = new QueryWrapperUtil<SysManual>().hasEq("menu_id_", queryInfo.getMenuId()).queryWrapper();
+        List<SysManual> result = sysManualService.list(queryWrapper);
+        return succeed(result);
     }
 
     @ApiOperation(value = "新增帮助手册")