Просмотр исходного кода

直播临时活动-查询声部上课老师名片信息列表,导出学生信息

liweifan 2 лет назад
Родитель
Сommit
b7c588f827

+ 1 - 1
codegen/src/main/resources/generateConfigration.xml

@@ -8,7 +8,7 @@
 		<catalog>mec_test</catalog>
 		<schema>mec_test</schema>
 	</dbConfiguration>
-	<srcBase>/Users/chenxiaoyu/Documents/javabean</srcBase>
+	<srcBase>D:/usr/javabean</srcBase>
 	<pojoPackageName>com.ym.mec.biz.dal.entity</pojoPackageName>
 	<daoPackageName>com.ym.mec.biz.dal.dao</daoPackageName>
 	<servicePackageName>com.ym.mec.biz.service</servicePackageName>

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempBuyFreeLiveTheoryCourseDao.java

@@ -4,8 +4,12 @@ import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 public interface TempBuyFreeLiveTheoryCourseDao extends BaseDAO<Integer, TempBuyFreeLiveTheoryCourse> {
 
 
     int countByUserId(@Param("userId") Integer userId);
+
+    List<TempBuyFreeLiveTheoryCourse> list(@Param("param") TempBuyFreeLiveTheoryCourse tempBuyFreeLiveTheoryCourse);
 }

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

@@ -0,0 +1,12 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.biz.dal.entity.TempLiveTeacherCard;
+
+import java.util.List;
+
+public interface TempLiveTeacherCardDao extends BaseDAO<Integer, TempLiveTeacherCard> {
+
+
+    List<TempLiveTeacherCard> list(TempLiveTeacherCard teacherCard);
+}

+ 26 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TempBuyFreeLiveTheoryCourse.java

@@ -16,6 +16,9 @@ public class TempBuyFreeLiveTheoryCourse {
 	private String liveId;
 
 	private Integer liveGoodsId;
+
+	/** 老师推荐级别 low 初级 medium 中级 high 高级 */
+	private String recommendLevel;
 	
 	/**  */
 	private java.util.Date createTime;
@@ -23,6 +26,12 @@ public class TempBuyFreeLiveTheoryCourse {
 	/**  */
 	private java.util.Date updateTime;
 
+	/** 购买学生姓名 */
+	private String studentName;
+
+	public TempBuyFreeLiveTheoryCourse() {
+	}
+
 	public TempBuyFreeLiveTheoryCourse(Integer userId,String liveId,Integer liveGoodsId) {
 		this.userId = userId;
 		this.liveId = liveId;
@@ -76,7 +85,23 @@ public class TempBuyFreeLiveTheoryCourse {
 	public java.util.Date getUpdateTime(){
 		return this.updateTime;
 	}
-			
+
+	public String getRecommendLevel() {
+		return recommendLevel;
+	}
+
+	public void setRecommendLevel(String recommendLevel) {
+		this.recommendLevel = recommendLevel;
+	}
+
+	public String getStudentName() {
+		return studentName;
+	}
+
+	public void setStudentName(String studentName) {
+		this.studentName = studentName;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

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

@@ -0,0 +1,159 @@
+package com.ym.mec.biz.dal.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(temp_live_teacher_card):
+ */
+@ApiModel(value = "TempLiveTeacherCard对象", description = "老师名片信息对象")
+public class TempLiveTeacherCard {
+
+	@ApiModelProperty("id ")
+	private Integer id;
+	
+	@ApiModelProperty("老师id ")
+	private Integer userId;
+	
+	@ApiModelProperty("头像地址 ")
+	private String avatar;
+	
+	@ApiModelProperty("个人介绍")
+	private String introduction;
+	
+	@ApiModelProperty("曲目名称")
+	private String musicNames;
+	
+	@ApiModelProperty("声部id(单个声部)")
+	private String subjectId;
+	
+	@ApiModelProperty("级别 low 初级 medium 中级 high 高级")
+	private String level;
+	
+	@ApiModelProperty("群聊id")
+	private String imGroupId;
+
+	@ApiModelProperty("直播商品id")
+	private Integer liveGoodsId;
+	
+	private java.util.Date createTime;
+	
+	private java.util.Date updateTime;
+
+	@ApiModelProperty("是否推荐级别")
+	private Boolean recommendLevelFlag;
+
+	@ApiModelProperty(value = "学生id",hidden = true)
+	private Integer studentId;
+
+	public void setId(Integer id){
+		this.id = id;
+	}
+	
+	public Integer getId(){
+		return this.id;
+	}
+			
+	public void setUserId(Integer userId){
+		this.userId = userId;
+	}
+	
+	public Integer getUserId(){
+		return this.userId;
+	}
+			
+	public void setAvatar(String avatar){
+		this.avatar = avatar;
+	}
+	
+	public String getAvatar(){
+		return this.avatar;
+	}
+			
+	public void setIntroduction(String introduction){
+		this.introduction = introduction;
+	}
+	
+	public String getIntroduction(){
+		return this.introduction;
+	}
+			
+	public void setMusicNames(String musicNames){
+		this.musicNames = musicNames;
+	}
+	
+	public String getMusicNames(){
+		return this.musicNames;
+	}
+			
+	public void setSubjectId(String subjectId){
+		this.subjectId = subjectId;
+	}
+	
+	public String getSubjectId(){
+		return this.subjectId;
+	}
+			
+	public void setLevel(String level){
+		this.level = level;
+	}
+	
+	public String getLevel(){
+		return this.level;
+	}
+			
+	public void setImGroupId(String imGroupId){
+		this.imGroupId = imGroupId;
+	}
+	
+	public String getImGroupId(){
+		return this.imGroupId;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+
+	public Boolean getRecommendLevelFlag() {
+		return recommendLevelFlag;
+	}
+
+	public void setRecommendLevelFlag(Boolean recommendLevelFlag) {
+		this.recommendLevelFlag = recommendLevelFlag;
+	}
+
+	public Integer getStudentId() {
+		return studentId;
+	}
+
+	public void setStudentId(Integer studentId) {
+		this.studentId = studentId;
+	}
+
+	public Integer getLiveGoodsId() {
+		return liveGoodsId;
+	}
+
+	public void setLiveGoodsId(Integer liveGoodsId) {
+		this.liveGoodsId = liveGoodsId;
+	}
+
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/TemplateTypeEnum.java

@@ -8,7 +8,10 @@ public enum TemplateTypeEnum implements BaseEnum<String, TemplateTypeEnum> {
     FINANCIAL_EXPENDITURE("FINANCIAL_EXPENDITURE","财务支出导入模板"),
     REDEMPTIONCODE("REDEMPTION_CODE", "兑换码分配模板表"),
     OA_QUIT_MUSIC_GROUP("OA_QUIT_MUSIC_GROUP", "乐团退费模板"),
-    EXTERNAL_STUDENT_IMPORT_MUSIC_GROUP("EXTERNAL_STUDENT_IMPORT_MUSIC_GROUP", "外部学生入团导入模板");
+    EXTERNAL_STUDENT_IMPORT_MUSIC_GROUP("EXTERNAL_STUDENT_IMPORT_MUSIC_GROUP", "外部学生入团导入模板"),
+
+    BUY_FREE_LIVE_THEORY_COURSE("BUY_FREE_LIVE_THEORY_COURSE", "直播临时活动学员购买导入模板");
+
 
     private String code;
 

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TempBuyFreeLiveTheoryCourseService.java

@@ -0,0 +1,12 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse;
+import com.ym.mec.common.service.BaseService;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+public interface TempBuyFreeLiveTheoryCourseService extends BaseService<Integer, TempBuyFreeLiveTheoryCourse> {
+
+    List<TempBuyFreeLiveTheoryCourse> importBuyFreeLiveTheoryCourse(MultipartFile file, Integer id) throws Exception;
+}

+ 85 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempBuyFreeLiveTheoryCourseServiceImpl.java

@@ -0,0 +1,85 @@
+package com.ym.mec.biz.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.enums.GoodsType;
+import com.ym.mec.biz.dal.enums.StockType;
+import com.ym.mec.biz.dal.enums.TemplateTypeEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.UploadReturnBean;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.tenant.TenantContextHolder;
+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.springframework.beans.factory.annotation.Autowired;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse;
+import com.ym.mec.biz.service.TempBuyFreeLiveTheoryCourseService;
+import com.ym.mec.biz.dal.dao.TempBuyFreeLiveTheoryCourseDao;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class TempBuyFreeLiveTheoryCourseServiceImpl extends BaseServiceImpl<Integer, TempBuyFreeLiveTheoryCourse>  implements TempBuyFreeLiveTheoryCourseService {
+	
+	@Autowired
+	private TempBuyFreeLiveTheoryCourseDao tempBuyFreeLiveTheoryCourseDao;
+
+	@Override
+	public BaseDAO<Integer, TempBuyFreeLiveTheoryCourse> getDAO() {
+		return tempBuyFreeLiveTheoryCourseDao;
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+	public List<TempBuyFreeLiveTheoryCourse> importBuyFreeLiveTheoryCourse(MultipartFile file, Integer id) throws Exception {
+		Map<String, List<Map<String, Object>>> sheetsListMap = POIUtil.importExcel(new ByteArrayInputStream(file.getBytes()), 2, file.getOriginalFilename());
+		InputStream inputStream = new ClassPathResource("columnMapper.ini").getInputStream();
+		Map<String,String> columns = IniFileUtil.readIniFile(inputStream, TemplateTypeEnum.BUY_FREE_LIVE_THEORY_COURSE.getMsg());
+		List<TempBuyFreeLiveTheoryCourse> tempList = new ArrayList<>();
+
+		for (String e : sheetsListMap.keySet()) {
+			List<Map<String, Object>> sheet = sheetsListMap.get(e);
+			valueIsNull: for (Map<String, Object> row : sheet) {
+				if (row.size() == 0){
+					continue;
+				}
+				JSONObject objectMap = new JSONObject();
+				for (String s : row.keySet()) {
+					if(!columns.containsKey(s)){
+						continue;
+					}
+					String columnValue = columns.get(s);
+					if(null == row.get(s)){
+						continue;
+					}
+					objectMap.put(columnValue, row.get(s));
+				}
+				TempBuyFreeLiveTheoryCourse course = null;
+				try {
+					course = JSONObject.parseObject(objectMap.toJSONString(),TempBuyFreeLiveTheoryCourse.class);
+					tempList.add(course);
+				} catch (Exception ex) {
+					throw new BizException("导入数据出错", ex);
+				}
+			}
+		}
+
+		//导入逻辑
+
+		return null;
+	}
+}

+ 95 - 61
mec-biz/src/main/resources/config/mybatis/TempBuyFreeLiveTheoryCourseMapper.xml

@@ -5,65 +5,99 @@
 不要修改此文件。所有改动将在下次重新自动生成时丢失。
 -->
 <mapper namespace="com.ym.mec.biz.dal.dao.TempBuyFreeLiveTheoryCourseDao">
-	
-	<resultMap type="com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse" id="TempBuyFreeLiveTheoryCourse">
-		<result column="id_" property="id" />
-		<result column="user_id_" property="userId" />
-		<result column="live_id_" property="liveId" />
-		<result column="live_goods_id_" property="liveGoodsId" />
-		<result column="create_time_" property="createTime" />
-		<result column="update_time_" property="updateTime" />
-	</resultMap>
-	
-	<!-- 根据主键查询一条记录 -->
-	<select id="get" resultMap="TempBuyFreeLiveTheoryCourse" >
-		SELECT * FROM temp_buy_free_live_theory_course WHERE id_ = #{id} 
-	</select>
-	
-	<!-- 全查询 -->
-	<select id="findAll" resultMap="TempBuyFreeLiveTheoryCourse">
-		SELECT * FROM temp_buy_free_live_theory_course ORDER BY id_
-	</select>
-	
-	<!-- 向数据库增加一条记录 -->
-	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO temp_buy_free_live_theory_course (user_id_,live_id_,live_goods_id_,create_time_,update_time_)
-		VALUES(#{userId},#{liveId},#{liveGoodsId},NOW(),NOW())
-	</insert>
-	
-	<!-- 根据主键查询一条记录 -->
-	<update id="update" parameterType="com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse">
-		UPDATE temp_buy_free_live_theory_course <set>
-		<if test="liveGoodsId != null">
-			live_goods_id_ = #{liveGoodsId},
-		</if>
-		<if test="liveId != null">
-			live_id_ = #{liveId},
-		</if>
-		<if test="userId != null">
-			user_id_ = #{userId},
-		</if>
-		<if test="updateTime != null">
-			update_time_ = #{updateTime},
-		</if>
-		</set> WHERE id_ = #{id}
-	</update>
-	
-	<!-- 根据主键删除一条记录 -->
-	<delete id="delete" >
-		DELETE FROM temp_buy_free_live_theory_course WHERE id_ = #{id} 
-	</delete>
-	
-	<!-- 分页查询 -->
-	<select id="queryPage" resultMap="TempBuyFreeLiveTheoryCourse" parameterType="map">
-		SELECT * FROM temp_buy_free_live_theory_course ORDER BY id_ <include refid="global.limit"/>
-	</select>
-	
-	<!-- 查询当前表的总记录数 -->
-	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM temp_buy_free_live_theory_course
-	</select>
-	<select id="countByUserId" resultType="java.lang.Integer">
-		SELECT COUNT(user_id_) FROM temp_buy_free_live_theory_course WHERE user_id_ = #{userId}
-	</select>
+
+    <resultMap type="com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse" id="TempBuyFreeLiveTheoryCourse">
+        <result column="id_" property="id"/>
+        <result column="user_id_" property="userId"/>
+        <result column="live_id_" property="liveId"/>
+        <result column="live_goods_id_" property="liveGoodsId"/>
+        <result column="recommend_level_" property="recommendLevel"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+
+        <result column="student_name_" property="studentName"/>
+    </resultMap>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="TempBuyFreeLiveTheoryCourse">
+        SELECT *
+        FROM temp_buy_free_live_theory_course
+        WHERE id_ = #{id}
+    </select>
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="TempBuyFreeLiveTheoryCourse">
+        SELECT *
+        FROM temp_buy_free_live_theory_course
+        ORDER BY id_
+    </select>
+
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse" useGeneratedKeys="true"
+            keyColumn="id" keyProperty="id">
+        INSERT INTO temp_buy_free_live_theory_course (user_id_, live_id_, live_goods_id_,recommend_level_, create_time_, update_time_)
+        VALUES (#{userId}, #{liveId}, #{liveGoodsId}, #{recommendLevel}, NOW(), NOW())
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse">
+        UPDATE temp_buy_free_live_theory_course
+        <set>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="liveGoodsId != null">
+                live_goods_id_ = #{liveGoodsId},
+            </if>
+            <if test="liveId != null">
+                live_id_ = #{liveId},
+            </if>
+            <if test="recommendLevel != null and recommendLevel != ''">
+                recommend_level_ = #{recommendLevel},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
+
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
+        DELETE
+        FROM temp_buy_free_live_theory_course
+        WHERE id_ = #{id}
+    </delete>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="TempBuyFreeLiveTheoryCourse" parameterType="map">
+        SELECT * FROM temp_buy_free_live_theory_course ORDER BY id_
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*)
+        FROM temp_buy_free_live_theory_course
+    </select>
+    <select id="countByUserId" resultType="java.lang.Integer">
+        SELECT COUNT(user_id_)
+        FROM temp_buy_free_live_theory_course
+        WHERE user_id_ = #{userId}
+    </select>
+
+    <select id="list" resultMap="TempBuyFreeLiveTheoryCourse">
+        select
+               t.*,IFNULL(real_name_,username_) as student_name_
+        from temp_buy_free_live_theory_course t
+        left join sys_user u on t.user_id_ = u.id_
+        <where>
+            <if test="param.liveId != null and param.liveId != ''">
+                and t.live_id_ = #{param.liveId}
+            </if>
+            <if test="param.liveGoodsId != null">
+                and t.live_goods_id_ = #{param.liveGoodsId}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 115 - 0
mec-biz/src/main/resources/config/mybatis/TempLiveTeacherCardMapper.xml

@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.TempLiveTeacherCardDao">
+
+    <resultMap type="com.ym.mec.biz.dal.entity.TempLiveTeacherCard" id="TempLiveTeacherCard">
+        <result column="id_" property="id"/>
+        <result column="user_id_" property="userId"/>
+        <result column="avatar_" property="avatar"/>
+        <result column="introduction_" property="introduction"/>
+        <result column="music_names" property="musicNames"/>
+        <result column="subject_id_" property="subjectId"/>
+        <result column="level_" property="level"/>
+        <result column="im_group_id_" property="imGroupId"/>
+        <result column="live_goods_id_" property="liveGoodsId"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+    </resultMap>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="TempLiveTeacherCard">
+        SELECT *
+        FROM temp_live_teacher_card
+        WHERE id_ = #{id}
+    </select>
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="TempLiveTeacherCard">
+        SELECT *
+        FROM temp_live_teacher_card
+        ORDER BY id_
+    </select>
+
+    <!-- 向数据库增加一条记录 -->
+    <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_,avatar_,introduction_,music_names,subject_id_,level_,im_group_id_,live_goods_id_,create_time_,update_time_)
+        VALUES(#{id},#{userId},#{avatar},#{introduction},#{musicNames},#{subjectId},#{level},#{imGroupId},#{liveGoodsId},#{createTime},#{updateTime})
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.TempLiveTeacherCard">
+        UPDATE temp_live_teacher_card
+        <set>
+            <if test="subjectId != null">
+                subject_id_ = #{subjectId},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="avatar != null">
+                avatar_ = #{avatar},
+            </if>
+            <if test="introduction != null">
+                introduction_ = #{introduction},
+            </if>
+            <if test="id != null">
+                id_ = #{id},
+            </if>
+            <if test="musicNames != null">
+                music_names = #{musicNames},
+            </if>
+            <if test="imGroupId != null">
+                im_group_id_ = #{imGroupId},
+            </if>
+            <if test="liveGoodsId != null">
+                live_goods_id_ = #{liveGoodsId},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+            <if test="level != null">
+                level_ = #{level},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
+
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
+        DELETE
+        FROM temp_live_teacher_card
+        WHERE id_ = #{id}
+    </delete>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="TempLiveTeacherCard" parameterType="map">
+        SELECT * FROM temp_live_teacher_card ORDER BY id_
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*)
+        FROM temp_live_teacher_card
+    </select>
+
+    <select id="list" resultMap="TempLiveTeacherCard">
+        select * from temp_live_teacher_card t
+        left join (
+            select live_goods_id_,recommend_level_ from temp_buy_free_live_theory_course
+            where user_id_ = #{studentId} and recommend_level_ is not null
+            group by live_goods_id_,recommend_level_
+        ) a on t.live_goods_id_ = a.live_goods_id_ and t.level_ = a.recommend_level_
+        where subject_id_ = #{subjectId}
+        order by field(t.level_,'low','medium','high')
+    </select>
+</mapper>

+ 57 - 0
mec-student/src/main/java/com/ym/mec/student/controller/TempLiveActivityController.java

@@ -0,0 +1,57 @@
+package com.ym.mec.student.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.TempLiveTeacherCardDao;
+import com.ym.mec.biz.dal.entity.TempLiveTeacherCard;
+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.apache.commons.lang3.StringUtils;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 直播临时活动
+ */
+@RequestMapping("tempLiveActivityController")
+@Api(tags = "直播临时活动")
+@RestController
+public class TempLiveActivityController extends BaseController {
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+    @Resource
+    private TempLiveTeacherCardDao tempLiveTeacherCardDao;
+
+    @ApiOperation("查询声部上课老师名片信息列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(
+                    name = "subjectId",
+                    value = "学员声部id",
+                    paramType = "query", dataType = "String", required = true
+            )
+    })
+    @PostMapping(value = "/listTeacherCard", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public HttpResponseResult<List<TempLiveTeacherCard>> listTeacherCard(TempLiveTeacherCard teacherCard) {
+        if (StringUtils.isEmpty(teacherCard.getSubjectId())) {
+            return failed(HttpStatus.INTERNAL_SERVER_ERROR, "缺失参数-学员声部");
+        }
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || user.getId() == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        List<TempLiveTeacherCard> list = tempLiveTeacherCardDao.list(teacherCard);
+        return succeed(list);
+    }
+
+
+}

+ 51 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -13,21 +13,22 @@ import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.excel.POIUtil;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 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.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.OutputStream;
@@ -2954,4 +2955,52 @@ public class ExportController extends BaseController {
             }
         }
     }
+    @Resource
+    private TempBuyFreeLiveTheoryCourseDao tempBuyFreeLiveTheoryCourseDao;
+
+    @ApiOperation(value = "直播临时活动--学员购买导出")
+    @ApiImplicitParams({
+            @ApiImplicitParam(
+                    name = "liveGoodsId",
+                    value = "直播商品id",
+                    paramType = "query", dataType = "int", required = true
+            ),
+            @ApiImplicitParam(
+                    name = "liveId",
+                    value = "直播id",
+                    paramType = "query", dataType = "String"
+            )
+    })
+    @GetMapping("export/exportBuyFreeLiveTheoryCourseList")
+    @PreAuthorize("@pcs.hasPermissions('export/exportBuyFreeLiveTheoryCourseList')")
+    public void exportBuyFreeLiveTheoryCourseList(TempBuyFreeLiveTheoryCourse tempBuyFreeLiveTheoryCourse, HttpServletResponse response) throws IOException{
+        List<TempBuyFreeLiveTheoryCourse> list = tempBuyFreeLiveTheoryCourseDao.list(tempBuyFreeLiveTheoryCourse);
+        if (list.size() <= 0) {
+            return;
+        }
+
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            String[] header = {
+                    "ID","用户ID","购买学生姓名","老师推荐级别(初级/中级/高级)"};
+            String[] body = {"id","userId","studentName","recommendLevel"};
+            HSSFWorkbook workbook = POIUtil.exportExcel(header, body, list);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attachment;filename=BuyFreeLiveTheoryCourse-" + DateUtil.getDate(new Date()) + ".xls");
+
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
 }

+ 16 - 6
mec-web/src/main/java/com/ym/mec/web/controller/ImportController.java

@@ -1,5 +1,7 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse;
+import com.ym.mec.biz.service.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -37,12 +39,6 @@ import com.ym.mec.biz.dal.entity.FinancialExpenditure;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder;
 import com.ym.mec.biz.dal.enums.TemplateTypeEnum;
-import com.ym.mec.biz.service.AppRedemptionCodeService;
-import com.ym.mec.biz.service.FinancialExpenditureService;
-import com.ym.mec.biz.service.GoodsService;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.StudentPaymentRouteOrderService;
-import com.ym.mec.biz.service.UploadFileService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.UploadReturnBean;
@@ -181,4 +177,18 @@ public class ImportController extends BaseController {
             }
         }
     }
+
+    @Autowired
+    private TempBuyFreeLiveTheoryCourseService liveTheoryCourseService;
+
+    @ApiOperation(value = "直播临时活动--学员购买导入")
+    @PostMapping(value = "importBuyFreeLiveTheoryCourse")
+    @PreAuthorize("@pcs.hasPermissions('import/importBuyFreeLiveTheoryCourseList')")
+    public HttpResponseResult<List<TempBuyFreeLiveTheoryCourse>> importBuyFreeLiveTheoryCourse(@RequestParam("file") MultipartFile file) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(liveTheoryCourseService.importBuyFreeLiveTheoryCourse(file, sysUser.getId()));
+    }
 }

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

@@ -61,4 +61,10 @@
 
 [兑换码分配模板表]
 代码 = code
-链接地址 = url
+链接地址 = url
+
+[直播临时活动学员购买导入模板]
+ID = id
+用户ID = userId
+购买学生姓名 = studentName
+老师推荐级别(初级/中级/高级) = recommendLevel