Ver Fonte

fix : 客服系统功能提交07

bilingfeng há 1 ano atrás
pai
commit
155bd9123e

+ 1 - 1
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/ManageApplication.java

@@ -21,7 +21,7 @@ public class ManageApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(ManageApplication.class, args);
-        System.out.println("赞象Manage服务启动成功 <客服系统06> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象Manage服务启动成功 <客服系统07> ( ´・・)ノ(._.`) \n" +
                 "___  ___  ___   _   _   ___  _____  _____ \n" +
                 "|  \\/  | / _ \\ | \\ | | / _ \\|  __ \\|  ___|\n" +
                 "| .  . |/ /_\\ \\|  \\| |/ /_\\ \\ |  \\/| |__  \n" +

+ 11 - 3
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/KfMsgController.java

@@ -2,7 +2,6 @@ package com.zanxiang.game.module.manage.controller;
 
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.game.module.manage.pojo.params.KfApiParam;
-import com.zanxiang.game.module.manage.pojo.vo.CpVO;
 import com.zanxiang.game.module.manage.pojo.vo.KfGameVO;
 import com.zanxiang.game.module.manage.service.IKfMsgContentService;
 import com.zanxiang.module.util.pojo.ResultVO;
@@ -14,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -31,10 +31,18 @@ public class KfMsgController {
     @Autowired
     private IKfMsgContentService kfMsgContentService;
 
+    @ApiOperation(value = "图片上传")
+    @PostMapping(value = "/upload/msg")
+    @PreAuthorize(permissionKey = "manage:kf:uploadMsg")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = String.class)})
+    public ResultVO<String> uploadMsg(MultipartFile files) {
+        return ResultVO.ok(kfMsgContentService.uploadMsg(files));
+    }
+
     @ApiOperation(value = "小游戏列表查询")
     @GetMapping(value = "/game/list")
     @PreAuthorize(permissionKey = "manage:kf:gameList")
-    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = CpVO.class)})
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = KfGameVO.class)})
     public ResultVO<List<KfGameVO>> list() {
         return ResultVO.ok(kfMsgContentService.getKfGameList());
     }
@@ -42,7 +50,7 @@ public class KfMsgController {
     @ApiOperation(value = "客服接口通用api")
     @PostMapping(value = "/comm/api")
     @PreAuthorize(permissionKey = "manage:kf:commApi")
-    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = CpVO.class)})
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = String.class)})
     public ResultVO<String> list(@Validated @RequestBody KfApiParam param) {
         return ResultVO.ok(kfMsgContentService.kfApi(param));
     }

+ 6 - 1
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/enums/KfActionEnum.java

@@ -65,7 +65,12 @@ public enum KfActionEnum {
     /**
      * 已接入列表
      */
-    GET_SESSION_SUMMARY("get_session_summary");
+    GET_SESSION_SUMMARY("get_session_summary"),
+
+    /**
+     * 上传图片
+     */
+    UPLOAD_PIC_MSG("upload_pic_msg");
 
     /**
      * 接口行为

+ 7 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/enums/KfApiEnum.java

@@ -43,6 +43,13 @@ public enum KfApiEnum {
 
     }),
 
+    /**
+     * 消息上传
+     */
+    UPLOAD_MSG("https://mpkf.weixin.qq.com/commkf/upload_msg", new KfActionEnum[]{
+            KfActionEnum.UPLOAD_PIC_MSG
+    }),
+
     /**
      * 总汇表
      */

+ 9 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IKfMsgContentService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.zanxiang.game.module.manage.pojo.params.KfApiParam;
 import com.zanxiang.game.module.manage.pojo.vo.KfGameVO;
 import com.zanxiang.game.module.mybatis.entity.KfMsgContent;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -14,6 +15,14 @@ import java.util.List;
  */
 public interface IKfMsgContentService extends IService<KfMsgContent> {
 
+    /**
+     * 消息上传
+     *
+     * @param files : 文件
+     * @return
+     */
+    String uploadMsg(MultipartFile files);
+
     /**
      * 获取游戏列表
      *

+ 30 - 4
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/KfMsgContentServiceImpl.java

@@ -24,13 +24,15 @@ import com.zanxiang.module.util.bean.BeanUtil;
 import com.zanxiang.module.util.exception.BaseException;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
+import org.springframework.core.io.Resource;
+import org.springframework.http.*;
 import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.web.client.RestTemplate;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.util.UriComponentsBuilder;
 
+import java.net.URI;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -58,6 +60,30 @@ public class KfMsgContentServiceImpl extends ServiceImpl<KfMsgContentMapper, KfM
     @Autowired
     private IGameAppletService gameAppletService;
 
+    @Override
+    public String uploadMsg(MultipartFile files) {
+        URI uri = UriComponentsBuilder.fromHttpUrl(KfApiEnum.UPLOAD_MSG.getApiUrl())
+                .queryParam("action", KfActionEnum.UPLOAD_PIC_MSG.getValue())
+                .queryParam("token", 1825310116)
+                .queryParam("lang", "zh_CN")
+                .build().toUri();
+        //最外层请求头
+        HttpHeaders httpHeaders = new HttpHeaders();
+        httpHeaders.setContentType(MediaType.MULTIPART_FORM_DATA);
+        httpHeaders.add("cookie", "pgv_pvid=7470066620; source=2; sid=d1lubV9fQ3VTdDl6cWVUVkMzZkhydWpzTTIzWVVDSkFybzJ6eFNNMTlmXzV3VW5iMmtXQ3VTbzdWVEhMSDdRNjhXTDVYbGRubFAxdzRMdFpJcFBYaHNqQXdOSmJ2bGRIWllwZW93bkdGTXgyRUlTZDlhWXNrTE4wV3pXM09ONHBXQ1ZLNUNtdDE0M2RDbU85; openid=osgl56837eGXb_-MOIxsZwHANIjI; randInfo=CAESIBpschlnORBlE1gRjg+3dTdv3FP6VJR/H6BxqeN33eiA; account=3950578098; sessionType=10; clientIp=61.174.155.242; userAgent=; scene=2; SL_G_WPT_TO=zh; SL_GWPT_Show_Hide_tmp=1; SL_wptGlobTipTmp=1; _clck=14m1amj|1|fh5|0; mm_lang=zh_CN");
+        LinkedMultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
+        //文件内容请求头
+        HttpHeaders formHeader = new HttpHeaders();
+        formHeader.setContentType(MediaType.MULTIPART_FORM_DATA);
+        formHeader.setContentDispositionFormData("image", files.getOriginalFilename());
+        HttpEntity<Resource> formEntity = new HttpEntity<>(files.getResource(), formHeader);
+        map.add("image", formEntity);
+        //http请求头
+        HttpEntity<LinkedMultiValueMap<String, Object>> httpEntity = new HttpEntity<>(map, httpHeaders);
+        Object result = restTemplate.postForObject(uri, httpEntity, Object.class);
+        return JsonUtil.toString(result);
+    }
+
     @Override
     public List<KfGameVO> getKfGameList() {
         List<GameAuth> gameAuthList = gameAuthService.list(new LambdaQueryWrapper<GameAuth>()