Преглед изворни кода

Merge branch 'zouxuan_saas_2022_0606' of http://git.dayaedu.com/yonge/mec into master_saas

zouxuan пре 3 година
родитељ
комит
170d6d89ea

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempLiveTeacherCardDao.java

@@ -1,10 +1,12 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.biz.dal.entity.TempLiveTeacherCard;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 public interface TempLiveTeacherCardDao extends BaseDAO<Integer, TempLiveTeacherCard> {
 
@@ -12,4 +14,7 @@ public interface TempLiveTeacherCardDao extends BaseDAO<Integer, TempLiveTeacher
     List<TempLiveTeacherCard> list(TempLiveTeacherCard teacherCard);
 
     TempLiveTeacherCard getBySubjectIdAndLevel(@Param("subjectId") String subjectId, @Param("level") String level);
+
+    List<Subject> querySubjectOption();
+
 }

+ 6 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TempLiveTeacherCard.java

@@ -26,12 +26,12 @@ public class TempLiveTeacherCard {
 	private String introduction;
 
 	@ApiModelProperty("曲目名称")
-	private String musicNames;
+	private String musicContent;
 
 	@ApiModelProperty("声部id(单个声部)")
 	private String subjectId;
 
-	@ApiModelProperty("级别 low 初级 medium 中级 high 高级")
+	@ApiModelProperty("级别 one 一级 two 二级 three 三级")
 	private String level;
 
 	@ApiModelProperty("群聊id")
@@ -88,12 +88,12 @@ public class TempLiveTeacherCard {
 		return this.introduction;
 	}
 
-	public void setMusicNames(String musicNames){
-		this.musicNames = musicNames;
+	public String getMusicContent() {
+		return musicContent;
 	}
 
-	public String getMusicNames(){
-		return this.musicNames;
+	public void setMusicContent(String musicContent) {
+		this.musicContent = musicContent;
 	}
 
 	public void setSubjectId(String subjectId){

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/LevelEnum.java

@@ -6,9 +6,9 @@ import com.ym.mec.common.enums.BaseEnum;
  * 学员级别
  */
 public enum LevelEnum implements BaseEnum<String, LevelEnum> {
-    low("初级"),
-    medium("中级"),
-    high("高级");
+    one("一级"),
+    two("二级"),
+    three("三级");
 
     private String code;
     private String msg;

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -19,6 +19,7 @@ import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImMessageDto;
 import com.ym.mec.common.entity.ImPrivateMessage;
+import com.ym.mec.common.entity.ImSendMessageUserInfo;
 import com.ym.mec.common.entity.ImTxtMessage;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -323,7 +324,14 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		ImMessageDto imMessageDto = new ImMessageDto();
 		if(messageDto.getIsIncludeSender() == 0){
 			//发送系统消息用指定的用户
-			imMessageDto.setSenderId(sysConfigDao.findConfigValue("system_message_user"));
+			String userId = sysConfigDao.findConfigValue("system_message_user");
+			imMessageDto.setSenderId(userId);
+			SimpleUserDto simpleUser = teacherDao.getSimpleUser(Integer.parseInt(userId));
+			ImSendMessageUserInfo userInfo = new ImSendMessageUserInfo();
+			userInfo.setIcon(simpleUser.getAvatar());
+			userInfo.setId(userId);
+			userInfo.setName(simpleUser.getUserName());
+			imMessageDto.setUserInfo(userInfo);
 		}else {
 			imMessageDto.setSenderId(messageDto.getSenderId());
 		}

+ 41 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempBuyFreeLiveTheoryCourseServiceImpl.java

@@ -13,6 +13,8 @@ import com.ym.mec.util.excel.POIUtil;
 import com.ym.mec.util.ini.IniFileUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.PictureData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse;
@@ -28,13 +30,11 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 public class TempBuyFreeLiveTheoryCourseServiceImpl extends BaseServiceImpl<Integer, TempBuyFreeLiveTheoryCourse> implements TempBuyFreeLiveTheoryCourseService {
+    private final static Logger log = LoggerFactory.getLogger(TempBuyFreeLiveTheoryCourseServiceImpl.class);
 
     @Autowired
     private TempBuyFreeLiveTheoryCourseDao tempBuyFreeLiveTheoryCourseDao;
@@ -82,7 +82,7 @@ public class TempBuyFreeLiveTheoryCourseServiceImpl extends BaseServiceImpl<Inte
             }
             String recommendLevel = objectMap.getString("recommendLevel");
             if (StringUtils.isNotEmpty(recommendLevel) && null == LevelEnum.getByName(recommendLevel.trim())) {
-                err += "老师推荐级别列,数据异常(可选值:初级 中级 高级)/";
+                err += "老师推荐级别列,数据异常(可选值:一级 二级 三级)/";
             }
             if (StringUtils.isNotEmpty(err)) {
                 err = "第" + (i + 1) + "行数据异常:" + err.substring(0, err.length() - 1);
@@ -146,7 +146,7 @@ public class TempBuyFreeLiveTheoryCourseServiceImpl extends BaseServiceImpl<Inte
             }
             String level = objectMap.getString("level");
             if (StringUtils.isNotEmpty(level) && null == LevelEnum.getByName(level.trim())) {
-                err += "老师推荐级别列,数据异常(可选值:初级 中级 高级)/";
+                err += "老师推荐级别列,数据异常(可选值:一级 二级 三级)/";
             }
             if (StringUtils.isNotEmpty(err)) {
                 err = "第" + (i + 1) + "行数据异常:" + err.substring(0, err.length() - 1);
@@ -166,7 +166,7 @@ public class TempBuyFreeLiveTheoryCourseServiceImpl extends BaseServiceImpl<Inte
         //导入数据库
         for (TempLiveTeacherCard temp : tempList) {
             LevelEnum byName = LevelEnum.getByName(temp.getLevel());
-            if(null == byName){
+            if (null == byName) {
                 continue;
             }
             TempLiveTeacherCard card = tempLiveTeacherCardDao.getBySubjectIdAndLevel(temp.getSubjectId(), byName.getCode());
@@ -176,9 +176,42 @@ public class TempBuyFreeLiveTheoryCourseServiceImpl extends BaseServiceImpl<Inte
             card.setUsername(temp.getUsername());
             card.setAvatar(temp.getAvatar());
             card.setIntroduction(temp.getIntroduction());
-            card.setMusicNames(temp.getMusicNames());
+
+            //处理曲目内容json
+            String json = getMusicContent(temp.getMusicContent());
+            card.setMusicContent(json);
             tempLiveTeacherCardDao.update(card);
         }
         return null;
     }
+
+    private String getMusicContent(String musicContent) {
+        if (StringUtils.isEmpty(musicContent)) {
+            return null;
+        }
+        musicContent = musicContent.trim();
+        List<String> musicList = Arrays.asList(musicContent.split("\\|"));
+        List<Map<String, String>> mapList = new ArrayList<>();
+        for (String musicStr : musicList) {
+            Map<String, String> musicMap = new HashMap<>();
+            try {
+                String[] split = musicStr.split(",");
+                String coourseDay = split[0];
+                coourseDay = coourseDay.replace("月",".").replace("日","")
+                        .replace("(","(").replace(")",")");
+                musicMap.put("coourseDay", coourseDay);
+                musicMap.put("coourseTime", split[1]);
+                musicMap.put("musicName", split[2]);
+
+
+
+
+                mapList.add(musicMap);
+            } catch (Exception e) {
+                log.error("数据转换失败 data is {}", musicContent);
+                e.printStackTrace();
+            }
+        }
+        return JSONObject.toJSONString(mapList);
+    }
 }

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -1437,7 +1437,8 @@
             su.real_name_ userName,
             su.gender_ gender,
             su.phone_ phone,
-            su.tenant_id_ tenantId
+            su.tenant_id_ tenantId,
+            su.avatar_ avatar
         FROM sys_user su WHERE su.id_ = #{userId}
     </select>
     <select id="countTeacherBasicInfo" resultType="java.lang.Integer">

+ 20 - 6
mec-biz/src/main/resources/config/mybatis/TempLiveTeacherCardMapper.xml

@@ -12,7 +12,7 @@
         <result column="username_" property="username"/>
         <result column="avatar_" property="avatar"/>
         <result column="introduction_" property="introduction"/>
-        <result column="music_names" property="musicNames"/>
+        <result column="music_content_" property="musicContent"/>
         <result column="subject_id_" property="subjectId"/>
         <result column="level_" property="level"/>
         <result column="im_group_id_" property="imGroupId"/>
@@ -44,8 +44,8 @@
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.TempLiveTeacherCard" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
         INSERT INTO temp_live_teacher_card
-        (id_,user_id_,username_,avatar_,introduction_,music_names,subject_id_,level_,im_group_id_,live_goods_id_,create_time_,update_time_)
-        VALUES(#{id},#{username},#{userId},#{avatar},#{introduction},#{musicNames},#{subjectId},#{level},#{imGroupId},#{liveGoodsId},#{createTime},#{updateTime})
+        (id_,user_id_,username_,avatar_,introduction_,music_content_,subject_id_,level_,im_group_id_,live_goods_id_,create_time_,update_time_)
+        VALUES(#{id},#{username},#{userId},#{avatar},#{introduction},#{musicContent},#{subjectId},#{level},#{imGroupId},#{liveGoodsId},#{createTime},#{updateTime})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -70,8 +70,8 @@
             <if test="id != null">
                 id_ = #{id},
             </if>
-            <if test="musicNames != null">
-                music_names = #{musicNames},
+            <if test="musicContent != null">
+                music_content_ = #{musicContent},
             </if>
             <if test="imGroupId != null">
                 im_group_id_ = #{imGroupId},
@@ -127,7 +127,7 @@
             group by live_goods_id_,recommend_level_
         ) a on t.live_goods_id_ = a.live_goods_id_ and t.level_ = a.recommend_level_
         where FIND_IN_SET(subject_id_,#{subjectId})
-        order by field(t.level_,'low','medium','high')
+        order by field(t.level_,'one','two','three')
     </select>
 
     <select id="getBySubjectIdAndLevel" resultMap="TempLiveTeacherCard">
@@ -135,4 +135,18 @@
         FROM temp_live_teacher_card
         WHERE subject_id_ = #{subjectId} and level_ = #{level}
     </select>
+
+
+    <select id="querySubjectOption" resultType="com.ym.mec.biz.dal.entity.Subject">
+        SELECT
+            t.id_ as id,t.name_ as name
+        FROM subject t
+        where exists(
+            select 1 from temp_live_teacher_card cs
+            where t.id_ = cs.subject_id_
+            and cs.username_ is not null
+            and cs.music_content_ is not null
+        )
+        order by t.id_
+    </select>
 </mapper>

+ 10 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImMessageDto.java

@@ -21,6 +21,16 @@ public class ImMessageDto {
 
     private Integer isIncludeSender = 1;
 
+    private ImSendMessageUserInfo userInfo;
+
+    public ImSendMessageUserInfo getUserInfo() {
+        return userInfo;
+    }
+
+    public void setUserInfo(ImSendMessageUserInfo userInfo) {
+        this.userInfo = userInfo;
+    }
+
     public Integer getIsIncludeSender() {
         return isIncludeSender;
     }

+ 43 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImSendMessageUserInfo.java

@@ -0,0 +1,43 @@
+package com.ym.mec.common.entity;
+
+public class ImSendMessageUserInfo {
+    private String id;
+
+    private String name;
+
+    private String icon;
+
+    private String extra;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+
+    public String getExtra() {
+        return extra;
+    }
+
+    public void setExtra(String extra) {
+        this.extra = extra;
+    }
+}

+ 9 - 0
mec-im/src/main/java/com/ym/controller/GroupController.java

@@ -8,6 +8,7 @@ import com.ym.service.MessageService;
 import io.rong.messages.FileMessage;
 import io.rong.messages.ImgMessage;
 import io.rong.messages.TxtMessage;
+import io.rong.messages.UserInfo;
 import io.rong.models.Result;
 import io.rong.models.group.GroupMember;
 import io.rong.models.group.GroupModel;
@@ -15,6 +16,7 @@ import io.rong.models.group.UserGroup;
 import io.rong.models.message.GroupMessage;
 import io.rong.models.message.MentionMessage;
 import io.rong.models.message.RecallMessage;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -41,17 +43,24 @@ public class GroupController{
     public Object send(@RequestBody ImMessageDto imMessageDto) throws Exception {
         GroupMessage groupMessage = new GroupMessage();
         String objectName = imMessageDto.getObjectName();
+        UserInfo userInfo = new UserInfo();
+        if(imMessageDto.getUserInfo() != null){
+            BeanUtils.copyProperties(imMessageDto.getUserInfo(),userInfo);
+        }
         if("DY:NoticeMsg".equals(objectName)){
             NoticeMessage noticeMessage = new NoticeMessage(imMessageDto.getMessageContent(),imMessageDto.getExtra());
+            noticeMessage.setUser(userInfo);
             groupMessage.setContent(noticeMessage);
         }else if("RC:ImgMsg".equals(objectName)){
             ImgMessage imgMessage = new ImgMessage(imMessageDto.getMessageContent(),imMessageDto.getExtra(),imMessageDto.getFileUrl());
+            imgMessage.setUser(userInfo);
             groupMessage.setContent(imgMessage);
         }else if("RC:FileMsg".equals(objectName)){
             FileMessage imgMessage = new FileMessage(imMessageDto.getFileName(),imMessageDto.getFileSize(),imMessageDto.getFileUrl(),imMessageDto.getExtra());
             groupMessage.setContent(imgMessage);
         }else {
             TxtMessage txtMessage = new TxtMessage(imMessageDto.getMessageContent(),imMessageDto.getExtra());
+            txtMessage.setUser(userInfo);
             groupMessage.setContent(txtMessage);
         }
         groupMessage.setSenderId(imMessageDto.getSenderId());

+ 31 - 5
mec-student/src/main/java/com/ym/mec/student/controller/TempLiveActivityController.java

@@ -5,22 +5,29 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TempLiveTeacherCardDao;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.Student;
+import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.TempLiveTeacherCard;
 import com.ym.mec.biz.service.ImGroupService;
 import com.ym.mec.biz.service.StudentService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.annotation.Resource;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 直播临时活动
@@ -36,18 +43,37 @@ public class TempLiveActivityController extends BaseController {
     @Resource
     private TempLiveTeacherCardDao tempLiveTeacherCardDao;
 
-    @ApiOperation("查询声部上课老师名片信息列表")
-    @PostMapping(value = "/listTeacherCard",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
-    public HttpResponseResult<List<TempLiveTeacherCard>> listTeacherCard() {
+    @ApiOperation("查询声部")
+    @PostMapping(value = "/querySubjectOption",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public HttpResponseResult<Map<String,Object>> querySubjectOption() {
         SysUser user = sysUserFeignService.queryUserInfo();
         if (user == null || user.getId() == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
+        Map<String,Object> res = new HashMap<>();
+        List<Subject> options = tempLiveTeacherCardDao.querySubjectOption();
+        res.put("options",options);
+
         Student student = studentService.get(user.getId());
+        res.put("subjectId",student.getSubjectIdList());
+        return succeed(res);
+    }
 
-        TempLiveTeacherCard param = new TempLiveTeacherCard();
+    @ApiImplicitParams({
+            @ApiImplicitParam(
+                    name = "subjectId",
+                    value = "声部id",
+                    paramType = "query", dataType = "String", required = true
+            )
+    })
+    @ApiOperation("查询声部上课老师名片信息列表")
+    @PostMapping(value = "/listTeacherCard",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public HttpResponseResult<List<TempLiveTeacherCard>> listTeacherCard(@ApiIgnore @RequestBody TempLiveTeacherCard param) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || user.getId() == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
         param.setStudentId(user.getId());
-        param.setSubjectId(student.getSubjectIdList());
         List<TempLiveTeacherCard> list = tempLiveTeacherCardDao.list(param);
         return succeed(list);
     }

+ 4 - 8
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -2984,20 +2984,16 @@ public class ExportController extends BaseController {
             if(StringUtils.isEmpty(recommendLevel)){
                 return;
             }
-            //low 初级 medium 中级 high 高级
-            if(recommendLevel.equals("low")){
-                o.setRecommendLevel("初级");
-            }else if(recommendLevel.equals("medium")){
-                o.setRecommendLevel("中级");
-            }else if(recommendLevel.equals("high")){
-                o.setRecommendLevel("高级");
+            LevelEnum levelEnum = LevelEnum.valueOf(recommendLevel);
+            if(null!= levelEnum){
+                o.setRecommendLevel(levelEnum.getMsg());
             }
         });
 
         OutputStream outputStream = response.getOutputStream();
         try {
             String[] header = {
-                    "ID","用户ID","购买学生姓名","老师推荐级别(初级/中级/高级)"};
+                    "ID","用户ID","购买学生姓名","老师推荐级别(一级/二级/三级)"};
             String[] body = {"id","userId","studentName","recommendLevel"};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, list);
             response.setContentType("application/octet-stream");

+ 1 - 1
mec-web/src/main/resources/columnMapper.ini

@@ -74,5 +74,5 @@ ID = id
 级别 = level
 老师名称 = username
 老师介绍 = introduction
-教学曲目 = musicNames
+教学曲目 = musicContent
 头像地址 = avatar