liujc 2 anos atrás
pai
commit
c966af5ca0
40 arquivos alterados com 204 adições e 44 exclusões
  1. 1 0
      .gitignore
  2. 18 4
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumController.java
  3. 8 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/open/UserPaymentClient.java
  4. 14 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java
  5. 3 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java
  6. 3 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/open/UserPaymentClient.java
  7. 3 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/vo/UserPaymentOrderVo.java
  8. 3 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/UserOrderController.java
  9. 3 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/open/UserPaymentClient.java
  10. 3 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/vo/UserPaymentOrderVo.java
  11. 3 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/UserOrderController.java
  12. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java
  13. 14 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenTenantController.java
  14. 3 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/open/UserPaymentClient.java
  15. 3 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/vo/UserPaymentOrderVo.java
  16. 1 1
      cooleshow-auth/auth-server/src/main/resources/logback-spring.xml
  17. 5 2
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ImGroupController.java
  18. 8 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/UserPaymentClient.java
  19. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java
  20. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserPaymentOrderService.java
  21. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/im/ImGroupCoreService.java
  22. 6 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/im/impl/ImGroupCoreServiceImpl.java
  23. 3 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java
  24. 8 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomServiceImpl.java
  25. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PaymentMerchantConfigServiceImpl.java
  26. 24 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
  27. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentCoreServiceImpl.java
  28. 17 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentOrderServiceImpl.java
  29. 5 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TenantStaffMapper.xml
  30. 4 2
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImGroupController.java
  31. 3 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java
  32. 3 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/open/UserPaymentClient.java
  33. 3 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/vo/UserPaymentOrderVo.java
  34. 4 2
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java
  35. 3 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/UserOrderController.java
  36. 3 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/open/UserPaymentClient.java
  37. 3 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/vo/UserPaymentOrderVo.java
  38. 1 1
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java
  39. 3 2
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenTenantController.java
  40. 3 0
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/UserPaymentClient.java

+ 1 - 0
.gitignore

@@ -63,3 +63,4 @@ target
 **/AuditLogInterceptor.java
 /toolset/audit-log/src/main/java/com/yonge/toolset/log/interceptor/AuditLogInterceptor.java
 /log/
+cooleshow-cms/src/main/resources/bootstrap-local.yaml

+ 18 - 4
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumController.java

@@ -39,10 +39,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -202,6 +199,14 @@ public class TenantAlbumController {
         if (CollectionUtils.isNotEmpty(list)){
             throw new BizException("当前机构已有专辑");
         }
+        // 检查曲目重复
+        if (CollectionUtils.isNotEmpty(album.getMusicSheetData())) {
+            List<Long> musicIds = album.getMusicSheetData().stream().flatMap(o -> o.getMusicSheetList().stream().map(m -> m.getId())).collect(Collectors.toList());
+            Set<Long> musicSet = new HashSet<>(musicIds);
+            if (musicSet.size() < musicIds.size()) {
+                throw new BizException("不予许添加相同的曲目");
+            }
+        }
 
         TenantAlbum tenantAlbum = JSON.parseObject(album.jsonString(), TenantAlbum.class);
         List<TenantAlbumVo.MusicSheetData> musicSheetData = album.getMusicSheetData();
@@ -241,6 +246,15 @@ public class TenantAlbumController {
             });
 
         }
+        // 检查曲目重复
+        if (CollectionUtils.isNotEmpty(album.getMusicSheetData())) {
+            List<Long> musicIds = album.getMusicSheetData().stream().flatMap(o -> o.getMusicSheetList().stream().map(m -> m.getId())).collect(Collectors.toList());
+            Set<Long> musicSet = new HashSet<>(musicIds);
+            if (musicSet.size() < musicIds.size()) {
+                throw new BizException("不予许添加相同的曲目");
+            }
+        }
+
         TenantAlbum tenantAlbum = JSON.parseObject(album.jsonString(), TenantAlbum.class);
         List<TenantAlbumVo.MusicSheetData> musicSheetData = album.getMusicSheetData();
 

+ 8 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/open/UserPaymentClient.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.controller.open;
 
+import cn.hutool.extra.servlet.ServletUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.huifu.adapay.core.AdapayCore;
@@ -103,7 +104,8 @@ public class UserPaymentClient {
 
     @ApiOperation(value = "用户付款", notes = "用户付款")
     @PostMapping("/executePayment/v2")
-    public R<UserPaymentOrderWrapper.PaymentReq> executePayment(@Validated @RequestBody UserPaymentOrderWrapper.PaymentOrderReqConfig config) {
+    public R<UserPaymentOrderWrapper.PaymentReq> executePayment(@Validated @RequestBody UserPaymentOrderWrapper.PaymentOrderReqConfig config,
+                                                                HttpServletRequest request) {
 
         // 用户登录状态校验
         if (StringUtils.isBlank(config.getUserId())) {
@@ -113,6 +115,11 @@ public class UserPaymentClient {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
+        reqConfig.setIp(ServletUtil.getClientIP(request));
+
         JwtUserInfo<Object> userInfo = JwtUserInfo.builder()
             .userId(config.getUserId())
             .clientType(config.getUserType().getCode())

+ 14 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

@@ -29,6 +29,7 @@ import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.base.page.QueryInfo;
 import com.yonge.toolset.base.util.StringUtil;
@@ -412,4 +413,17 @@ public class MusicSheetController extends BaseController {
         return succeed(musicSheetService.search(queryInfo));
     }
 
+
+    @ApiOperation(value = "搜索机构")
+    @PostMapping(value="/searchTenant")
+    public HttpResponseResult<MusicCompareWrapper.SearchData> searchTenant(@RequestBody MusicCompareWrapper.MusicSearch queryInfo) {
+
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            throw new BizException("用户信息获取失败");
+        }
+        queryInfo.setUserId(sysUser.getId());
+        return succeed(musicSheetService.searchTenant(queryInfo));
+    }
+
 }

+ 3 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java

@@ -325,6 +325,9 @@ public class UserOrderController extends BaseController {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
         reqConfig.setIp(ServletUtil.getClientIP(request));
         // 创建用户支付数据
         UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()

+ 3 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/open/UserPaymentClient.java

@@ -44,6 +44,9 @@ public class UserPaymentClient {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
         reqConfig.setIp(ServletUtil.getClientIP(request));
         // 创建用户支付数据
         UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()

+ 3 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/vo/UserPaymentOrderVo.java

@@ -192,6 +192,9 @@ public class UserPaymentOrderVo {
     @ApiModel("订单支付参数配置")
     public static class PaymentReqConfig implements Serializable {
 
+        @ApiModelProperty("支付厂商")
+        private String paymentVendor;
+
         @ApiModelProperty("支付渠道")
         private String paymentChannel;
 

+ 3 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/UserOrderController.java

@@ -287,6 +287,9 @@ public class UserOrderController extends BaseController {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
         reqConfig.setIp(ServletUtil.getClientIP(request));
         // 创建用户支付数据
         UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()

+ 3 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/open/UserPaymentClient.java

@@ -44,6 +44,9 @@ public class UserPaymentClient {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
         reqConfig.setIp(ServletUtil.getClientIP(request));
         // 创建用户支付数据
         UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()

+ 3 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/vo/UserPaymentOrderVo.java

@@ -192,6 +192,9 @@ public class UserPaymentOrderVo {
     @ApiModel("订单支付参数配置")
     public static class PaymentReqConfig implements Serializable {
 
+        @ApiModelProperty("支付厂商")
+        private String paymentVendor;
+
         @ApiModelProperty("支付渠道")
         private String paymentChannel;
 

+ 3 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/UserOrderController.java

@@ -108,6 +108,9 @@ public class UserOrderController {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
         reqConfig.setIp(ServletUtil.getClientIP(request));
         // 创建用户支付数据
         UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java

@@ -125,7 +125,7 @@ public class OpenStudentController extends BaseController {
                                 .distinct().collect(Collectors.toList());
                         groupIdList.forEach(groupId -> {
                             try {
-                                imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT);
+                                imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT, true);
                             } catch (Exception e) {
                                 log.error("学生注册,切换机构退群失败:{}", e.getMessage());
                             }

+ 14 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenTenantController.java

@@ -63,6 +63,20 @@ public class OpenTenantController {
         return HttpResponseResult.status(true);
     }
 
+    @GetMapping("/checkPhone")
+    @ApiOperation(value = "检查手机是否已经注册机构账户")
+    public HttpResponseResult<Boolean> checkPhone(String phone) {
+
+
+        // 根据手机号 判断是否已经有机构账户
+        TenantStaff tenantStaff = tenantStaffService.getByPhone(phone);
+        if (tenantStaff != null) {
+            return HttpResponseResult.succeed(true);
+        }
+        return HttpResponseResult.succeed(false);
+    }
+
+
 
     @GetMapping("/bindWechat")
     @ApiOperation(value = "绑定微信")

+ 3 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/open/UserPaymentClient.java

@@ -39,6 +39,9 @@ public class UserPaymentClient {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
         reqConfig.setIp(ServletUtil.getClientIP(request));
         // 创建用户支付数据
         UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()

+ 3 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/vo/UserPaymentOrderVo.java

@@ -192,6 +192,9 @@ public class UserPaymentOrderVo {
     @ApiModel("订单支付参数配置")
     public static class PaymentReqConfig implements Serializable {
 
+        @ApiModelProperty("支付厂商")
+        private String paymentVendor;
+
         @ApiModelProperty("支付渠道")
         private String paymentChannel;
 

+ 1 - 1
cooleshow-auth/auth-server/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mnt/datadisk/logs/auth-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mdata/cooleshow-dev/jenkins/logs/auth-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 		value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 

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

@@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
@@ -78,8 +79,10 @@ public class ImGroupController extends BaseController {
 
     @ApiOperation("退出群聊")
     @PostMapping(value = "/quit/{groupId}")
-    public HttpResponseResult quit(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
-        imGroupService.quit(groupId,sysUserService.getUserId(), ClientEnum.STUDENT);
+    public HttpResponseResult quit(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId,
+                                   @RequestParam(value = "quit",required = false, defaultValue = "true") boolean quit
+                                   ) throws Exception {
+        imGroupService.quit(groupId,sysUserService.getUserId(), ClientEnum.STUDENT, quit);
         return succeed();
     }
 

+ 8 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/UserPaymentClient.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.controller.open;
 
+import cn.hutool.extra.servlet.ServletUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.huifu.adapay.core.AdapayCore;
@@ -94,7 +95,8 @@ public class UserPaymentClient {
 
     @ApiOperation(value = "用户付款", notes = "用户付款")
     @PostMapping("/executePayment/v2")
-    public R<UserPaymentOrderWrapper.PaymentReq> executePayment(@Validated @RequestBody UserPaymentOrderWrapper.PaymentOrderReqConfig config) {
+    public R<UserPaymentOrderWrapper.PaymentReq> executePayment(@Validated @RequestBody UserPaymentOrderWrapper.PaymentOrderReqConfig config,
+                                                                HttpServletRequest request) {
 
         // 用户登录状态校验
         if (StringUtils.isBlank(config.getUserId())) {
@@ -104,6 +106,11 @@ public class UserPaymentClient {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
+        reqConfig.setIp(ServletUtil.getClientIP(request));
+
         JwtUserInfo<Object> userInfo = JwtUserInfo.builder()
             .userId(config.getUserId())
             .clientType(config.getUserType().getCode())

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

@@ -127,7 +127,7 @@ public interface ImGroupService extends IService<ImGroup> {
     ImGroup getByCourseGroupId(Long courseGroupId);
 
     //退群
-    void quit(String groupId, Long userId, ClientEnum clientType) throws Exception;
+    void quit(String groupId, Long userId, ClientEnum clientType,Boolean quit) throws Exception;
 
     /**
      * 用户群组信息

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserPaymentOrderService.java

@@ -49,6 +49,12 @@ public interface UserPaymentOrderService   {
     void updateById(UserPaymentOrderWrapper.UserPaymentOrder order);
 
     /**
+     * 更新订单支付三方
+     * @param order UserPaymentOrderWrapper.UserPaymentOrder
+     */
+    void updatePaymentVendorById(UserPaymentOrderWrapper.UserPaymentOrder order);
+
+    /**
      * 创建订单
      *
      */

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/im/ImGroupCoreService.java

@@ -86,7 +86,7 @@ public interface ImGroupCoreService {
      * @param groupId 群组ID
      * @throws Exception Exception
      */
-    void groupQuit(GroupMemberWrapper.ImGroupMember groupMember, String groupId) throws Exception;
+    void groupQuit(GroupMemberWrapper.ImGroupMember groupMember, String groupId,Boolean quit) throws Exception;
 
     /**
      * 用户主动退出群聊
@@ -95,7 +95,7 @@ public interface ImGroupCoreService {
      * @param imGroupId 群组ID
      * @throws Exception Exception
      */
-    void groupQuit(Long userId, String clientType, String imGroupId) throws Exception;
+    void groupQuit(Long userId, String clientType, String imGroupId,Boolean quit) throws Exception;
 
     /**
      * 入群申请消息

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

@@ -333,7 +333,7 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
      * @throws Exception Exception
      */
     @Override
-    public void groupQuit(GroupMemberWrapper.ImGroupMember imGroupMember, String groupId) throws Exception {
+    public void groupQuit(GroupMemberWrapper.ImGroupMember imGroupMember, String groupId,Boolean quit) throws Exception {
 
         // 判定登录用户是否为群主
         ImGroup imGroup = imGroupService.lambdaQuery().eq(ImGroup::getId, groupId).last("LIMIT 1").one();
@@ -369,8 +369,9 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
                 .clientType(imGroupMember.getClientType())
                 .build());
 
-        // 删除主动退群操作,由移动端或前端自己主动发起退群操作
-        //imPluginContext.getPluginService().groupQuit(imGroup.getId(), getImGroupMembers(groupMembers));
+        if (Optional.ofNullable(quit).orElse(true)) {
+            imPluginContext.getPluginService().groupQuit(imGroup.getId(), getImGroupMembers(groupMembers));
+        }
     }
 
     /**
@@ -382,7 +383,7 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
      * @throws Exception Exception
      */
     @Override
-    public void groupQuit(Long userId, String clientType, String imGroupId) throws Exception {
+    public void groupQuit(Long userId, String clientType, String imGroupId ,Boolean quit) throws Exception {
 
         ImGroup imGroup = imGroupService.getById(imGroupId);
         if (Objects.isNull(imGroup)) {
@@ -395,7 +396,7 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
                 .clientType(clientType)
                 .build();
         // 退出群聊
-        groupQuit(groupMember, imGroup.getId());
+        groupQuit(groupMember, imGroup.getId(), quit);
     }
 
     /**

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

@@ -499,9 +499,9 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void quit(String groupId, Long userId, ClientEnum clientType) throws Exception {
+    public void quit(String groupId, Long userId, ClientEnum clientType,Boolean quit) throws Exception {
         try {
-            imGroupCoreService.groupQuit(userId, clientType.name(), groupId);
+            imGroupCoreService.groupQuit(userId, clientType.name(), groupId, quit);
         } catch (Exception e) {
             log.error("退出群聊失败",e);
         }
@@ -635,7 +635,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
                                 .count();
                         // 拥有老师身份,且非群主时,需要主动退出群聊
                         if (count > 0 && numbers <= 0) {
-                            quit(groupId, userId, ClientEnum.TEACHER);
+                            quit(groupId, userId, ClientEnum.TEACHER,true);
                         }
 
                         // 缓存重新入群标识, 默认有效期为120天

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

@@ -1055,10 +1055,10 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
                 .value(value)
                 .build());
 
-        appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
-                .key(EGroupDefinedDataType.UPDATE_INFO.getCode())
-                .value(type.getCode())
-                .build());
+//        appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
+//                .key(EGroupDefinedDataType.UPDATE_INFO.getCode())
+//                .value(type.getCode())
+//                .build());
         try {
             livePluginContext.getPluginService(roomVo.getServiceProvider())
                     .chatRoomGroupDefinedData(TencentRequest.ChatRoomGroup.builder()
@@ -1110,10 +1110,10 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
                 .value(totalUser.toString())
                 .build());
 
-        appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
-                .key(EGroupDefinedDataType.UPDATE_INFO.getCode())
-                .value(StringUtils.join(EGroupDefinedDataType.MEMBER_ONLINE.getCode(),",",EGroupDefinedDataType.MEMBER_TOTAL.getCode()))
-                .build());
+//        appDefinedData.add(TencentRequest.ChatRoomGroupDefinedData.builder()
+//                .key(EGroupDefinedDataType.UPDATE_INFO.getCode())
+//                .value(StringUtils.join(EGroupDefinedDataType.MEMBER_ONLINE.getCode(),",",EGroupDefinedDataType.MEMBER_TOTAL.getCode()))
+//                .build());
         try {
             livePluginContext.getPluginService(roomVo.getServiceProvider())
                     .chatRoomGroupDefinedData(TencentRequest.ChatRoomGroup.builder()

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

@@ -140,9 +140,9 @@ public class PaymentMerchantConfigServiceImpl extends ServiceImpl<PaymentMerchan
                     aliPayConfig.setEncryptType(config.getAlipayContentSignType());
                     aliPayConfig.setEncryptKey(config.getAliPayContentSignKey());
                     aliPayConfig.setUseCert(false);
-                    aliPayConfig.setPayType(config.getPaymentVendor());
                     aliPayConfig.setPayNotifyUrl(properties.getPayNotifyUrl());
                     aliPayConfig.setRefundNotifyUrl(properties.getRefundNotifyUrl());
+                    aliPayConfig.setPayType(config.getPaymentVendor());
                     if (Objects.nonNull(properties.getAlipay())) {
                         aliPayConfig.setFeeRate(properties.getAlipay().getFeeRate());
                     }

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

@@ -539,7 +539,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                     .collect(Collectors.toList());
             for (String groupId : groupIdList) {
                 try {
-                    imGroupService.quit(groupId, student.getUserId(), ClientEnum.STUDENT);
+                    imGroupService.quit(groupId, student.getUserId(), ClientEnum.STUDENT, true);
                 } catch (Exception e) {
                     log.error("退出群聊失败", e);
                 }
@@ -601,6 +601,24 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
 
         student.setId(sysUser.getId());
         this.save(student);
+
+        try {
+            imGroupCoreService.register(String.valueOf(student.getId()), ClientEnum.STUDENT.getCode(),
+                    sysUser.getUsername(),student.getAvatar());
+        } catch (Exception e) {
+            log.error("学生注册IM失败:" + e.getMessage(), e);
+        }
+        // 加好友
+        if (student.getTenantId() != -1) {
+            // 自动与机构老师成为好友
+            List<Teacher> teacherList = teacherDao.selectList(Wrappers.<Teacher>lambdaQuery()
+                    .eq(Teacher::getTenantId, student.getTenantId()));
+            if (!teacherList.isEmpty()) {
+                teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
+                        new HashSet<>(ImmutableList.of(student.getId()))));
+            }
+        }
+
     }
 
     private Boolean updateStudent(StudentWrapper.Student studentInfo) {
@@ -634,12 +652,13 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         sysUser.setBirthdate(studentInfo.getBirthdate());
         sysUserMapper.updateById(sysUser);
         try {
-            // 注册IM
-            if (StringUtils.isNotBlank(sysUser.getAvatar())) {
-                imGroupCoreService.register(String.valueOf(student.getUserId()), ClientEnum.STUDENT.getCode(), sysUser.getUsername(), sysUser.getAvatar());
+            if (StringUtils.isNotEmpty(sysUser.getAvatar())) {
+                // 注册IM
+                imGroupCoreService.register(String.valueOf(student.getUserId()), ClientEnum.STUDENT.getCode(),
+                        sysUser.getUsername(), sysUser.getAvatar());
             }
         } catch (Exception e) {
-            log.warn("学生注册IM失败:"+e.getMessage());
+            log.warn("学生注册IM失败:" + e.getMessage());
         }
         return true;
     }

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

@@ -753,7 +753,7 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
                 .id(userPaymentOrder.getId())
                 .paymentVendor(reqConfig.getPaymentVendor())
                 .build();
-            userPaymentOrderService.updateById(update);
+            userPaymentOrderService.updatePaymentVendorById(update);
 
             // 重置支付三方渠道
             userPaymentOrder.setPaymentVendor(reqConfig.getPaymentVendor());

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

@@ -213,6 +213,23 @@ public class UserPaymentOrderServiceImpl  implements UserPaymentOrderService {
     }
 
     /**
+     * 更新订单支付三方
+     *
+     * @param order UserPaymentOrderWrapper.UserPaymentOrder
+     */
+    @Override
+    public void updatePaymentVendorById(UserPaymentOrderWrapper.UserPaymentOrder order) {
+
+        if (order == null) {
+            return;
+        }
+
+        // 更新订单
+        UserOrder userOrder = order.toUserOrder();
+        userOrderService.updateById(userOrder);
+    }
+
+    /**
      * 创建订单
      *
      * @param orderReq

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

@@ -9,7 +9,6 @@
          t.id_ AS id
         , t.tenant_id_ AS tenantId
         , t.user_id_ AS userId
-        , t.avatar_ AS avatar
         , t.nickname_ AS nickname
         , t.im_token_ AS imToken
         , t.wechat_id_ AS wechatId
@@ -31,19 +30,24 @@
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.entity.TenantStaff">
 		SELECT         
         	<include refid="baseColumns" />
+        ,su.avatar_ as avatar
 		FROM tenant_staff t
+        left join sys_user su on t.user_id_ = su.id_
 	</select>
 
     <select id="getByPhone" resultType="com.yonge.cooleshow.biz.dal.entity.TenantStaff">
         select
             <include refid="baseColumns" />
+        ,t1.avatar_ as avatar
         from tenant_staff t
         left join sys_user t1 on t1.id_ = t.user_id_
         where t1.phone_ = #{phone}
     </select>
     <select id="selectByUserId" resultType="com.yonge.cooleshow.biz.dal.entity.TenantStaff">
         select <include refid="baseColumns" />
+        ,su.avatar_ as avatar
         from  tenant_staff t
+        left join sys_user su on t.user_id_ = su.id_
         where user_id_ = #{id}
     </select>
 </mapper>

+ 4 - 2
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImGroupController.java

@@ -104,8 +104,10 @@ public class ImGroupController extends BaseController {
 
     @ApiOperation("退出群聊")
     @PostMapping(value = "/quit/{groupId}")
-    public HttpResponseResult quit(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
-        imGroupService.quit(groupId,sysUserService.getUserId(), ClientEnum.STUDENT);
+    public HttpResponseResult quit(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId,
+                                   @RequestParam(value = "quit",required = false,defaultValue = "true") boolean quit
+                                   ) throws Exception {
+        imGroupService.quit(groupId,sysUserService.getUserId(), ClientEnum.STUDENT,quit);
         return succeed();
     }
 

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

@@ -321,6 +321,9 @@ public class UserOrderController extends BaseController {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
         reqConfig.setIp(ServletUtil.getClientIP(request));
         // 创建用户支付数据
         UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()

+ 3 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/open/UserPaymentClient.java

@@ -68,6 +68,9 @@ public class UserPaymentClient {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
         reqConfig.setIp(ServletUtil.getClientIP(request));
         // 创建用户支付数据
         UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()

+ 3 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/vo/UserPaymentOrderVo.java

@@ -192,6 +192,9 @@ public class UserPaymentOrderVo {
     @ApiModel("订单支付参数配置")
     public static class PaymentReqConfig implements Serializable {
 
+        @ApiModelProperty("支付厂商")
+        private String paymentVendor;
+
         @ApiModelProperty("支付渠道")
         private String paymentChannel;
 

+ 4 - 2
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java

@@ -116,8 +116,10 @@ public class ImGroupController extends BaseController {
 
     @ApiOperation("退出群聊")
     @PostMapping(value = "/quit/{groupId}")
-    public HttpResponseResult quit(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
-        imGroupService.quit(groupId, sysUserService.getUserId(), ClientEnum.TEACHER);
+    public HttpResponseResult quit(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId,
+                                   @RequestParam(value = "quit",required = false,defaultValue = "true") boolean quit
+                                   ) throws Exception {
+        imGroupService.quit(groupId, sysUserService.getUserId(), ClientEnum.TEACHER, quit);
         return succeed();
     }
 

+ 3 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/UserOrderController.java

@@ -284,6 +284,9 @@ public class UserOrderController extends BaseController {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
         reqConfig.setIp(ServletUtil.getClientIP(request));
         // 创建用户支付数据
         UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()

+ 3 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/open/UserPaymentClient.java

@@ -50,6 +50,9 @@ public class UserPaymentClient {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
         reqConfig.setIp(ServletUtil.getClientIP(request));
         // 创建用户支付数据
         UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()

+ 3 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/vo/UserPaymentOrderVo.java

@@ -192,6 +192,9 @@ public class UserPaymentOrderVo {
     @ApiModel("订单支付参数配置")
     public static class PaymentReqConfig implements Serializable {
 
+        @ApiModelProperty("支付厂商")
+        private String paymentVendor;
+
         @ApiModelProperty("支付渠道")
         private String paymentChannel;
 

+ 1 - 1
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java

@@ -125,7 +125,7 @@ public class OpenStudentController extends BaseController {
                                 .distinct().collect(Collectors.toList());
                         groupIdList.forEach(groupId -> {
                             try {
-                                imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT);
+                                imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT, true);
                             } catch (Exception e) {
                                 log.error("学生注册,切换机构退群失败:{}", e.getMessage());
                             }

+ 3 - 2
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenTenantController.java

@@ -74,12 +74,13 @@ public class OpenTenantController {
         // 根据手机号 判断是否已经有机构账户
         TenantStaff tenantStaff = tenantStaffService.getByPhone(phone);
         if (tenantStaff != null) {
-            return HttpResponseResult.status(true);
+            return HttpResponseResult.succeed(true);
         }
-        return HttpResponseResult.status(false);
+        return HttpResponseResult.succeed(false);
     }
 
 
+
     @GetMapping("/bindWechat")
     @ApiOperation(value = "绑定微信")
     public HttpResponseResult<Boolean> bindWechat(@RequestParam("phone") String phone,

+ 3 - 0
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/UserPaymentClient.java

@@ -43,6 +43,9 @@ public class UserPaymentClient {
         // 用户下单请求
         UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
 
+        // 支付三方
+        reqConfig.setPaymentVendor(config.getPaymentVendor());
+        // 请示IP地址
         reqConfig.setIp(ServletUtil.getClientIP(request));
         // 创建用户支付数据
         UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()