Bläddra i källkod

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

yonge 3 år sedan
förälder
incheckning
935a22122c
17 ändrade filer med 442 tillägg och 123 borttagningar
  1. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PlatformProductDao.java
  2. 43 36
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java
  3. 182 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/StudentPaymentOrderVo.java
  4. 0 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  5. 21 13
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java
  6. 0 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  7. 26 16
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PlatformProductServiceImpl.java
  8. 0 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  9. 48 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  10. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysCouponCodeServiceImpl.java
  11. 22 24
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java
  12. 0 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantOrderRecordServiceImpl.java
  13. 0 3
      mec-biz/src/main/resources/config/mybatis/CloudTeacherOrderMapper.xml
  14. 11 0
      mec-biz/src/main/resources/config/mybatis/PlatformProductMapper.xml
  15. 53 0
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  16. 25 4
      mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java
  17. 0 7
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PlatformProductDao.java

@@ -33,4 +33,14 @@ public interface PlatformProductDao extends BaseMapper<PlatformProduct> {
      */
     List<Map<Integer, Integer>> queryTenantByMultiId(@Param("productId") Integer productId, @Param("serveId") Integer serveId, @Param("tenantId") Integer tenantId);
 
+
+    /**
+     * 批量添加角色和菜单关系
+     *
+     * @param roleId  角色id
+     * @param menuIds 菜单集合
+     */
+    int batchInsertRoleMenu(@Param("roleId") Integer roleId, @Param("menuIds") List<Integer> menuIds, @Param("tenantId") Integer tenantId);
+
+
 }

+ 43 - 36
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -1,30 +1,21 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
-import org.apache.ibatis.annotations.Param;
-
-import com.ym.mec.biz.dal.dto.BasicUserDto;
-import com.ym.mec.biz.dal.dto.Mapper;
-import com.ym.mec.biz.dal.dto.OrderByTypeExportDto;
-import com.ym.mec.biz.dal.dto.OrderStatisDto;
-import com.ym.mec.biz.dal.dto.SporadicChargeInfoDto;
-import com.ym.mec.biz.dal.dto.StudentPaymentOrderDto;
-import com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto;
-import com.ym.mec.biz.dal.dto.StudentVipDouble11Dto;
-import com.ym.mec.biz.dal.dto.UserGoodsDto;
-import com.ym.mec.biz.dal.entity.Goods;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.vo.StudentPaymentOrderVo;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrder> {
 
@@ -79,7 +70,7 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      * @return
      */
     List<StudentPaymentOrder> findMusicGroupApplyOrderByStatus(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId,
-                                                         @Param("status") DealStatusEnum status);
+                                                               @Param("status") DealStatusEnum status);
 
     /**
      * 根据订单号查询订单
@@ -88,15 +79,16 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      * @return
      */
     StudentPaymentOrder findOrderByOrderNo(@Param("orderNo") String orderNo);
-    
+
     /**
      * 根据批次号查询
-     * @param userId 用户编号
+     *
+     * @param userId  用户编号
      * @param batchNo 批次号
-     * @param status 状态
+     * @param status  状态
      * @return
      */
-    List<StudentPaymentOrder> queryByBatchNo(@Param("userId")Integer userId, @Param("batchNo") String batchNo, @Param("status") DealStatusEnum status);
+    List<StudentPaymentOrder> queryByBatchNo(@Param("userId") Integer userId, @Param("batchNo") String batchNo, @Param("status") DealStatusEnum status);
 
     /**
      * 查询指定交易状态的乐团报名的订单信息
@@ -392,16 +384,18 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      * @return
      */
     StudentPaymentOrder getUserReplacementIngOrder(@Param("userId") Integer userId, @Param("replacementId") Integer replacementId);
-    
+
     /**
      * 批量更新
+     *
      * @param studentPaymentOrderList
      * @return
      */
     int batchUpdate(@Param("studentPaymentOrderList") List<StudentPaymentOrder> studentPaymentOrderList);
-    
+
     /**
      * 查询乐团报名的总收入
+     *
      * @param musicGroupIds
      * @return
      */
@@ -409,6 +403,7 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
 
     /**
      * 获取学员购买的云教练活动订单
+     *
      * @param userId
      * @param activeRemark
      * @param remark
@@ -420,6 +415,7 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
 
     /**
      * 获取购买了乐器的报名订单
+     *
      * @param musicGroupId
      * @param studentId
      * @return
@@ -427,22 +423,33 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
     Integer getOrderIdByMusical(@Param("musicGroupId") String musicGroupId, @Param("studentId") Integer studentId);
 
     /**
-    * @description: 根据课程组编号获取学员的订单列表
      * @param vipGroupId
-    * @return java.util.Map<java.lang.Integer,java.math.BigDecimal>
-    * @author zx
-    * @date 2021/10/20 18:56
-    */
+     * @return java.util.Map<java.lang.Integer, java.math.BigDecimal>
+     * @description: 根据课程组编号获取学员的订单列表
+     * @author zx
+     * @date 2021/10/20 18:56
+     */
     List<Map<Integer, BigDecimal>> queryStudentCourseAmountMap(Long vipGroupId);
 
     /**
-    * @description: 获取学员购买的双十一活动信息
      * @param userId
-    * @return java.lang.Object
-    * @author zx
-    * @date 2021/10/27 10:27
-    */
+     * @return java.lang.Object
+     * @description: 获取学员购买的双十一活动信息
+     * @author zx
+     * @date 2021/10/27 10:27
+     */
     String queryStudentDoubleEleven2021Order(Integer userId);
 
     List<StudentPaymentOrder> findByCalenderId(@Param("calenderId") Long calenderId, @Param("userId") Integer userId);
+
+    /**
+     * 学生端-查询学生订单
+     *
+     * @param page  分页信息
+     * @param param 查询参数
+     */
+    <T> IPage<T> queryStudentOrderPage(Page<T> page, @Param("param") Map<String, Object> param);
+
+    StudentPaymentOrderVo queryOrderDetail(@Param("orderNo") String orderNo);
+
 }

+ 182 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/StudentPaymentOrderVo.java

@@ -0,0 +1,182 @@
+package com.ym.mec.biz.dal.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 学生查询订单详情返回类
+ *
+ * @author hgw
+ * Created by 2022-01-12
+ */
+public class StudentPaymentOrderVo {
+
+    /**
+     * 订单编号
+     */
+    private String orderNo;
+    /**
+     * 订单类型
+     */
+    private String orderType;
+    /**
+     * 订单类型-枚举的code
+     */
+    private String orderTypeCode;
+
+    /**
+     * 总金额
+     */
+    private String totalAmount;
+    /**
+     * 现金
+     */
+    private BigDecimal actualAmount;
+    /**
+     * 余额
+     */
+    private BigDecimal balanceAmount;
+    /**
+     * 总优惠金额
+     */
+    private BigDecimal totalRemitFee;
+    /**
+     * 订单时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /**
+     * 支付时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date payTime;
+    /**
+     * 三方订单好
+     */
+    private String transNo;
+
+    /**
+     * 明细
+     */
+    private List<StudentPaymentDetailVo> list;
+
+    public static class StudentPaymentDetailVo {
+        /**
+         * 商品名称
+         */
+        private String goodsName;
+        /**
+         * 金额-扣除优惠券后的
+         */
+        private BigDecimal price;
+
+        public String getGoodsName() {
+            return goodsName;
+        }
+
+        public void setGoodsName(String goodsName) {
+            this.goodsName = OrderDetailTypeEnum.valueOf(goodsName).getMsg();
+        }
+
+        public BigDecimal getPrice() {
+            return price;
+        }
+
+        public void setPrice(BigDecimal price) {
+            this.price = price;
+        }
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public String getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(String orderType) {
+        this.orderType = OrderTypeEnum.valueOf(orderType).getMsg();
+    }
+
+    public String getTotalAmount() {
+        return totalAmount;
+    }
+
+    public void setTotalAmount(String totalAmount) {
+        this.totalAmount = totalAmount;
+    }
+
+    public BigDecimal getActualAmount() {
+        return actualAmount;
+    }
+
+    public void setActualAmount(BigDecimal actualAmount) {
+        this.actualAmount = actualAmount;
+    }
+
+    public BigDecimal getBalanceAmount() {
+        return balanceAmount;
+    }
+
+    public void setBalanceAmount(BigDecimal balanceAmount) {
+        this.balanceAmount = balanceAmount;
+    }
+
+    public BigDecimal getTotalRemitFee() {
+        return totalRemitFee;
+    }
+
+    public void setTotalRemitFee(BigDecimal totalRemitFee) {
+        this.totalRemitFee = totalRemitFee;
+    }
+
+    public List<StudentPaymentDetailVo> getList() {
+        return list;
+    }
+
+    public void setList(List<StudentPaymentDetailVo> list) {
+        this.list = list;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getPayTime() {
+        return payTime;
+    }
+
+    public void setPayTime(Date payTime) {
+        this.payTime = payTime;
+    }
+
+    public String getOrderTypeCode() {
+        return orderTypeCode;
+    }
+
+    public void setOrderTypeCode(String orderTypeCode) {
+        this.orderTypeCode = orderTypeCode;
+    }
+
+    public String getTransNo() {
+        return transNo;
+    }
+
+    public void setTransNo(String transNo) {
+        this.transNo = transNo;
+    }
+}

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -16,7 +16,6 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
 
 public interface MusicGroupService extends BaseService<String, MusicGroup> {
     /**

+ 21 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.enums.PayStatus;
 import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
+import com.ym.mec.biz.dal.vo.StudentPaymentOrderVo;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
@@ -23,7 +24,7 @@ import java.util.Map;
 
 public interface StudentPaymentOrderService extends BaseService<Long, StudentPaymentOrder> {
 
-    StudentPaymentOrder findByUserAndActive(Integer userId, Integer activeRemark, String remark,String status);
+    StudentPaymentOrder findByUserAndActive(Integer userId, Integer activeRemark, String remark, String status);
 
     Map createOrder(StudentPaymentOrder studentPaymentOrder, List<StudentPaymentOrderDetail> details, String payReceiver) throws Exception;
 
@@ -55,12 +56,13 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
      * @return
      */
     StudentPaymentOrder findOrderByOrderNo(String orderNo);
-    
+
     /**
      * 根据批次号查询
-     * @param userId 用户编号
+     *
+     * @param userId  用户编号
      * @param batchNo 批次号
-     * @param status 状态
+     * @param status  状态
      * @return
      */
     List<StudentPaymentOrder> queryByBatchNo(Integer userId, String batchNo, DealStatusEnum status);
@@ -156,13 +158,14 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
     StudentPaymentOrder getUserReplacementIngOrder(Integer userId, Integer replacementId);
 
     void callOrderCallBack(StudentPaymentOrder order) throws Exception;
-    
+
     int batchUpdate(List<StudentPaymentOrder> studentPaymentOrderList);
-    
+
     PayStatus queryPayStatus(String paymentChannel, String orderNo, String transNo) throws Exception;
 
     /**
      * 获取购买了乐器的报名订单
+     *
      * @param musicGroupId
      * @param studentId
      * @return
@@ -170,9 +173,9 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
     Integer getOrderIdByMusical(@Param("musicGroupId") String musicGroupId, @Param("studentId") Integer studentId);
 
     /**
-     * @description: 活动赠送课程,或者会员
      * @param vipGroupActivityId
      * @return void
+     * @description: 活动赠送课程,或者会员
      * @author zx
      * @date 2021/10/11 10:36
      */
@@ -183,12 +186,17 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
                          Integer teacherId);
 
     /**
-    * @description: 校验重复支付
      * @param order
- * @param repeatPay
-    * @return com.ym.mec.common.entity.HttpResponseResult
-    * @author zx
-    * @date 2021/12/29 14:50
-    */
+     * @param repeatPay
+     * @return com.ym.mec.common.entity.HttpResponseResult
+     * @description: 校验重复支付
+     * @author zx
+     * @date 2021/12/29 14:50
+     */
     HttpResponseResult checkRepeatPay(StudentPaymentOrder order, Boolean repeatPay) throws Exception;
+
+    PageInfo<StudentPaymentOrderVo> queryOrder(Map<String, Object> param) throws Exception;
+
+    StudentPaymentOrderVo queryOrderDetail(String orderNo);
+
 }

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -703,7 +703,6 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			three.setDesc(IndexErrorType.TEACHER_INFO.getMsg());
 			List<IndexErrInfoDto> threeChild = new ArrayList<>();
 
-			//课程时间安排异常
 			Integer userId = null;
 			if (onlyForRole) {
 				userId = sysUser.getId();

+ 26 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PlatformProductServiceImpl.java

@@ -18,6 +18,7 @@ import com.ym.mec.common.page.WrapperUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -37,6 +38,7 @@ public class PlatformProductServiceImpl extends ServiceImpl<PlatformProductDao,
      * 增加
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void addProduct(PlatformProductDto obj) {
         Integer userId = Optional.ofNullable(sysUserFeignService.queryUserInfo())
                 .map(SysUser::getId)
@@ -56,6 +58,7 @@ public class PlatformProductServiceImpl extends ServiceImpl<PlatformProductDao,
      * 修改
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void updateProduct(PlatformProductDto dto) {
         Optional.ofNullable(dto.getId()).orElseThrow(() -> new BizException("产品Id不能为空"));
         Integer userId = Optional.ofNullable(sysUserFeignService.queryUserInfo())
@@ -76,9 +79,6 @@ public class PlatformProductServiceImpl extends ServiceImpl<PlatformProductDao,
         baseMapper.updateByPrimaryKeySelective(platformProduct);
         //查询该产品有多少机构关联
         Map<Integer, Integer> map = queryTenantByMultiId(dto.getId(), null, null);
-        if (Objects.isNull(map)) {
-            return;
-        }
         //检查是否需要修改权限
         checkUpdateRole(dto.getMenuId(), sourceObj.getMenuId(), map);
     }
@@ -86,31 +86,40 @@ public class PlatformProductServiceImpl extends ServiceImpl<PlatformProductDao,
     /**
      * 检查哪些机构用了这个产品,需要修改对应的权限
      *
-     * @param afterMenuIds       修改后的的菜单id,用逗号隔开
-     * @param sourceMenuIds 修改之前的的菜单id,用逗号隔开
-     * @param map           Map<机构id,机构的管理员id> queryProductInTenant
+     * @param newMenuIds 修改后的的菜单id,用逗号隔开
+     * @param oldMenuIds 修改之前的的菜单id,用逗号隔开
+     * @param map        Map<机构id,机构的管理员id> queryProductInTenant
      */
-    public void checkUpdateRole(String afterMenuIds, String sourceMenuIds, Map<Integer, Integer> map) {
-        //需要删除的菜单id
-        List<Integer> deleteList = getList(sourceMenuIds);
+    @Transactional(rollbackFor = Exception.class)
+    public void checkUpdateRole(String newMenuIds, String oldMenuIds, Map<Integer, Integer> map) {
         //需要添加的菜单id
-        List<Integer> addList = getList(afterMenuIds);
+        List<Integer> newList = getList(newMenuIds);
+        //需要删除的菜单id
+        List<Integer> oldList = getList(oldMenuIds);
+        //合并修改权限
+        opsRoleMenu(map, newList, oldList);
+    }
+
+    private void opsRoleMenu(Map<Integer, Integer> map, List<Integer> newList, List<Integer> oldList) {
+        if (Objects.isNull(map)) {
+            return;
+        }
         //求新旧产品菜单的差异
-        WrapperUtil.listDifference(deleteList, addList);
+        WrapperUtil.listDifference(oldList, newList);
         //修改数据
         map.forEach((tenantId, uId) -> {
-            if (CollectionUtils.isNotEmpty(addList)) {
+            if (CollectionUtils.isNotEmpty(newList)) {
                 //uId查询机构管理员角色
                 List<Integer> roles = employeeDao.queryUserRole(uId);
                 //机构管理员只会有一个管理员角色
                 Integer adminRole = roles.get(0);
                 //给管理员角色添加dtoList菜单id
-                Lists.partition(addList, 50)
-                        .forEach(idList -> employeeDao.batchInsertRoleMenu(adminRole, idList, tenantId));
+                Lists.partition(newList, 50)
+                        .forEach(idList -> baseMapper.batchInsertRoleMenu(adminRole, idList, tenantId));
             }
             //根据机构id 和 角色的菜单id删除信息
-            if (CollectionUtils.isNotEmpty(deleteList)) {
-                Lists.partition(deleteList, 50)
+            if (CollectionUtils.isNotEmpty(oldList)) {
+                Lists.partition(oldList, 50)
                         .forEach(idList -> employeeDao.delRoleMenu(tenantId, idList));
             }
         });
@@ -150,6 +159,7 @@ public class PlatformProductServiceImpl extends ServiceImpl<PlatformProductDao,
      * @param id 产品id
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void deleteProduct(Integer id) {
         Optional.ofNullable(id).orElseThrow(() -> new BizException("产品Id不能为空"));
         Integer userId = Optional.ofNullable(sysUserFeignService.queryUserInfo())

+ 0 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -204,15 +204,10 @@ public class StudentManageServiceImpl implements StudentManageService {
             }
 
             if(userContractVersionMap.containsKey(dto.getUserId())){
-//                dto.setContractVersions(StringUtils.join(userContractVersionMap.get(dto.getUserId()), ","));
                 dto.setIsSignedContract(true);
             }else{
                 dto.setIsSignedContract(false);
             }
-//            for (Subject subject : studentSubject) {
-//                if(!subject.getId().equals(dto.getUserId())) continue;
-//                dto.setSubjectName(subject.getName());
-//            }
             //年级
             dto.setCurrentGrade(studentService.getStudentGrade(dto.getGradeType(),dto.getCurrentGradeNum()));
         }

+ 48 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -1,6 +1,9 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.PageInfoOrder;
 import com.ym.mec.biz.dal.dto.SporadicChargeInfoDto;
@@ -10,21 +13,21 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
+import com.ym.mec.biz.dal.vo.StudentPaymentOrderVo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.PageUtil;
+import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.adapay.ConfigInit;
 import com.ym.mec.thirdparty.adapay.Payment;
-import com.ym.mec.thirdparty.yqpay.Msg;
-import com.ym.mec.thirdparty.yqpay.RsqMsg;
-import com.ym.mec.thirdparty.yqpay.YqPayFeignService;
-import com.ym.mec.thirdparty.yqpay.YqPayUtil;
+import com.ym.mec.thirdparty.yqpay.*;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -101,6 +104,8 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     private ActivityUserMapperDao activityUserMapperDao;
     @Autowired
     private StudentService studentService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @Override
     public BaseDAO<Long, StudentPaymentOrder> getDAO() {
@@ -374,10 +379,10 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     }
 
     private Boolean confirmOrder(StudentPaymentOrder order) {
-		// 只有大雅延迟分账,其他实时分账
-		if (order.getTenantId() != 1) {
-			return true;
-		}
+        // 只有大雅延迟分账,其他实时分账
+        if (order.getTenantId() != 1) {
+            return true;
+        }
         Date date = new Date();
         List<StudentPaymentRouteOrder> routeOrders = studentPaymentRouteOrderDao.getRouteOrders(order.getOrderNo());
         for (StudentPaymentRouteOrder routeOrder : routeOrders) {
@@ -790,4 +795,39 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         sysCouponCodeService.quit(order.getCouponCodeId());
         return BaseController.succeed();
     }
+
+    /**
+     * 只查询成功的订单
+     *
+     * @param param
+     */
+    public PageInfo<StudentPaymentOrderVo> queryOrder(Map<String, Object> param) throws Exception {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (Objects.isNull(user)) {
+            throw new BizException("未查询到学员信息!");
+        }
+        param.put("user", user.getId());
+        String queryDateStr = WrapperUtil.toStr(param, "queryDate", "请选择查询日期!");
+        Date startDate = DateUtils.parseDate(queryDateStr + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
+        Date endDate = DateUtils.addMonths(startDate, 1);
+        param.put("startDate", startDate);
+        param.put("endDate", endDate);
+        Page<StudentPaymentOrderVo> pageInfo = PageUtil.getPageInfo(param);
+        pageInfo.setDesc("a.create_time_");
+        return PageUtil.pageInfo(studentPaymentOrderDao.queryStudentOrderPage(pageInfo, param));
+    }
+
+    /**
+     * 查询订单明细
+     *
+     * @param orderNo 订单编号
+     */
+    public StudentPaymentOrderVo queryOrderDetail(String orderNo) {
+        Optional.ofNullable(orderNo)
+                .map(this::findOrderByOrderNo)
+                .orElseThrow(() -> new BizException("未查询到该订单数据!"));
+        return studentPaymentOrderDao.queryOrderDetail(orderNo);
+    }
+
+
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysCouponCodeServiceImpl.java

@@ -163,7 +163,7 @@ public class SysCouponCodeServiceImpl extends BaseServiceImpl<Long, SysCouponCod
         updateParam.put("id", sysCoupon.getId());
         updateParam.put("tenantId", tenantId);
         if (sysCoupon.getWarningStatus() == 0 && sysCoupon.getStockCount() != -1 && sysCoupon.getStockCount() - sysCoupon.getConsumeNum() < sysCoupon.getWarningStockNum()) {
-            sysCouponService.stockWarning(sysCoupon.getId(), sysCoupon.getName());
+//            sysCouponService.stockWarning(sysCoupon.getId(), sysCoupon.getName());
             updateParam.put("warningStatus", 1);
         }
 

+ 22 - 24
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java

@@ -94,6 +94,8 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
     private SysMessageService sysMessageService;
     @Autowired
     private TenantInfoSendMsgService tenantInfoSendMsgService;
+    @Autowired
+    private SysConfigService sysConfigService;
 
     /**
      * 新增机构
@@ -440,19 +442,16 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
      * 机构开通缴费
      */
     public Map<String, Object> tenantOpenPay(Integer tenantId) throws Exception {
-        TenantOrderRecordEnum tenantEnum = TenantOrderRecordEnum.TENANT_OPEN;
-        RBucket<Map<String, Object>> cacheOrder = cacheOrder(tenantEnum.getCode() + ":" + tenantId);
-        Map<String, Object> result = cacheOrder.get();
-        if (Objects.nonNull(result)) {
-            return result;
-        } else {
-            result = new HashMap<>();
+        SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
+        if(Objects.isNull(config)){
+            throw new BizException("未查询到机构收款分部信息!");
         }
 
+        TenantOrderRecordEnum tenantEnum = TenantOrderRecordEnum.TENANT_OPEN;
+        Map<String, Object> result = new HashMap<>();
         TenantProductInfo productInfo = getProductInfo(tenantId);
         //生成订单编号
         String orderNo = idGenerator.generatorId("payment") + "";
-        String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
         int orderState = 0;
         //消费大于0元则拉起支付
         if (productInfo.getPayAmount().compareTo(BigDecimal.ZERO) > 0) {
@@ -460,15 +459,13 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
                     productInfo.getPayAmount(),
                     BigDecimal.ZERO,
                     orderNo,
-                    baseApiUrl + "/api-web/tenantInfo/notify",
-                    baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
+                    null,
+                    null,
                     tenantEnum.getMsg(),
                     tenantEnum.getMsg(),
-                    1,//todo 机构开通付款临时写死
+                    config.getParanValue(Integer.class),
                     tenantEnum.getCode()
             );
-            //将数据缓存起来避免重复生成订单数据,如果这次没有支付 3分钟内可以重复支付
-            cacheOrder.set(result, 3L, TimeUnit.MINUTES);
         } else {
             //已支付
             orderState = 1;
@@ -491,14 +488,13 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
      * @param val      购买周期
      */
     public Map<String, Object> tenantRenewPay(Integer tenantId, Integer val) throws Exception {
-        TenantOrderRecordEnum tenantEnum = TenantOrderRecordEnum.TENANT_RENEW;
-        RBucket<Map<String, Object>> cacheOrder = cacheOrder(tenantEnum.getCode() + ":" + tenantId + ":" + val);
-        Map<String, Object> result = cacheOrder.get();
-        if (Objects.nonNull(result)) {
-            return result;
-        } else {
-            result = new HashMap<>();
+        SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
+        if(Objects.isNull(config)){
+            throw new BizException("未查询到机构收款分部信息!");
         }
+
+        TenantOrderRecordEnum tenantEnum = TenantOrderRecordEnum.TENANT_RENEW;
+        Map<String, Object> result = new HashMap<>();
         TenantProductInfo productInfo = getProductInfo(tenantId);
         //续费时 取合同价
         BigDecimal amount = productInfo.getContractPrice().multiply(new BigDecimal(val));
@@ -515,13 +511,11 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
                     null,
                     tenantEnum.getMsg(),
                     tenantEnum.getMsg(),
-                    1,//临时写死
+                    config.getParanValue(Integer.class),
                     tenantEnum.getCode()
             );
             //操作续费信息,把续费周期存起来
             opsRenewInfo(tenantId).set(val, 1, TimeUnit.HOURS);
-            //将数据缓存起来避免重复生成订单数据,如果这次没有支付 3分钟内可以重复支付
-            cacheOrder.set(result, 3L, TimeUnit.MINUTES);
         } else {
             //续费成功
             renewSuccess(val, productInfo, amount);
@@ -712,6 +706,10 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
 
     @Override
     public Map<String, Object> recharge(Integer tenantId, BigDecimal amount) throws Exception {
+        SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
+        if(Objects.isNull(config)){
+            throw new BizException("未查询到机构收款分部信息!");
+        }
         log.error("机构 " + tenantId.toString() + "充值");
         Optional.of(tenantId)
                 .map(baseMapper::selectById)
@@ -737,7 +735,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
                     null,
                     tenantEnum.getMsg(),
                     tenantEnum.getMsg(),
-                    1,//临时写死
+                    config.getParanValue(Integer.class),
                     tenantEnum.getCode()
             );
         } else {

+ 0 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantOrderRecordServiceImpl.java

@@ -156,8 +156,6 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         productInfo.setPayDate(new Date());
         productInfo.setTenantId(record.getTenantId());
         tenantProductInfoService.updateById(productInfo);
-        //删除订单数据及订单缓存
-        tenantInfoService.cacheOrder(TenantOrderRecordEnum.TENANT_RENEW + ":" + record.getTenantId()).delete();
     }
 
     private void renew(TenantOrderRecord record) {
@@ -170,8 +168,6 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         //修改产品信息
         tenantInfoService.renewSuccess(val, productInfo, record.getActualAmount());
         //删除订单数据及订单缓存
-        bucket.delete();
-        tenantInfoService.cacheOrder(TenantOrderRecordEnum.TENANT_RENEW + ":" + record.getTenantId() + ":" + val).delete();
     }
 
     //主动去第三方查询订单状态

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

@@ -246,9 +246,6 @@
                 #{userId}
             </foreach>
         </if>
-        <if test="isMusicMember = 'true'">
-            AND music_group_id_ IS NOT NULL
-        </if>
         GROUP BY student_id_
     </select>
     <resultMap id="CloudTeacherActiveTargetDetailDto" type="com.ym.mec.biz.dal.dto.CloudTeacherActiveTargetDetailDto">

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/PlatformProductMapper.xml

@@ -184,4 +184,15 @@
         </if>
     </select>
 
+    <insert id="batchInsertRoleMenu">
+        INSERT INTO sys_role_menu (role_id_,menu_id_,tenant_id_) VALUES
+        <foreach collection="menuIds" item="item" index="index" separator=",">
+            (#{roleId}, #{item},#{tenantId})
+        </foreach>
+        ON DUPLICATE KEY UPDATE
+        role_id_ = VALUES(role_id_),
+        menu_id_ = VALUES(menu_id_),
+        tenant_id_ = VALUES(tenant_id_)
+    </insert>
+
 </mapper>

+ 53 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -1005,4 +1005,57 @@
     <select id="findByCalenderId" resultMap="StudentPaymentOrder">
         SELECT * FROM student_payment_order WHERE calender_id_ = #{calenderId} AND status_ = 'SUCCESS' AND user_id_ = #{userId}
     </select>
+
+    <resultMap type="com.ym.mec.biz.dal.vo.StudentPaymentOrderVo" id="QueryOrderDetail">
+        <result column="orderNo" property="orderNo"/>
+        <result column="orderType" property="orderType"/>
+        <result column="orderTypeCode" property="orderTypeCode"/>
+        <result column="totalAmount" property="totalAmount"/>
+        <result column="actualAmount" property="actualAmount"/>
+        <result column="balanceAmount" property="balanceAmount"/>
+        <result column="actualAmount" property="actualAmount"/>
+        <result column="createTime" property="createTime"/>
+        <result column="payTime" property="payTime"/>
+        <result column="transNo" property="transNo"/>
+        <collection property="list" ofType="com.ym.mec.biz.dal.vo.StudentPaymentOrderVo$StudentPaymentDetailVo">
+            <result column="goodsName" property="goodsName"/>
+            <result column="price" property="price"/>
+        </collection>
+    </resultMap>
+
+    <select id="queryStudentOrderPage" resultMap="QueryOrderDetail">
+        select
+            a.order_no_ as orderNo,
+            a.type_                            as orderType,
+            a.type_                            as orderTypeCode,
+            ifnull(a.actual_amount_, 0) + ifnull(a.balance_payment_amount_, 0) as totalAmount,
+            a.create_time_ as createTime
+        from student_payment_order as a
+        where  status_ = 'SUCCESS'
+          and create_time_ >= #{param.startDate}
+          and create_time_   <![CDATA[ < ]]> #{param.endDate}
+          and user_id_ = #{userId}
+    </select>
+
+    <select id="queryOrderDetail" resultMap="QueryOrderDetail">
+        select
+               a.order_no_ as orderNo,
+               a.type_                            as orderType,
+               ifnull(a.actual_amount_, 0) + ifnull(a.balance_payment_amount_, 0) + ifnull(a.remit_fee_, 0) +
+               ifnull(a.coupon_remit_fee_, 0)     as totalAmount,
+               a.actual_amount_                   as actualAmount,
+               a.balance_payment_amount_          as balanceAmount,
+               a.remit_fee_ + a.coupon_remit_fee_ as totalRemitFee,
+               a.create_time_ as createTime,
+               a.pay_time_ as payTime,
+               a.trans_no_ as transNo,
+               b.type_                            as goodsName,
+               ifnull(b.price_, 0)                as price
+        from student_payment_order as a
+                 left join
+             student_payment_order_detail as b on a.id_ = b.payment_order_id_
+        where order_no_ = #{orderNo};
+    </select>
+
+
 </mapper>

+ 25 - 4
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -173,7 +173,7 @@ public class StudentOrderController extends BaseController {
             List<Goods> goodsList = studentPaymentOrderDetailService.findApplyOrderGoods(orderByOrderNo.getId());
 //            List<String> orderDetailType = studentPaymentOrderDetailService.getOrderDetailType(orderByOrderNo.getId());
             List<StudentPaymentOrderDetail> orderDetail1 = studentPaymentOrderDetailService.getOrderDetail(orderByOrderNo.getId());
-            List<String> orderDetailType = orderDetail1.stream().map(e->e.getType().getCode()).collect(Collectors.toList());
+            List<String> orderDetailType = orderDetail1.stream().map(e -> e.getType().getCode()).collect(Collectors.toList());
             String kitGroupPurchaseType = orderDetail1.stream().filter(e -> e.getGoodsList() != null).
                     filter(e -> e.getKitGroupPurchaseType() != null).map(e -> e.getKitGroupPurchaseType().getCode()).collect(Collectors.joining(","));
             orderDetail.put("goods", goodsList);
@@ -184,9 +184,9 @@ public class StudentOrderController extends BaseController {
             orderDetail.put("chargeTypeId", musicGroup.getChargeTypeId());
             orderDetail.put("courseViewType", musicGroup.getCourseViewType());
             //如果包含vip和网管,代表购买了活动包
-            if(orderDetailType.contains("VIP") || orderDetailType.contains("PRACTICE")){
-                List<Long> activityList = orderDetail1.stream().filter(e->e.getType() == OrderDetailTypeEnum.VIP
-                        || e.getType() == OrderDetailTypeEnum.PRACTICE).map(e->e.getStudentInstrumentId())
+            if (orderDetailType.contains("VIP") || orderDetailType.contains("PRACTICE")) {
+                List<Long> activityList = orderDetail1.stream().filter(e -> e.getType() == OrderDetailTypeEnum.VIP
+                                || e.getType() == OrderDetailTypeEnum.PRACTICE).map(e -> e.getStudentInstrumentId())
                         .collect(Collectors.toList());
                 orderDetail.put("activity", musicGroupPaymentCalenderActivityService.findByIds(activityList));
             }
@@ -786,4 +786,25 @@ public class StudentOrderController extends BaseController {
 
     }
 
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "queryDate", dataType = "String", value = "年月"),
+            @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
+            @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
+    })
+    @ApiOperation("分页查询")
+    /**
+     * 学生端查询订单
+     */
+    @PostMapping("/queryOrder")
+    public Object queryOrder(@RequestBody Map<String, Object> param) throws Exception {
+        return succeed(studentPaymentOrderService.queryOrder(param));
+    }
+
+    /**
+     * 学生端查询订单详情
+     */
+    @GetMapping("/queryOrderDetail")
+    public Object queryOrderDetail(String orderNo) {
+        return succeed(studentPaymentOrderService.queryOrderDetail(orderNo));
+    }
 }

+ 0 - 7
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -329,13 +329,6 @@ public class MusicGroupController extends BaseController {
 	@GetMapping("/queryMusicMemberList")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/queryMusicMemberList')")
 	public HttpResponseResult<PageInfo<MusicMemberDto>> queryMusicMemberList(MusicMemberQueryInfo queryInfo) {
-		if (StringUtils.isEmpty(queryInfo.getOrganId())) {
-			SysUser sysUser = sysUserFeignService.queryUserInfo();
-			if (sysUser == null) {
-				throw new BizException("用户信息获取失败");
-			}
-			queryInfo.setOrganId(sysUser.getOrganId().toString());
-		}
 		queryInfo = organizationService.onlyEducation(queryInfo);
 		return succeed(musicGroupService.queryMusicMemberList(queryInfo));
 	}