瀏覽代碼

Merge remote-tracking branch 'origin/saas_2022_05_17_activity' into saas_2022_05_17_activity

hgw 3 年之前
父節點
當前提交
604586df1c

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LiveGoodsMapperDao.java

@@ -17,4 +17,6 @@ public interface LiveGoodsMapperDao extends BaseDAO<Integer, LiveGoodsMapper> {
     LiveGoodsMapper findByLiveIdAndGoodsId(@Param("liveId") String liveId, @Param("liveGoodsId") Integer liveGoodsId);
 
     List<LiveGoodsMapperDto> getLiveGoodsList(@Param("liveId") String liveId);
+
+    void batchInsert(@Param("liveGoodsMappers") List<LiveGoodsMapper> liveGoodsMappers);
 }

+ 2 - 12
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LiveGoods.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
@@ -9,7 +10,7 @@ import javax.validation.constraints.NotNull;
 /**
  * 对应数据库表(live_goods):
  */
-public class LiveGoods {
+public class LiveGoods extends BaseEntity {
 
 	@ApiModelProperty(value = "商品编号",required = false)
 	private Integer id;
@@ -48,9 +49,6 @@ public class LiveGoods {
 	
 	@ApiModelProperty(value = "修改时间",required = false)
 	private java.util.Date updateTime;
-	
-	@ApiModelProperty(value = "机构",required = false)
-	private Integer tenantId;
 
 	public String getGoodsDetailUrl() {
 		return goodsDetailUrl;
@@ -139,14 +137,6 @@ public class LiveGoods {
 	public java.util.Date getUpdateTime(){
 		return this.updateTime;
 	}
-			
-	public void setTenantId(Integer tenantId){
-		this.tenantId = tenantId;
-	}
-	
-	public Integer getTenantId(){
-		return this.tenantId;
-	}
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LiveGoodsMapper.java

@@ -1,11 +1,12 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.common.entity.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
  * 对应数据库表(live_goods_mapper):
  */
-public class LiveGoodsMapper {
+public class LiveGoodsMapper extends BaseEntity {
 
 	/** 主键 */
 	private Integer id;

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ImSendGroupMessageQueryInfo.java

@@ -12,6 +12,17 @@ public class ImSendGroupMessageQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "消息是否发送")
     private Boolean sendFlag;
 
+    @ApiModelProperty(value = "发送人")
+    private String senderId;
+
+    public String getSenderId() {
+        return senderId;
+    }
+
+    public void setSenderId(String senderId) {
+        this.senderId = senderId;
+    }
+
     public Boolean getSendFlag() {
         return sendFlag;
     }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/LiveGoodsMapperService.java

@@ -8,7 +8,7 @@ import java.util.List;
 
 public interface LiveGoodsMapperService extends BaseService<Integer, LiveGoodsMapper> {
 
-    void add(LiveGoodsMapper liveGoodsMapper);
+    void add(List<LiveGoodsMapper> liveGoodsMappers);
 
     void downGoods(Integer liveGoodsId);
 

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import java.net.MalformedURLException;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -55,7 +56,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param messageContent
 	 * @return
 	 */
-	void batchSendImGroupMessage(String messageContent,String senderId,String extra, String[] targetIds);
+	void batchSendImGroupMessage(String messageContent,String senderId,String extra, String[] targetIds) throws MalformedURLException;
 
 	/**
 	 * 发送自定义文本消息
@@ -76,7 +77,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	* @author zx
 	* @date 2022/5/17 10:05
 	*/
-	void batchSendImGroupMessage(String messageContent,String senderId,String extra,String imgUrl, String[] targetIds);
+	void batchSendImGroupMessage(String[] targetIds,String senderId,String extra,String imgUrl) throws Exception;
 
 	/**
 	* @description: 发送文件消息

+ 5 - 17
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImSendGroupMessageServiceImpl.java

@@ -20,6 +20,8 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.net.URL;
 import java.util.*;
@@ -60,6 +62,7 @@ public class ImSendGroupMessageServiceImpl extends BaseServiceImpl<Long, ImSendG
 		messageDto.setSenderId(user.getId().toString());
 		messageDto.setOperator(user.getRealName());
 		if(Objects.isNull(messageDto.getSendTime())){
+			messageDto.setSendTime(new Date());
 			messageDto.setSendFlag(true);
 			send(messageDto);
 		}
@@ -129,12 +132,8 @@ public class ImSendGroupMessageServiceImpl extends BaseServiceImpl<Long, ImSendG
 
 	private void send(ImSendGroupMessage messageDto) throws Exception {
 		if (Objects.equals(messageDto.getMessageType(), ImSendTypeEnum.IMG)) {
-			URL url = new URL(messageDto.getFileUrl());
-			String path = url.getPath();
-			String suffix = path.substring(path.lastIndexOf(".") + 1);
-			String content = imageToBase64(Thumbnails.of(url).scale(0.5f).outputQuality(0.25f).asBufferedImage(),suffix);
-			sysMessageService.batchSendImGroupMessage(content,messageDto.getSenderId(),
-					messageDto.getExtra(),messageDto.getFileUrl(),messageDto.getTargetIds().split(","));
+			sysMessageService.batchSendImGroupMessage(messageDto.getTargetIds().split(","),messageDto.getSenderId(),
+					messageDto.getExtra(),messageDto.getFileUrl());
 		} else if (Objects.equals(messageDto.getMessageType(),ImSendTypeEnum.FILE)) {
 			sysMessageService.batchSendImGroupMessage(messageDto.getSenderId(),
 					messageDto.getExtra(),messageDto.getFileName(),messageDto.getTargetIds().split(","),messageDto.getFileUrl(),messageDto.getFileSize());
@@ -143,15 +142,4 @@ public class ImSendGroupMessageServiceImpl extends BaseServiceImpl<Long, ImSendG
 			sysMessageService.batchSendImGroupMessage(messageDto.getMessageContent(),messageDto.getSenderId(),messageDto.getExtra(),messageDto.getTargetIds().split(","));
 		}
 	}
-
-	public static String imageToBase64(BufferedImage bufferedImage,String suffix) {
-		Base64 encoder = new Base64();
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
-		try {
-			ImageIO.write(bufferedImage, suffix, baos);
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return new String(encoder.encode((baos.toByteArray())));
-	}
 }

+ 5 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LiveGoodsMapperServiceImpl.java

@@ -35,10 +35,11 @@ public class LiveGoodsMapperServiceImpl extends BaseServiceImpl<Integer, LiveGoo
 
     @Override
 	@Transactional(rollbackFor = Exception.class)
-    public void add(LiveGoodsMapper liveGoodsMapper) {
-		liveGoodsMapperDao.insert(liveGoodsMapper);
-		//通知上架
-		if (liveGoodsMapper.getStatus()) this.upGoods(liveGoodsMapper.getGoodsId(),liveGoodsMapper.getLiveId());
+    public void add(List<LiveGoodsMapper> liveGoodsMappers) {
+		liveGoodsMapperDao.batchInsert(liveGoodsMappers);
+//		liveGoodsMapperDao.insert(liveGoodsMapper);
+//		通知上架
+//		if (liveGoodsMapper.getStatus()) this.upGoods(liveGoodsMapper.getGoodsId(),liveGoodsMapper.getLiveId());
     }
 
 	@Override

+ 36 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -2,6 +2,11 @@ package com.ym.mec.biz.service.impl;
 
 import static com.ym.mec.biz.dal.enums.MessageTypeEnum.STUDENT_PUSH_VIP_BUY;
 
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
@@ -17,6 +22,8 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
 import com.ym.mec.common.entity.*;
+import net.coobird.thumbnailator.Thumbnails;
+import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -59,6 +66,8 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.string.MessageFormatter;
 
+import javax.imageio.ImageIO;
+
 @Service
 public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {
 
@@ -269,10 +278,35 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		},executor);
 	}
 
+	public static String imageToBase64(BufferedImage bufferedImage,String suffix) {
+		Base64 encoder = new Base64();
+		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		try {
+			ImageIO.write(bufferedImage, suffix, baos);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return new String(encoder.encode((baos.toByteArray())));
+	}
+
 	@Override
-	public void batchSendImGroupMessage(String messageContent,String senderId,String extra,String imgUrl, String[] targetIds) {
+	public void batchSendImGroupMessage(String[] targetIds,String senderId,String extra,String imgUrl ) throws Exception {
+		URL url = new URL(imgUrl);
+		//获取文件名
+		String path = url.getPath();
+		String suffix = path.substring(path.lastIndexOf(".") + 1);
+		BufferedImage bufferedImage = Thumbnails.of(url).scale(0.1f).outputQuality(0.25f).asBufferedImage();
+		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+		ImageIO.write(bufferedImage, suffix, outputStream);
+		byte[] bytes = outputStream.toByteArray();
+		outputStream.close();
+		int length = bytes.length;
+		//文件大小不能超过393216 Bytes
+		if (length > 393216) {
+			throw new BizException("文件过大请调整 像素 或 文件大小");
+		}
 		ImMessageDto imMessageDto =
-				getImGroupMessage("RC:ImgMsg",senderId,targetIds,messageContent,extra);
+				getImGroupMessage("RC:ImgMsg",senderId,targetIds,imageToBase64(bufferedImage, suffix),extra);
 		imMessageDto.setFileUrl(imgUrl);
 		ExecutorService executor = Executors.newCachedThreadPool();
 		CompletableFuture.runAsync(()->{

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/ImSendGroupMessageMapper.xml

@@ -98,6 +98,9 @@
 			<if test="sendFlag != null">
 				AND send_flag_ = #{sendFlag}
 			</if>
+			<if test="senderId != null">
+				AND sender_id_ = #{senderId}
+			</if>
 		</where>
 	</sql>
 	

+ 15 - 5
mec-biz/src/main/resources/config/mybatis/LiveGoodsMapperMapper.xml

@@ -28,10 +28,20 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.LiveGoodsMapper" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO live_goods_mapper (goods_id_,live_id_,sell_count_,status_,create_time_,update_time_)
-		VALUES(#{goodsId},#{liveId},#{sellCount},#{status},NOW(),NOW())
+		INSERT INTO live_goods_mapper (goods_id_,live_id_,sell_count_,create_time_,update_time_)
+		VALUES(#{goodsId},#{liveId},#{sellCount},NOW(),NOW())
 	</insert>
-	
+	<insert id="batchInsert">
+		INSERT INTO live_goods_mapper (goods_id_,live_id_,sell_count_,create_time_,update_time_)
+		VALUES
+		<foreach collection="liveGoodsMappers" item="item" index="index" separator=",">
+			(#{item.goodsId},#{item.liveId},#{item.sellCount},NOW(),NOW())
+		</foreach>
+		ON DUPLICATE KEY UPDATE
+		goods_id_ = VALUES(goods_id_),
+		live_id_ = VALUES(live_id_)
+	</insert>
+
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.LiveGoodsMapper">
 		UPDATE live_goods_mapper <set>
@@ -91,10 +101,10 @@
 		<include refid="queryPageSql" />
 	</select>
 	<select id="findByLiveGoodsIdAndStatus" resultMap="LiveGoodsMapper">
-		SELECT * FROM live_goods_mapper WHERE goods_id_ = #{goodsId} AND status_ = #{status}
+		SELECT * FROM live_goods_mapper WHERE goods_id_ = #{liveGoodsId} AND status_ = #{status}
 	</select>
 	<select id="findByLiveIdAndGoodsId" resultMap="LiveGoodsMapper">
-		SELECT * FROM live_goods_mapper WHERE live_id_ = #{liveId} AND goods_id_ = #{goodsId}
+		SELECT * FROM live_goods_mapper WHERE live_id_ = #{liveId} AND goods_id_ = #{liveGoodsId}
 	</select>
 
 	<resultMap id="LiveGoodsMapperDto" type="com.ym.mec.biz.dal.dto.LiveGoodsMapperDto">

+ 27 - 0
mec-student/src/main/java/com/ym/mec/student/controller/LiveGoodsMapperController.java

@@ -0,0 +1,27 @@
+package com.ym.mec.student.controller;
+
+import com.ym.mec.biz.dal.page.LiveGoodsMapperQueryInfo;
+import com.ym.mec.biz.service.LiveGoodsMapperService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "直播商品关联管理")
+@RequestMapping("liveGoodsMapper")
+@RestController
+public class LiveGoodsMapperController extends BaseController {
+
+    @Autowired
+    private LiveGoodsMapperService liveGoodsMapperService;
+
+    @ApiOperation("分页查询直播间商品")
+    @PostMapping("/page")
+    public HttpResponseResult page(LiveGoodsMapperQueryInfo queryInfo) {
+        return succeed(liveGoodsMapperService.queryPage(queryInfo));
+    }
+}

+ 3 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ImSendGroupMessageController.java

@@ -37,6 +37,9 @@ public class ImSendGroupMessageController extends BaseController {
     @ApiOperation("获取群消息列表")
     @PostMapping(value = "/queryPage")
     public HttpResponseResult<PageInfo<ImSendGroupMessage>> queryPage(ImSendGroupMessageQueryInfo queryInfo) throws Exception {
+        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).
+                orElseThrow(() -> new Exception("请登录"));
+        queryInfo.setSenderId(sysUser.getId().toString());
         return succeed(imSendGroupMessageService.queryPage(queryInfo));
     }
 

+ 27 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/LiveGoodsMapperController.java

@@ -0,0 +1,27 @@
+package com.ym.mec.teacher.controller;
+
+import com.ym.mec.biz.dal.page.LiveGoodsMapperQueryInfo;
+import com.ym.mec.biz.service.LiveGoodsMapperService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "直播商品关联管理")
+@RequestMapping("liveGoodsMapper")
+@RestController
+public class LiveGoodsMapperController extends BaseController {
+
+    @Autowired
+    private LiveGoodsMapperService liveGoodsMapperService;
+
+    @ApiOperation("分页查询直播间商品")
+    @PostMapping("/page")
+    public HttpResponseResult page(LiveGoodsMapperQueryInfo queryInfo) {
+        return succeed(liveGoodsMapperService.queryPage(queryInfo));
+    }
+}

+ 3 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ImSendGroupMessageController.java

@@ -34,6 +34,9 @@ public class ImSendGroupMessageController extends BaseController {
     @ApiOperation("获取群消息列表")
     @PostMapping(value = "/queryPage")
     public HttpResponseResult<PageInfo<ImSendGroupMessage>> queryPage(ImSendGroupMessageQueryInfo queryInfo) throws Exception {
+        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).
+                orElseThrow(() -> new Exception("请登录"));
+        queryInfo.setSenderId(sysUser.getId().toString());
         return succeed(imSendGroupMessageService.queryPage(queryInfo));
     }
 

+ 4 - 2
mec-web/src/main/java/com/ym/mec/web/controller/LiveGoodsMapperController.java

@@ -19,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 @Api(tags = "直播商品关联管理")
 @RequestMapping("liveGoodsMapper")
 @RestController
@@ -37,8 +39,8 @@ public class LiveGoodsMapperController extends BaseController {
     @ApiOperation("新增直播间商品关联")
     @PostMapping("/add")
     @PreAuthorize("@pcs.hasPermissions('liveGoodsMapper/add')")
-    public HttpResponseResult add(@RequestBody LiveGoodsMapper liveGoodsMapper) {
-        liveGoodsMapperService.add(liveGoodsMapper);
+    public HttpResponseResult add(@RequestBody List<LiveGoodsMapper> liveGoodsMappers) {
+        liveGoodsMapperService.add(liveGoodsMappers);
         return succeed();
     }