Procházet zdrojové kódy

主持人二维码

lyhzzz před 2 roky
rodič
revize
307431ce64

binární
images/follower/5.jpg


+ 2 - 2
src/main/java/com/fdkankan/tk/common/FilePath.java

@@ -2,7 +2,7 @@ package com.fdkankan.tk.common;
 
 public class FilePath {
 
-    public static final String LOCAL_QRCODE_PATH = System.getProperty("user.dir")+"/"+"images/%s.jpg";
+    public static final String LOCAL_QRCODE_PATH = System.getProperty("user.dir")+"/"+"images/%s/%s.jpg";
 
-    public static final String OSS_QRCODE_PATH = "take-look/images/%s.jpg";
+    public static final String OSS_QRCODE_PATH = "take-look/images/%s/%s.jpg";
 }

+ 13 - 2
src/main/java/com/fdkankan/tk/controller/RoomController.java

@@ -3,7 +3,6 @@ package com.fdkankan.tk.controller;
 
 import com.fdkankan.tk.common.ResultCode;
 import com.fdkankan.tk.common.ResultData;
-import com.fdkankan.tk.entity.Room;
 import com.fdkankan.tk.exception.BusinessException;
 import com.fdkankan.tk.request.RoomAddParam;
 import com.fdkankan.tk.request.RoomListParam;
@@ -63,13 +62,25 @@ public class RoomController extends BaseController{
     }
     /**
      * 获取分享二维码
+     * roomId 房间id
+     * type  follower  leader
      */
     @GetMapping("/roomGetShareCode")
     public ResultData roomGetShareCode(@RequestParam(required = false) Integer roomId){
         if(roomId == null){
             throw new BusinessException(ResultCode.PARAM_MISS);
         }
-        return ResultData.ok(roomService.getWxQrCode(roomId));
+        return ResultData.ok(roomService.getWxQrCode(roomId,"follower"));
+    }
+    /**
+     * 获取分享二维码
+     */
+    @GetMapping("/roomGetHostCode")
+    public ResultData roomGetHostCode(@RequestParam(required = false) Integer roomId){
+        if(roomId == null){
+            throw new BusinessException(ResultCode.PARAM_MISS);
+        }
+        return ResultData.ok(roomService.getWxQrCode(roomId,"leader"));
     }
 
 

+ 8 - 3
src/main/java/com/fdkankan/tk/entity/Room.java

@@ -68,10 +68,15 @@ public class Room implements Serializable {
     private Integer roomViewCount;
 
     /**
-     * 房间二维码
+     * 房间分享二维码
      */
-    @TableField("room_qr_code")
-    private String roomQrCode;
+    @TableField("room_share_code")
+    private String roomShareCode;
+    /**
+     * 房间主持人二维码
+     */
+    @TableField("room_host_code")
+    private String roomHostCode;
     /**
      * 房间分享链接
      */

+ 1 - 1
src/main/java/com/fdkankan/tk/service/IRoomService.java

@@ -27,6 +27,6 @@ public interface IRoomService extends IService<Room> {
 
     void roomAddView(Integer roomId);
 
-    String getWxQrCode(Integer roomId);
+    String getWxQrCode(Integer roomId,String type);
 
 }

+ 2 - 0
src/main/java/com/fdkankan/tk/service/IWxService.java

@@ -1,6 +1,8 @@
 package com.fdkankan.tk.service;
 
 
+import java.io.IOException;
+
 public interface IWxService {
 
     void getWxQRCode(String path, String targetTmpPath,Integer reCount);

+ 21 - 8
src/main/java/com/fdkankan/tk/service/impl/RoomServiceImpl.java

@@ -129,19 +129,28 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
 
 
     @Override
-    public String getWxQrCode(Integer roomId) {
+    public String getWxQrCode(Integer roomId,String type) {
         Room room = this.getById(roomId);
         if(room == null){
             throw new BusinessException(ResultCode.ROOM_MISS);
         }
-        if(StringUtils.isNotBlank(room.getRoomQrCode())){
-            if(uploadToOssUtil.existKey(room.getRoomQrCode())){
-                return  room.getRoomQrCode();
+        if(type.equals("follower") && StringUtils.isNotBlank(room.getRoomShareCode())){     //普通用户二维码
+            if(uploadToOssUtil.existKey(room.getRoomShareCode())){
+                return  room.getRoomShareCode();
             }
         }
-        String localPath = String.format(FilePath.LOCAL_QRCODE_PATH, roomId);
-        String ossPath = String.format(FilePath.OSS_QRCODE_PATH, roomId);
-        wxService.getWxQRCode("roomId="+roomId,localPath,0);
+
+        if(type.equals("leader") && StringUtils.isNotBlank(room.getRoomHostCode())){      //主持人二维码
+            if(uploadToOssUtil.existKey(room.getRoomHostCode())){
+                return  room.getRoomHostCode();
+            }
+        }
+
+        String localPath = String.format(FilePath.LOCAL_QRCODE_PATH, type,roomId);
+        String ossPath = String.format(FilePath.OSS_QRCODE_PATH,type, roomId);
+        String path = "roomId="+roomId+"&role=%s";
+        path = String.format(path,type);
+        wxService.getWxQRCode(path,localPath,0);
         if(!new File(localPath).exists()){
             throw new BusinessException(ResultCode.QRCODE_MISS);
         }
@@ -150,7 +159,11 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
             FileUtil.del(localPath);
             throw new BusinessException(ResultCode.QRCODE_MISS);
         }
-        room.setRoomQrCode(queryPath + ossPath);
+        if(type.equals("leader")){
+            room.setRoomHostCode(queryPath + ossPath);
+        }else {
+            room.setRoomShareCode(queryPath + ossPath);
+        }
         this.updateById(room);
         FileUtil.del(localPath);
         return queryPath + ossPath;

+ 13 - 5
src/main/java/com/fdkankan/tk/service/impl/WxServiceImpl.java

@@ -66,11 +66,12 @@ public class WxServiceImpl implements IWxService {
 
     //生成分享二维码
     @Override
-    public void getWxQRCode(String path, String targetTmpPath,Integer reCount) {
+    public void getWxQRCode(String path, String targetTmpPath,Integer reCount)  {
+        InputStream is = null;
+        FileOutputStream fileOutputStream =null;
         try {
             //现获取token
             HttpResponse response = sendWx(path);
-            InputStream is = null;
             int code = response.getStatusLine().getStatusCode();
             if(HttpStatus.OK.value() != code){
                throw new BusinessException(ResultCode.QRCODE_MISS);
@@ -95,16 +96,23 @@ public class WxServiceImpl implements IWxService {
             }
             File localFile = new File(targetTmpPath);
             if(!localFile.getParentFile().exists()){
-                localFile.mkdirs();
+                localFile.getParentFile().mkdirs();
             }
-            log.info(localFile.getPath());
-            FileOutputStream fileOutputStream = new FileOutputStream(localFile);
+            log.info("local-path:{}",localFile.getPath());
+            fileOutputStream =  new FileOutputStream(localFile);
             IOUtils.copy(is , fileOutputStream);
 
             IOUtils.closeQuietly(is);
             IOUtils.closeQuietly(fileOutputStream);
         } catch (Exception e) {
+            e.printStackTrace();
             log.error("下载微信小程序二维码出现异常", e);
+        }finally {
+            try {
+                IOUtils.close(is);
+                IOUtils.close(fileOutputStream);
+            }catch (Exception e){
+            }
         }
     }