Procházet zdrojové kódy

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

zouxuan před 3 měsíci
rodič
revize
d4de20168e

+ 21 - 2
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.admin.controller;
 
 import com.alibaba.fastjson.JSONObject;
 import com.dayaedu.cbs.openfeign.client.MusicFeignClientService;
+import com.google.common.collect.Lists;
 import com.microsvc.toolkit.common.response.template.R;
 import com.yonge.cooleshow.biz.dal.dto.ReasonDto;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
@@ -10,14 +11,13 @@ import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.SubjectTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.cbs.CbsMusicScoreService;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetApplicationExtendWrapper;
-import com.yonge.cooleshow.common.constant.SysConfigConstant;
+import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
@@ -25,8 +25,11 @@ import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -161,4 +164,20 @@ public class MusicSheetController extends BaseController {
 
         return R.defaultR();
     }
+
+    @ApiOperation(value = "总控平台乐器编码", notes = "总控平台乐器编码")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "id", value = "id", dataType = "long")
+    })
+    @PreAuthorize("@pcs.hasPermissions('music/sheet/instrumentCode')")
+    @GetMapping("/instrumentCode")
+    public R<List<MusicSheetWrapper.InstrumentCode>> instrumentCode() {
+
+        List<MusicSheetWrapper.InstrumentCode> codes = musicSheetService.getAllInstrumentCode();
+        if (CollectionUtils.isEmpty(codes)) {
+            codes = Lists.newArrayList();
+        }
+
+        return R.from(codes);
+    }
 }

+ 5 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/UserWithdrawalController.java

@@ -15,6 +15,7 @@ import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.toolset.utils.easyexcel.ExcelUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -94,6 +95,10 @@ public class UserWithdrawalController extends BaseController {
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
+        if (StringUtils.isBlank(authOperaReq.getType())) {
+            authOperaReq.setType("ONLINE");
+        }
+
         return userWithdrawalService.batchAuth(authOperaReq, user);
     }
 

+ 17 - 7
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

@@ -1,19 +1,15 @@
 package com.yonge.cooleshow.student.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.dayaedu.cbs.common.enums.school.EMusicSheetType;
-import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
+import com.google.common.collect.Lists;
 import com.microsvc.toolkit.common.response.template.R;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.AppMusicSheetVo;
-import com.yonge.cooleshow.biz.dal.dto.MusicSheetRenderDto;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetRelatedQueryInfo;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
@@ -26,7 +22,6 @@ 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.InstrumentWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -57,7 +52,6 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * 曲谱表 web 控制层
@@ -500,4 +494,20 @@ public class MusicSheetController extends BaseController {
         return succeed(musicSheetService.searchTenant(queryInfo));
     }
 
+
+    @ApiOperation(value = "总控平台乐器编码", notes = "总控平台乐器编码")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "id", value = "id", dataType = "long")
+    })
+    @GetMapping("/instrumentCode")
+    public R<List<MusicSheetWrapper.InstrumentCode>> instrumentCode() {
+
+        List<MusicSheetWrapper.InstrumentCode> codes = musicSheetService.getAllInstrumentCode();
+        if (CollectionUtils.isEmpty(codes)) {
+            codes = Lists.newArrayList();
+        }
+
+        return R.from(codes);
+    }
+
 }

+ 0 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetCbsController.java

@@ -33,7 +33,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import javax.validation.Valid;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;

+ 22 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java

@@ -1,7 +1,9 @@
 package com.yonge.cooleshow.teacher.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.google.common.collect.Lists;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.microsvc.toolkit.common.response.template.R;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.AppMusicSheetVo;
 import com.yonge.cooleshow.biz.dal.dto.MusicSheetRenderDto;
@@ -28,16 +30,19 @@ import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 import java.util.Optional;
 
 /**
@@ -346,4 +351,20 @@ public class MusicSheetController extends BaseController {
         IPage<MusicSheetVo> sheetVoIPage = musicSheetService.practiceMusic(PageUtil.getPage(search),search);
         return succeed(PageUtil.pageInfo(sheetVoIPage));
     }
+
+
+    @ApiOperation(value = "总控平台乐器编码", notes = "总控平台乐器编码")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "id", value = "id", dataType = "long")
+    })
+    @GetMapping("/instrumentCode")
+    public R<List<MusicSheetWrapper.InstrumentCode>> instrumentCode() {
+
+        List<MusicSheetWrapper.InstrumentCode> codes = musicSheetService.getAllInstrumentCode();
+        if (CollectionUtils.isEmpty(codes)) {
+            codes = Lists.newArrayList();
+        }
+
+        return R.from(codes);
+    }
 }

+ 21 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/MusicSheetController.java

@@ -1,12 +1,13 @@
 package com.yonge.cooleshow.website.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.google.common.collect.Lists;
+import com.microsvc.toolkit.common.response.template.R;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetRelatedQueryInfo;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
@@ -15,6 +16,7 @@ import com.yonge.cooleshow.biz.dal.service.MusicSheetAuthRecordService;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherAuditMusicSheetVo;
+import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.EStatus;
@@ -24,9 +26,11 @@ import com.yonge.toolset.base.page.QueryInfo;
 import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.*;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 import java.util.Optional;
 
 /**
@@ -180,4 +184,20 @@ public class MusicSheetController extends BaseController {
     	IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.queryRelatedList(PageUtil.getPage(queryInfo), queryInfo);
         return succeed(PageUtil.pageInfo(musicSheetVoIPage));
     }
+
+
+    @ApiOperation(value = "总控平台乐器编码", notes = "总控平台乐器编码")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "id", value = "id", dataType = "long")
+    })
+    @GetMapping("/instrumentCode")
+    public R<List<MusicSheetWrapper.InstrumentCode>> instrumentCode() {
+
+        List<MusicSheetWrapper.InstrumentCode> codes = musicSheetService.getAllInstrumentCode();
+        if (CollectionUtils.isEmpty(codes)) {
+            codes = Lists.newArrayList();
+        }
+
+        return R.from(codes);
+    }
 }

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/AuthOperaReq.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.dto.req;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
@@ -12,6 +13,7 @@ import javax.validation.constraints.NotNull;
  * @Author: liweifan
  * @Data: 2022/3/18 15:04
  */
+@Data
 @ApiModel(value = "AuthOperaReq", description = "审核操作对象")
 public class AuthOperaReq {
     @NotNull(message = "id不能为空")
@@ -26,6 +28,10 @@ public class AuthOperaReq {
     @ApiModelProperty(value = "用户id", hidden = true)
     private Long userId;
 
+    @ApiModelProperty(value = "线上 ONLINE,线下:OFFLINE")
+    private String type;
+
+
     public String getId() {
         return id;
     }

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserWithdrawal.java

@@ -12,12 +12,14 @@ import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.math.BigDecimal;
 
 /**
  * 用户账户结算表
  */
+@Data
 @TableName("user_withdrawal")
 @ApiModel(value = "UserWithdrawal对象", description = "用户账户结算表")
 public class UserWithdrawal implements Serializable {
@@ -94,6 +96,9 @@ public class UserWithdrawal implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date updateTime;
 
+    @ApiModelProperty("结算方式 线上 ONLINE,线下:OFFLINE ")
+    @TableField(value = "type_")
+    private String type;
     public Long getId() {
         return id;
     }

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

@@ -441,4 +441,10 @@ public interface MusicSheetService extends IService<MusicSheet> {
      *
      */
     MusicSheetWrapper.MusicSheetDetail detailSmall(MusicSheetWrapper.MusicSheetDetailQuery query,SysUser sysUser);
+
+    /**
+     * 获取所有乐器编码
+     * @return List<MusicSheetWrapper.InstrumentCode>
+     */
+    List<MusicSheetWrapper.InstrumentCode> getAllInstrumentCode();
 }

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

@@ -14,6 +14,7 @@ import com.dayaedu.cbs.openfeign.client.MusicFeignClientService;
 import com.dayaedu.cbs.openfeign.properties.OpenFeignClientConfigProperties;
 import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetApplicationExtendClientWrapper;
 import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
+import com.dayaedu.cbs.openfeign.wrapper.musicInstrument.CbsMusicalInstrumentWrapper;
 import com.google.common.collect.Maps;
 import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
@@ -2732,7 +2733,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     }
 
     /**
-     * @param musicSheetId 业务端曲目ID
+     * @param cbsMusicSheetId 业务端曲目ID
      * @return CbsMusicSheetWrapper.MusicSheet
      */
     @Override
@@ -3051,4 +3052,38 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 .map(sysUserFeignService::queryUserById)
                 .orElseThrow(() -> new BizException("用户不存在"));
     }
+
+    /**
+     * 获取所有乐器编码
+     *
+     * @return List<MusicSheetWrapper.InstrumentCode>
+     */
+    @Override
+    public List<MusicSheetWrapper.InstrumentCode> getAllInstrumentCode() {
+
+        // 构建乐器编码查询参数
+        CbsMusicalInstrumentWrapper.MusicalInstrumentQuery musicalInstrumentQuery = new CbsMusicalInstrumentWrapper.MusicalInstrumentQuery();
+        musicalInstrumentQuery.setPage(1);
+        musicalInstrumentQuery.setRows(999);
+
+        // 调用音乐服务查询乐器编码
+        List<CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto> rows = musicFeignClientService.musicalInstrumentPage(musicalInstrumentQuery).feignData().getRows();
+        if (CollectionUtils.isEmpty(rows)) {
+            return Collections.emptyList();
+        }
+
+        return rows.stream().map(x -> {
+            // 构建乐器编码
+            return MusicSheetWrapper.InstrumentCode.builder()
+                .id(x.getId())
+                .name(x.getName())
+                .code(x.getCode())
+                .subjectId(x.getSubjectId())
+                .subjectName(x.getSubjectName())
+                .orientation(x.getOrientation())
+                .transferFlag(x.getTransferFlag())
+                .build();
+        }).collect(Collectors.toList());
+
+    }
 }

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

@@ -199,7 +199,7 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
         List<Long> ids = Arrays.asList(StringUtil.toLongArray(StringPool.COMMA, authOperaReq.getId()));
 
         //先判断三方余额是否充足
-        if (authOperaReq.getPass()) {
+        if (authOperaReq.getPass() && "ONLINE".equals(authOperaReq.getType())) {
             List<UserWithdrawal> userWithdrawals = baseMapper.selectList(Wrappers.<UserWithdrawal>lambdaQuery()
                     .in(UserWithdrawal::getId, ids)
                     .eq(UserWithdrawal::getAuthStatus, AuthStatusEnum.DOING));
@@ -225,6 +225,7 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
             param.setReason(authOperaReq.getReason());
             param.setPass(authOperaReq.getPass());
             param.setUserId(sysUser.getId());
+            param.setType(authOperaReq.getType());
             try {
                 HttpResponseResult<UserWithdrawalVo> res = DistributedLock.of(redissonClient)
                         .runIfLockToFunction(CacheNameEnum.LOCK_WITHDRAWAL.getRedisKey(id.toString())
@@ -258,10 +259,16 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
         build.setAuthUserId(authOperaReq.getUserId());
         build.setUpdateTime(new Date());
         build.setAuthTime(new Date());
+        build.setType(authOperaReq.getType());
 
         SysUser withdrawalUser = sysUserService.findUserById(build.getUserId());
         HttpResponseResult res = HttpResponseResult.succeed(build);
         if (authOperaReq.getPass()) {
+            if (authOperaReq.getType().equals("OFFLINE")) {
+                //线下审核通过,不调用三方
+                withdrawalSuccess(null, build);
+                return res;
+            }
             //交易流水号生成
             Long transNo = idGeneratorService.generatorId("withdrawNo");
 
@@ -350,19 +357,9 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
         if (!TradeStatusEnum.pending.equals(detail.getTradeStatus())) {
             return;
         }
+        detail.setCallbackJson(jsonStr);
         if ("1".equals(callback.getStatus())) {
-            //交易成功
-            detail.setTradeStatus(TradeStatusEnum.succeeded);
-            detail.setTradeNo(callback.getOrderNo());
-            BigDecimal actualAmount = new BigDecimal(callback.getActualAmount());
-            detail.setActualAmount(actualAmount.divide(new BigDecimal("100")));
-            detail.setTransferTime(callback.getEndTime());
-
-            //结算成功,账户解冻,入账户明细
-            UserAccountRecordVo recordVo = accountRecordService.detail(null, AccountBizTypeEnum.WITHDRAWAL, detail.getId());
-            userAccountService.accountChange(recordVo, PostStatusEnum.RECORDED);
-            //发生结算成功通知
-            successSend(detail.getUserId(), detail.getPhone());
+            withdrawalSuccess(callback, detail);
         } else if ("2".equals(callback.getStatus())) {
             //交易失败
             detail.setTradeStatus(TradeStatusEnum.failed);
@@ -373,14 +370,33 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
             //结算失败,账户解冻
             UserAccountRecordVo recordVo = accountRecordService.detail(null, AccountBizTypeEnum.WITHDRAWAL, detail.getId());
             userAccountService.accountChange(recordVo, PostStatusEnum.CANCEL);
+            updateById(detail);
 
             //发生结算失败通知
             unpassSend(detail.getUserId(), detail.getPhone(), callback.getErrorMsg());
+        }
+    }
+
+    private void withdrawalSuccess(UserWithdrawalCallback callback, UserWithdrawalVo detail) {
+        //交易成功
+        detail.setTradeStatus(TradeStatusEnum.succeeded);
+        if (callback !=null) {
+            detail.setTradeNo(callback.getOrderNo());
+            BigDecimal actualAmount = new BigDecimal(callback.getActualAmount());
+            detail.setActualAmount(actualAmount.divide(new BigDecimal("100")));
+            detail.setTransferTime(callback.getEndTime());
         } else {
-            return;
+            detail.setTradeNo("");
+            detail.setActualAmount(detail.getActualAmount());
+            detail.setTransferTime(new Date());
         }
-        detail.setCallbackJson(jsonStr);
+
+        //结算成功,账户解冻,入账户明细
+        UserAccountRecordVo recordVo = accountRecordService.detail(null, AccountBizTypeEnum.WITHDRAWAL, detail.getId());
+        userAccountService.accountChange(recordVo, PostStatusEnum.RECORDED);
         updateById(detail);
+        //发生结算成功通知
+        successSend(detail.getUserId(), detail.getPhone());
     }
 
     @Override

+ 29 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/MusicSheetWrapper.java

@@ -1189,4 +1189,33 @@ public class MusicSheetWrapper {
         private Integer rows;
 
     }
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel("总控平台乐器编码")
+    public static class InstrumentCode implements Serializable {
+
+        @ApiModelProperty("主键")
+        private Integer id;
+
+        @ApiModelProperty("名称")
+        private String name;
+
+        @ApiModelProperty("编码")
+        private String code;
+
+        @ApiModelProperty("声部编号")
+        private Integer subjectId;
+
+        @ApiModelProperty("声部")
+        private String subjectName;
+
+        @ApiModelProperty("横竖屏:1:竖 0:横")
+        private Boolean orientation;
+
+        @ApiModelProperty("是否可转普")
+        private Boolean transferFlag;
+    }
 }

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

@@ -48,6 +48,7 @@
         , t.create_time_ as createTime
         , t.update_time_ as updateTime
         , t.status_ as status
+        , t.type_ as type
     </sql>
 
     <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.UserWithdrawalVo">