Jelajahi Sumber

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 tahun lalu
induk
melakukan
ec22a5479d

+ 54 - 38
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRepairDao.java

@@ -11,42 +11,58 @@ import java.util.Map;
 import java.util.Set;
 
 public interface StudentRepairDao extends com.ym.mec.common.dal.BaseDAO<Integer, StudentRepair> {
-     /**
-      * 获取学生列表
-      *
-      * @param params
-      * @return
-      */
-     List<BasicUserDto> getStudents(Map<String, Object> params);
-
-     /**
-      * 获取学生总数
-      *
-      * @param params
-      * @return
-      */
-     Integer getStudentsCount(Map<String, Object> params);
-
-     /**
-      * 获取学生乐团列表
-      *
-      * @param userIds
-      * @return
-      */
-     List<MusicGroup> getUserMusicGroup(@Param("userIds") Set<Integer> userIds);
-
-     /**
-      * 获取学生信息
-      *
-      * @param studentId
-      * @return
-      */
-     BasicUserDto getStudentInfo(@Param("studentId") Integer studentId);
-
-     /**
-      * 获取维修单信息
-      * @param id
-      * @return
-      */
-     StudentRepair getRepairInfo(@Param("id") Integer id);
+    /**
+     * 获取学生列表
+     *
+     * @param params
+     * @return
+     */
+    List<BasicUserDto> getStudents(Map<String, Object> params);
+
+    /**
+     * 获取学生总数
+     *
+     * @param params
+     * @return
+     */
+    Integer getStudentsCount(Map<String, Object> params);
+
+    /**
+     * 获取学生乐团列表
+     *
+     * @param userIds
+     * @return
+     */
+    List<MusicGroup> getUserMusicGroup(@Param("userIds") Set<Integer> userIds);
+
+    /**
+     * 获取学生信息
+     *
+     * @param studentId
+     * @return
+     */
+    BasicUserDto getStudentInfo(@Param("studentId") Integer studentId);
+
+    /**
+     * 获取维修单信息
+     *
+     * @param id
+     * @return
+     */
+    StudentRepair getRepairInfo(@Param("id") Integer id);
+
+    /**
+     * 获取乐团的维修技师
+     *
+     * @param studentId
+     * @return
+     */
+    BasicUserDto getStudentMusicGroupRepairer(@Param("studentId") Integer studentId);
+
+    /**
+     * 获取获取一个分部的维修技师
+     * @param organId
+     * @return
+     */
+    BasicUserDto getStudentOrganRepairer(@Param("organId") Integer organId);
 }

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRepairService.java

@@ -46,4 +46,18 @@ public interface StudentRepairService extends BaseService<Integer, StudentRepair
      * @return
      */
     StudentRepair getRepairInfo(Integer id);
+
+    /**
+     * 支付维修单
+     * @param repairInfo
+     * @return
+     */
+    Map payRepair(StudentRepair repairInfo) throws Exception;
+
+    /**
+     * 获取学生维修技师信息
+     * @param studentId
+     * @return
+     */
+    BasicUserDto getStudentRepairer(Integer studentId,Integer organId);
 }

+ 95 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -164,7 +164,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void repairSuccess(Integer id, String description,Integer repairStatus) {
+    public void repairSuccess(Integer id, String description, Integer repairStatus) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
@@ -173,7 +173,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         if (studentRepair == null) {
             throw new BizException("维修信息不存在");
         }
-        if(repairStatus != null){
+        if (repairStatus != null) {
             studentRepair.setRepairStatus(1);
             studentRepair.setFinishTime(new Date());
         }
@@ -193,4 +193,97 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         return studentRepairDao.getRepairInfo(id);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map payRepair(StudentRepair repairInfo) throws Exception {
+        if (repairInfo.getSendType().equals(1) &&
+                (repairInfo.getContactName() == null || repairInfo.getContactName().isEmpty()) &&
+                (repairInfo.getContactMobile() == null || repairInfo.getContactMobile().isEmpty()) &&
+                (repairInfo.getAddress() == null || repairInfo.getAddress().isEmpty())
+        ) {
+            throw new BizException("邮寄信息必填");
+        }
+        Date date = new Date();
+        StudentRepair studentRepair = studentRepairDao.get(repairInfo.getId());
+        BigDecimal amount = studentRepair.getAmount();
+        String orderNo = idGeneratorService.generatorId("payment") + "";
+        studentRepair.setTransNo(orderNo);
+        studentRepair.setRepairStatus(0);
+        studentRepair.setPayStatus(1);
+        studentRepair.setSendType(repairInfo.getSendType());
+        studentRepair.setContactName(repairInfo.getContactName());
+        studentRepair.setContactMobile(repairInfo.getContactMobile());
+        studentRepair.setAddress(repairInfo.getAddress());
+        studentRepair.setUpdateTime(date);
+        studentRepairDao.update(repairInfo);
+
+        String channelType = "";
+
+        StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
+        studentPaymentOrder.setUserId(studentRepair.getStudentId());
+        studentPaymentOrder.setGroupType(GroupType.REPAIR);
+        studentPaymentOrder.setOrderNo(orderNo);
+        studentPaymentOrder.setType(OrderTypeEnum.REPAIR);
+        studentPaymentOrder.setExpectAmount(amount);
+        studentPaymentOrder.setActualAmount(amount);
+        studentPaymentOrder.setStatus(DealStatusEnum.ING);
+        studentPaymentOrder.setMusicGroupId(studentRepair.getId().toString());
+        studentPaymentOrder.setPaymentChannel("BALANCE");
+        studentPaymentOrder.setUpdateTime(date);
+        studentPaymentOrder.setOrganId(studentRepair.getOrganId());
+        studentPaymentOrder.setRoutingOrganId(studentRepair.getOrganId());
+
+        studentPaymentOrderService.insert(studentPaymentOrder);
+        studentPaymentOrder.setVersion(0);
+
+        if (amount.compareTo(BigDecimal.ZERO) == 0) {
+            Map<String, String> notifyMap = new HashMap<>();
+            notifyMap.put("tradeState", "1");
+            notifyMap.put("merOrderNo", studentPaymentOrder.getOrderNo());
+            notifyMap.put("channelType", channelType);
+            notifyMap.put("orderNo", "");
+            studentPaymentOrderService.updateOrder(notifyMap);
+            return notifyMap;
+        }
+
+        String baseApiUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+
+        Map<String, BigDecimal> classFee = new HashMap<>();
+        classFee.put("course", BigDecimal.ZERO);
+        classFee.put("instrument", BigDecimal.ZERO);
+        classFee.put("accessories", BigDecimal.ZERO);
+        classFee.put("other", amount);
+
+        Map payMap = payService.getPayMap(
+                amount,
+                orderNo,
+                baseApiUrl + "/api-student/studentOrder/notify",
+                baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
+                "乐器维修",
+                "乐器维修",
+                studentRepair.getStudentId(),
+                classFee,
+                studentRepair.getOrganId()
+        );
+
+        Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
+        studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
+        studentPaymentOrder.setComAmount(routingFee.get("COM"));
+        studentPaymentOrder.setPerAmount(routingFee.get("PER"));
+        studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
+        studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
+        studentPaymentOrder.setUpdateTime(date);
+        studentPaymentOrderService.update(studentPaymentOrder);
+        return payMap;
+    }
+
+    @Override
+    public BasicUserDto getStudentRepairer(Integer studentId, Integer organId) {
+        BasicUserDto repairer = studentRepairDao.getStudentMusicGroupRepairer(studentId);
+        if (repairer == null) {
+            repairer = studentRepairDao.getStudentOrganRepairer(organId);
+        }
+        return repairer;
+    }
+
 }

+ 32 - 6
mec-biz/src/main/resources/config/mybatis/StudentRepairMapper.xml

@@ -31,7 +31,9 @@
     </resultMap>
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="StudentRepair">
-        SELECT * FROM student_repair WHERE id_=#{id}
+        SELECT *
+        FROM student_repair
+        WHERE id_ = #{id}
     </select>
 
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentRepair" useGeneratedKeys="true" keyColumn="id"
@@ -130,7 +132,7 @@
         WHERE FIND_IN_SET(organ_id_,#{organIdList})
         AND user_type_ LIKE '%STUDENT%'
         <if test="search">
-            AND (username_ LIKE #{search}'%' OR phone_ LIKE #{search}'%')
+            AND (username_ LIKE CONCAT(#{search},'%') OR phone_ LIKE CONCAT(#{search},'%'))
         </if>
         AND id_ NOT IN (
         SELECT cssp.user_id_
@@ -146,7 +148,7 @@
         WHERE FIND_IN_SET(organ_id_,#{organIdList})
         AND user_type_ LIKE '%STUDENT%'
         <if test="search">
-            AND (username_ LIKE #{search}'%' OR phone_ LIKE #{search}'%')
+            AND (username_ LIKE CONCAT(#{search},'%') OR phone_ LIKE CONCAT(#{search},'%'))
         </if>
         AND id_ NOT IN (
         SELECT cssp.user_id_
@@ -227,9 +229,33 @@
     </select>
 
     <select id="getRepairInfo" resultMap="StudentRepair">
-        SELECT sr.*,su.phone_ employee_phone_,e.contact_address_ employee_address_ FROM student_repair sr
-        LEFT JOIN sys_user su ON su.id_=sr.employee_id_
-        LEFT JOIN employee e ON sr.employee_id_ = e.user_id_
+        SELECT sr.*, su.phone_ employee_phone_, e.contact_address_ employee_address_
+        FROM student_repair sr
+                 LEFT JOIN sys_user su ON su.id_ = sr.employee_id_
+                 LEFT JOIN employee e ON sr.employee_id_ = e.user_id_
         WHERE sr.id_ = #{id}
     </select>
+
+    <select id="getStudentMusicGroupRepairer" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
+        SELECT su.real_name_ username_, su.id_ user_id_, su.avatar_ head_url_
+        FROM music_group mg
+                 LEFT JOIN student_registration sr on sr.music_group_id_ = mg.id_
+                 LEFT JOIN sys_user su ON su.id_ = sr.id_
+        WHERE sr.user_id_ = #{studentId}
+          AND mg.status_ = 'PROGRESS'
+          AND mg.repair_user_id_ IS NOT NULL
+        ORDER BY id_ DESC
+        LIMIT 1
+    </select>
+
+    <select id="getStudentOrganRepairer" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
+        SELECT su.real_name_ username_, su.id_ user_id_, su.avatar_ head_url_
+        FROM employee e
+                 LEFT JOIN sys_user su ON su.id_ = e.user_id_
+                 LEFT JOIN sys_user_role sur ON sur.user_id_ = su.id_
+        WHERE FIND_IN_SET(#{organId}, e.organ_id_list_)
+          AND sur.role_id_ = 37
+        ORDER BY RAND()
+        LIMIT 1
+    </select>
 </mapper>

+ 20 - 0
mec-student/src/main/java/com/ym/mec/student/controller/RepairController.java

@@ -57,5 +57,25 @@ public class RepairController extends BaseController {
         return succeed(repairInfo);
     }
 
+    @ApiOperation("支付维修单")
+    @PostMapping(value = "/payRepair")
+    public HttpResponseResult payRepair(StudentRepair repairInfo) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(studentRepairService.payRepair(repairInfo));
+    }
+
+    @ApiOperation("获取维修技师信息")
+    @PostMapping(value = "/getRepairer")
+    public HttpResponseResult getRepairer() throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(studentRepairService.getStudentRepairer(sysUser.getId(),sysUser.getOrganId()));
+    }
+
 
 }