Browse Source

Merge remote-tracking branch 'origin/master'

zouxuan 3 năm trước cách đây
mục cha
commit
d9d4338f51
100 tập tin đã thay đổi với 1003 bổ sung228 xóa
  1. 8 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java
  2. 8 1
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/MallPortalFeignService.java
  3. 4 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java
  4. 5 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/MallPortalFeignServiceFallback.java
  5. 5 1
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/controller/NewsController.java
  6. 3 1
      cooleshow-cms/src/main/resources/config/mybatis/HelpCenterContentMapper.xml
  7. 38 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ContractDto.java
  8. 3 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderReturnApplyService.java
  9. 5 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderReturnReasonService.java
  10. 1 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderService.java
  11. 2 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderSettingService.java
  12. 5 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsBrandService.java
  13. 4 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductAttributeCategoryService.java
  14. 1 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductAttributeService.java
  15. 3 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductCategoryService.java
  16. 4 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductService.java
  17. 2 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsSkuStockService.java
  18. 2 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsFlashPromotionProductRelationService.java
  19. 5 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsFlashPromotionService.java
  20. 5 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsFlashPromotionSessionService.java
  21. 5 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsHomeAdvertiseService.java
  22. 3 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsHomeBrandService.java
  23. 3 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsHomeNewProductService.java
  24. 3 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsHomeRecommendProductService.java
  25. 3 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsHomeRecommendSubjectService.java
  26. 5 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/UmsMenuService.java
  27. 4 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/UmsResourceCategoryService.java
  28. 4 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/UmsResourceService.java
  29. 3 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/UmsRoleService.java
  30. 12 0
      cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/model/OmsOrder.java
  31. 5 0
      cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/model/OmsOrderExample.java
  32. 18 3
      cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/OmsOrderMapper.xml
  33. 1 1
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/ResourceServerConfig.java
  34. 2 1
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/open/OpenShareController.java
  35. 4 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/MemberAttentionService.java
  36. 4 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/MemberCollectionService.java
  37. 4 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/MemberReadHistoryService.java
  38. 3 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsCartItemService.java
  39. 5 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderReturnApplyService.java
  40. 8 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderService.java
  41. 2 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/UmsMemberReceiveAddressService.java
  42. 55 11
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java
  43. 10 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/task/OrderTimeOutCancelTask.java
  44. 22 0
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/MallShareProfitTask.java
  45. 5 5
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/PlatformCashAccountRecordController.java
  46. 0 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/SysUserContractRecordController.java
  47. 14 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/UserOrderClient.java
  48. 5 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/task/TaskController.java
  49. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/PlatformCashAccountRecordDao.java
  50. 70 58
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserAccountDao.java
  51. 9 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserAccountRecordDao.java
  52. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/UserAccountRecordDto.java
  53. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderReq.java
  54. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicAlbumSearch.java
  55. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentMusicSheetSearch.java
  56. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/SysUserContractRecordSearch.java
  57. 10 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/UserAccountRecordSearch.java
  58. 14 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/PlatformCashAccountRecord.java
  59. 24 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserAccountRecord.java
  60. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/AlbumFavoriteService.java
  61. 13 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserAccountRecordService.java
  62. 3 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserAccountService.java
  63. 7 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderPaymentService.java
  64. 16 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/AlbumFavoriteServiceImpl.java
  65. 11 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java
  66. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java
  67. 15 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicAlbumServiceImpl.java
  68. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  69. 0 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PianoRoomBuyRecordServiceImpl.java
  70. 22 45
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PlatformCashAccountRecordServiceImpl.java
  71. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  72. 30 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountRecordServiceImpl.java
  73. 26 13
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountServiceImpl.java
  74. 8 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderPaymentServiceImpl.java
  75. 6 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderRefundServiceImpl.java
  76. 50 17
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  77. 5 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserWithdrawalServiceImpl.java
  78. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonPurchaseRecordServiceImpl.java
  79. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseInfoVo.java
  80. 14 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MusicAlbumVo.java
  81. 31 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/PlatformCashAccountPageVo.java
  82. 10 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherVo.java
  83. 22 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserAccountRecordVo.java
  84. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserAccountVo.java
  85. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonStudentVo.java
  86. 66 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/res/AccountShareTotal.java
  87. 3 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  88. 29 14
      cooleshow-user/user-biz/src/main/resources/config/mybatis/PlatformCashAccountRecordMapper.xml
  89. 3 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentMapper.xml
  90. 2 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/SysManualMapper.xml
  91. 3 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/SysUserContractRecordMapper.xml
  92. 3 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherAuthEntryRecordMapper.xml
  93. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  94. 16 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountMapper.xml
  95. 44 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountRecordMapper.xml
  96. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserBindingTeacherMapper.xml
  97. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderDetailMapper.xml
  98. 1 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java
  99. 1 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java
  100. 1 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java

+ 8 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.api.feign;
 
 import com.yonge.cooleshow.api.feign.fallback.AdminFeignServiceFallback;
 import com.yonge.cooleshow.common.constant.AppConstant;
+import com.yonge.cooleshow.common.entity.ContractDto;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.MallOrderItemDto;
 import com.yonge.toolset.feign.config.FeignConfiguration;
@@ -70,4 +71,11 @@ public interface AdminFeignService {
     @GetMapping(value = "/sysConfig/findConfigValue")
     HttpResponseResult<String> findConfigValue(String paramName);
 
+
+    /**
+     * 签协议 商城调用
+     */
+    @GetMapping("/open/userOrder/contractRecord")
+    HttpResponseResult<Boolean> contractRecord(@RequestBody ContractDto contract);
+
 }

+ 8 - 1
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/MallPortalFeignService.java

@@ -20,6 +20,13 @@ public interface MallPortalFeignService {
     /**
      * 自动收货
      */
-    @GetMapping("/autoReceive")
+    @GetMapping("/task/autoReceive")
     HttpResponseResult autoReceive();
+
+
+    /**
+     * 收货多少天后分润
+     */
+    @GetMapping("/task/shareProfit")
+    HttpResponseResult shareProfit();
 }

+ 4 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.api.feign.fallback;
 
 import com.yonge.cooleshow.api.feign.AdminFeignService;
+import com.yonge.cooleshow.common.entity.ContractDto;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.MallOrderItemDto;
 
@@ -56,4 +57,7 @@ public class AdminFeignServiceFallback implements AdminFeignService {
         return null;
     }
 
+    public HttpResponseResult<Boolean> contractRecord(ContractDto contract) {
+        return null;
+    }
 }

+ 5 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/MallPortalFeignServiceFallback.java

@@ -20,4 +20,9 @@ public class MallPortalFeignServiceFallback implements MallPortalFeignService {
     public HttpResponseResult autoReceive() {
         return null;
     }
+
+    @Override
+    public HttpResponseResult shareProfit() {
+        return null;
+    }
 }

+ 5 - 1
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/controller/NewsController.java

@@ -44,7 +44,11 @@ public class NewsController extends BaseController {
 	@ApiOperation(value = "资讯/广告/闪页/轮播图/乐理 列表分页查询", httpMethod="POST", consumes="application/json", produces="application/json")
 	@PostMapping(value = "/page",  consumes="application/json", produces="application/json")
 	public HttpResponseResult<PageInfo<SysNewsInformationDto>> getList(@Valid @RequestBody NewsInformationQueryInfo queryInfo) {
-		
+
+		if (queryInfo.getType() == 2) {
+			queryInfo.setAttribute2(queryInfo.getSubType());
+			queryInfo.setSubType(null);
+		}
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
 		return succeed(sysNewsInformationService.selectPage(queryInfo));

+ 3 - 1
cooleshow-cms/src/main/resources/config/mybatis/HelpCenterContentMapper.xml

@@ -28,7 +28,9 @@
 				and content.catalog_id_ in (${catalogIds})
 			</if>
 			<if test="title!= null and title != ''">
-				and content.title_ like '%' #{title} '%'
+				and (content.title_ like '%' #{title} '%'
+					or content.id_ like '%' #{title} '%'
+				)
 			</if>
 			<if test="status!= null">
 			and ((content.status_ = #{status} and content.catalog_id_ = 1)

+ 38 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ContractDto.java

@@ -0,0 +1,38 @@
+package com.yonge.cooleshow.common.entity;
+
+/**
+ * Description 远程签署协议
+ *
+ * @author liujunchi
+ * @date 2022-07-26
+ */
+public class ContractDto {
+
+    // 用户类型 STUDENT TEACHER
+    private String type;
+
+    // 用户id
+    private Long userId;
+
+
+    public ContractDto(String type, Long userId) {
+        this.type = type;
+        this.userId = userId;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+}

+ 3 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderReturnApplyService.java

@@ -5,6 +5,7 @@ import com.yonge.cooleshow.admin.dto.OmsOrderReturnApplyResult;
 import com.yonge.cooleshow.admin.dto.OmsReturnApplyQueryParam;
 import com.yonge.cooleshow.admin.dto.OmsUpdateStatusParam;
 import com.yonge.cooleshow.mbg.model.OmsOrderReturnApply;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -21,11 +22,13 @@ public interface OmsOrderReturnApplyService {
     /**
      * 批量删除申请
      */
+    @Transactional
     int delete(List<Long> ids);
 
     /**
      * 修改指定申请状态
      */
+    @Transactional
     int updateStatus(Long id, OmsUpdateStatusParam statusParam);
 
     /**

+ 5 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderReturnReasonService.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.admin.service;
 
 import com.yonge.cooleshow.mbg.model.OmsOrderReturnReason;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -12,16 +13,19 @@ public interface OmsOrderReturnReasonService {
     /**
      * 添加退货原因
      */
+    @Transactional
     int create(OmsOrderReturnReason returnReason);
 
     /**
      * 修改退货原因
      */
+    @Transactional
     int update(Long id, OmsOrderReturnReason returnReason);
 
     /**
      * 批量删除退货原因
      */
+    @Transactional
     int delete(List<Long> ids);
 
     /**
@@ -32,6 +36,7 @@ public interface OmsOrderReturnReasonService {
     /**
      * 批量修改退货原因状态
      */
+    @Transactional
     int updateStatus(List<Long> ids, Integer status);
 
     /**

+ 1 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderService.java

@@ -34,6 +34,7 @@ public interface OmsOrderService {
     /**
      * 批量删除订单
      */
+    @Transactional
     int delete(List<Long> ids);
 
     /**

+ 2 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderSettingService.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.admin.service;
 
 import com.yonge.cooleshow.mbg.model.OmsOrderSetting;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 订单设置管理Service
@@ -15,5 +16,6 @@ public interface OmsOrderSettingService {
     /**
      * 修改指定订单设置
      */
+    @Transactional
     int update(Long id, OmsOrderSetting orderSetting);
 }

+ 5 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsBrandService.java

@@ -19,6 +19,7 @@ public interface PmsBrandService {
     /**
      * 创建品牌
      */
+    @Transactional
     int createBrand(PmsBrandParam pmsBrandParam);
 
     /**
@@ -30,11 +31,13 @@ public interface PmsBrandService {
     /**
      * 删除品牌
      */
+    @Transactional
     int deleteBrand(Long id);
 
     /**
      * 批量删除品牌
      */
+    @Transactional
     int deleteBrand(List<Long> ids);
 
     /**
@@ -50,10 +53,12 @@ public interface PmsBrandService {
     /**
      * 修改显示状态
      */
+    @Transactional
     int updateShowStatus(List<Long> ids, Integer showStatus);
 
     /**
      * 修改厂家制造商状态
      */
+    @Transactional
     int updateFactoryStatus(List<Long> ids, Integer factoryStatus);
 }

+ 4 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductAttributeCategoryService.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.admin.service;
 
 import com.yonge.cooleshow.admin.dto.PmsProductAttributeCategoryItem;
 import com.yonge.cooleshow.mbg.model.PmsProductAttributeCategory;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -13,16 +14,19 @@ public interface PmsProductAttributeCategoryService {
     /**
      * 创建属性分类
      */
+    @Transactional
     int create(String name);
 
     /**
      * 修改属性分类
      */
+    @Transactional
     int update(Long id, String name);
 
     /**
      * 删除属性分类
      */
+    @Transactional
     int delete(Long id);
 
     /**

+ 1 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductAttributeService.java

@@ -28,6 +28,7 @@ public interface PmsProductAttributeService {
     /**
      * 修改商品属性
      */
+    @Transactional
     int update(Long id, PmsProductAttributeParam productAttributeParam);
 
     /**

+ 3 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductCategoryService.java

@@ -32,6 +32,7 @@ public interface PmsProductCategoryService {
     /**
      * 删除商品分类
      */
+    @Transactional
     int delete(Long id);
 
     /**
@@ -42,11 +43,13 @@ public interface PmsProductCategoryService {
     /**
      * 批量修改导航状态
      */
+    @Transactional
     int updateNavStatus(List<Long> ids, Integer navStatus);
 
     /**
      * 批量修改显示状态
      */
+    @Transactional
     int updateShowStatus(List<Long> ids, Integer showStatus);
 
     /**

+ 4 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductService.java

@@ -50,21 +50,25 @@ public interface PmsProductService {
     /**
      * 批量修改商品上架状态
      */
+    @Transactional
     int updatePublishStatus(List<Long> ids, Integer publishStatus);
 
     /**
      * 批量修改商品推荐状态
      */
+    @Transactional
     int updateRecommendStatus(List<Long> ids, Integer recommendStatus);
 
     /**
      * 批量修改新品状态
      */
+    @Transactional
     int updateNewStatus(List<Long> ids, Integer newStatus);
 
     /**
      * 批量删除商品
      */
+    @Transactional
     int updateDeleteStatus(List<Long> ids, Integer deleteStatus);
 
     /**

+ 2 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsSkuStockService.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.admin.service;
 
 import com.yonge.cooleshow.mbg.model.PmsSkuStock;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -17,5 +18,6 @@ public interface PmsSkuStockService {
     /**
      * 批量更新商品库存信息
      */
+    @Transactional
     int update(Long pid, List<PmsSkuStock> skuStockList);
 }

+ 2 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsFlashPromotionProductRelationService.java

@@ -20,11 +20,13 @@ public interface SmsFlashPromotionProductRelationService {
     /**
      * 修改关联信息
      */
+    @Transactional
     int update(Long id, SmsFlashPromotionProductRelation relation);
 
     /**
      * 删除关联
      */
+    @Transactional
     int delete(Long id);
 
     /**

+ 5 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsFlashPromotionService.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.admin.service;
 
 import com.yonge.cooleshow.mbg.model.SmsFlashPromotion;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -12,21 +13,25 @@ public interface SmsFlashPromotionService {
     /**
      * 添加活动
      */
+    @Transactional
     int create(SmsFlashPromotion flashPromotion);
 
     /**
      * 修改指定活动
      */
+    @Transactional
     int update(Long id, SmsFlashPromotion flashPromotion);
 
     /**
      * 删除单个活动
      */
+    @Transactional
     int delete(Long id);
 
     /**
      * 修改上下线状态
      */
+    @Transactional
     int updateStatus(Long id, Integer status);
 
     /**

+ 5 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsFlashPromotionSessionService.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.admin.service;
 
 import com.yonge.cooleshow.admin.dto.SmsFlashPromotionSessionDetail;
 import com.yonge.cooleshow.mbg.model.SmsFlashPromotionSession;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -13,21 +14,25 @@ public interface SmsFlashPromotionSessionService {
     /**
      * 添加场次
      */
+    @Transactional
     int create(SmsFlashPromotionSession promotionSession);
 
     /**
      * 修改场次
      */
+    @Transactional
     int update(Long id, SmsFlashPromotionSession promotionSession);
 
     /**
      * 修改场次启用状态
      */
+    @Transactional
     int updateStatus(Long id, Integer status);
 
     /**
      * 删除场次
      */
+    @Transactional
     int delete(Long id);
 
     /**

+ 5 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsHomeAdvertiseService.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.admin.service;
 
 import com.yonge.cooleshow.mbg.model.SmsHomeAdvertise;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -12,16 +13,19 @@ public interface SmsHomeAdvertiseService {
     /**
      * 添加广告
      */
+    @Transactional
     int create(SmsHomeAdvertise advertise);
 
     /**
      * 批量删除广告
      */
+    @Transactional
     int delete(List<Long> ids);
 
     /**
      * 修改上、下线状态
      */
+    @Transactional
     int updateStatus(Long id, Integer status);
 
     /**
@@ -32,6 +36,7 @@ public interface SmsHomeAdvertiseService {
     /**
      * 更新广告
      */
+    @Transactional
     int update(Long id, SmsHomeAdvertise advertise);
 
     /**

+ 3 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsHomeBrandService.java

@@ -19,16 +19,19 @@ public interface SmsHomeBrandService {
     /**
      * 修改品牌推荐排序
      */
+    @Transactional
     int updateSort(Long id, Integer sort);
 
     /**
      * 批量删除品牌推荐
      */
+    @Transactional
     int delete(List<Long> ids);
 
     /**
      * 批量更新推荐状态
      */
+    @Transactional
     int updateRecommendStatus(List<Long> ids, Integer recommendStatus);
 
     /**

+ 3 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsHomeNewProductService.java

@@ -19,16 +19,19 @@ public interface SmsHomeNewProductService {
     /**
      * 修改推荐排序
      */
+    @Transactional
     int updateSort(Long id, Integer sort);
 
     /**
      * 批量删除推荐
      */
+    @Transactional
     int delete(List<Long> ids);
 
     /**
      * 批量更新推荐状态
      */
+    @Transactional
     int updateRecommendStatus(List<Long> ids, Integer recommendStatus);
 
     /**

+ 3 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsHomeRecommendProductService.java

@@ -19,16 +19,19 @@ public interface SmsHomeRecommendProductService {
     /**
      * 修改推荐排序
      */
+    @Transactional
     int updateSort(Long id, Integer sort);
 
     /**
      * 批量删除推荐
      */
+    @Transactional
     int delete(List<Long> ids);
 
     /**
      * 批量更新推荐状态
      */
+    @Transactional
     int updateRecommendStatus(List<Long> ids, Integer recommendStatus);
 
     /**

+ 3 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/SmsHomeRecommendSubjectService.java

@@ -19,16 +19,19 @@ public interface SmsHomeRecommendSubjectService {
     /**
      * 修改推荐排序
      */
+    @Transactional
     int updateSort(Long id, Integer sort);
 
     /**
      * 批量删除推荐
      */
+    @Transactional
     int delete(List<Long> ids);
 
     /**
      * 批量更新推荐状态
      */
+    @Transactional
     int updateRecommendStatus(List<Long> ids, Integer recommendStatus);
 
     /**

+ 5 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/UmsMenuService.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.admin.service;
 
 import com.yonge.cooleshow.admin.dto.UmsMenuNode;
 import com.yonge.cooleshow.mbg.model.UmsMenu;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -13,11 +14,13 @@ public interface UmsMenuService {
     /**
      * 创建后台菜单
      */
+    @Transactional
     int create(UmsMenu umsMenu);
 
     /**
      * 修改后台菜单
      */
+    @Transactional
     int update(Long id, UmsMenu umsMenu);
 
     /**
@@ -28,6 +31,7 @@ public interface UmsMenuService {
     /**
      * 根据ID删除菜单
      */
+    @Transactional
     int delete(Long id);
 
     /**
@@ -43,5 +47,6 @@ public interface UmsMenuService {
     /**
      * 修改菜单显示状态
      */
+    @Transactional
     int updateHidden(Long id, Integer hidden);
 }

+ 4 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/UmsResourceCategoryService.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.admin.service;
 
 import com.yonge.cooleshow.mbg.model.UmsResourceCategory;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -18,15 +19,18 @@ public interface UmsResourceCategoryService {
     /**
      * 创建资源分类
      */
+    @Transactional
     int create(UmsResourceCategory umsResourceCategory);
 
     /**
      * 修改资源分类
      */
+    @Transactional
     int update(Long id, UmsResourceCategory umsResourceCategory);
 
     /**
      * 删除资源分类
      */
+    @Transactional
     int delete(Long id);
 }

+ 4 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/UmsResourceService.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.admin.service;
 
 import com.yonge.cooleshow.mbg.model.UmsResource;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -12,11 +13,13 @@ public interface UmsResourceService {
     /**
      * 添加资源
      */
+    @Transactional
     int create(UmsResource umsResource);
 
     /**
      * 修改资源
      */
+    @Transactional
     int update(Long id, UmsResource umsResource);
 
     /**
@@ -27,6 +30,7 @@ public interface UmsResourceService {
     /**
      * 删除资源
      */
+    @Transactional
     int delete(Long id);
 
     /**

+ 3 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/UmsRoleService.java

@@ -15,16 +15,19 @@ public interface UmsRoleService {
     /**
      * 添加角色
      */
+    @Transactional
     int create(UmsRole role);
 
     /**
      * 修改角色信息
      */
+    @Transactional
     int update(Long id, UmsRole role);
 
     /**
      * 批量删除角色
      */
+    @Transactional
     int delete(List<Long> ids);
 
     /**

+ 12 - 0
cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/model/OmsOrder.java

@@ -139,11 +139,23 @@ public class OmsOrder implements Serializable {
     @ApiModelProperty(value = "评价时间")
     private Date commentTime;
 
+    @ApiModelProperty("是否能申请售后 0:是 1:否")
+    private int afterSale;
+
     @ApiModelProperty(value = "修改时间")
     private Date modifyTime;
 
     private static final long serialVersionUID = 1L;
 
+
+    public int getAfterSale() {
+        return afterSale;
+    }
+
+    public void setAfterSale(int afterSale) {
+        this.afterSale = afterSale;
+    }
+
     public String getPlatformType() {
         return platformType;
     }

+ 5 - 0
cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/model/OmsOrderExample.java

@@ -2451,6 +2451,11 @@ public class OmsOrderExample {
             return (Criteria) this;
         }
 
+        public Criteria andAfterSaleEqualTo(Integer value) {
+            addCriterion("after_sale =", value, "afterSale");
+            return (Criteria) this;
+        }
+
         public Criteria andConfirmStatusNotEqualTo(Integer value) {
             addCriterion("confirm_status <>", value, "confirmStatus");
             return (Criteria) this;

+ 18 - 3
cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/OmsOrderMapper.xml

@@ -48,6 +48,7 @@
     <result column="comment_time" jdbcType="TIMESTAMP" property="commentTime" />
     <result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
     <result column="platform_type" jdbcType="TIMESTAMP" property="platformType" />
+    <result column="after_sale"  property="afterSale" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -114,7 +115,7 @@
     integration, growth, promotion_info, bill_type, bill_header, bill_content, bill_receiver_phone, 
     bill_receiver_email, receiver_name, receiver_phone, receiver_post_code, receiver_province, 
     receiver_city, receiver_region, receiver_detail_address, note, confirm_status, delete_status, 
-    use_integration, payment_time, delivery_time, receive_time, comment_time, modify_time,cart_ids,platform_type
+    use_integration, payment_time, delivery_time, receive_time, comment_time, modify_time,cart_ids,platform_type,after_sale
   </sql>
   <select id="selectByExample" parameterType="com.yonge.cooleshow.mbg.model.OmsOrderExample" resultMap="BaseResultMap">
     select
@@ -164,7 +165,7 @@
       receiver_detail_address, note, confirm_status, 
       delete_status, use_integration, payment_time, 
       delivery_time, receive_time, comment_time, 
-      modify_time,cart_ids,platform_type)
+      modify_time,cart_ids,platform_type,after_sale)
     values (#{memberId,jdbcType=BIGINT}, #{couponId,jdbcType=BIGINT}, #{orderSn,jdbcType=VARCHAR}, 
       #{createTime,jdbcType=TIMESTAMP}, #{memberUsername,jdbcType=VARCHAR}, #{totalAmount,jdbcType=DECIMAL}, 
       #{payAmount,jdbcType=DECIMAL}, #{freightAmount,jdbcType=DECIMAL}, #{promotionAmount,jdbcType=DECIMAL}, 
@@ -179,7 +180,7 @@
       #{receiverDetailAddress,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, #{confirmStatus,jdbcType=INTEGER}, 
       #{deleteStatus,jdbcType=INTEGER}, #{useIntegration,jdbcType=INTEGER}, #{paymentTime,jdbcType=TIMESTAMP}, 
       #{deliveryTime,jdbcType=TIMESTAMP}, #{receiveTime,jdbcType=TIMESTAMP}, #{commentTime,jdbcType=TIMESTAMP}, 
-      #{modifyTime,jdbcType=TIMESTAMP},#{cartIds},#{platformType})
+      #{modifyTime,jdbcType=TIMESTAMP},#{cartIds},#{platformType},#{afterSale})
   </insert>
   <insert id="insertSelective" parameterType="com.yonge.cooleshow.mbg.model.OmsOrder">
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
@@ -322,6 +323,9 @@
       <if test="platformType != null">
         platform_type,
       </if>
+      <if test="afterSale != null">
+        after_sale,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="memberId != null">
@@ -459,6 +463,9 @@
       <if test="platformType != null">
         #{platformType},
       </if>
+      <if test="afterSale != null">
+        #{afterSale},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.yonge.cooleshow.mbg.model.OmsOrderExample" resultType="java.lang.Long">
@@ -608,6 +615,9 @@
       <if test="record.platformType != null">
         platform_type = #{record.platformType},
       </if>
+      <if test="record.afterSale != null">
+        after_sale = #{record.afterSale},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -660,6 +670,7 @@
       comment_time = #{record.commentTime,jdbcType=TIMESTAMP},
       cart_ids = #{record.cartIds},
       platform_type = #{record.platformType},
+      after_sale = #{record.afterSale},
       modify_time = #{record.modifyTime,jdbcType=TIMESTAMP}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -803,6 +814,9 @@
       <if test="platformType != null">
         platform_type = #{platformType},
       </if>
+      <if test="afterSale != null">
+        after_sale = #{afterSale},
+      </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
   </update>
@@ -852,6 +866,7 @@
       comment_time = #{commentTime,jdbcType=TIMESTAMP},
       cart_ids = #{cartIds},
       platform_type = #{platformType},
+      after_sale = #{afterSale},
       modify_time = #{modifyTime,jdbcType=TIMESTAMP}
     where id = #{id,jdbcType=BIGINT}
   </update>

+ 1 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/ResourceServerConfig.java

@@ -27,7 +27,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
             .authorizeRequests().antMatchers("/task/**").hasIpAddress("0.0.0.0/0")
                 .and()
                 .authorizeRequests().antMatchers("/wechat/*","/v2/api-docs", "/code/*","/payment/callback/**",
-                 "/order/paySuccess/test","/order/cancelUserOrder/test")
+                 "/order/paySuccess/test","/order/cancelUserOrder/test","/open/**","/task/**")
             .permitAll().anyRequest().authenticated().and().httpBasic();
     }
 

+ 2 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/open/OpenShareController.java

@@ -5,6 +5,7 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.portal.dto.ShareProductVo;
 import com.yonge.cooleshow.portal.dto.ShareProfitParam;
 import com.yonge.cooleshow.portal.service.PmsPortalProductService;
 import com.yonge.toolset.base.util.StringUtil;
@@ -33,7 +34,7 @@ public class OpenShareController extends BaseController {
     @ApiOperation(value = "老师商品分享分润")
     @PostMapping(value="/productProfit")
     @ResponseBody
-    public CommonResult shareProductProfit(@RequestBody ShareProfitParam param) {
+    public CommonResult<ShareProductVo> shareProductProfit(@RequestBody ShareProfitParam param) {
         SysUser sysUser = sysUserFeignService.queryUserById(param.getUserId());
         if (sysUser == null  || sysUser.getId() == null) {
             return CommonResult.failed("用户信息获取失败");

+ 4 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/MemberAttentionService.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.portal.service;
 
 import com.yonge.cooleshow.portal.domain.MemberBrandAttention;
 import org.springframework.data.domain.Page;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 会员品牌关注管理Service
@@ -11,11 +12,13 @@ public interface MemberAttentionService {
     /**
      * 添加关注
      */
+    @Transactional
     int add(MemberBrandAttention memberBrandAttention);
 
     /**
      * 取消关注
      */
+    @Transactional
     int delete(Long brandId);
 
     /**
@@ -31,5 +34,6 @@ public interface MemberAttentionService {
     /**
      * 清空关注列表
      */
+    @Transactional
     void clear();
 }

+ 4 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/MemberCollectionService.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.portal.service;
 
 import com.yonge.cooleshow.portal.domain.MemberProductCollection;
 import org.springframework.data.domain.Page;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 会员商品收藏管理Service
@@ -11,11 +12,13 @@ public interface MemberCollectionService {
     /**
      * 添加收藏
      */
+    @Transactional
     int add(MemberProductCollection productCollection);
 
     /**
      * 删除收藏
      */
+    @Transactional
     int delete(Long productId);
 
     /**
@@ -31,5 +34,6 @@ public interface MemberCollectionService {
     /**
      * 清空收藏
      */
+    @Transactional
     void clear();
 }

+ 4 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/MemberReadHistoryService.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.portal.service;
 
 import com.yonge.cooleshow.portal.domain.MemberReadHistory;
 import org.springframework.data.domain.Page;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -13,11 +14,13 @@ public interface MemberReadHistoryService {
     /**
      * 生成浏览记录
      */
+    @Transactional
     int create(MemberReadHistory memberReadHistory);
 
     /**
      * 批量删除浏览记录
      */
+    @Transactional
     int delete(List<String> ids);
 
     /**
@@ -28,5 +31,6 @@ public interface MemberReadHistoryService {
     /**
      * 清空浏览记录
      */
+    @Transactional
     void clear();
 }

+ 3 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsCartItemService.java

@@ -32,11 +32,13 @@ public interface OmsCartItemService {
     /**
      * 修改某个购物车商品的数量
      */
+    @Transactional
     int updateQuantity(Long id, Long memberId, Integer quantity);
 
     /**
      * 批量删除购物车中的商品
      */
+    @Transactional
     int delete(Long memberId,List<Long> ids);
 
     /**
@@ -53,6 +55,7 @@ public interface OmsCartItemService {
     /**
      * 清空购物车
      */
+    @Transactional
     int clear(Long memberId);
 
     OmsCartItem get(Long id);

+ 5 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderReturnApplyService.java

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.portal.dto.OmsOrderReturnApplyVo;
 import com.yonge.cooleshow.portal.dto.OmsReturnApplyDto;
 import com.yonge.cooleshow.portal.dto.OmsReturnApplyQueryParam;
 import com.yonge.toolset.payment.base.model.callback.PaymentCallBack;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -17,12 +18,14 @@ public interface OmsPortalOrderReturnApplyService {
     /**
      * 提交申请
      */
+    @Transactional
     int create(OmsOrderReturnApplyParam returnApply);
 
     /**
      * 取消申请
      *
      */
+    @Transactional
     int delete(Long id);
 
     OmsOrderReturnApplyResult getItem(Long id);
@@ -30,7 +33,9 @@ public interface OmsPortalOrderReturnApplyService {
     List<OmsOrderReturnApplyVo> list(OmsReturnApplyQueryParam queryParam, Integer pageSize, Integer pageNum);
 
     /** 设置退货单号 */
+    @Transactional
     void setDeliverySn(OmsReturnApplyDto applyDto);
 
+    @Transactional
     void refundPaymentCallBack(PaymentCallBack data);
 }

+ 8 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderService.java

@@ -118,4 +118,12 @@ public interface OmsPortalOrderService {
      */
     @Transactional
     Integer autoReceive();
+
+    /**
+     * 设置分润,不可申请售后
+     *
+     * @return
+     */
+    @Transactional
+    Integer shareProfit();
 }

+ 2 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/UmsMemberReceiveAddressService.java

@@ -13,12 +13,14 @@ public interface UmsMemberReceiveAddressService {
     /**
      * 添加收货地址
      */
+    @Transactional
     int add(UmsMemberReceiveAddress address);
 
     /**
      * 删除收货地址
      * @param id 地址表的id
      */
+    @Transactional
     int delete(Long id);
 
     /**

+ 55 - 11
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.api.feign.AdminFeignService;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.MallOrderItemDto;
 import com.yonge.cooleshow.common.enums.PostStatusEnum;
+import com.yonge.cooleshow.common.entity.ContractDto;
 import com.yonge.cooleshow.common.service.IdGeneratorService;
 import com.yonge.cooleshow.mall.common.api.CommonPage;
 import com.yonge.cooleshow.mall.common.enums.OrderCacheEnum;
@@ -97,6 +98,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
     private CancelOrderSender cancelOrderSender;
 
     @Autowired
+    private AdminFeignService adminFeignService;
+    @Autowired
     private UserOrderPaymentService userOrderPaymentService;
 
     @Autowired(required = true)
@@ -116,9 +119,6 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
 
 
     @Autowired
-    private AdminFeignService adminFeignService;
-
-    @Autowired
     private PortalProductDao productDao;
 
     @Override
@@ -495,11 +495,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
 
     @Override
     public void confirmReceiveOrder(Long orderId) {
-        UmsMember member = memberService.getCurrentMember();
+        // UmsMember member = memberService.getCurrentMember();
         OmsOrder order = orderMapper.selectByPrimaryKey(orderId);
-        if (!member.getId().equals(order.getMemberId())) {
-            Asserts.fail("不能确认他人订单!");
-        }
+        // if (!member.getId().equals(order.getMemberId())) {
+        //     Asserts.fail("不能确认他人订单!");
+        // }
         if (order.getStatus() != 2) {
             Asserts.fail("该订单还未发货!");
         }else if (order.getStatus() == 3) {
@@ -508,10 +508,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         order.setStatus(3);
         order.setConfirmStatus(1);
         order.setReceiveTime(new Date());
-        int i = orderMapper.updateByPrimaryKey(order);
-
-        // 设置平台收入和分润 实际收款
-        setPromoterRecord(detail(orderId), PostStatusEnum.RECORDED);
+        orderMapper.updateByPrimaryKey(order);
 
     }
 
@@ -800,6 +797,50 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
 
     }
 
+    @Override
+    public Integer shareProfit() {
+        OmsOrderSetting omsOrderSetting = orderSettingMapper.selectByPrimaryKey(1L);
+        Integer finishOvertime = omsOrderSetting.getFinishOvertime();
+        LocalDateTime localDateTime = LocalDateTime.now().plusDays(-finishOvertime);
+        OmsOrderExample orderExample = new OmsOrderExample();
+        orderExample.createCriteria().andStatusEqualTo(3).andDeleteStatusEqualTo(0).andConfirmStatusEqualTo(1)
+                .andAfterSaleEqualTo(0)
+                .andReceiverCityIsNotNull()
+                    .andReceiveTimeLessThan(Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()));
+
+        List<OmsOrder> omsOrders = orderMapper.selectByExample(orderExample);
+        if (CollectionUtils.isEmpty(omsOrders)) {
+            return 0;
+        }
+        for (OmsOrder omsOrder : omsOrders) {
+
+            DistributedLock.of(redissonClient)
+                           .runIfLockCanGet(OrderCacheEnum.LOCK_ORDER_NO_MALL.getRedisKey(omsOrder.getOrderSn())
+                                   , () -> {
+                                       this.FinishReceiveOrder(omsOrder.getId());
+                                   }, 60L, TimeUnit.SECONDS);
+        }
+        return omsOrders.size();
+    }
+
+    private void FinishReceiveOrder(Long orderId) {
+
+        // UmsMember member = memberService.getCurrentMember();
+        OmsOrder order = orderMapper.selectByPrimaryKey(orderId);
+        // if (!member.getId().equals(order.getMemberId())) {
+        //     Asserts.fail("不能确认他人订单!");
+        // }
+         if (order.getStatus() != 3) {
+            Asserts.fail("未确认收货!");
+        }
+        order.setAfterSale(1);
+        orderMapper.updateByPrimaryKey(order);
+
+
+        // 设置平台收入和分润 实际收款
+        setPromoterRecord(detail(orderId), PostStatusEnum.RECORDED);
+    }
+
 
     /***
      * 处理回调-支付成功
@@ -1012,6 +1053,9 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
             }
         }
         userOrderPaymentService.saveOrUpdate(orderPayment);
+
+        // 签协议
+        adminFeignService.contractRecord(new ContractDto(orderPayment.getPaymentClient(),detail.getMemberId()));
     }
 
 

+ 10 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/task/OrderTimeOutCancelTask.java

@@ -42,4 +42,14 @@ public class OrderTimeOutCancelTask {
         return HttpResponseResult.succeed();
     }
 
+
+    /**
+     * 收货多少天后分润
+     */
+    @GetMapping("/shareProfit")
+    public HttpResponseResult shareProfit(){
+        Integer count = portalOrderService.shareProfit();
+        LOGGER.info("自动分润:{}",count);
+        return HttpResponseResult.succeed();
+    }
 }

+ 22 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/MallShareProfitTask.java

@@ -0,0 +1,22 @@
+package com.yonge.cooleshow.task.jobs;
+
+import com.yonge.cooleshow.api.feign.MallPortalFeignService;
+import com.yonge.cooleshow.task.core.BaseTask;
+import com.yonge.cooleshow.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 自动分润
+ */
+@Service
+public class MallShareProfitTask extends BaseTask {
+
+    @Autowired
+    private MallPortalFeignService mallPortalFeignService;
+
+    @Override
+    public void execute() throws TaskException {
+        Object o = mallPortalFeignService.shareProfit();
+    }
+}

+ 5 - 5
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/PlatformCashAccountRecordController.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.controller;
 
+import com.yonge.cooleshow.biz.dal.vo.PlatformCashAccountPageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
@@ -32,13 +33,12 @@ public class PlatformCashAccountRecordController extends BaseController {
 	@ApiOperation(value = "平台账户记录-列表", httpMethod = "POST", consumes = "application/json", produces = "application/json")
 	@PostMapping(value = "/list", consumes = "application/json", produces = "application/json")
 	@PreAuthorize("@pcs.hasPermissions('platformCashAccountRecord/list')")
-	public HttpResponseResult<ModelMap> list(@Valid @RequestBody PlatformCashAccountRecordSearch query) {
-		ModelMap model = new ModelMap();
+	public HttpResponseResult<PlatformCashAccountPageVo> list(@Valid @RequestBody PlatformCashAccountRecordSearch query) {
+		PlatformCashAccountPageVo model = new PlatformCashAccountPageVo();
 		
 		PageInfo<PlatformCashAccountRecord> pageInfo = PageUtil.pageInfo(platformCashAccountRecordService.queryPage(PageUtil.getPage(query),query));
-		model.put("pageInfo", pageInfo);
-		model.put("summary", platformCashAccountRecordService.querySummary(query));
-		
+		model.setPageInfo(pageInfo);
+		model.setSummary(platformCashAccountRecordService.querySummary(query));
 		return succeed(model);
 	}
 

+ 0 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/SysUserContractRecordController.java

@@ -44,6 +44,5 @@ public class SysUserContractRecordController extends BaseController {
         IPage<SysUserContractRecordVo> pages = sysUserContractRecordService.selectPage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
     }
-
 }
 

+ 14 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/UserOrderClient.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.admin.controller.open;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yonge.cooleshow.biz.dal.entity.UserOrderPayment;
+import com.yonge.cooleshow.common.entity.ContractDto;
 import com.yonge.cooleshow.common.enums.CacheNameEnum;
 import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
 import com.yonge.cooleshow.biz.dal.service.UserOrderPaymentService;
@@ -155,4 +156,17 @@ public class UserOrderClient extends BaseController {
         userOrderService.setOrderStatus(orderNo, orderStatus);
         return succeed(true);
     }
+
+
+
+
+    /**
+     * 签协议 商城调用
+     */
+    @GetMapping("/contractRecord")
+    @ApiOperation(value = "签协议 商城调用", notes = "签协议 商城调用")
+    public HttpResponseResult<Boolean> contractRecord(@RequestBody ContractDto contract) {
+        paymentService.setContractRecord(contract.getType(),contract.getUserId());
+        return succeed(true);
+    }
 }

+ 5 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/task/TaskController.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.task;
 
+import com.yonge.cooleshow.biz.dal.entity.PlatformCashAccountRecord;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.wordfilter.WordContext;
 import com.yonge.cooleshow.biz.dal.wordfilter.WordFilter;
@@ -36,6 +37,8 @@ public class TaskController extends BaseController {
     private UserAccountRecordService userAccountRecordService;
     @Autowired
     private RedissonClient redissonClient;
+    @Autowired
+    private PlatformCashAccountRecordService platformCashAccountRecordService;
 
     /***
      * 轮询用户订单
@@ -59,6 +62,8 @@ public class TaskController extends BaseController {
     public HttpResponseResult<Boolean> daysTask() {
         //超过天数无琴房课的解除绑定关系
         userBindingTeacherService.unbindTask();
+        //平台老师结算
+        platformCashAccountRecordService.updateWaitRecord();
         return succeed(true);
     }
 

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/PlatformCashAccountRecordDao.java

@@ -27,6 +27,8 @@ public interface PlatformCashAccountRecordDao extends BaseMapper<PlatformCashAcc
 
     PlatformCashAccountRecordSummaryVo querySummary(@Param("param") PlatformCashAccountRecordSearch query);
 
+    List<PlatformCashAccountRecord> queryCanAccountByBizType(@Param("bizTypes")List<String> bizTypes);
+
     List<PlatformCashAccountRecord> queryByBizTypeAndPaymentDays(@Param("bizType")String bizType, @Param("paymentDays")int paymentDays);
 
     Integer cancelRecord(@Param("orderNo")String orderNo,@Param("bizType") String bizType, @Param("bizId") Long bizId);

+ 70 - 58
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserAccountDao.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
 import com.yonge.cooleshow.biz.dal.dto.req.TotalReq;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
+import com.yonge.cooleshow.biz.dal.vo.res.AccountShareTotal;
 import com.yonge.cooleshow.biz.dal.vo.res.AccountTotal;
 import org.apache.ibatis.annotations.Param;
 import com.yonge.cooleshow.biz.dal.entity.UserAccount;
@@ -15,70 +16,81 @@ import com.yonge.cooleshow.biz.dal.vo.UserAccountVo;
 import com.yonge.cooleshow.biz.dal.dto.search.UserAccountSearch;
 
 
-public interface UserAccountDao extends BaseMapper<UserAccount>{
-	/**
-	 * 查询详情
+public interface UserAccountDao extends BaseMapper<UserAccount> {
+    /**
+     * 查询详情
+     *
      * @author liweifan
      * @date 2022-03-30 13:53:51
      * @return: com.yonge.cooleshow.biz.dal.vo.UserAccountVo
-	 */
-	UserAccountVo detail(@Param("id") Long id);
+     */
+    UserAccountVo detail(@Param("id") Long id);
 
-	/**
-	 * 分页查询
+    /**
+     * 分页查询
+     *
      * @author liweifan
      * @date 2022-03-30 13:53:51
      * @return: com.yonge.cooleshow.biz.dal.vo.UserAccountVo
-	 */
-	List<UserAccountVo> selectPage(@Param("page") IPage page, @Param("param") UserAccountSearch userAccount);
-	/***
-	 * 账户变更(冻结)
-	 * @author liweifan
-	 * @param: userId
-	 * @param: transAmount
-	 * @updateTime 2022/4/7 17:54
-	 * @return: java.lang.Integer
-	 */
-    Integer frozenChangeAccount(@Param("userId") Long userId, @Param("transAmount") BigDecimal transAmount,@Param("inOrOut") String inOrOut);
-	/***
-	 * 账户变更(冻结后交易成功)
-	 * @author liweifan
-	 * @param: userId
-	 * @param: transAmount
-	 * @updateTime 2022/4/7 17:54
-	 * @return: java.lang.Integer
-	 */
-	Integer frozenDeductChangeAccount(@Param("userId") Long userId, @Param("transAmount") BigDecimal transAmount,@Param("inOrOut") String inOrOut);
-	/***
-	 * 账户变更(冻结后交易退回)
-	 * @author liweifan
-	 * @param: userId
-	 * @param: transAmount
-	 * @updateTime 2022/4/7 17:54
-	 * @return: java.lang.Integer
-	 */
-	Integer frozenBackChangeAccount(@Param("userId") Long userId, @Param("transAmount") BigDecimal transAmount,@Param("inOrOut") String inOrOut);
-	/***
-	 * 账户变更(余额)
-	 * @author liweifan
-	 * @param: userId
-	 * @param: transAmount
-	 * @updateTime 2022/4/7 19:11
-	 * @return: java.lang.Integer
-	 */
-	Integer changeAccount(@Param("userId") Long userId, @Param("transAmount") BigDecimal transAmount,@Param("inOrOut") String inOrOut);
-	/***
-	 * 收入统计
-	 * @author liweifan
-	 * @param: totalReq
-	 * @updateTime 2022/4/24 13:53
-	 * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.res.AccountTotal>
-	 */
-    List<AccountTotal> accountTotal(@Param("timeType")String timeType,@Param("param")TotalReq totalReq);
-	/**
-	 * 统计本次变更前已经变更的金额
-	 * @param orderNo
-	 * @return
-	 */
+     */
+    List<UserAccountVo> selectPage(@Param("page") IPage page, @Param("param") UserAccountSearch userAccount);
+
+    /***
+     * 账户变更(冻结)
+     * @author liweifan
+     * @param: userId
+     * @param: transAmount
+     * @updateTime 2022/4/7 17:54
+     * @return: java.lang.Integer
+     */
+    Integer frozenChangeAccount(@Param("userId") Long userId, @Param("transAmount") BigDecimal transAmount, @Param("inOrOut") String inOrOut);
+
+    /***
+     * 账户变更(冻结后交易成功)
+     * @author liweifan
+     * @param: userId
+     * @param: transAmount
+     * @updateTime 2022/4/7 17:54
+     * @return: java.lang.Integer
+     */
+    Integer frozenDeductChangeAccount(@Param("userId") Long userId, @Param("transAmount") BigDecimal transAmount, @Param("inOrOut") String inOrOut);
+
+    /***
+     * 账户变更(冻结后交易退回)
+     * @author liweifan
+     * @param: userId
+     * @param: transAmount
+     * @updateTime 2022/4/7 17:54
+     * @return: java.lang.Integer
+     */
+    Integer frozenBackChangeAccount(@Param("userId") Long userId, @Param("transAmount") BigDecimal transAmount, @Param("inOrOut") String inOrOut);
+
+    /***
+     * 账户变更(余额)
+     * @author liweifan
+     * @param: userId
+     * @param: transAmount
+     * @updateTime 2022/4/7 19:11
+     * @return: java.lang.Integer
+     */
+    Integer changeAccount(@Param("userId") Long userId, @Param("transAmount") BigDecimal transAmount, @Param("inOrOut") String inOrOut);
+
+    /***
+     * 收入统计
+     * @author liweifan
+     * @param: totalReq
+     * @updateTime 2022/4/24 13:53
+     * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.res.AccountTotal>
+     */
+    List<AccountTotal> accountTotal(@Param("timeType") String timeType, @Param("param") TotalReq totalReq);
+
+    /**
+     * 统计本次变更前已经变更的金额
+     *
+     * @param orderNo
+     * @return
+     */
     BigDecimal totalTransAmountByOrderNo(@Param("orderNo") String orderNo);
+
+    AccountShareTotal accountShareTotal(@Param("param") TotalReq query);
 }

+ 9 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserAccountRecordDao.java

@@ -42,8 +42,10 @@ public interface UserAccountRecordDao extends BaseMapper<UserAccountRecord> {
 
     List<UserAccountRecordVo> selectAllPage(@Param("param") UserAccountRecordSearch userAccountRecord);
 
+    List<UserAccountRecordVo> sharePage(@Param("page") IPage page, @Param("param") UserAccountRecordSearch userAccountRecord);
 
     UserAccountVo accountTotal(@Param("param") UserAccountRecordSearch param);
+
     /**
      * app查询详情
      *
@@ -98,5 +100,11 @@ public interface UserAccountRecordDao extends BaseMapper<UserAccountRecord> {
                                     @Param("bizType") AccountBizTypeEnum bizType,
                                     @Param("bizId") Long bizId);
 
-
+    /**
+     * 查询老师账户中可以入账的分润记录
+     *
+     * @param bizTypes
+     * @return
+     */
+    List<UserAccountRecord> queryCanAccountByBizType(@Param("bizTypes")List<String> bizTypes);
 }

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/UserAccountRecordDto.java

@@ -19,7 +19,7 @@ import java.math.BigDecimal;
 @ApiModel(value = "UserAccountRecordDto对象", description = "账户变更传输对象")
 public class UserAccountRecordDto extends UserAccountRecord {
     public UserAccountRecordDto(Long accountId, PostStatusEnum postStatus, BigDecimal transAmount, InOrOutEnum inOrOut, AccountBizTypeEnum bizType,
-                                Long bizId, String bizName, String orderNo) {
+                                Long bizId, String bizName, String orderNo, Long buyUser) {
         this.setAccountId(accountId);
         this.setPostStatus(postStatus);
         this.setTransAmount(transAmount);
@@ -28,5 +28,6 @@ public class UserAccountRecordDto extends UserAccountRecord {
         this.setBizId(bizId);
         this.setBizName(bizName);
         this.setOrderNo(orderNo);
+        this.setBuyUser(buyUser);
     }
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderReq.java

@@ -54,7 +54,7 @@ public class OrderReq {
     public class OrderReqInfo {
         @ApiModelProperty(value = "y用户id", hidden = true)
         private Long userId;
-        @ApiModelProperty(value = "推荐用户id(有推荐人的情况)")
+        @ApiModelProperty(value = "推荐用户id(有推荐人的情况)", hidden = true)
         private Long recomUserId;
         @ApiModelProperty(value = "订单号", hidden = true)
         private String orderNo;

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicAlbumSearch.java

@@ -30,6 +30,9 @@ public class MusicAlbumSearch extends QueryInfo{
     @ApiModelProperty("专辑状态0:停用,1:启用")
     private YesOrNoEnum albumStatus;
 
+    @ApiModelProperty("登录用户id")
+    private Long userId;
+
 
     @ApiModelProperty(value = "是否审核时可见 (0:否  1:是)",hidden = true)
     private YesOrNoEnum auditVersion;
@@ -49,6 +52,13 @@ public class MusicAlbumSearch extends QueryInfo{
     @ApiModelProperty(hidden = true)
     private List<Long> subjectIdList;
 
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
 
     public String getSubjectIds() {
         return subjectIds;

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentMusicSheetSearch.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -21,6 +22,9 @@ public class StudentMusicSheetSearch  extends MusicSheetSearch{
     @ApiModelProperty("专辑分页参数")
     private Integer albumRow = 3;
 
+    @ApiModelProperty(value = "用户类型",hidden = true)
+    private ClientEnum userType;
+
 
     @ApiModelProperty(value = "是否审核时可见 (0:否  1:是)",hidden = true)
     private YesOrNoEnum auditVersion;
@@ -35,6 +39,14 @@ public class StudentMusicSheetSearch  extends MusicSheetSearch{
     @ApiModelProperty(value = "查看我自己的曲目",required = true)
     private Boolean myself = true;
 
+    public ClientEnum getUserType() {
+        return userType;
+    }
+
+    public void setUserType(ClientEnum userType) {
+        this.userType = userType;
+    }
+
     public Boolean getMyself() {
         return myself;
     }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/SysUserContractRecordSearch.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.yonge.cooleshow.common.enums.SysUserType;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -16,6 +17,9 @@ public class SysUserContractRecordSearch extends QueryInfo{
 	@ApiModelProperty(value = "用户id")
 	private Long userId;
 
+	@ApiModelProperty(value = "用户类型 STUDENT 学生 TEACHER 老师")
+	private SysUserType userType;
+
 	@ApiModelProperty(value = "签署状态 DONG 签署中 SUCCESS 签署完成 FAILED 签署失败")
 	private String status;
 
@@ -35,4 +39,12 @@ public class SysUserContractRecordSearch extends QueryInfo{
 	public void setStatus(String status) {
 		this.status = status;
 	}
+
+	public SysUserType getUserType() {
+		return userType;
+	}
+
+	public void setUserType(SysUserType userType) {
+		this.userType = userType;
+	}
 }

+ 10 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/UserAccountRecordSearch.java

@@ -1,6 +1,5 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
@@ -48,8 +47,8 @@ public class UserAccountRecordSearch extends QueryInfo{
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
 	private LocalDateTime endTime;
-
-
+	@ApiModelProperty("购买学生 ")
+	private String username;
 
 	public Long getUserId() {
 		return userId;
@@ -114,4 +113,12 @@ public class UserAccountRecordSearch extends QueryInfo{
 	public void setPostStatus(PostStatusEnum postStatus) {
 		this.postStatus = postStatus;
 	}
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
 }

+ 14 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/PlatformCashAccountRecord.java

@@ -67,10 +67,15 @@ public class PlatformCashAccountRecord implements Serializable {
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
 
+    @TableField("account_period_time_")
+    @ApiModelProperty(value = "账期时间")
+    private Date accountPeriodTime;
+
     public PlatformCashAccountRecord() {
     }
 
-    public PlatformCashAccountRecord(Long accountId, BigDecimal transAmount, InOrOutEnum inOrOut, PostStatusEnum postStatus, AccountBizTypeEnum bizType, Long bizId, String orderNo) {
+    public PlatformCashAccountRecord(Long accountId, BigDecimal transAmount, InOrOutEnum inOrOut, PostStatusEnum postStatus,
+                                     AccountBizTypeEnum bizType, Long bizId, String orderNo, Date accountPeriodTime) {
         this.accountId = accountId;
         this.transAmount = transAmount;
         this.inOrOut = inOrOut;
@@ -78,6 +83,7 @@ public class PlatformCashAccountRecord implements Serializable {
         this.bizType = bizType;
         this.bizId = bizId;
         this.orderNo = orderNo;
+        this.accountPeriodTime = accountPeriodTime;
         this.createTime = new Date();
         this.updateTime = new Date();
     }
@@ -170,5 +176,12 @@ public class PlatformCashAccountRecord implements Serializable {
         this.updateTime = updateTime;
     }
 
+    public Date getAccountPeriodTime() {
+        return accountPeriodTime;
+    }
+
+    public void setAccountPeriodTime(Date accountPeriodTime) {
+        this.accountPeriodTime = accountPeriodTime;
+    }
 }
 

+ 24 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserAccountRecord.java

@@ -54,6 +54,9 @@ public class UserAccountRecord implements Serializable {
     @ApiModelProperty("订单号 ")
     @TableField(value = "order_no_")
     private String orderNo;
+    @ApiModelProperty("购买人id")
+    @TableField(value = "buy_user_")
+    private Long buyUser;
     @ApiModelProperty("创建时间 ")
     @TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -70,6 +73,11 @@ public class UserAccountRecord implements Serializable {
     @ApiModelProperty("异常信息 ")
     @TableField(value = "err_msg_")
     private String errMsg;
+    @TableField("account_period_time_")
+    @ApiModelProperty(value = "账期时间")
+    private Date accountPeriodTime;
+
+
 
     public Long getId() {
         return id;
@@ -182,4 +190,20 @@ public class UserAccountRecord implements Serializable {
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
+
+    public Date getAccountPeriodTime() {
+        return accountPeriodTime;
+    }
+
+    public void setAccountPeriodTime(Date accountPeriodTime) {
+        this.accountPeriodTime = accountPeriodTime;
+    }
+
+    public Long getBuyUser() {
+        return buyUser;
+    }
+
+    public void setBuyUser(Long buyUser) {
+        this.buyUser = buyUser;
+    }
 }

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/AlbumFavoriteService.java

@@ -21,4 +21,13 @@ public interface AlbumFavoriteService extends IService<AlbumFavorite> {
      * @return list
      */
     List<AlbumFavorite> getFavorite(Long studentId, Long albumId);
+
+    /**
+     * 获取收藏信息
+     *
+     * @param userId 用户id
+     * @param albumIds 专辑id
+     * @return
+     */
+    List<Long> selectFavorite(Long userId, List<Long> albumIds);
 }

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserAccountRecordService.java

@@ -42,6 +42,14 @@ public interface UserAccountRecordService extends IService<UserAccountRecord> {
 
     List<UserAccountRecordVo> selectAllPage(UserAccountRecordSearch query);
 
+
+    /**
+     * 分页查询
+     *
+     * @author liweifan
+     * @date 2022-03-30
+     */
+    IPage<UserAccountRecordVo> sharePage(IPage<UserAccountRecordVo> page, UserAccountRecordSearch query);
     /**
      * app查询详情
      *
@@ -79,4 +87,9 @@ public interface UserAccountRecordService extends IService<UserAccountRecord> {
 
 
     HttpResponseResult<UserAccountVo> accountTotal(UserAccountRecordSearch query);
+
+    /**
+     * 修改老师账户入账状态
+     */
+    void updateWaitRecord();
 }

+ 3 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserAccountService.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.entity.UserAccountRecord;
 import com.yonge.cooleshow.biz.dal.vo.UserAccountVo;
 import com.yonge.cooleshow.biz.dal.dto.search.UserAccountSearch;
 import com.yonge.cooleshow.biz.dal.entity.UserAccount;
+import com.yonge.cooleshow.biz.dal.vo.res.AccountShareTotal;
 import com.yonge.cooleshow.biz.dal.vo.res.AccountTotal;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.MallOrderItemDto;
@@ -79,7 +80,6 @@ public interface UserAccountService extends IService<UserAccount>  {
      */
     HttpResponseResult<AccountTotal> accountTotal(TotalReq totalReq);
 
-
     /**
      * 设置老师分润状态
      *
@@ -92,4 +92,6 @@ public interface UserAccountService extends IService<UserAccount>  {
      * @return
      */
     boolean saveMallAccountRecord(List<MallOrderItemDto> shareDto);
+
+    HttpResponseResult<AccountShareTotal> accountShareTotal(TotalReq query);
 }

+ 7 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderPaymentService.java

@@ -78,5 +78,11 @@ public interface UserOrderPaymentService extends IService<UserOrderPayment> {
     void closePaymentCallBack(PaymentCallBack data);
 
 
-
+    /**
+     * 签协议
+     *
+     * @param  type 类型
+     * @param userId 用户id
+     */
+    void setContractRecord(String type, Long userId);
 }

+ 16 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/AlbumFavoriteServiceImpl.java

@@ -8,8 +8,11 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * AlbumFavoriteService服务实现类
@@ -37,4 +40,17 @@ public class AlbumFavoriteServiceImpl extends ServiceImpl<AlbumFavoriteDao,Album
                     .eq(AlbumFavorite::getUserId, studentId)
                     .list();
     }
+
+    @Override
+    public List<Long> selectFavorite(Long userId, List<Long> albumIds) {
+        List<AlbumFavorite> list = this.lambdaQuery()
+                                       .in(AlbumFavorite::getAlbumId, albumIds)
+                                       .eq(AlbumFavorite::getUserId, userId)
+                                       .list();
+
+        if (CollectionUtils.isEmpty(list)) {
+            return new ArrayList<>();
+        }
+        return list.stream().map(AlbumFavorite::getAlbumId).collect(Collectors.toList());
+    }
 }

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

@@ -111,7 +111,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
      */
     @Override
     public LiveCourseInfoVo queryLiveCourseInfo(Long groupId) {
-        return queryLiveCourseInfo(groupId,getSysUser());
+        return queryLiveCourseInfo(groupId, getSysUser());
     }
 
     /**
@@ -120,7 +120,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
      * @param groupId 课程组id
      */
 
-    private LiveCourseInfoVo queryLiveCourseInfo(Long groupId,SysUser sysUser) {
+    private LiveCourseInfoVo queryLiveCourseInfo(Long groupId, SysUser sysUser) {
         CourseGroup group = Optional.ofNullable(groupId).map(this::getById)
                 .orElseThrow(() -> new BizException("课程组信息不存在"));
 
@@ -144,6 +144,11 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         if (teacher == null) {
             throw new BizException("用户不存在");
         }
+        if (sysUser.getId().equals(teacher.getId())) {
+            result.setMyself(true);
+        } else {
+            result.setMyself(false);
+        }
 
         result.setTeacherName(teacher.getRealName());
         result.setUserName(teacher.getUsername());
@@ -808,7 +813,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         List<UserAccountRecordDto> userAccountRecordDtos = new ArrayList<>();
         for (CourseScheduleTeacherSalary salary : teacherSalaryList) {
             UserAccountRecordDto dto = new UserAccountRecordDto(orderParam.getMerchId(), PostStatusEnum.WAIT, salary.getActualSalary(),
-                    InOrOutEnum.IN, AccountBizTypeEnum.LIVE, salary.getCourseScheduleId(), orderParam.getGoodName(), orderParam.getOrderNo());
+                    InOrOutEnum.IN, AccountBizTypeEnum.LIVE, salary.getCourseScheduleId(), orderParam.getGoodName(), orderParam.getOrderNo(), orderParam.getUserId());
             userAccountRecordDtos.add(dto);
         }
         userAccountService.accountRecord(userAccountRecordDtos);
@@ -1237,17 +1242,17 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         SysUser teacher = this.getSysUser(liveCourseInfoVo.getTeacherId());
 
         LiveCourseGroupShareVo liveCourseGroupShareVo = new LiveCourseGroupShareVo();
-        BeanUtils.copyProperties(liveCourseInfoVo,liveCourseGroupShareVo);
+        BeanUtils.copyProperties(liveCourseInfoVo, liveCourseGroupShareVo);
         liveCourseGroupShareVo.setShareTeacherAvatar(teacher.getAvatar());
         liveCourseGroupShareVo.setShareTeacherName(teacher.getUsername());
 
-        String teacherLiveGroupShareProfitUrl= sysConfigService.findConfigValue(SysConfigConstant.TEACHER_LIVE_GROUP_SHARE_PROFIT_URL);
+        String teacherLiveGroupShareProfitUrl = sysConfigService.findConfigValue(SysConfigConstant.TEACHER_LIVE_GROUP_SHARE_PROFIT_URL);
 
         ShareProfitVo result = new ShareProfitVo();
         result.setTeacherId(sysUser.getId());
         result.setType("LIVE");
         result.setLiveCourseGroup(liveCourseGroupShareVo);
-        result.setUrl(MessageFormatter.arrayFormat(teacherLiveGroupShareProfitUrl,liveGroupId, sysUser.getId()));
+        result.setUrl(MessageFormatter.arrayFormat(teacherLiveGroupShareProfitUrl, liveGroupId, sysUser.getId()));
         result.setName(sysUser.getUsername());
         result.setAvatar(sysUser.getAvatar());
         return result;

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

@@ -1147,7 +1147,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         List<UserAccountRecordDto> userAccountRecordDtos = new ArrayList<>();
         for (CourseScheduleTeacherSalary salary : teacherSalaryList) {
             UserAccountRecordDto dto = new UserAccountRecordDto(orderParam.getMerchId(), PostStatusEnum.WAIT, salary.getActualSalary(),
-                    InOrOutEnum.IN, AccountBizTypeEnum.LIVE, salary.getCourseScheduleId(), orderParam.getGoodName(), orderParam.getOrderNo());
+                    InOrOutEnum.IN, AccountBizTypeEnum.PRACTICE, salary.getCourseScheduleId(), orderParam.getGoodName(), orderParam.getOrderNo(), orderParam.getUserId());
             userAccountRecordDtos.add(dto);
         }
         userAccountService.accountRecord(userAccountRecordDtos);

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

@@ -203,7 +203,21 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
 
     @Override
     public IPage<MusicAlbumVo> selectStudentPage(IPage<MusicAlbumVo> page, MusicAlbumSearch query) {
-        return page.setRecords(baseMapper.selectStudentPage(page,query));
+        IPage<MusicAlbumVo> iPage = page.setRecords(baseMapper.selectStudentPage(page, query));
+        List<MusicAlbumVo> records = iPage.getRecords();
+        List<Long> albumIds = records.stream().map(MusicAlbumVo::getId).collect(Collectors.toList());
+        if (query.getUserId() == null || CollectionUtils.isEmpty(albumIds)) {
+            return iPage;
+        }
+        albumIds = albumFavoriteService.selectFavorite(query.getUserId(),albumIds);
+        for (MusicAlbumVo record : records) {
+            if(albumIds.contains(record.getId())) {
+                record.setFavorite(YesOrNoEnum.YES);
+            } else {
+                record.setFavorite(YesOrNoEnum.NO);
+            }
+        }
+        return iPage;
     }
 
     private boolean checkNameRepeat(String albumName, Long id) {

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

@@ -626,7 +626,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         //插入老师账户变更记录-老师预收
         userAccountService.accountRecord(
                 new UserAccountRecordDto(userOrderDetailVo.getMerchId(), PostStatusEnum.WAIT, transAmount, InOrOutEnum.IN,
-                        AccountBizTypeEnum.MUSIC, musicSheetId, userOrderDetailVo.getGoodName(), userOrderDetailVo.getOrderNo()));
+                        AccountBizTypeEnum.MUSIC, musicSheetId, userOrderDetailVo.getGoodName(), userOrderDetailVo.getOrderNo(),userOrderDetailVo.getUserId()));
     }
 
     @Override

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

@@ -95,11 +95,6 @@ public class PianoRoomBuyRecordServiceImpl extends ServiceImpl<PianoRoomBuyRecor
             pianoRoomTime.setUpdateTime(new Date());
             pianoRoomTimeService.updateById(pianoRoomTime);
         }
-
-        //计入平台实收
-        PlatformCashAccountRecord platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getUserId(), orderDetailVo.getExpectPrice(),
-                InOrOutEnum.IN, PostStatusEnum.RECORDED, AccountBizTypeEnum.PIAON_ROOM, orderDetailVo.getBizId(), orderDetailVo.getOrderNo());
-        platformCashAccountRecordService.save(platformCashAccountRecord);
     }
 
 }

+ 22 - 45
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PlatformCashAccountRecordServiceImpl.java

@@ -8,6 +8,7 @@ import java.util.stream.Collectors;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
+import com.yonge.cooleshow.biz.dal.service.UserAccountRecordService;
 import com.yonge.toolset.base.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,6 +28,7 @@ import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.vo.PlatformCashAccountRecordSummaryVo;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.enums.PostStatusEnum;
+import org.springframework.util.CollectionUtils;
 
 /**
  * 平台账户流水表(PlatformCashAccountRecord)表服务实现类
@@ -41,6 +43,8 @@ public class PlatformCashAccountRecordServiceImpl extends ServiceImpl<PlatformCa
 
     @Autowired
     private SysConfigService sysConfigService;
+    @Autowired
+    private UserAccountRecordService userAccountRecordService;
 
     @Override
     public PlatformCashAccountRecordDao getDao() {
@@ -60,56 +64,29 @@ public class PlatformCashAccountRecordServiceImpl extends ServiceImpl<PlatformCa
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean updateWaitRecord() {
-        List<String> paramNames = new ArrayList<String>();
-        paramNames.add(SysConfigConstant.MALL_ACCOUNT_PERIOD);
-        paramNames.add(SysConfigConstant.MUSIC_ACCOUNT_PERIOD);
-        paramNames.add(SysConfigConstant.VIP_ACCOUNT_PERIOD);
-        paramNames.add(SysConfigConstant.VIDEO_ACCOUNT_PERIOD);
-        paramNames.add(SysConfigConstant.LIVE_ACCOUNT_PERIOD);
-
-        List<SysConfig> sysConfigs = sysConfigService.findByParamName(paramNames);
-
-        Map<String, String> configMap = sysConfigs.stream().collect(Collectors.toMap(SysConfig::getParamName, SysConfig::getParamValue));
-
-        List<PlatformCashAccountRecord> list = new ArrayList<PlatformCashAccountRecord>();
-        //根据不同类型(业务类型:PRACTICE、陪练课 LIVE、直播课 VIDEO、视频课 MUSIC、乐谱)查询超过账期待结算的记录
-        // List<PlatformCashAccountRecord> list1 = getDao().queryByBizTypeAndPaymentDays(AccountBizTypeEnum.MALL_SHARE.getCode(), Integer.parseInt(configMap.get(SysConfigConstant.MALL_ACCOUNT_PERIOD).toString()));
-        List<PlatformCashAccountRecord> list2 = getDao().queryByBizTypeAndPaymentDays(AccountBizTypeEnum.MUSIC_SHARE.getCode(), Integer.parseInt(configMap.get(SysConfigConstant.MUSIC_ACCOUNT_PERIOD).toString()));
-        List<PlatformCashAccountRecord> list3 = getDao().queryByBizTypeAndPaymentDays(AccountBizTypeEnum.VIP_SHARE.getCode(), Integer.parseInt(configMap.get(SysConfigConstant.VIP_ACCOUNT_PERIOD).toString()));
-        List<PlatformCashAccountRecord> list4 = getDao().queryByBizTypeAndPaymentDays(AccountBizTypeEnum.VIDEO_SHARE.getCode(), Integer.parseInt(configMap.get(SysConfigConstant.VIDEO_ACCOUNT_PERIOD).toString()));
-        List<PlatformCashAccountRecord> list5 = getDao().queryByBizTypeAndPaymentDays(AccountBizTypeEnum.LIVE_SHARE.getCode(), Integer.parseInt(configMap.get(SysConfigConstant.LIVE_ACCOUNT_PERIOD).toString()));
-
-        // if (list1.size() > 0) {
-        //     list.addAll(list1);
-        // }
-        if (list2.size() > 0) {
-            list.addAll(list2);
-        }
-        if (list3.size() > 0) {
-            list.addAll(list3);
-        }
-        if (list4.size() > 0) {
-            list.addAll(list4);
-        }
-        if (list5.size() > 0) {
-            list.addAll(list5);
-        }
-
-        if (list.size() > 0) {
-            Date date = new Date();
-            List<PlatformCashAccountRecord> batchUpdateList = new ArrayList<PlatformCashAccountRecord>();
-
+        //平台账户修改
+        List<String> paramNames = new ArrayList<>();
+        paramNames.add(AccountBizTypeEnum.PRACTICE.getCode());
+        paramNames.add(AccountBizTypeEnum.LIVE.getCode());
+        paramNames.add(AccountBizTypeEnum.LIVE_SHARE.getCode());
+        paramNames.add(AccountBizTypeEnum.VIDEO.getCode());
+        paramNames.add(AccountBizTypeEnum.VIDEO_SHARE.getCode());
+        paramNames.add(AccountBizTypeEnum.MUSIC.getCode());
+        paramNames.add(AccountBizTypeEnum.MUSIC_SHARE.getCode());
+        paramNames.add(AccountBizTypeEnum.VIP.getCode());
+        paramNames.add(AccountBizTypeEnum.VIP_SHARE.getCode());
+
+        List<PlatformCashAccountRecord> list = getDao().queryCanAccountByBizType(paramNames);
+        if(!CollectionUtils.isEmpty(list)){
             for (PlatformCashAccountRecord pcar : list) {
                 //预收改成实收
                 pcar.setPostStatus(PostStatusEnum.RECORDED);
-                pcar.setUpdateTime(date);
-                batchUpdateList.add(pcar);
-            }
-
-            if (batchUpdateList.size() > 0) {
-                getDao().batchUpdate(batchUpdateList);
+                pcar.setUpdateTime(new Date());
             }
+            getDao().batchUpdate(list);
         }
+        //老师账户修改
+        userAccountRecordService.updateWaitRecord();
         return true;
     }
 

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

@@ -73,6 +73,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         if (null == detail) {
             detail = new TeacherVo();
         }
+        int num = DateUtil.daysBetween(new Date(), detail.getMembershipEndTime());
+        detail.setMembershipDays(num < 0 ? 0 : num);
         List<TeacherStyleVideo> teacherStyleVideos = teacherStyleVideoService.selectListByUserId(userId);
         detail.setStyleVideo(teacherStyleVideos);
         TeacherAuthEntryRecordVo lastRecordByUserId = entryRecordService.getLastRecordByUserId(userId);

+ 30 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountRecordServiceImpl.java

@@ -10,10 +10,12 @@ import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.service.SysMessageService;
+import com.yonge.cooleshow.biz.dal.service.UserAccountService;
 import com.yonge.cooleshow.biz.dal.vo.TeacherEarningVo;
 import com.yonge.cooleshow.biz.dal.vo.UserAccountVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.enums.PostStatusEnum;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -46,6 +48,9 @@ public class UserAccountRecordServiceImpl extends ServiceImpl<UserAccountRecordD
     @Autowired
     private CourseScheduleService courseScheduleService;
 
+    @Autowired
+    private UserAccountService userAccountService;
+
     @Override
     public UserAccountRecordVo detail(Long id) {
         UserAccountRecordVo detail = baseMapper.detail(id);
@@ -54,7 +59,7 @@ public class UserAccountRecordServiceImpl extends ServiceImpl<UserAccountRecordD
 
     @Override
     public UserAccountRecordVo detail(String orderNo, AccountBizTypeEnum bizType, Long bizId) {
-        UserAccountRecordVo detail = baseMapper.detailByBiz(orderNo,bizType,bizId);
+        UserAccountRecordVo detail = baseMapper.detailByBiz(orderNo, bizType, bizId);
         return detail;
     }
 
@@ -69,12 +74,34 @@ public class UserAccountRecordServiceImpl extends ServiceImpl<UserAccountRecordD
     }
 
     @Override
+    public IPage<UserAccountRecordVo> sharePage(IPage<UserAccountRecordVo> page, UserAccountRecordSearch query) {
+        return page.setRecords(baseMapper.sharePage(page, query));
+    }
+
+    @Override
     public HttpResponseResult<UserAccountVo> accountTotal(UserAccountRecordSearch query) {
         return HttpResponseResult.succeed(baseMapper.accountTotal(query));
     }
 
     @Override
-    public UserAccountRecordVo appDetail(Long id){
+    public void updateWaitRecord() {
+        //平台账户修改
+        List<String> paramNames = new ArrayList<>();
+        paramNames.add(AccountBizTypeEnum.LIVE_SHARE.getCode());
+        paramNames.add(AccountBizTypeEnum.VIDEO.getCode());
+        paramNames.add(AccountBizTypeEnum.VIDEO_SHARE.getCode());
+        paramNames.add(AccountBizTypeEnum.MUSIC.getCode());
+        paramNames.add(AccountBizTypeEnum.MUSIC_SHARE.getCode());
+        paramNames.add(AccountBizTypeEnum.VIP.getCode());
+        paramNames.add(AccountBizTypeEnum.VIP_SHARE.getCode());
+        List<UserAccountRecord> accountRecords = baseMapper.queryCanAccountByBizType(paramNames);
+        for (UserAccountRecord accountRecord : accountRecords) {
+            userAccountService.accountChange(accountRecord.getId(), PostStatusEnum.RECORDED);
+        }
+    }
+
+    @Override
+    public UserAccountRecordVo appDetail(Long id) {
         UserAccountRecordVo detail = baseMapper.appDetail(id);
         return detail;
     }
@@ -128,7 +155,7 @@ public class UserAccountRecordServiceImpl extends ServiceImpl<UserAccountRecordD
                     .eq(CourseSchedule::getCourseGroupId, userOrderDetailVo.getBizId())
                     .ne(CourseSchedule::getStatus, "CANCEL")
             );
-            cancel.stream().forEach(o->bizIds.add(o.getId()));
+            cancel.stream().forEach(o -> bizIds.add(o.getId()));
         }
         if (CollectionUtils.isEmpty(bizIds)) {
             return new ArrayList<>();
@@ -137,5 +164,4 @@ public class UserAccountRecordServiceImpl extends ServiceImpl<UserAccountRecordD
     }
 
 
-
 }

+ 26 - 13
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountServiceImpl.java

@@ -15,6 +15,7 @@ import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo;
+import com.yonge.cooleshow.biz.dal.vo.res.AccountShareTotal;
 import com.yonge.cooleshow.common.entity.MallOrderItemDto;
 import com.yonge.cooleshow.common.enums.CacheNameEnum;
 import com.yonge.cooleshow.biz.dal.vo.res.AccountTotal;
@@ -395,9 +396,10 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
     }
 
     @Override
+    @Transactional
     public void mallTeacherRecordState(List<MallOrderItemDto> shareDto) {
         if (CollectionUtils.isEmpty(shareDto)) {
-            return ;
+            return;
         }
         for (MallOrderItemDto mallOrderItemDto : shareDto) {
             mallTeacherRecordState(mallOrderItemDto);
@@ -405,6 +407,17 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
     }
 
     public void mallTeacherRecordState(MallOrderItemDto shareDto) {
+
+        // 平台修改收入状态
+        if (shareDto.getStatus().equals(PostStatusEnum.RECORDED)) {
+            platformCashAccountRecordService.mallRecordedRecord(shareDto.getProductSkuId(),shareDto.getOrderSn(),GoodTypeEnum.MALL.getCode());
+
+        } else if (shareDto.getStatus().equals(PostStatusEnum.CANCEL)) {
+            platformCashAccountRecordService.cancelRecord(shareDto.getOrderSn(),GoodTypeEnum.MALL.getCode(),shareDto.getProductSkuId());
+        }
+
+
+        // 修改老师分润
         List<UserAccountRecord> list = userAccountRecordService.lambdaQuery()
                                                                .eq(UserAccountRecord::getOrderNo, shareDto.getOrderSn())
                                                                .eq(UserAccountRecord::getBizId, shareDto.getProductSkuId())
@@ -414,22 +427,17 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         }
         for (UserAccountRecord userAccount : list) {
             this.accountChange(userAccount.getId(),shareDto.getStatus());
-            if (shareDto.getStatus().equals(PostStatusEnum.RECORDED)) {
-
-                platformCashAccountRecordService.mallRecordedRecord(shareDto.getProductSkuId(),shareDto.getOrderSn(),GoodTypeEnum.MALL.getCode());
-
-            } else if (shareDto.getStatus().equals(PostStatusEnum.CANCEL)) {
-                platformCashAccountRecordService.cancelRecord(shareDto.getOrderSn(),GoodTypeEnum.MALL.getCode(),shareDto.getProductSkuId());
-            }
         }
     }
 
 
     /**
      * 记录平台收入和用户分润收入
+     *
      * @return
      */
     @Override
+    @Transactional
     public boolean saveMallAccountRecord(List<MallOrderItemDto> shareDto) {
         if (CollectionUtils.isEmpty(shareDto)) {
             return false;
@@ -440,6 +448,11 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         return true;
     }
 
+    @Override
+    public HttpResponseResult<AccountShareTotal> accountShareTotal(TotalReq query) {
+        return HttpResponseResult.succeed(baseMapper.accountShareTotal(query));
+    }
+
     public void saveMallAccountRecord(MallOrderItemDto shareDto) {
         BigDecimal expectPrice = shareDto.getRealAmount();
         if (expectPrice.compareTo(BigDecimal.ZERO) <= 0) {
@@ -447,12 +460,12 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         }
         //平台收入
         PlatformCashAccountRecord platformCashAccountRecord = new PlatformCashAccountRecord(shareDto.getUserId(), expectPrice,
-                          InOrOutEnum.IN, PostStatusEnum.WAIT, AccountBizTypeEnum.MALL, shareDto.getProductSkuId(), shareDto.getOrderSn());
+                InOrOutEnum.IN, PostStatusEnum.WAIT, AccountBizTypeEnum.MALL, shareDto.getProductSkuId(), shareDto.getOrderSn(), new Date());
 
         platformCashAccountRecordService.save(platformCashAccountRecord);
 
         //分润
-        if (null != shareDto.getPromoterId()) {
+        if (null != shareDto.getPromoterId() && !shareDto.getPromoterId().equals(shareDto.getUserId())) {
             //获取分润收益费率
             BigDecimal shareFeeRate = userOrderService.getShareFreeByGoodType(GoodTypeEnum.MALL);
             if (shareFeeRate.compareTo(BigDecimal.ZERO) > 0) {
@@ -462,11 +475,11 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
                 //插入分润老师账户变更记录-分润老师预收
                 HttpResponseResult<UserAccountRecord> recomRecordRes = this.accountRecord(
                         new UserAccountRecordDto(shareDto.getPromoterId(), PostStatusEnum.WAIT, shareFee, InOrOutEnum.IN,
-                                                 bizTypeEnum, shareDto.getProductSkuId(), shareDto.getProductName(), shareDto.getOrderSn()));
-                if(recomRecordRes.getStatus()){
+                                bizTypeEnum, shareDto.getProductSkuId(), shareDto.getProductName(), shareDto.getOrderSn(), shareDto.getUserId()));
+                if (recomRecordRes.getStatus()) {
                     //插入平台预支
                     platformCashAccountRecord = new PlatformCashAccountRecord(shareDto.getPromoterId(), shareFee,
-                            InOrOutEnum.OUT, PostStatusEnum.WAIT, AccountBizTypeEnum.MALL_SHARE, shareDto.getProductSkuId(), shareDto.getOrderSn());
+                            InOrOutEnum.OUT, PostStatusEnum.WAIT, AccountBizTypeEnum.MALL_SHARE, shareDto.getProductSkuId(), shareDto.getOrderSn(), new Date());
                     platformCashAccountRecordService.save(platformCashAccountRecord);
                 }
             }

+ 8 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderPaymentServiceImpl.java

@@ -23,7 +23,6 @@ import com.yonge.toolset.payment.base.enums.PayChannelEnum;
 import com.yonge.toolset.payment.base.enums.PaymentClientEnum;
 import com.yonge.toolset.payment.base.enums.TradeStatusEnum;
 import com.yonge.toolset.payment.base.model.*;
-import com.yonge.toolset.payment.base.model.callback.ExecutePaymentCallBack;
 import com.yonge.toolset.payment.base.model.callback.PaymentCallBack;
 import com.yonge.toolset.payment.core.props.PaymentProperties;
 import com.yonge.toolset.payment.core.service.PaymentClient;
@@ -276,14 +275,19 @@ public class UserOrderPaymentServiceImpl extends ServiceImpl<UserOrderPaymentDao
             userOrderService.orderSuccess(detail, data);
         }
 
+        setContractRecord(orderPayment.getPaymentClient(), detail.getUserId());
+    }
+
+    @Override
+    public void setContractRecord(String type, Long userId) {
         //处理支付完成签署协议
         SysUserType userType = SysUserType.STUDENT;
-        if (ClientEnum.TEACHER.getCode().equals(orderPayment.getPaymentClient())) {
+        if (ClientEnum.TEACHER.getCode().equals(type)) {
             userType = SysUserType.TEACHER;
         }
-        Boolean aBoolean = sysUserContractRecordService.checkContractSign(detail.getUserId(), userType, ContractTemplateTypeEnum.BUY_ORDER);
+        Boolean aBoolean = sysUserContractRecordService.checkContractSign(userId, userType, ContractTemplateTypeEnum.BUY_ORDER);
         if (!aBoolean) {
-            SysUser userById = userService.findUserById(detail.getUserId());
+            SysUser userById = userService.findUserById(userId);
             SysUserType finalUserType = userType;
             CompletableFuture.runAsync(() -> sysUserContractRecordService.sign(ContractTemplateTypeEnum.BUY_ORDER, finalUserType, userById));
         }

+ 6 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderRefundServiceImpl.java

@@ -417,6 +417,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
         refundBill.setRefundAmt(orderRefund.getActualAmount());
         refundBill.setReason(orderRefund.getReason());
 
+
         BaseResult<RefundBill> refundBillBaseResult = paymentClient.refundPayment(refundBill);
         log.info("退款返回: {} ", JSONObject.toJSONString(refundBillBaseResult));
 
@@ -434,6 +435,9 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
         }
         refundBillService.save(orderRefundBill);
         updateById(orderRefund);
+
+        //处理退款业务
+        orderRefundSuccessBizHandle(orderRefund.getId());
         return HttpResponseResult.succeed(orderRefundBill);
     }
 
@@ -459,8 +463,6 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
         one.setStatus(TradeStatusEnum.succeeded);
         one.setUpdateTime(new Date());
         refundBillService.updateById(one);
-
-        orderRefundSuccessBizHandle(one.getRefundId());
     }
 
     /***
@@ -492,7 +494,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
     }
 
     /**
-     * 处理退款成功业务
+     * 处理退款业务
      *
      * @param refundId 退款单id
      */
@@ -527,6 +529,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
      * @param vo
      */
     private void accountHandle(UserOrderDetailVo vo) {
+        //处理老师入账
         List<UserAccountRecord> dataList = userAccountRecordService.selectRecordByOrderDetail(vo);
         for (UserAccountRecord userAccountRecord : dataList) {
             if (PostStatusEnum.WAIT.equals(userAccountRecord.getPostStatus())

+ 50 - 17
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -204,6 +204,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
 
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void setSuccessStatus() {
         OrderSearch query = new OrderSearch();
         query.setStatus("WAIT_PAY,PAYING");
@@ -224,6 +225,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void setOrderStatus(String orderNo, OrderStatusEnum orderStatus) {
         UserOrderVo detail = detail(orderNo, null);
         if (OrderStatusEnum.WAIT_PAY.equals(detail.getStatus())
@@ -798,25 +800,28 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         if (expectPrice.compareTo(BigDecimal.ZERO) <= 0) {
             return;
         }
+        //获取账期时间
+        Date accountPeriodTime = getAccountPeriodTime(orderDetailVo);
+
         //平台收入
         //获取平台服务费率
         BigDecimal platformFeeRate = getPlatformFreeByGoodType(orderDetailVo.getGoodType());
-        if (platformFeeRate.compareTo(BigDecimal.ZERO) > 0) {
-            //没有卖家的为平台订单,平台全额收益
-            if(null == orderDetailVo.getMerchId() || orderDetailVo.getMerchId().equals(0L)){
-                platformFeeRate = BigDecimal.ONE;
-            }
-
-            BigDecimal platformFee = expectPrice.multiply(platformFeeRate).setScale(2, RoundingMode.HALF_UP);
+        //没有卖家的为平台订单,平台全额收益
+        if (null == orderDetailVo.getMerchId() || orderDetailVo.getMerchId().equals(0L)) {
+            platformFeeRate = BigDecimal.ONE;
+        }
+        BigDecimal platformFee = expectPrice.multiply(platformFeeRate).setScale(2, RoundingMode.HALF_UP);
 
+        if (platformFee.compareTo(BigDecimal.ZERO) > 0) {
             PlatformCashAccountRecord platformCashAccountRecord;
             if (GoodTypeEnum.PINAO_ROOM.equals(orderDetailVo.getGoodType())) {
                 platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getUserId(), platformFee,
-                        InOrOutEnum.IN, PostStatusEnum.RECORDED, AccountBizTypeEnum.PIAON_ROOM, orderDetailVo.getBizId(), orderDetailVo.getOrderNo());
+                        InOrOutEnum.IN, PostStatusEnum.RECORDED, AccountBizTypeEnum.PIAON_ROOM, orderDetailVo.getBizId(),
+                        orderDetailVo.getOrderNo(),accountPeriodTime);
             } else {
                 AccountBizTypeEnum bizTypeEnum = AccountBizTypeEnum.valueOf(orderDetailVo.getGoodType().getCode());
                 platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getUserId(), platformFee,
-                        InOrOutEnum.IN, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getOrderNo());
+                        InOrOutEnum.IN, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getOrderNo(),accountPeriodTime);
             }
             platformCashAccountRecordService.save(platformCashAccountRecord);
         }
@@ -825,19 +830,19 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         if (null != orderDetailVo.getRecomUserId()) {
             //获取分润收益费率
             BigDecimal shareFeeRate = getShareFreeByGoodType(orderDetailVo.getGoodType());
-            if (shareFeeRate.compareTo(BigDecimal.ZERO) > 0) {
-                //入老师账户
-                BigDecimal shareFee = expectPrice.multiply(shareFeeRate).setScale(2, RoundingMode.HALF_UP);
+            //入老师账户
+            BigDecimal shareFee = expectPrice.multiply(shareFeeRate).setScale(2, RoundingMode.HALF_UP);
+            if (shareFee.compareTo(BigDecimal.ZERO) > 0) {
                 AccountBizTypeEnum bizTypeEnum = AccountBizTypeEnum.valueOf(orderDetailVo.getGoodType().getCode() + "_SHARE");
-                if(null != bizTypeEnum){
+                if (null != bizTypeEnum) {
                     //插入分润老师账户变更记录-分润老师预收
                     HttpResponseResult<UserAccountRecord> recomRecordRes = userAccountService.accountRecord(
                             new UserAccountRecordDto(orderDetailVo.getRecomUserId(), PostStatusEnum.WAIT, shareFee, InOrOutEnum.IN,
-                                    bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getGoodName(), orderDetailVo.getOrderNo()));
-                    if(recomRecordRes.getStatus()){
+                                    bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getGoodName(), orderDetailVo.getOrderNo(),orderDetailVo.getUserId()));
+                    if (recomRecordRes.getStatus()) {
                         //插入平台预支
                         PlatformCashAccountRecord platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getRecomUserId(), shareFee,
-                                InOrOutEnum.OUT, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getOrderNo());
+                                InOrOutEnum.OUT, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getOrderNo(),accountPeriodTime);
                         platformCashAccountRecordService.save(platformCashAccountRecord);
                     }
                 }
@@ -846,6 +851,33 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     }
 
     /**
+     * 获取账期时间
+     *
+     * @param orderDetailVo
+     * @return
+     */
+    private Date getAccountPeriodTime(UserOrderDetailVo orderDetailVo) {
+        Calendar instance = Calendar.getInstance();
+        GoodTypeEnum goodType = orderDetailVo.getGoodType();
+
+        if (GoodTypeEnum.VIP.equals(goodType)) {
+            instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.VIP_ACCOUNT_PERIOD)));
+        } else if (GoodTypeEnum.VIDEO.equals(goodType)) {
+            instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.VIDEO_ACCOUNT_PERIOD)));
+        } else if (GoodTypeEnum.MUSIC.equals(goodType)) {
+            instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.MUSIC_ACCOUNT_PERIOD)));
+        } else if (GoodTypeEnum.PRACTICE.equals(goodType)) {
+            instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.PRACTICE_ACCOUNT_PERIOD)));
+        } else if (GoodTypeEnum.LIVE.equals(goodType)) {
+            //直播课取直播课成课时间+账期
+
+
+            instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.PRACTICE_ACCOUNT_PERIOD)));
+        }
+        return instance.getTime();
+    }
+
+    /**
      * 获取分润收益费率
      *
      * @param goodType
@@ -906,7 +938,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         return BigDecimal.ZERO;
     }
 
-    private void testOrderSuccess(UserOrderVo detail) {
+    @Transactional(rollbackFor = Exception.class)
+    public void testOrderSuccess(UserOrderVo detail) {
         if (null == detail || StringUtil.isEmpty(detail.getOrderNo())) {
             return;
         }

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

@@ -165,7 +165,7 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
         //插入账户变更
         HttpResponseResult<UserAccountRecord> accountChange = userAccountService.accountRecord(new UserAccountRecordDto(user.getId(), PostStatusEnum.FROZEN,
                 withdrawalReq.getAmountWithdrawal(), InOrOutEnum.OUT, AccountBizTypeEnum.WITHDRAWAL,
-                userWithdrawal.getId(), "老师结算", null
+                userWithdrawal.getId(), "老师结算", null, null
         ));
 
         if (accountChange.getStatus()) {
@@ -279,12 +279,12 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
                 res = HttpResponseResult.failed("结算" + authOperaReq.getId() + "失败,失败原因:" + withdraw.getMsg());
 
                 UserAccountRecordVo detail = accountRecordService.detail(null, AccountBizTypeEnum.WITHDRAWAL, Long.parseLong(authOperaReq.getId()));
-                userAccountService.accountChange(detail.getId(),PostStatusEnum.CANCEL);
+                userAccountService.accountChange(detail.getId(), PostStatusEnum.CANCEL);
             }
         } else {
             //审核不通过,账户解冻
             UserAccountRecordVo detail = accountRecordService.detail(null, AccountBizTypeEnum.WITHDRAWAL, Long.parseLong(authOperaReq.getId()));
-            userAccountService.accountChange(detail.getId(),PostStatusEnum.CANCEL);
+            userAccountService.accountChange(detail.getId(), PostStatusEnum.CANCEL);
 
             //发生审核未通过通知
             unpassSend(build.getUserId(), build.getPhone(), authOperaReq.getReason());
@@ -357,7 +357,7 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
 
             //结算成功,账户解冻,入账户明细
             UserAccountRecordVo recordVo = accountRecordService.detail(null, AccountBizTypeEnum.WITHDRAWAL, detail.getId());
-            userAccountService.accountChange(recordVo.getId(),PostStatusEnum.RECORDED);
+            userAccountService.accountChange(recordVo.getId(), PostStatusEnum.RECORDED);
             //发生结算成功通知
             successSend(detail.getUserId(), detail.getPhone());
         } else if ("2".equals(callback.getStatus())) {
@@ -369,7 +369,7 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
 
             //结算失败,账户解冻
             UserAccountRecordVo recordVo = accountRecordService.detail(null, AccountBizTypeEnum.WITHDRAWAL, detail.getId());
-            userAccountService.accountChange(recordVo.getId(),PostStatusEnum.CANCEL);
+            userAccountService.accountChange(recordVo.getId(), PostStatusEnum.CANCEL);
 
             //发生结算失败通知
             unpassSend(detail.getUserId(), detail.getPhone(), callback.getErrorMsg());

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

@@ -173,7 +173,7 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         //插入老师账户变更记录-老师预收
         userAccountService.accountRecord(
                 new UserAccountRecordDto(userOrderDetailVo.getMerchId(), PostStatusEnum.WAIT, transAmount, InOrOutEnum.IN,
-                        AccountBizTypeEnum.VIDEO, lessonGroup.getId(), lessonGroup.getLessonName(), userOrderDetailVo.getOrderNo()));
+                        AccountBizTypeEnum.VIDEO, lessonGroup.getId(), lessonGroup.getLessonName(), userOrderDetailVo.getOrderNo(),userOrderDetailVo.getUserId()));
     }
 
     /**

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseInfoVo.java

@@ -22,6 +22,18 @@ public class LiveCourseInfoVo extends CourseGroupVo implements Serializable {
     @ApiModelProperty(value = "学员列表")
     private List<CourseBuyStudentVo> studentList;
 
+    @ApiModelProperty(value = "true 自己的课,false 其他老师的课程")
+    private Boolean myself;
+
+    public Boolean getMyself() {
+        return myself;
+    }
+
+    public void setMyself(Boolean myself) {
+        this.myself = myself;
+    }
+
+
     @ApiModel(value = "PlanVo", description = "教学计划")
     public static class PlanVo extends CourseTimeEntity implements Serializable {
 

+ 14 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MusicAlbumVo.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
 import com.yonge.cooleshow.biz.dal.entity.MusicAlbum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 /**
@@ -11,6 +12,11 @@ import io.swagger.annotations.ApiModelProperty;
  */
 public class MusicAlbumVo extends MusicAlbum {
 
+
+    @ApiModelProperty("收藏0:否,1:是")
+    private YesOrNoEnum favorite = YesOrNoEnum.NO;
+
+
     @ApiModelProperty("教材标签")
     private String musicTagNames;
 
@@ -23,6 +29,14 @@ public class MusicAlbumVo extends MusicAlbum {
     @ApiModelProperty("专辑声部")
     private String subjectNames;
 
+    public YesOrNoEnum getFavorite() {
+        return favorite;
+    }
+
+    public void setFavorite(YesOrNoEnum favorite) {
+        this.favorite = favorite;
+    }
+
     public String getSubjectNames() {
         return subjectNames;
     }

+ 31 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/PlatformCashAccountPageVo.java

@@ -0,0 +1,31 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import com.yonge.cooleshow.biz.dal.entity.PlatformCashAccountRecord;
+import com.yonge.toolset.base.page.PageInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel(value = "PlatformCashAccountPageVo对象", description = "平台账户页面查询对象")
+public class PlatformCashAccountPageVo {
+    @ApiModelProperty(value = "页头统计")
+    PlatformCashAccountRecordSummaryVo summary;
+
+    @ApiModelProperty(value = "分页内容")
+    PageInfo<PlatformCashAccountRecord> pageInfo;
+
+    public PlatformCashAccountRecordSummaryVo getSummary() {
+        return summary;
+    }
+
+    public void setSummary(PlatformCashAccountRecordSummaryVo summary) {
+        this.summary = summary;
+    }
+
+    public PageInfo<PlatformCashAccountRecord> getPageInfo() {
+        return pageInfo;
+    }
+
+    public void setPageInfo(PageInfo<PlatformCashAccountRecord> pageInfo) {
+        this.pageInfo = pageInfo;
+    }
+}

+ 10 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherVo.java

@@ -21,7 +21,8 @@ import java.util.List;
 @ApiModel(value = "TeacherVo对象", description = "教师详情")
 public class TeacherVo extends Teacher {
     private static final long serialVersionUID = 1L;
-
+    @ApiModelProperty("会员剩余有效期天数")
+    private Integer membershipDays;
     @ApiModelProperty("头像地址")
     private String avatar;
     @ApiModelProperty("老师昵称")
@@ -57,6 +58,14 @@ public class TeacherVo extends Teacher {
     @ApiModelProperty(value = "是否会员 0否 1是")
     private YesOrNoEnum isVip;
 
+    public Integer getMembershipDays() {
+        return membershipDays;
+    }
+
+    public void setMembershipDays(Integer membershipDays) {
+        this.membershipDays = membershipDays;
+    }
+
     public YesOrNoEnum getIsVip() {
         return isVip;
     }

+ 22 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserAccountRecordVo.java

@@ -23,6 +23,12 @@ public class UserAccountRecordVo extends UserAccountRecord{
 	@ApiModelProperty("发生时间(mm-dd) ")
 	private String timeDay;
 
+	@ApiModelProperty("购买用户名称 ")
+	private String buyUserName;
+
+	@ApiModelProperty("购买用户头像 ")
+	private String buyUserAvatar;
+
 	@ApiModelProperty(value = "上课时间")
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@@ -64,4 +70,20 @@ public class UserAccountRecordVo extends UserAccountRecord{
 	public void setEndTime(Date endTime) {
 		this.endTime = endTime;
 	}
+
+	public String getBuyUserName() {
+		return buyUserName;
+	}
+
+	public void setBuyUserName(String buyUserName) {
+		this.buyUserName = buyUserName;
+	}
+
+	public String getBuyUserAvatar() {
+		return buyUserAvatar;
+	}
+
+	public void setBuyUserAvatar(String buyUserAvatar) {
+		this.buyUserAvatar = buyUserAvatar;
+	}
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserAccountVo.java

@@ -21,6 +21,9 @@ public class UserAccountVo extends UserAccount{
 	@ApiModelProperty("已入账金额 ")
 	private BigDecimal amountRecorded;
 
+	@ApiModelProperty("酷乐秀推广已入账金额 ")
+	private BigDecimal amountShare;
+
 	public BigDecimal getAmountUnrecorded() {
 		return amountUnrecorded;
 	}
@@ -36,4 +39,12 @@ public class UserAccountVo extends UserAccount{
 	public void setAmountRecorded(BigDecimal amountRecorded) {
 		this.amountRecorded = amountRecorded;
 	}
+
+	public BigDecimal getAmountShare() {
+		return amountShare;
+	}
+
+	public void setAmountShare(BigDecimal amountShare) {
+		this.amountShare = amountShare;
+	}
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonStudentVo.java

@@ -20,6 +20,17 @@ public class VideoLessonStudentVo extends BaseEntity {
     @ApiModelProperty(value = "true已买,false未买")
     private Boolean alreadyBuy;
 
+    @ApiModelProperty(value = "true 自己的课,false 其他老师的课程")
+    private Boolean myself;
+
+    public Boolean getMyself() {
+        return myself;
+    }
+
+    public void setMyself(Boolean myself) {
+        this.myself = myself;
+    }
+
     public VideoLessonGroupVo getLessonGroup() {
         return lessonGroup;
     }

+ 66 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/res/AccountShareTotal.java

@@ -0,0 +1,66 @@
+package com.yonge.cooleshow.biz.dal.vo.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author: liweifan
+ * @Data: 2022/4/21 11:29
+ */
+@ApiModel(value = "AccountShareTotal", description = "分润统计对象")
+public class AccountShareTotal {
+    @ApiModelProperty("累计奖励")
+    private BigDecimal totalAmount = BigDecimal.ZERO;
+    @ApiModelProperty("待入账")
+    private BigDecimal waitAmount = BigDecimal.ZERO;
+    @ApiModelProperty("已入账")
+    private BigDecimal recordedAmount = BigDecimal.ZERO;
+    @ApiModelProperty("已退费")
+    private BigDecimal cancelAmount = BigDecimal.ZERO;
+
+    @ApiModelProperty("推广学员数")
+    private BigDecimal studentNum = BigDecimal.ZERO;
+
+
+    public BigDecimal getTotalAmount() {
+        return totalAmount;
+    }
+
+    public void setTotalAmount(BigDecimal totalAmount) {
+        this.totalAmount = totalAmount;
+    }
+
+    public BigDecimal getWaitAmount() {
+        return waitAmount;
+    }
+
+    public void setWaitAmount(BigDecimal waitAmount) {
+        this.waitAmount = waitAmount;
+    }
+
+    public BigDecimal getRecordedAmount() {
+        return recordedAmount;
+    }
+
+    public void setRecordedAmount(BigDecimal recordedAmount) {
+        this.recordedAmount = recordedAmount;
+    }
+
+    public BigDecimal getCancelAmount() {
+        return cancelAmount;
+    }
+
+    public void setCancelAmount(BigDecimal cancelAmount) {
+        this.cancelAmount = cancelAmount;
+    }
+
+    public BigDecimal getStudentNum() {
+        return studentNum;
+    }
+
+    public void setStudentNum(BigDecimal studentNum) {
+        this.studentNum = studentNum;
+    }
+}

+ 3 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -300,6 +300,9 @@
                 and mspr.student_id_ = #{param.studentId}
                 and mspr.order_status_ = 'PAID'
             </if>
+            <if test="param.userType != null">
+                and mspr.client_type_ = #{param.userType}
+            </if>
         </where>
         order by  mspr.id_ desc
     </select>

+ 29 - 14
cooleshow-user/user-biz/src/main/resources/config/mybatis/PlatformCashAccountRecordMapper.xml

@@ -13,21 +13,22 @@
         <result column="order_no_" jdbcType="VARCHAR" property="orderNo"/>
         <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
+		<result column="account_period_time_" jdbcType="TIMESTAMP" property="accountPeriodTime"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         id_,
-		account_id_, trans_amount_, in_or_out_, post_status_, biz_type_, biz_id_, memo_, order_no_, create_time_, update_time_
+		account_id_, trans_amount_, in_or_out_, post_status_, biz_type_, biz_id_, memo_, order_no_, create_time_, update_time_,account_period_time_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.PlatformCashAccountRecord">
         insert into platform_cash_account_record(account_id_, trans_amount_, in_or_out_, post_status_, biz_type_,
-        biz_id_, memo_, order_no_, create_time_, update_time_)
+        biz_id_, memo_, order_no_, create_time_, update_time_,account_period_time_)
         values
         <foreach collection="entities" item="entity" separator=",">
             (#{entity.accountId}, #{entity.transAmount}, #{entity.inOrOut}, #{entity.postStatus}, #{entity.bizType},
-            #{entity.bizId}, #{entity.memo}, #{entity.orderNo}, #{entity.createTime}, #{entity.updateTime})
+            #{entity.bizId}, #{entity.memo}, #{entity.orderNo}, #{entity.createTime}, #{entity.updateTime}, #{entity.accountPeriodTime})
         </foreach>
     </insert>
 
@@ -36,29 +37,32 @@
             UPDATE platform_cash_account_record
             <set>
                 <if test="param.accountId">
-    				account_id_ = #{param.accountId}
+    				account_id_ = #{param.accountId},
 	    		</if>
                 <if test="param.transAmount">
-    				trans_amount_ = #{param.transAmount}
+    				trans_amount_ = #{param.transAmount},
 	    		</if>
                 <if test="param.memo">
-    				memo_ = #{param.memo}
+    				memo_ = #{param.memo},
 	    		</if>
                 <if test="param.orderNo">
-    				order_no_ = #{param.orderNo}
+    				order_no_ = #{param.orderNo},
 	    		</if>
 	    		<if test="param.bizId">
-	    			biz_id_ = #{param.bizId}
+	    			biz_id_ = #{param.bizId},
 	    		</if>
 	    		<if test="param.inOrOut">
-	    			in_or_out_ = #{param.inOrOut}
+	    			in_or_out_ = #{param.inOrOut},
 	    		</if>
 	    		<if test="param.bizType">
-	    			biz_type_ = #{param.bizType}
+	    			biz_type_ = #{param.bizType},
 	    		</if>
-	    		<if test="param.status">
-	    			post_status_ = #{param.status}
+	    		<if test="param.postStatus">
+	    			post_status_ = #{param.postStatus},
 	    		</if>
+				<if test="param.accountPeriodTime">
+					account_period_time_ = #{param.accountPeriodTime},
+				</if>
                 update_time_ = NOW()
             </set>
             WHERE id_ = #{param.id}
@@ -125,9 +129,21 @@
     </select>
     
     <select id="queryByBizTypeAndPaymentDays" resultType="com.yonge.cooleshow.biz.dal.entity.PlatformCashAccountRecord">
-    	select * from platform_cash_account_record where biz_type_ = #{bizType} and TIMESTAMPDIFF(HOUR, create_time_, now()) &gt;= ${24 * paymentDays} and post_status_ = 'WAIT'
+    	select * from platform_cash_account_record
+    	where biz_type_ = #{bizType} and TIMESTAMPDIFF(HOUR, create_time_, now()) &gt;= ${24 * paymentDays}
+    	  and post_status_ = 'WAIT'
     </select>
 
+	<select id="queryCanAccountByBizType"
+			resultType="com.yonge.cooleshow.biz.dal.entity.PlatformCashAccountRecord">
+		select * from platform_cash_account_record
+		where post_status_ = 'WAIT' and account_period_time_ &lt; now()
+		and biz_type_ IN
+		<foreach collection="bizTypes" item="item" open="(" separator="," close=")">
+			#{item}
+		</foreach>
+	</select>
+
 	<update id="cancelRecord">
 		update platform_cash_account_record set post_status_ = 'CANCEL'
 		where post_status_ = 'WAIT' and order_no_ = #{orderNo} and biz_id_ = #{bizId}
@@ -137,6 +153,5 @@
     <update id="mallRecordedRecord">
 		update platform_cash_account_record set post_status_ = 'RECORDED'
 		where post_status_ = 'WAIT' and order_no_ = #{orderNo} and biz_id_ = #{bizId}
-		and biz_type_ = #{bizType}
 	</update>
 </mapper>

+ 3 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -44,7 +44,7 @@
             (case when isnull(u.id_card_no_) then 0 else 1 end) as isReal,
             (!isnull(membership_end_time_) and membership_end_time_ > now()) as isVip,
             (
-            SELECT GROUP_CONCAT(name_) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
+            SELECT GROUP_CONCAT(name_ ORDER by locate(id_,t.subject_id_)) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
             ) as subjectName,
             u.user_type_ as userType
         FROM student t
@@ -65,7 +65,7 @@
             (case when isnull(u.id_card_no_) then 0 else 1 end) as isReal,
             (!isnull(membership_end_time_) and membership_end_time_ > now()) as isVip,
             (
-                SELECT GROUP_CONCAT(name_) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
+                SELECT GROUP_CONCAT(name_ ORDER by locate(id_,t.subject_id_)) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
             ) as subjectName,
             u.user_type_ as userType
         FROM student t
@@ -84,7 +84,7 @@
             !isnull(birthdate_) as isReal,
             (!isnull(membership_end_time_) and membership_end_time_ > now()) as isVip,
             (
-            SELECT GROUP_CONCAT(name_) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
+            SELECT GROUP_CONCAT(name_ ORDER by locate(id_,t.subject_id_)) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
             ) as subjectName
         FROM student t
         left join sys_user u on t.user_id_ = u.id_

+ 2 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysManualMapper.xml

@@ -39,7 +39,7 @@
 				AND menu_id_ = #{menuId}
 			</if>
 			<if test="search != null and search != '' ">
-				AND (sm.name_ like concat('%', #{search} '%') )
+				AND (sm.name_ like concat('%', #{search} '%') or sm.id_  like concat('%', #{search} '%')  )
 			</if>
 		</where>
 		<include refid="global.limit" />
@@ -58,7 +58,7 @@
 				AND sm.menu_id_ = #{menuId}
 			</if>
 			<if test="search != null and search != '' ">
-				AND (sm.name_ like concat('%', #{search} '%') )
+				AND (sm.name_ like concat('%', #{search} '%') or sm.id_  like concat('%', #{search} '%') )
 			</if>
 		</where>
 		<include refid="global.limit" />

+ 3 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysUserContractRecordMapper.xml

@@ -47,6 +47,9 @@
             <if test="param.userId != null">
                 and t.user_id_ = #{param.userId}
             </if>
+            <if test="param.userType != null">
+                and t.user_type_ = #{param.userType}
+            </if>
             <if test="param.status != null and param.status != ''">
                 and t.status_ = #{param.status}
             </if>

+ 3 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherAuthEntryRecordMapper.xml

@@ -46,7 +46,7 @@
             u.gender_ as gender,
             v.username_ as verifyUser,
             (
-                SELECT GROUP_CONCAT(name_) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
+                SELECT GROUP_CONCAT(name_ ORDER by locate(id_,t.subject_id_)) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
             ) as subjectName
         FROM teacher_auth_entry_record t
         left join sys_user u on t.user_id_ = u.id_
@@ -84,7 +84,7 @@
 			u.phone_ as phone,
 			u.gender_ as gender,
 			(
-                SELECT GROUP_CONCAT(name_) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
+                SELECT GROUP_CONCAT(name_ ORDER by locate(id_,t.subject_id_)) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
             ) as subjectName,
             (
                 SELECT u.username_ FROM sys_user u WHERE u.id_ = t.verify_user_id_
@@ -100,7 +100,7 @@
             u.id_card_no_ as idCardNo,
             u.gender_ as gender,
             (
-                SELECT GROUP_CONCAT(name_) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
+                SELECT GROUP_CONCAT(name_ ORDER by locate(id_,t.subject_id_)) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
             ) as subjectName,
             (
                 SELECT u.username_ FROM sys_user u WHERE u.id_ = t.verify_user_id_

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

@@ -131,7 +131,7 @@
             u.lock_flag_ as lockFlag,
             (case when isnull(b.user_id_) then 0 else 1 end) as isBank,
             (
-                SELECT GROUP_CONCAT(name_) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
+                SELECT GROUP_CONCAT(name_ ORDER by locate(id_,t.subject_id_)) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
             ) as subjectName,
             u.user_type_ as userType
         FROM teacher t

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

@@ -79,7 +79,10 @@
         SELECT
             <include refid="baseColumns"/>,
             (select sum(a.trans_amount_) from user_cash_account_record a where a.account_id_ = t.user_id_
-                and a.post_status_ = 'WAIT' and a.in_or_out_ = 'IN') as amountUnrecorded
+                and a.post_status_ = 'WAIT' and a.in_or_out_ = 'IN') as amountUnrecorded,
+            (select sum(a.trans_amount_) from user_cash_account_record a where a.account_id_ = t.user_id_
+                and a.post_status_ = 'RECORDED' and a.in_or_out_ = 'IN'
+                and a.biz_type_ in ('LIVE_SHARE','VIDEO_SHARE','MUSIC_SHARE','VIP_SHARE','MALL_SHARE')) as amountShare
         FROM user_cash_account t
         where t.user_id_ = #{id}
     </select>
@@ -156,4 +159,16 @@
         where post_status_ in ('WAIT','FROZEN','RECORDED') and in_or_out_ = 'IN' and err_flag_ = 0
             and order_no_ = #{orderNo}
     </select>
+
+    <select id="accountShareTotal" resultType="com.yonge.cooleshow.biz.dal.vo.res.AccountShareTotal">
+        select
+            sum(if(t.post_status_ in ('WAIT','RECORDED'),t.trans_amount_,0)) as totalAmount,
+            sum(if(t.post_status_ = 'WAIT',t.trans_amount_,0)) as waitAmount,
+            sum(if(t.post_status_ = 'RECORDED',t.trans_amount_,0)) as recordedAmount,
+            sum(if(t.post_status_ = 'CANCEL',t.trans_amount_,0)) as cancelAmount,
+            count(distinct t.buy_user_) as studentNum
+        from user_cash_account_record t
+        where t.account_id_ = #{param.userId}
+          and t.biz_type_ in ('LIVE_SHARE','VIDEO_SHARE','MUSIC_SHARE','VIP_SHARE','MALL_SHARE')
+    </select>
 </mapper>

+ 44 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountRecordMapper.xml

@@ -16,6 +16,8 @@
         <result column="update_time_" property="updateTime" />
         <result column="err_flag_" property="errFlag" />
         <result column="err_msg_" property="errMsg" />
+        <result column="account_period_time_" property="accountPeriodTime" />
+        <result column="buy_user_" property="buyUser" />
     </resultMap>
 
     <!-- 表字段 -->
@@ -34,6 +36,8 @@
         , t.update_time_ as updateTime
         , t.err_flag_ as errFlag
         , t.err_msg_ as errMsg
+        , t.account_period_time_ as accountPeriodTime
+        , t.buy_user_ as buyUser
         </sql>
 
     <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo">
@@ -77,7 +81,7 @@
             a.end_time_ as endTime
         from user_cash_account_record t
         left join sys_user u on t.account_id_ = u.id_
-        left join course_schedule a on t.biz_id_ = a.id_ and t.biz_type_ in ('PRACTICE','LIVE')
+        left join course_schedule a on t.biz_id_ = a.id_ and t.biz_type_ in ('PRACTICE','LIVE','LIVE_SHARE')
         <where>
             <if test="null != param.search and '' != param.search">
                 AND (
@@ -88,7 +92,7 @@
             </if>
             <include refid="selectCondition"/>
         </where>
-        order by t.update_time_ desc
+        order by t.update_time_ desc,t.id_ desc
     </sql>
 
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo">
@@ -99,6 +103,34 @@
         <include refid="selectSql"/>
     </select>
 
+    <select id="sharePage" resultType="com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo">
+        select
+            <include refid="baseColumns" />,
+            ifnull(u.username_,u.real_name_) as accountName,
+            DATE_FORMAT(t.create_time_,'%m-%d') as timeDay,
+            ifnull(u1.username_,u1.real_name_) as buyUserName,
+            u1.avatar_ as buyUserAvatar
+        from user_cash_account_record t
+        left join sys_user u on t.account_id_ = u.id_
+        left join sys_user u1 on t.buy_user_ = u1.id_
+        <where>
+            and t.biz_type_ in ('LIVE_SHARE','VIDEO_SHARE','MUSIC_SHARE','VIP_SHARE','MALL_SHARE')
+            <if test="null != param.username and '' != param.username">
+                AND u1.username_ LIKE CONCAT('%', #{param.username}, '%')
+            </if>
+            <if test="null != param.search and '' != param.search">
+                AND (
+                u.id_ LIKE CONCAT('%', #{param.search}, '%') or
+                u.username_ LIKE CONCAT('%', #{param.search}, '%') or
+                u.phone_ LIKE CONCAT('%', #{param.search}, '%')
+                )
+            </if>
+            <include refid="selectCondition"/>
+        </where>
+        order by t.update_time_ desc,t.id_ desc
+    </select>
+
+
     <select id="accountTotal" resultType="com.yonge.cooleshow.biz.dal.vo.UserAccountVo">
         select
             sum(
@@ -228,7 +260,7 @@
             <include refid="selectCondition"/>
         ) t
         left join course_schedule a on t.biz_id_ = a.id_ and t.biz_type_ in ('PRACTICE','LIVE')
-        order by t.update_time_ desc
+        order by t.update_time_ desc,t.id_ desc
     </select>
 
     <select id="selectMonthDecimal" resultType="java.math.BigDecimal">
@@ -288,4 +320,13 @@
             </if>
         </where>
     </select>
+
+    <select id="queryCanAccountByBizType" resultType="com.yonge.cooleshow.biz.dal.entity.UserAccountRecord">
+        select * from user_cash_account_record
+        where post_status_ = 'WAIT' and account_period_time_ &lt; now()
+        and biz_type_ IN
+        <foreach collection="bizTypes" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
 </mapper>

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

@@ -70,7 +70,7 @@
             u.id_card_no_ as idCardNo,
             u.lock_flag_ as lockFlag,
             (
-                SELECT GROUP_CONCAT(name_) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
+                SELECT GROUP_CONCAT(name_ ORDER by locate(id_,t.subject_id_)) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
             ) as subjectName
         FROM (
             select a.* from user_binding_teacher a

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

@@ -96,9 +96,9 @@
         SELECT
             <include refid="baseColumns" />,
             o.recom_user_id_ as recomUserId,
+            o.order_client_ as orderClient,
             u.avatar_ as avatar,
             u.username_ as username,
-            u.order_client_ as orderClient,
             a.star_grade_ as starGrade
         FROM user_order_detail t
         left join user_order o on t.order_no_ = o.order_no_

+ 1 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

@@ -167,6 +167,7 @@ public class MusicSheetController extends BaseController {
         search.setStudentId(sysUser.getId());
         search.setState(YesOrNoEnum.YES);
         search.setAuditStatus(AuthStatusEnum.PASS);
+        search.setUserType(ClientEnum.STUDENT);
         IPage<MusicSheetVo> sheetVoIPage = musicSheetService.myMusic(PageUtil.getPage(query),search);
         return succeed(PageUtil.pageInfo(sheetVoIPage));
     }

+ 1 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java

@@ -185,6 +185,7 @@ public class UserOrderController extends BaseController {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
         query.setUserId(user.getId());
+        query.setOrderClient(ClientEnum.STUDENT.getCode());
 
         if (StringUtil.isEmpty(query.getSearchDate())) {
             query.setSearchDate(DateUtil.format(new Date(), "yyyy-MM"));

+ 1 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java

@@ -160,6 +160,7 @@ public class MusicSheetController extends BaseController {
         search.setStudentId(sysUser.getId());
         search.setState(YesOrNoEnum.YES);
         search.setAuditStatus(AuthStatusEnum.PASS);
+        search.setUserType(ClientEnum.TEACHER);
         IPage<MusicSheetVo> sheetVoIPage = musicSheetService.myMusic(PageUtil.getPage(query),search);
         return succeed(PageUtil.pageInfo(sheetVoIPage));
     }

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác