liujc 1 år sedan
förälder
incheckning
39b376c267

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

@@ -253,7 +253,7 @@ public class StudentController extends BaseController {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"学生编号", "学生姓名", "真实姓名", "性别", "出生日期",
                     "年龄", "专业", "手机号码", "会员类型", "会员结束时间", "注册时间", "用户状态", "学生来源","小组"}, new String[]{
                     "userId", "username", "realName", "gender.msg", "birthdate", "age", "subjectName", "phone",
-                    "vipType.name", "membershipEndTime", "createTime", "userStatus.msg", "tenantName", "tenantGroupName"}, rows);
+                    "vipType.name", "membershipEndTimeStr", "createTime", "userStatus.msg", "tenantName", "tenantGroupName"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attac:wq" +
                     "hment;filename=学生列表-" + DateUtil.getDate(new Date()) + ".xls");

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

@@ -220,7 +220,7 @@ public class TeacherController extends BaseController {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"老师编号", "昵称", "姓名", "手机号", "老师类型",
                     "注册时间", "认证时间", "状态", "会员类型", "会员结束时间", "徽章", "机构", "小组"}, new String[]{
                     "userId", "username", "realName", "phone", "entryFlag.code == 1 ? '达人' : '游客'", "createTime",
-                    "entryAuthDate","userStatus.msg", "vipType.name", "membershipEndTime", "tag", "tenantName",
+                    "entryAuthDate","userStatus.msg", "vipType.name", "membershipEndTimeStr", "tag", "tenantName",
                     "tenantGroupName"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attac:wq" +

+ 18 - 2
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

@@ -351,8 +351,24 @@ public class MusicSheetController extends BaseController {
     @ApiOperation(value = "关联的曲目列表")
     @GetMapping(value="/queryRelatedList")
     public HttpResponseResult<PageInfo<MusicSheetVo>> queryRelatedList(MusicSheetRelatedQueryInfo queryInfo) {
-    	
-    	IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.queryRelatedList(PageUtil.getPage(queryInfo),queryInfo);
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+
+        Student student = studentService.getById(sysUser.getId());
+        if (student == null) {
+            return failed("用户信息获取失败");
+        }
+        // 如果是机构学生
+        IPage<MusicSheetVo> musicSheetVoIPage;
+        if (student.getTenantId() !=null && student.getTenantId()>0) {
+            queryInfo.setSubjectId(Long.parseLong(student.getSubjectId()));
+            musicSheetVoIPage =musicSheetService.queryTenantRelatedList(PageUtil.getPage(queryInfo),queryInfo);
+        } else {
+
+            musicSheetVoIPage = musicSheetService.queryRelatedList(PageUtil.getPage(queryInfo), queryInfo);
+        }
         return succeed(PageUtil.pageInfo(musicSheetVoIPage));
     }
 

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

@@ -213,4 +213,6 @@ public interface MusicSheetDao extends BaseMapper<MusicSheet> {
     MusicSheet get(Long id);
 
     IPage<MusicSheet> selectSyncPage(Page<Object> objectPage);
+
+    IPage<MusicSheetVo> queryTenantRelatedList(@Param("page") IPage<Object> page, @Param("queryInfo") MusicSheetRelatedQueryInfo queryInfo);
 }

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

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
+import com.yonge.cooleshow.biz.dal.enums.MusicSheetTypeEnum;
 import com.yonge.toolset.base.page.QueryInfo;
 
 public class MusicSheetRelatedQueryInfo extends QueryInfo {
@@ -10,6 +11,16 @@ public class MusicSheetRelatedQueryInfo extends QueryInfo {
 
     private Long subjectId;
 
+    private MusicSheetTypeEnum musicSheetType;
+
+    public MusicSheetTypeEnum getMusicSheetType() {
+        return musicSheetType;
+    }
+
+    public void setMusicSheetType(MusicSheetTypeEnum musicSheetType) {
+        this.musicSheetType = musicSheetType;
+    }
+
     public Long getSubjectId() {
         return subjectId;
     }

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

@@ -416,4 +416,6 @@ public interface MusicSheetService extends IService<MusicSheet> {
     PageInfo<CbsMusicSheetWrapper.MusicSheetAccApplication> queryCbsMusicSheetSoundApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query);
 
     List<CbsMusicSheetWrapper.MusicSheetApplication> queryCbsMusicSheetApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query);
+
+    IPage<MusicSheetVo> queryTenantRelatedList(IPage<Object> page, MusicSheetRelatedQueryInfo queryInfo);
 }

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

@@ -229,6 +229,9 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 
         VipCardRecordWrapper.UserVip userVip = vipCardRecordService.userVipInfo(orderDetailVo.getUserId(), orderDetailVo.getOrderClient());
         int svipDays = getSvipDays(detail, orderDetailVo.getGoodNum(), userVip);
+        if (userVip.getVipType() == EVipType.VIP) {
+            userVip.setVipEndDays(Math.max(userVip.getVipEndDays()-1,0));
+        }
         if (detail.getVipType() == EVipType.SVIP &&userVip.getVipEndDays() !=null && svipDays >=userVip.getVipEndDays()) {
             addVipCardRecord.setVipDays(userVip.getVipEndDays());
         }

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

@@ -270,6 +270,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 if (queryInfo.getSubjectId() !=null) {
                     query.setSubjectIdList(Lists.newArrayList(queryInfo.getSubjectId()));
                 }
+                query.setState(YesOrNoEnum.YES);
+                query.setProviderType(SourceTypeEnum.PLATFORM);
                 query.setExcludeMusicIds(Lists.newArrayList(queryInfo.getMusicSheetId()));
                 if (StringUtils.isNotBlank(musicSheet.getMusicSubject())) {
                     List<Long> subjectIds = Arrays.stream(musicSheet.getMusicSubject().split(",")).filter(StringUtils::isNotBlank).map(Long::parseLong).collect(Collectors.toList());
@@ -281,6 +283,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             // 查询带有当前曲目标签的所有曲目
             MusicAlbumDetailSearch query = new MusicAlbumDetailSearch();
             query.setId(queryInfo.getAlbumId());
+            query.setState(YesOrNoEnum.YES);
             query.setType(2);
             if (queryInfo.getSubjectId() !=null) {
                 query.setSubjectIdList(Lists.newArrayList(queryInfo.getSubjectId()));
@@ -2393,6 +2396,20 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         return new ArrayList<>();
     }
 
+    @Override
+    public IPage<MusicSheetVo> queryTenantRelatedList(IPage<Object> page, MusicSheetRelatedQueryInfo queryInfo) {
+
+        MusicSheet musicSheet = musicSheetDao.get(queryInfo.getMusicSheetId());
+        if (musicSheet == null) {
+            throw new BizException("曲目不存在");
+        }
+        queryInfo.setMusicSheetType(musicSheet.getMusicSheetType());
+        if (musicSheet.getMusicSheetType() == MusicSheetTypeEnum.CONCERT) {
+            queryInfo.setSubjectId(null);
+        }
+        return musicSheetDao.queryTenantRelatedList(page,queryInfo);
+    }
+
 
     private void syncMusicSheet(MusicSheet record, Date date) {
         List<MusicSheetAccompaniment> list = musicSheetAccompanimentService.lambdaQuery().eq(MusicSheetAccompaniment::getMusicSheetId, record.getId()).list();

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

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.vo;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.yonge.cooleshow.biz.dal.enums.EUserVipType;
 import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
+import com.yonge.toolset.utils.date.DateUtil;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -96,6 +97,9 @@ public class StudentVo extends Student {
     @ApiModelProperty("svip结束时间")
     private Date perSvipEndTime;
 
+    @ApiModelProperty(value = "会员结束时间字符传")
+    private String membershipEndTimeStr;
+
     public YesOrNoEnum getDelFlag() {
         return delFlag;
     }
@@ -224,4 +228,14 @@ public class StudentVo extends Student {
 	public void setUserStatus(UserStatusEnum userStatus) {
 		this.userStatus = userStatus;
 	}
+
+    public String getMembershipEndTimeStr() {
+        if (EUserVipType.SVIP.equals(vipType) && getMembershipEndTime() == null) {
+            return "永久";
+        }
+        if (getMembershipEndTime() != null) {
+            return DateUtil.format(getMembershipEndTime(), "yyyy-MM-dd");
+        }
+        return "";
+    }
 }

+ 16 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherVo.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
 import com.yonge.cooleshow.biz.dal.enums.EUserVipType;
+import com.yonge.cooleshow.biz.dal.enums.EVipType;
 import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
 import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
 import com.yonge.cooleshow.common.enums.ESettlementFrom;
@@ -11,12 +12,14 @@ import com.yonge.cooleshow.common.enums.UserLockFlag;
 import com.yonge.cooleshow.common.enums.UserStatusEnum;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 
+import com.yonge.toolset.utils.date.DateUtil;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
@@ -122,6 +125,9 @@ public class TeacherVo extends Teacher {
     @ApiModelProperty("是否客服")
     private Boolean customerService;
 
+    @ApiModelProperty(value = "会员结束时间字符传")
+    private String membershipEndTimeStr;
+
     public YesOrNoEnum getDelFlag() {
         return delFlag;
     }
@@ -383,4 +389,14 @@ public class TeacherVo extends Teacher {
         this.studentNums = studentNums;
         return this;
     }
+
+    public String getMembershipEndTimeStr() {
+        if (EUserVipType.SVIP.equals(vipType) && getMembershipEndTime() == null) {
+            return "永久";
+        }
+        if (getMembershipEndTime() != null) {
+            return DateUtil.format(getMembershipEndTime(), "yyyy-MM-dd");
+        }
+        return "";
+    }
 }

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

@@ -1041,5 +1041,34 @@
         from music_sheet
         where del_flag_ = 0 and audit_status_ = 'PASS' and cbs_music_sheet_id_ is null
     </select>
+
+    <select id="queryTenantRelatedList" resultType="com.yonge.cooleshow.biz.dal.vo.MusicSheetVo">
+
+        select
+        <include refid="Base_Column_List"/>
+        from music_sheet t
+            left join tenant_album_music t1 on t1.music_sheet_id_ = t.id_
+        <where>
+            t.del_flag_ = 0 and t.state_ =1  and t.audit_status_ = 'PASS' and t.cbs_music_sheet_id_ is not null
+            and t1.del_flag_=0 and t1.subject_type_ in ('ENSEMBLE', 'MUSIC', 'SUBJECT')
+            <if test="queryInfo.albumId != null">
+                and t1.tenant_album_id_ = #{queryInfo.albumId}
+            </if>
+
+            <if test="queryInfo.albumId == null">
+                and 1=2
+            </if>
+            <if test="queryInfo.musicSheetId != null">
+                and t.id_ != #{queryInfo.musicSheetId}
+            </if>
+            <if test="queryInfo.subjectId != null">
+                and find_in_set(#{queryInfo.subjectId},t.music_subject_)
+            </if>
+            <if test="queryInfo.musicSheetType != null">
+                and t.music_sheet_type_ = #{queryInfo.musicSheetType}
+            </if>
+        </where>
+
+    </select>
     <!--单曲专辑数量统计-->
 </mapper>