Browse Source

Merge branch 'develop' of http://git.dayaedu.com/yonge/cooleshow into develop

Eric 1 năm trước cách đây
mục cha
commit
f1089fed9a
37 tập tin đã thay đổi với 606 bổ sung75 xóa
  1. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java
  2. 10 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java
  3. 182 33
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/TenantActivationCodeController.java
  4. 9 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/TenantAlbumPurchaseController.java
  5. 5 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/PhoneAuthenticationProvider.java
  6. 3 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/service/DefaultUserDetailsService.java
  7. 3 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/dao/SysUserDao.java
  8. 3 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/SysUserService.java
  9. 5 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java
  10. 3 0
      cooleshow-auth/auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  11. 1 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ESettlementFrom.java
  12. 14 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java
  13. 5 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetDao.java
  14. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicAlbumSearch.java
  15. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  16. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentService.java
  17. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantAlbumService.java
  18. 55 18
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  19. 16 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PaymentDivMemberRecordServiceImpl.java
  20. 47 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
  21. 8 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  22. 38 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumServiceImpl.java
  23. 19 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantInfoServiceImpl.java
  24. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  25. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentCoreServiceImpl.java
  26. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantActivationCodeWrapper.java
  27. 8 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAlbumPurchaseWrapper.java
  28. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/UserPaymentOrderWrapper.java
  29. 70 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/music/MusicCompareWrapper.java
  30. 6 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml
  31. 29 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  32. 3 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TenantActivationCodeMapper.xml
  33. 9 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TenantAlbumPurchaseMapper.xml
  34. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TenantInfoMapper.xml
  35. 10 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java
  36. 5 1
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TenantActivationCodeController.java
  37. 9 1
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TenantAlbumPurchaseController.java

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java

@@ -202,7 +202,7 @@ public class StudentController extends BaseController {
     @PostMapping("/updateTenant")
     @ApiOperation(value = "修改机构")
     public HttpResponseResult<Boolean> updateTenant(@RequestBody StudentWrapper.StudentUpdateTenant updateTenant) {
-        SysUser user = sysUserFeignService.queryUserInfo();
+        SysUser user = sysUserFeignService.queryUserById(updateTenant.getStudentId());
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }

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

@@ -25,6 +25,7 @@ import com.yonge.cooleshow.biz.dal.vo.CheckVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
+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;
@@ -402,4 +403,13 @@ public class MusicSheetController extends BaseController {
         }
         return succeed(appMusicSheetVo);
     }
+
+
+
+    @ApiOperation(value = "搜索")
+    @PostMapping(value="/search")
+    public HttpResponseResult<MusicCompareWrapper.SearchData> search(@RequestBody MusicCompareWrapper.MusicSearch queryInfo) {
+        return succeed(musicSheetService.search(queryInfo));
+    }
+
 }

+ 182 - 33
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/TenantActivationCodeController.java

@@ -1,26 +1,45 @@
 package com.yonge.cooleshow.tenant.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.microsvc.toolkit.common.response.template.R;
 import com.microsvc.toolkit.common.webportal.exception.BizException;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.Student;
+import com.yonge.cooleshow.biz.dal.entity.TenantActivationCode;
+import com.yonge.cooleshow.biz.dal.entity.TenantAlbumPurchase;
+import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
+import com.yonge.cooleshow.biz.dal.entity.TenantStaff;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
 import com.yonge.cooleshow.biz.dal.service.TenantActivationCodeService;
+import com.yonge.cooleshow.biz.dal.service.TenantAlbumPurchaseService;
+import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
+import com.yonge.cooleshow.biz.dal.service.TenantStaffService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantActivationCodeWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.enums.BizHttpStatus;
+import com.yonge.cooleshow.common.enums.EActivationCode;
+import com.yonge.cooleshow.tenant.vo.TenantActivationCodeVo;
 import com.yonge.toolset.utils.date.DateUtil;
+import com.yonge.toolset.utils.easyexcel.ErrMsg;
+import com.yonge.toolset.utils.easyexcel.ExcelDataReader;
+import com.yonge.toolset.utils.easyexcel.ExcelException;
+import com.yonge.toolset.utils.easyexcel.ExcelUtils;
 import com.yonge.toolset.utils.excel.POIUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.OutputStream;
@@ -34,71 +53,133 @@ import java.util.List;
 @RequestMapping("${app-config.url.tenant:}/tenantActivationCode")
 @Api(tags = "机构激活码")
 public class TenantActivationCodeController extends BaseController {
-
     @Autowired
     private TenantActivationCodeService tenantActivationCodeService;
 
     @Autowired
+    private TenantAlbumPurchaseService tenantAlbumPurchaseService;
+
+    @Autowired
     private SysUserFeignService sysUserFeignService;
 
     @Autowired
-    private StudentService studentService;
+    private TenantInfoService tenantInfoService;
+
+    @Autowired
+    private TenantStaffService tenantStaffService;
+
+    @ApiOperation(value = "详情", notes = "机构激活码-根据详情ID查询单条, 传入id")
+//    @GetMapping("/detail/{id}")
+    public R<TenantActivationCodeVo.TenantActivationCode> detail(@PathVariable("id") Long id) {
+
+        TenantActivationCode wrapper = tenantActivationCodeService.detail(id);
+
+        return R.from(TenantActivationCodeVo.TenantActivationCode.from(JSON.toJSONString(wrapper)));
+    }
 
     @ApiOperation(value = "查询分页", notes = "机构激活码- 传入 TenantActivationCodeVo.TenantActivationCodeQuery")
     @PostMapping("/page")
     public HttpResponseResult<PageInfo<TenantActivationCodeWrapper.TenantActivationCode>> page(
             @RequestBody TenantActivationCodeWrapper.TenantActivationCodeQuery query) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || null == sysUser.getId()) {
-            throw new BizException("请登录");
-        }
-        Student student = studentService.getById(sysUser.getId());
-        if (student == null) {
-            throw new BizException("学生不存在");
-        }
-        query.setActivationPhone(sysUser.getPhone());
-        query.setTenantId(student.getTenantId());
+        TenantInfo tenantInfo = getTenantInfo();
+        query.setTenantId(tenantInfo.getId());
         // 查询数据
         IPage<TenantActivationCodeWrapper.TenantActivationCode> pages =
                 tenantActivationCodeService.selectPage(QueryInfo.getPage(query), query);
-        for (TenantActivationCodeWrapper.TenantActivationCode record : pages.getRecords()) {
-            String activationCode = record.getActivationCode();
-            String substring = activationCode.substring(3);
-            record.setActivationCode("***" + substring);
+        PageInfo<TenantActivationCodeWrapper.TenantActivationCode> pageInfo = QueryInfo.pageInfo(pages,
+                pages.getRecords());
+
+        if (query.getTenantAlbumPurchaseId() != null) {
+            TenantActivationCodeWrapper.TenantActivationCode extra =
+                    new TenantActivationCodeWrapper.TenantActivationCode();
+            TenantAlbumPurchase purchase = tenantAlbumPurchaseService.getById(query.getTenantAlbumPurchaseId());
+            extra.setActiveQuantity(purchase.getActiveQuantity());
+            pageInfo.setExtra(extra);
         }
-        return succeed(QueryInfo.pageInfo(pages, pages.getRecords()));
+
+        return succeed(pageInfo);
     }
 
-    @ApiOperation(value = "激活激活码")
-    @PostMapping("/active")
-    public HttpResponseResult<Boolean> active(@RequestParam("activationCode") String activationCode) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || null == sysUser.getId()) {
-            throw new BizException("请登录");
+    @ApiOperation(value = "激活码发放", notes = "机构激活码- 传入 TenantActivationCodeVo.TenantActivationCodeSend")
+    @PostMapping("/send")
+    public HttpResponseResult<Boolean> send(@Validated @RequestBody TenantActivationCodeVo.TenantActivationCodeSend send) {
+        TenantInfo tenantInfo = getTenantInfo();
+        tenantActivationCodeService.sendActivationCode(tenantInfo.getId(), send.getTenantAlbumPurchaseId(),
+                send.getActivationCodeList(),
+                send.getStudentIdList());
+        return succeed();
+    }
+
+    @ApiOperation(value = "激活码发放取消", notes = "传入 激活码的ID")
+    @PostMapping("/sendCancel")
+    public HttpResponseResult<Boolean> sendCancel(@RequestParam("id") Long id) {
+        TenantInfo tenantInfo = getTenantInfo();
+        TenantActivationCode activationCode = tenantActivationCodeService.getById(id);
+        if (activationCode == null || !tenantInfo.getId().equals(activationCode.getTenantId())) {
+            throw new BizException("激活码不存在");
+        }
+        boolean update = tenantActivationCodeService.lambdaUpdate()
+                .set(TenantActivationCode::getSendStatus, EActivationCode.WAIT)
+                .eq(TenantActivationCode::getTenantId, id)
+                .eq(TenantActivationCode::getActivationStatus, false)
+                .eq(TenantActivationCode::getSendStatus, EActivationCode.SEND)
+                .update();
+        if (!update) {
+            throw new BizException("激活码已经激活");
         }
-        tenantActivationCodeService.active(activationCode, sysUser.getId());
         return succeed();
     }
 
-    @ApiOperation(value = "激活激活码")
-    @PostMapping("/activeById")
-    public HttpResponseResult<Boolean> activeById(@RequestParam("id") String id) {
+    @GetMapping("/exportActiveCode")
+    @ApiOperation(value = "导出模板")
+    public void exportActiveCode(HttpServletResponse response,String orderNo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || null == sysUser.getId()) {
+        if (sysUser == null) {
             throw new BizException("请登录");
         }
-        tenantActivationCodeService.activeById(id, sysUser.getId());
-        return succeed();
+        Long tenantId = sysUser.getTenantId();
+
+        TenantActivationCodeWrapper.TenantActivationCodeQuery query =
+                new TenantActivationCodeWrapper.TenantActivationCodeQuery();
+        query.setTenantId(tenantId);
+        query.setActivationStatus(false);
+        query.setTenantAlbumPurchaseId(Long.valueOf(orderNo));
+        query.setSendStatus(EActivationCode.WAIT);
+        query.setPage(1);
+        query.setRows(9999);
+        IPage<TenantActivationCodeWrapper.TenantActivationCode> queryInfo =
+                tenantActivationCodeService.selectPage(QueryInfo.getPage(query), query);
+        List<TenantActivationCodeWrapper.TenantActivationCode> rows = queryInfo.getRecords();
+        if (rows.isEmpty()) {
+            throw new BizException("没有可导出数据");
+        }
+
+        try (OutputStream outputStream = response.getOutputStream()) {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"激活码", "手机号"}, new String[]{
+                    "activationCode", "activationPhone"}, rows);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attac:wq" +
+                    "hment;filename=active_code-" + DateUtil.getDate(new Date()) + ".xls");
+            workbook.write(outputStream);
+            outputStream.flush();
+        } catch (Exception e) {
+            log.error("导出激活码异常", e);
+        }
     }
 
 
     @GetMapping("/exportOrderCode")
     @ApiOperation(value = "导出订单激活码模板")
-    public void exportOrderCode(HttpServletResponse response, String orderNo) {
-
+    public void exportOrderCode(HttpServletResponse response,String orderNo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            throw new BizException("请登录");
+        }
+        Long tenantId = sysUser.getTenantId();
 
         TenantActivationCodeWrapper.TenantActivationCodeQuery query =
                 new TenantActivationCodeWrapper.TenantActivationCodeQuery();
+        query.setTenantId(tenantId);
         query.setActivationStatus(false);
         query.setOrderNo(orderNo);
         query.setPage(1);
@@ -107,7 +188,7 @@ public class TenantActivationCodeController extends BaseController {
                 tenantActivationCodeService.selectPage(QueryInfo.getPage(query), query);
         List<TenantActivationCodeWrapper.TenantActivationCode> rows = queryInfo.getRecords();
         if (rows.isEmpty()) {
-            throw new com.microsvc.toolkit.common.webportal.exception.BizException("没有可导出数据");
+            throw new BizException("没有可导出数据");
         }
 
         try (OutputStream outputStream = response.getOutputStream()) {
@@ -122,4 +203,72 @@ public class TenantActivationCodeController extends BaseController {
             log.error("导出激活码异常", e);
         }
     }
+
+    @PostMapping("/importActiveCode")
+    @ApiOperation(value = "导入", notes = "传入file")
+    public HttpResponseResult<List<ErrMsg>> importActiveCode(
+            @RequestParam("file") MultipartFile file,
+            @RequestParam("tenantAlbumPurchaseId") Long tenantAlbumPurchaseId) {
+        if (null == file) {
+            return HttpResponseResult.failed("请上传文件");
+        }
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        TenantStaff tenantStaff = tenantStaffService.getByUserId(user.getId());
+        if (tenantStaff == null) {
+            return HttpResponseResult.failed("权限不足");
+        }
+
+        try {
+            ExcelDataReader<TenantActivationCodeWrapper.ImportTemplate> reader =
+                    ExcelUtils.getReader(TenantActivationCodeWrapper.ImportTemplate.class, file);
+            tenantActivationCodeService.importActiveCode(reader.getDataList(), user.getTenantId(), user.getId(),
+                    tenantAlbumPurchaseId);
+            return HttpResponseResult.succeed();
+        } catch (ExcelException e) {
+            return HttpResponseResult.failed(BizHttpStatus.IMPORT.getCode(), e.getErrMsgList(),
+                    BizHttpStatus.IMPORT.getMsg());
+        }
+    }
+
+    @ApiOperation(value = "新增", notes = "机构激活码- 传入 TenantActivationCodeVo.TenantActivationCode")
+//    @PostMapping("/save")
+    public R<JSONObject> add(@Validated @RequestBody TenantActivationCodeVo.TenantActivationCode tenantActivationCodeVo) {
+
+        // 新增数据
+        tenantActivationCodeService.save(JSON.parseObject(tenantActivationCodeVo.jsonString(),
+                TenantActivationCode.class));
+
+        return R.defaultR();
+    }
+
+    @ApiOperation(value = "修改", notes = "机构激活码- 传入 TenantActivationCodeVo.TenantActivationCode")
+//    @PostMapping("/update")
+    public R<JSONObject> update(@Validated @RequestBody TenantActivationCodeVo.TenantActivationCode tenantActivationCodeVo) {
+
+        // 更新数据
+        tenantActivationCodeService.updateById(JSON.parseObject(tenantActivationCodeVo.jsonString(),
+                TenantActivationCode.class));
+
+        return R.defaultR();
+    }
+
+    @ApiOperation(value = "删除", notes = "机构激活码- 传入id")
+//    @PostMapping("/remove")
+    public R<Boolean> remove(@RequestParam Long id) {
+
+        return R.from(tenantActivationCodeService.removeById(id));
+    }
+
+    private TenantInfo getTenantInfo() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        TenantInfo tenantInfo = tenantInfoService.lambdaQuery().eq(TenantInfo::getUserId, sysUser.getId())
+                .last("limit 1").one();
+        if (tenantInfo == null) {
+            throw new BizException("非法请求");
+        }
+        return tenantInfo;
+    }
 }

+ 9 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/TenantAlbumPurchaseController.java

@@ -10,8 +10,10 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.TenantAlbumPurchase;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
+import com.yonge.cooleshow.biz.dal.entity.TenantStaff;
 import com.yonge.cooleshow.biz.dal.service.TenantAlbumPurchaseService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
+import com.yonge.cooleshow.biz.dal.service.TenantStaffService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumPurchaseWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -47,6 +49,8 @@ public class TenantAlbumPurchaseController extends BaseController {
     @Autowired
     private TenantInfoService tenantInfoService;
 
+    @Autowired
+    private TenantStaffService tenantStaffService;
     @ApiOperation(value = "详情", notes = "机构专辑采购-根据详情ID查询单条, 传入id")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id", value = "id", dataType = "long")
@@ -106,7 +110,11 @@ public class TenantAlbumPurchaseController extends BaseController {
 
     private TenantInfo getTenantInfo() {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        TenantInfo tenantInfo = tenantInfoService.lambdaQuery().eq(TenantInfo::getUserId, sysUser.getId())
+        TenantStaff tenantStaff = tenantStaffService.getByUserId(sysUser.getId());
+        if (tenantStaff == null) {
+            throw new BizException("非法请求");
+        }
+        TenantInfo tenantInfo = tenantInfoService.lambdaQuery().eq(TenantInfo::getId, tenantStaff.getTenantId())
                 .last("limit 1").one();
         if (tenantInfo == null) {
             throw new BizException("非法请求");

+ 5 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/PhoneAuthenticationProvider.java

@@ -225,6 +225,11 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
                 sysUserService.update(user);
             }
 
+            // 学生账号修改隐藏为显示
+            if (StringUtils.equalsIgnoreCase(loginUserType, "STUDENT")) {
+                sysUserService.updateStudentHideFlag(userInfo.getSysUser().getId(), 0);
+            }
+
         }
 
         return login(username);

+ 3 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/service/DefaultUserDetailsService.java

@@ -116,6 +116,9 @@ public class DefaultUserDetailsService implements UserDetailsService {
 
         if (userType.contains("SYSTEM")) {
             authorities = AuthorityUtils.createAuthorityList(userInfo.getPermissions());
+
+            // 学生账号修改隐藏为显示
+            sysUserService.updateStudentHideFlag(userInfo.getSysUser().getId(), 0);
         }
 
         if (authorities == null) {

+ 3 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/dao/SysUserDao.java

@@ -181,4 +181,7 @@ public interface SysUserDao extends BaseDAO<Long, SysUser> {
     void updateLockStatusByPhone(@Param("phone") String phone);
 
     int countByPhone(@Param("phone") String phone);
+
+    void updateStudentHideFlag(@Param("userId") Long userId, @Param("hideFlag") int hideFlag);
+
 }

+ 3 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/SysUserService.java

@@ -225,4 +225,7 @@ public interface SysUserService extends BaseService<Long, SysUser> {
     SysUser getSysUserByOpenId(String openId, String clientId);
 
     void logoffByPhone(String phone);
+
+
+    void updateStudentHideFlag(Long userId, int hideFlag);
 }

+ 5 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java

@@ -435,4 +435,9 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
         //退出登录
         tokenService.revokeTokenByPhone(phone);
     }
+
+    @Override
+    public void updateStudentHideFlag(Long userId, int hideFlag) {
+        sysUserDao.updateStudentHideFlag(userId, hideFlag);
+    }
 }

+ 3 - 0
cooleshow-auth/auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -366,4 +366,7 @@
         WHERE t1.del_flag_ = 0 and t2.wx_openid_ = #{openId} LIMIT 1
     </select>
 
+    <update id="updateStudentHideFlag">
+        update student set hide_flag_ = #{hideFlag} where user_id_ = #{userId}
+    </update>
 </mapper>

+ 1 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ESettlementFrom.java

@@ -7,6 +7,7 @@ public enum ESettlementFrom implements BaseEnum<String, ESettlementFrom> {
 
     TEACHER("结算给老师"),
     TENANT("结算给机构"),
+    NO("不结算"),
     ;
 
     @EnumValue

+ 14 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java

@@ -33,6 +33,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -202,7 +203,7 @@ public class StudentController extends BaseController {
     @PostMapping("/updateTenant")
     @ApiOperation(value = "修改机构")
     public HttpResponseResult<Boolean> updateTenant(@RequestBody StudentWrapper.StudentUpdateTenant updateTenant) {
-        SysUser user = sysUserFeignService.queryUserInfo();
+        SysUser user = sysUserFeignService.queryUserById(updateTenant.getStudentId());
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
@@ -218,4 +219,16 @@ public class StudentController extends BaseController {
         studentService.updateTenant(student, updateTenant.getTenantId());
         return succeed();
     }
+
+
+    @PostMapping("/add")
+    @ApiOperation(value = "新增", notes = "传入Student")
+    public HttpResponseResult<Boolean> add(@Validated @RequestBody StudentWrapper.Student student) {
+        SysUser sysUser = sysUserFeignService.queryUserByMobile(student.getPhone());
+        if (sysUser != null && sysUser.getUserType().contains(ClientEnum.STUDENT.getCode())) {
+            throw new BizException("学生账号已经存在");
+        }
+        studentService.addStudent(student);
+        return succeed();
+    }
 }

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetDao.java

@@ -7,6 +7,7 @@ import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import org.apache.ibatis.annotations.Param;
 
@@ -184,4 +185,8 @@ public interface MusicSheetDao extends BaseMapper<MusicSheet> {
     void updateFavoriteCount(@Param("musicSheetId") Long musicSheetId, @Param("state") YesOrNoEnum state);
 
     List<MusicSheetUploadCountVo> countByUser(@Param("userIds") List<Long> userIds);
+
+    List<Long> searchMusic(@Param("page") IPage<TeacherMusicSheetVo> page,@Param("param") MusicCompareWrapper.MusicSearch queryInfo);
+    List<Long> searchAlbum(@Param("page") IPage<TeacherMusicSheetVo> page,@Param("param") MusicCompareWrapper.MusicSearch queryInfo);
+
 }

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

@@ -65,6 +65,17 @@ public class MusicAlbumSearch extends QueryInfo{
     @ApiModelProperty(hidden = true)
     private List<Long> subjectIdList;
 
+    @ApiModelProperty(value = "专辑i集合")
+    private List<Long> albumIds;
+
+    public List<Long> getAlbumIds() {
+        return albumIds;
+    }
+
+    public void setAlbumIds(List<Long> albumIds) {
+        this.albumIds = albumIds;
+    }
+
     public ChargeTypeEnum getPaymentType() {
         return paymentType;
     }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java

@@ -23,6 +23,7 @@ import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.utils.easyexcel.ExcelDataReaderProperty;
 
@@ -389,4 +390,6 @@ public interface MusicSheetService extends IService<MusicSheet> {
      * @param bizIds 曲目id
      */
     Map<Long,MusicSheet> getMapByIds(List<Long> bizIds);
+
+    MusicCompareWrapper.SearchData search(MusicCompareWrapper.MusicSearch queryInfo);
 }

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

@@ -129,4 +129,6 @@ public interface StudentService extends IService<Student> {
      * @param toTenantId 机构ID
      */
     void updateTenant(Student student, Long toTenantId);
+
+    void addStudent(StudentWrapper.Student student);
 }

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantAlbumService.java

@@ -68,6 +68,10 @@ public interface TenantAlbumService extends IService<TenantAlbum>  {
 
     Map<Long, Long> getMusicCountByIds(List<Long> bizIds);
 
+    void orderAfterSheet(UserPaymentOrderWrapper.OrderGoodsInfo orderGoodsInfo);
+
+    void buyCancel(UserOrderDetailVo userOrderDetailVo);
+
 
     /**
      * 添加机构专辑数据

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

@@ -51,6 +51,9 @@ import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.TeacherTagEnum;
+import com.yonge.cooleshow.biz.dal.dto.search.*;
+import com.yonge.cooleshow.biz.dal.entity.*;
+import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
 import com.yonge.cooleshow.biz.dal.mapper.UserTenantAlbumRecordMapper;
 import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
@@ -78,27 +81,11 @@ import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.service.UserAccountService;
 import com.yonge.cooleshow.biz.dal.service.UserOrderService;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
-import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
-import com.yonge.cooleshow.biz.dal.vo.HomeMusicSheetVo;
-import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
-import com.yonge.cooleshow.biz.dal.vo.MusicSheetShareVo;
-import com.yonge.cooleshow.biz.dal.vo.MusicSheetUploadCountVo;
-import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
-import com.yonge.cooleshow.biz.dal.vo.MusicSheetWebsiteDetailVo;
-import com.yonge.cooleshow.biz.dal.vo.MusicTagVo;
-import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
-import com.yonge.cooleshow.biz.dal.vo.StudentMusicSheetOrderVo;
-import com.yonge.cooleshow.biz.dal.vo.StudentTotalVo;
-import com.yonge.cooleshow.biz.dal.vo.StudentVo;
-import com.yonge.cooleshow.biz.dal.vo.TeacherAuditMusicSheetVo;
-import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetListVo;
-import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo;
-import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
-import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
-import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
+import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.ActivityShareEnum;
@@ -1769,6 +1756,56 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     }
 
     @Override
+    public MusicCompareWrapper.SearchData search(MusicCompareWrapper.MusicSearch queryInfo) {
+        MusicCompareWrapper.SearchData searchData= new MusicCompareWrapper.SearchData();
+        List<MusicCompareWrapper.MusicName> musicNames = new ArrayList<>();
+        if (StringUtil.isEmpty(queryInfo.getType()) || queryInfo.getType().equals("MUSIC")) {
+
+            PageUtil.getPage(queryInfo);
+            // 查询曲目列表
+            List<Long> musicIds = musicSheetDao.searchMusic(PageUtil.getPage(queryInfo),queryInfo);
+            MusicSheetSearch musicSheetSearch = new MusicSheetSearch();
+            musicSheetSearch.setMusicSheetIdlist(musicIds);
+            IPage<MusicSheetVo> musicSheetVoIPage = selectPage(PageUtil.getPage(queryInfo), musicSheetSearch);
+            List<MusicSheetVo> records = musicSheetVoIPage.getRecords();
+            if (CollectionUtils.isNotEmpty(records)) {
+                for (MusicSheetVo record : records) {
+                    MusicCompareWrapper.MusicName musicName = new MusicCompareWrapper.MusicName();
+                    musicName.setId(record.getId());
+                    musicName.setName(record.getMusicSheetName());
+                    musicName.setType("MUSIC");
+                    musicName.setSort(Optional.ofNullable(record.getFavoriteCount()).orElse(0));
+                    musicNames.add(musicName);
+                }
+                searchData.setMusic(PageUtil.pageInfo(musicSheetVoIPage));
+            }
+        }
+        if (StringUtil.isEmpty(queryInfo.getType()) || queryInfo.getType().equals("ALBUM")) {
+
+            // 查询专辑列表
+            List<Long> albumIds = musicSheetDao.searchAlbum(PageUtil.getPage(queryInfo),queryInfo);
+            MusicAlbumSearch musicSheetSearch = new MusicAlbumSearch();
+            musicSheetSearch.setAlbumIds(albumIds);
+            IPage<MusicAlbumVo> musicAlbumVoIPage = musicAlbumService.selectPage(PageUtil.getPage(queryInfo), musicSheetSearch);
+            List<MusicAlbumVo> records = musicAlbumVoIPage.getRecords();
+            if (CollectionUtils.isNotEmpty(records)) {
+                for (MusicAlbumVo record : records) {
+                    MusicCompareWrapper.MusicName musicName = new MusicCompareWrapper.MusicName();
+                    musicName.setId(record.getId());
+                    musicName.setName(record.getAlbumName());
+                    musicName.setType("ALBUM");
+                    musicName.setSort(Optional.ofNullable(record.getAlbumFavoriteCount()).orElse(0));
+                    musicNames.add(musicName);
+                }
+                searchData.setAlbum(PageUtil.pageInfo(musicAlbumVoIPage));
+            }
+        }
+        musicNames.sort(Comparator.comparing(MusicCompareWrapper.MusicName::getSort).reversed());
+        searchData.setMusicNames(musicNames);
+        return searchData;
+    }
+
+    @Override
     public Boolean updateMusicImg(MusicImgDto musicImgDto, Long musicSheetId) {
         MusicSheet musicSheet = new MusicSheet();
         musicSheet.setMusicImg(musicImgDto.getMusicImg());

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

@@ -320,7 +320,10 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
                 BigDecimal teacherAmount = BigDecimal.ONE.subtract(serviceFee).multiply(expectPrice);
 
                 // 判断分润给机构 还是给老师
-                if (accountTenantTo.getIncomeTenant() != null && accountTenantTo.getIncomeTenant() >0) {
+                // 机构ID = 0 老师设置了不分润
+                if (accountTenantTo.getIncomeTenant() != null && accountTenantTo.getIncomeTenant() == 0) {
+
+                } else if (accountTenantTo.getIncomeTenant() != null && accountTenantTo.getIncomeTenant() >0) {
                     // 分润给机构
                     tenantdivMap.merge(accountTenantTo.getIncomeTenant(), teacherAmount, BigDecimal::add);
                     tenantdivMap.merge(-1L, teacherAmount, BigDecimal::subtract);
@@ -431,7 +434,9 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
             // 老师收入总金额
             BigDecimal teacherAmount = teacherSalaryList.stream().map(CourseScheduleTeacherSalary::getActualSalary).reduce(BigDecimal.ZERO, BigDecimal::add);
             // 判断分润给机构 还是给老师
-            if (accountTenantTo.getIncomeTenant() != null && accountTenantTo.getIncomeTenant() > 0) {
+            if (accountTenantTo.getIncomeTenant() != null && accountTenantTo.getIncomeTenant() == 0) {
+
+            } else if (accountTenantTo.getIncomeTenant() != null && accountTenantTo.getIncomeTenant() > 0) {
                 // 分润给机构
                 tenantdivMap.merge( accountTenantTo.getIncomeTenant() , teacherAmount, BigDecimal::add);
                 tenantdivMap.merge(-1L, teacherAmount, BigDecimal::subtract);
@@ -563,7 +568,9 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
             // 老师收入总金额
             BigDecimal teacherAmount = teacherSalaryList.stream().map(CourseScheduleTeacherSalary::getActualSalary).reduce(BigDecimal.ZERO, BigDecimal::add);
             // 判断分润给机构 还是给老师
-            if (accountTenantTo.getIncomeTenant() !=null && accountTenantTo.getIncomeTenant() >0) {
+            if (accountTenantTo.getIncomeTenant() != null && accountTenantTo.getIncomeTenant() == 0) {
+
+            } else if (accountTenantTo.getIncomeTenant() !=null && accountTenantTo.getIncomeTenant() >0) {
                 // 分润给机构
                 tenantdivMap.merge(accountTenantTo.getIncomeTenant() , teacherAmount, BigDecimal::add);
                 tenantdivMap.merge(-1L, teacherAmount, BigDecimal::subtract);
@@ -640,7 +647,9 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
             accountTenantTo = JSON.parseObject(userAccountConfig, UserPaymentOrderWrapper.AccountTenantTo.class);
         }
 
-        if (accountTenantTo.getIncomeTenant() !=null && accountTenantTo.getIncomeTenant() >0) {
+        if (accountTenantTo.getIncomeTenant() != null && accountTenantTo.getIncomeTenant() == 0) {
+
+        } else if (accountTenantTo.getIncomeTenant() !=null && accountTenantTo.getIncomeTenant() >0) {
             // 分润给机构
             tenantdivMap.merge(accountTenantTo.getIncomeTenant(), teacherAmount, BigDecimal::add);
             tenantdivMap.merge(-1L, teacherAmount, BigDecimal::subtract);
@@ -972,7 +981,9 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
             BigDecimal shareFee = platformFee.multiply(shareFeeRate).setScale(2, RoundingMode.HALF_UP);
             if (shareFee.compareTo(BigDecimal.ZERO) > 0) {
                 // 判断分润给机构 还是给老师
-                if (accountTenantTo.getShareTenant() !=null && accountTenantTo.getShareTenant() > 0) {
+                if (accountTenantTo.getShareTenant() != null && accountTenantTo.getShareTenant() == 0) {
+
+                } else if (accountTenantTo.getShareTenant() !=null && accountTenantTo.getShareTenant() > 0) {
                     // 分润给机构
                     tenantdivMap.merge(accountTenantTo.getShareTenant(), shareFee, BigDecimal::add);
                     tenantdivMap.merge(-1L, shareFee, BigDecimal::subtract);

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

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import com.microsvc.toolkit.common.webportal.exception.BizException;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
@@ -19,17 +20,21 @@ import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.entity.StudentTotal;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
+import com.yonge.cooleshow.biz.dal.entity.Teacher;
+import com.yonge.cooleshow.biz.dal.entity.TenantAlbumPurchase;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
 import com.yonge.cooleshow.biz.dal.entity.UserBindingTeacher;
 import com.yonge.cooleshow.biz.dal.entity.UserTenantAlbumRecord;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
+import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumPurchaseMapper;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
 import com.yonge.cooleshow.biz.dal.service.StudentTotalService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.service.UserTenantAlbumRecordService;
 import com.yonge.cooleshow.biz.dal.service.im.ImGroupCoreService;
@@ -113,12 +118,14 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     @Autowired
     private SysConfigService sysConfigService;
 
+    @Autowired
+    private TenantAlbumPurchaseMapper tenantAlbumPurchaseMapper;
+
     @Override
     public StudentDao getDao() {
         return baseMapper;
     }
 
-
     @Override
     public StudentVo detail(Long userId) {
         return baseMapper.detail(userId);
@@ -180,11 +187,16 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         TenantInfo tenantInfo = tenantInfoService.detail(detail.getTenantId());
         if (tenantInfo != null) {
             studentHomeVo.setTenantName(tenantInfo.getName());
+            QueryWrapper<TenantAlbumPurchase> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(TenantAlbumPurchase::getTenantId, detail.getTenantId());
+            Integer count = tenantAlbumPurchaseMapper.selectCount(queryWrapper);
+            if (count > 0) {
+                studentHomeVo.setTenantAlbumStatus(1);
+            }
             UserTenantAlbumRecord record =
                     userTenantAlbumRecordService.getNewestByTenantIdAndUserId(tenantInfo.getId(), detail.getUserId(),
                             ClientEnum.STUDENT);
             if (record == null || record.getEndTime().getTime() < System.currentTimeMillis()) {
-                studentHomeVo.setTenantAlbumStatus(1);
                 studentHomeVo.setTenantAlbumFlag(YesOrNoEnum.NO);
             } else {
                 studentHomeVo.setTenantAlbumStatus(2);
@@ -519,6 +531,39 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                 .update();
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void addStudent(StudentWrapper.Student student) {
+        Long tenantId = student.getTenantId();
+        // 更新头像
+        if (StringUtils.isEmpty(student.getAvatar())) {
+            String avatar;
+            if (tenantId != -1L) {
+                if (student.getGender().equals(1)) {
+                    avatar = sysConfigService.findConfigValue(SysConfigConstant.TENANT_STUDENT_BOY_AVATAR);
+                } else {
+                    avatar = sysConfigService.findConfigValue(SysConfigConstant.TENANT_STUDENT_GIRL_AVATAR);
+                }
+            } else {
+                avatar = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD);
+            }
+            student.setAvatar(avatar);
+        }
+        this.save(student);
+
+        // 加好友
+        if (tenantId != -1) {
+            // 自动与机构老师成为好友
+            List<Teacher> teacherList = teacherDao.selectList(Wrappers.<Teacher>lambdaQuery()
+                    .eq(Teacher::getTenantId, tenantId));
+            if(!teacherList.isEmpty()){
+                teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
+                        new HashSet<>(ImmutableList.of(student.getId()))));
+            }
+        }
+
+    }
+
     private Boolean updateStudent(StudentWrapper.Student studentInfo) {
         StudentVo student = detail(studentInfo.getId());
         if (student == null) {

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

@@ -488,6 +488,11 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
     }
 
     private Teacher insertOrUpdateTeacher(TeacherSubmitReq teacherSubmitReq) {
+        if(ESettlementFrom.NO.equals(teacherSubmitReq.getSettlementFrom())){
+            teacherSubmitReq.setIsSettlement(false);
+        }else {
+            teacherSubmitReq.setIsSettlement(true);
+        }
         Teacher teacher = baseMapper.selectById(teacherSubmitReq.getUserId());
         if (null == teacher) {
             teacher = new Teacher();
@@ -1016,7 +1021,9 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
             return -1L;
         }
         Teacher teacher = getById(teacherId);
-        if (teacher.getTenantId() != null && teacher.getTenantId() > 0 && ESettlementFrom.TENANT.equals(teacher.getSettlementFrom())) {
+        if (teacher.getIsSettlement() !=null && !teacher.getIsSettlement()) {
+            return 0L;
+        } else if (teacher.getTenantId() != null && teacher.getTenantId() > 0 && ESettlementFrom.TENANT.equals(teacher.getSettlementFrom())) {
             return teacher.getTenantId();
         } else {
             // 分润给老师

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

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQu
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.biz.dal.entity.*;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
@@ -278,7 +279,7 @@ public class TenantAlbumServiceImpl extends ServiceImpl<TenantAlbumMapper, Tenan
 
                 TenantAlbumWrapper.TenantAlbumContent tenantAlbumContent = JSON
                         .parseObject(userOrderDetailVo.getBizContent(), TenantAlbumWrapper.TenantAlbumContent.class);
-                TenantAlbumPurchase tenantAlbumPurchase = new TenantAlbumPurchase();
+                TenantAlbumPurchase tenantAlbumPurchase =  tenantAlbumPurchaseService.getByOrderNo(userOrderDetailVo.getOrderNo());
                 tenantAlbumPurchase.setTenantId(tenantAlbumContent.getTenantId());
                 tenantAlbumPurchase.setTenantAlbumId(userOrderDetailVo.getBizId());
                 tenantAlbumPurchase.setPurchaseTime(userOrderDetailVo.getCreateTime());
@@ -288,7 +289,7 @@ public class TenantAlbumServiceImpl extends ServiceImpl<TenantAlbumMapper, Tenan
                 tenantAlbumPurchase.setOrderNo(userOrderDetailVo.getOrderNo());
                 tenantAlbumPurchase.setPurchasePrice(userOrderDetailVo.getActualPrice());
                 tenantAlbumPurchase.setPurchaseStatus(OrderStatusEnum.PAID.getCode());
-                tenantAlbumPurchaseService.save(tenantAlbumPurchase);
+                tenantAlbumPurchaseService.updateById(tenantAlbumPurchase);
 
                 List<TenantActivationCode> tenantActivationCodes = new ArrayList<>();
                 for (int i = 0; i < userOrderDetailVo.getGoodNum(); i++) {
@@ -382,6 +383,41 @@ public class TenantAlbumServiceImpl extends ServiceImpl<TenantAlbumMapper, Tenan
         return list.stream().collect(Collectors.groupingBy(TenantAlbumMusic::getTenantAlbumId,Collectors.counting()));
     }
 
+    @Override
+    public void orderAfterSheet(UserPaymentOrderWrapper.OrderGoodsInfo orderGoodsInfo) {
+        // 机构   插入机构专辑购买记录,生成机构专辑激活码
+
+        if (!orderGoodsInfo.getPaymentClient().equals(ClientEnum.TENANT)) {
+            return;
+        }
+
+
+        TenantAlbumWrapper.TenantAlbumContent tenantAlbumContent = JSON
+                .parseObject(JSON.toJSONString(orderGoodsInfo.getBizContent()), TenantAlbumWrapper.TenantAlbumContent.class);
+        TenantAlbumPurchase tenantAlbumPurchase = new TenantAlbumPurchase();
+        tenantAlbumPurchase.setTenantId(tenantAlbumContent.getTenantId());
+        tenantAlbumPurchase.setTenantAlbumId(orderGoodsInfo.getBizId());
+        tenantAlbumPurchase.setPurchaseTime(new Date());
+        tenantAlbumPurchase.setPurchaseQuantity(orderGoodsInfo.getUserOrderDetail().getGoodNum());
+        tenantAlbumPurchase.setPurchaseCycle(tenantAlbumContent.getBuyCycle());
+        tenantAlbumPurchase.setActiveQuantity(0);
+        tenantAlbumPurchase.setOrderNo(orderGoodsInfo.getOrderNo());
+        tenantAlbumPurchase.setPurchasePrice(orderGoodsInfo.getUserOrderDetail().getActualPrice());
+        tenantAlbumPurchase.setPurchaseStatus(OrderStatusEnum.WAIT_PAY.getCode());
+        tenantAlbumPurchaseService.save(tenantAlbumPurchase);
+    }
+
+    @Override
+    public void buyCancel(UserOrderDetailVo userOrderDetailVo) {
+
+        TenantAlbumPurchase tenantAlbumPurchase =  tenantAlbumPurchaseService.getByOrderNo(userOrderDetailVo.getOrderNo());
+        if (tenantAlbumPurchase == null) {
+            return;
+        }
+        tenantAlbumPurchase.setPurchaseStatus(OrderStatusEnum.CLOSE.getCode());
+        tenantAlbumPurchaseService.updateById(tenantAlbumPurchase);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     private void insertAlbumMusic(Long tenantId, TenantAlbum tenantAlbum,
                                   List<TenantAlbumWrapper.MusicSheetData> musicSheetDataList) {

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

@@ -20,6 +20,7 @@ import com.yonge.cooleshow.biz.dal.mapper.TenantInfoMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantStaffMapper;
 import com.yonge.cooleshow.biz.dal.service.SysAreaService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper;
@@ -77,6 +78,10 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
     TenantApplyRecordMapper tenantApplyRecordMapper;
 
     @Autowired
+    TenantInfoService tenantInfoService;
+
+
+    @Autowired
     private TeacherDao teacherDao;
 
     @Autowired
@@ -183,7 +188,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
 
         for (TenantInfoWrapper.TenantInfo info : tenantInfos) {
             info.setTeacherCounts(teacherIdCountMap.getOrDefault(info.getId(), 0));
-            info.setTeacherCounts(studentIdCountMap.getOrDefault(info.getId(), 0));
+            info.setStudentCounts(studentIdCountMap.getOrDefault(info.getId(), 0));
         }
 
         //获取省市区信息
@@ -201,7 +206,16 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean add(TenantInfo tenantInfo) {
-        SysUser sysUser = getOrCreateAccount(tenantInfo, null);
+        TenantInfo oldInfo =new TenantInfo();
+        //查询要新增的信息 是否存在机构
+        String phone = tenantInfo.getPhone();
+        if (StringUtils.isNotEmpty(phone)){
+            List<TenantInfo> list = tenantInfoService.lambdaQuery().eq(TenantInfo::getPhone, phone).list();
+            if (CollectionUtils.isNotEmpty(list)){
+                 oldInfo = list.get(0);
+            }
+        }
+        SysUser sysUser = getOrCreateAccount(tenantInfo, oldInfo);
         tenantInfo.setEnableFlag(true);
         if (StringUtils.isEmpty(tenantInfo.getLogo())) {
             // todo 设置默认logo
@@ -209,6 +223,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
         }
         tenantInfo.setEnableFlag(true);
         tenantInfo.setUserId(sysUser.getId());
+        tenantInfo.setUsername(sysUser.getUsername());
         tenantInfoMapper.insert(tenantInfo);
 
         TenantStaff tenantStaff = new TenantStaff();
@@ -231,8 +246,8 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
         if (!sysUsers.isEmpty()) {
             sysUser = sysUsers.get(0);
             TenantStaff tenantStaff = tenantStaffMapper.selectByUserId(sysUser.getId());
-            if (tenantStaff != null && oldTenantInfo != null &&
-                    !tenantStaff.getUserId().equals(oldTenantInfo.getUserId())) {
+            if ( !ObjectUtil.isEmpty(tenantStaff) && !ObjectUtil.isEmpty(oldTenantInfo) &&
+                    tenantStaff.getUserId().equals(oldTenantInfo.getUserId())) {
                 throw new BizException("手机号已经注册机构账号");
             }
             //获取当前账户的用户类型

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

@@ -211,6 +211,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         orderCancel.put(GoodTypeEnum.MUSIC, musicSheetService::buyMusicSheetCancel);
         // 专辑购买
         orderCancel.put(GoodTypeEnum.ALBUM, musicSheetService::buyMusicSheetCancel);
+        orderCancel.put(GoodTypeEnum.TENANT_ALBUM, tenantAlbumService::buyCancel);
     }
 
     @Override

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

@@ -178,6 +178,8 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
         orderSuccessAfter.put(GoodTypeEnum.MUSIC, musicSheetService::orderAfterSheet);
         // 专辑购买
         orderSuccessAfter.put(GoodTypeEnum.ALBUM, musicSheetService::orderAfterSheet);
+        // 机构专辑
+        orderSuccessAfter.put(GoodTypeEnum.TENANT_ALBUM, tenantAlbumService::orderAfterSheet);
 
         /**********订单完成后 数据处理******************/
         // 沿用以前的流程

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantActivationCodeWrapper.java

@@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.fastjson.JSON;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.yonge.cooleshow.common.enums.EActivationCode;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -48,6 +49,9 @@ public class TenantActivationCodeWrapper {
         @ApiModelProperty("专辑购买ID")
         private Long tenantAlbumPurchaseId;
 
+        @ApiModelProperty("发送状态")
+        private EActivationCode sendStatus;
+
         @ApiModelProperty("激活状态")
         private Boolean activationStatus;
 

+ 8 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAlbumPurchaseWrapper.java

@@ -43,6 +43,9 @@ public class TenantAlbumPurchaseWrapper {
         @ApiModelProperty(value = "排序规则", hidden = true)
         private String orderBy;
 
+
+        @ApiModelProperty("采购状态 WAIT_PAY 待支付   PAID 已付款 CLOSE 已关闭")
+        private String purchaseStatus;
         public String getKeyword() {
             return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
         }
@@ -57,6 +60,8 @@ public class TenantAlbumPurchaseWrapper {
     }
 
     @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
     @ApiModel(" TenantAlbumPurchase-机构专辑采购")
     public static class TenantAlbumPurchase {
 
@@ -70,8 +75,10 @@ public class TenantAlbumPurchaseWrapper {
         private Long tenantAlbumId;
 
         @ApiModelProperty("机构专辑名称")
-        private Long tenantAlbumName;
+        private String tenantAlbumName;
 
+        @ApiModelProperty("机构专辑图片")
+        private String tenantAlbumImg;
         @ApiModelProperty("采购时间")
         private Date purchaseTime;
 

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/UserPaymentOrderWrapper.java

@@ -901,11 +901,11 @@ public class UserPaymentOrderWrapper {
     @ApiModel("AccountTo-订单金额接收方")
     public static class AccountTenantTo implements Serializable {
 
-        @ApiModelProperty("收入机构  -1 默认老师自己")
+        @ApiModelProperty("收入机构  -1 默认老师自己 0不分润")
         private Long incomeTenant = -1L;
 
 
-        @ApiModelProperty("分享机构  -1 默认老师自己")
+        @ApiModelProperty("分享机构  -1 默认老师自己 0不分润")
         private Long shareTenant = -1L;
 
 

+ 70 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/music/MusicCompareWrapper.java

@@ -7,6 +7,9 @@ import com.yonge.cooleshow.biz.dal.enums.FeatureType;
 import com.yonge.cooleshow.biz.dal.enums.HeardLevelEnum;
 import com.yonge.cooleshow.biz.dal.enums.MK;
 import com.yonge.cooleshow.biz.dal.enums.music.MusicCompareType;
+import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
+import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -14,6 +17,7 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
+import org.checkerframework.checker.units.qual.A;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -358,4 +362,70 @@ public class MusicCompareWrapper {
         }
 
     }
+
+
+    /**
+     * 用户曲目练习时间统计
+     */
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class MusicSearch extends QueryInfo {
+
+        @ApiModelProperty("声部ID ")
+        private Integer subjectId;
+
+        @ApiModelProperty("名称 ")
+        private String name;
+
+
+        @ApiModelProperty("类型 MUSIC 曲目 ALBUM专辑")
+        private String type;
+    }
+
+
+
+    /**
+     * 用户曲目练习时间统计
+     */
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class SearchData {
+
+        @ApiModelProperty("下拉名称 ")
+        private List<MusicName> musicNames;
+
+        @ApiModelProperty("曲目分页")
+        private PageInfo<MusicSheetVo> music;
+
+        @ApiModelProperty("专辑分页")
+        private PageInfo<MusicAlbumVo> album;
+    }
+
+
+    /**
+     * 用户曲目练习时间统计
+     */
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class MusicName{
+
+        @ApiModelProperty("曲目/专辑ID ")
+        private Long id;
+
+        @ApiModelProperty("名称 ")
+        private String name;
+
+
+        @ApiModelProperty("类型 MUSIC 曲目 ALBUM专辑")
+        private String type;
+
+        @ApiModelProperty("排序")
+        private Integer sort = 0;
+    }
 }

+ 6 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml

@@ -92,6 +92,12 @@
             <if test="query.paymentType != null">
                 and t.payment_type_ = #{query.paymentType}
             </if>
+            <if test="query.albumIds != null and query.albumIds.size() != 0">
+                and t.id_ in
+                <foreach collection="query.albumIds" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
         </where>
         order by t.sort_number_ desc
         <if test="query.sortBy != null">

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

@@ -804,5 +804,34 @@
         </foreach>
         group by user_id_
     </select>
+
+    <select id="searchMusic" resultType="java.lang.Long">
+        select id_ from music_sheet  t
+            <where>
+                t.state_=1 and t.audit_version_ = 0 and del_flag_ = 0 and audit_status_ = 'PASS'
+                <if test="param.subjectId != null">
+                    and ( t.music_subject_ = #{param.subjectId} or t.music_subject_ is null or t.music_subject_ = '')
+                </if>
+                <if test="param.name != null and param.name != ''">
+                    and t.music_sheet_name_ like concat('%',#{param.name},'%')
+                </if>
+            </where>
+        order by t.top_flag_ desc, t.sort_number_ desc, t.favorite_count_ desc
+
+    </select>
+
+    <select id="searchAlbum" resultType="java.lang.Long">
+        select id_ from music_album t
+        <where>
+            t.album_status_=1 and del_flag_=0 and audit_version_ = 0
+            <if test="param.subjectId != null">
+                and ( t.subject_id_ = #{param.subjectId} or t.subject_id_ is null or t.subject_id_ = '')
+            </if>
+            <if test="param.name != null and param.name != ''">
+                and t.album_name_ like concat('%',#{param.name},'%')
+            </if>
+        </where>
+        order by  t.sort_number_ desc
+    </select>
     <!--单曲专辑数量统计-->
 </mapper>

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

@@ -40,6 +40,9 @@
             <if test="param.tenantAlbumPurchaseId != null">
                 AND t.tenant_album_purchase_id_ = #{param.tenantAlbumPurchaseId}
             </if>
+            <if test="param.sendStatus != null">
+                AND t.send_status_ = #{param.sendStatus}
+            </if>
             <if test="param.activationStatus != null">
                 AND t.activation_status_ = #{param.activationStatus}
             </if>

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

@@ -22,9 +22,17 @@
     <select id="selectPage"
             resultType="com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumPurchaseWrapper$TenantAlbumPurchase">
         SELECT
-        <include refid="baseColumns"/>,ta.name_ as tenantAlbumName
+        <include refid="baseColumns"/>,ta.name_ as tenantAlbumName,ta.cover_img_ as tenantAlbumImg
         FROM tenant_album_purchase t
         LEFT JOIN tenant_album ta on t.tenant_album_id_ = ta.id_
+        <where>
+        <if test="param.tenantId != null">
+                AND t.tenant_id_ = #{param.tenantId}
+            </if>
+            <if test="param.purchaseStatus != null and param.purchaseStatus.trim() != ''">
+                AND t.purchase_status_ = #{param.purchaseStatus}
+            </if>
+        </where>
         <choose>
             <when test="param.orderBy != null and param.orderBy.trim() != ''">
                 order by #{param.orderBy}

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

@@ -103,7 +103,7 @@
                 and t.region_code_ = #{param.regionCode}
             </if>
         </where>
-
+        order by t.create_time_ desc
 	</select>
 
     <select id="queryTeacherCounts" resultType="com.yonge.cooleshow.biz.dal.entity.TeacherCounts">

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

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.student.controller;
 
+import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -405,4 +406,13 @@ public class MusicSheetController extends BaseController {
         }
         return succeed(appMusicSheetVo);
     }
+
+
+    @ApiOperation(value = "搜索")
+    @PostMapping(value="/search")
+    public HttpResponseResult<MusicCompareWrapper.SearchData> search(@RequestBody MusicCompareWrapper.MusicSearch queryInfo) {
+        return succeed(musicSheetService.search(queryInfo));
+    }
+
+
 }

+ 5 - 1
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TenantActivationCodeController.java

@@ -13,6 +13,8 @@ import com.yonge.cooleshow.biz.dal.entity.TenantActivationCode;
 import com.yonge.cooleshow.biz.dal.entity.TenantAlbumPurchase;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
 import com.yonge.cooleshow.biz.dal.entity.TenantStaff;
+import com.yonge.cooleshow.biz.dal.enums.SendStatusEnum;
+import com.yonge.cooleshow.biz.dal.enums.im.EImSendStatus;
 import com.yonge.cooleshow.biz.dal.service.TenantActivationCodeService;
 import com.yonge.cooleshow.biz.dal.service.TenantAlbumPurchaseService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
@@ -137,7 +139,7 @@ public class TenantActivationCodeController extends BaseController {
 
     @GetMapping("/exportActiveCode")
     @ApiOperation(value = "导出模板")
-    public void exportActiveCode(HttpServletResponse response) {
+    public void exportActiveCode(HttpServletResponse response,String orderNo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             throw new BizException("请登录");
@@ -148,6 +150,8 @@ public class TenantActivationCodeController extends BaseController {
                 new TenantActivationCodeWrapper.TenantActivationCodeQuery();
         query.setTenantId(tenantId);
         query.setActivationStatus(false);
+        query.setTenantAlbumPurchaseId(Long.valueOf(orderNo));
+        query.setSendStatus(EActivationCode.WAIT);
         query.setPage(1);
         query.setRows(9999);
         IPage<TenantActivationCodeWrapper.TenantActivationCode> queryInfo =

+ 9 - 1
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TenantAlbumPurchaseController.java

@@ -10,8 +10,10 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.TenantAlbumPurchase;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
+import com.yonge.cooleshow.biz.dal.entity.TenantStaff;
 import com.yonge.cooleshow.biz.dal.service.TenantAlbumPurchaseService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
+import com.yonge.cooleshow.biz.dal.service.TenantStaffService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumPurchaseWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -46,6 +48,8 @@ public class TenantAlbumPurchaseController extends BaseController {
 
     @Autowired
     private TenantInfoService tenantInfoService;
+    @Autowired
+    private TenantStaffService tenantStaffService;
 
     @ApiOperation(value = "详情", notes = "机构专辑采购-根据详情ID查询单条, 传入id")
     @ApiImplicitParams({
@@ -106,7 +110,11 @@ public class TenantAlbumPurchaseController extends BaseController {
 
     private TenantInfo getTenantInfo() {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        TenantInfo tenantInfo = tenantInfoService.lambdaQuery().eq(TenantInfo::getUserId, sysUser.getId())
+        TenantStaff tenantStaff = tenantStaffService.getByUserId(sysUser.getId());
+        if (tenantStaff == null) {
+            throw new BizException("非法请求");
+        }
+        TenantInfo tenantInfo = tenantInfoService.lambdaQuery().eq(TenantInfo::getId, tenantStaff.getTenantId())
                 .last("limit 1").one();
         if (tenantInfo == null) {
             throw new BizException("非法请求");