소스 검색

add(backend) [素材]

wangxiao 4 년 전
부모
커밋
3419572262

+ 67 - 8
operation-backend/src/main/java/com/idiot/operationbackend/controller/articles/ArticlesController.java

@@ -2,8 +2,10 @@ package com.idiot.operationbackend.controller.articles;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.idiot.operationbackend.entity.Articles;
+import com.idiot.operationbackend.service.facade.AccountService;
 import com.idiot.operationbackend.service.facade.ArticlesService;
 import com.idiot.operationbackend.service.facade.WeChatService;
+import com.idiot.operationbackend.support.CustomException;
 import com.idiot.operationbackend.support.JsonResult;
 import com.idiot.operationbackend.util.JwtTokenUtil;
 import io.swagger.annotations.Api;
@@ -24,7 +26,7 @@ import javax.validation.Valid;
 
 @RestController
 @RequestMapping("/articles")
-@Api(value = "ArticlesController", tags ="图文")
+@Api(value = "ArticlesController", tags ="图文文章")
 public class ArticlesController {
 
 
@@ -36,11 +38,13 @@ public class ArticlesController {
     @Autowired
     private WeChatService weChatService;
 
+    @Autowired
+    private AccountService accountService;
 
-    @GetMapping("/{accountId}")
+    @GetMapping
     @ApiOperation(value = "查询公众号图文")
     public ResponseEntity<JsonResult<Page<Articles>>> ArticlesPage (@RequestHeader String token,
-                                                                    @PathVariable String accountId,
+                                                                    @RequestParam String accountId,
                                                                     @RequestParam int page){
         String userId = JwtTokenUtil.getUserId(token);
         logger.info("用户:{}查询微信公众号{}图文-------------start",userId,accountId);
@@ -49,18 +53,73 @@ public class ArticlesController {
         return ResponseEntity.ok(JsonResult.success(materialPage));
     }
 
-    @PostMapping("/{accountId}")
-    @ApiOperation(value = "新增公众号图文")
-    public ResponseEntity<JsonResult<Boolean>> addArticles (@RequestHeader String token,
-                                                            @PathVariable String accountId,
+    @PostMapping("/add")
+    @ApiOperation(value = "新增并发布公众号图文")
+    public ResponseEntity<JsonResult<Boolean>> addAndEditArticles (@RequestHeader String token,
+                                                            @RequestParam String accountId,
                                                             @RequestBody @Valid Articles articles){
         String userId = JwtTokenUtil.getUserId(token);
-        logger.info("用户:{}新增微信公众号{}图文-------------start",userId,accountId);
+        logger.info("用户:{}新增并发布微信公众号{}图文-------------start",userId,accountId);
+        boolean enable = accountService.queryAccountByUserId(userId).stream()
+                .anyMatch(e->accountId.equals(e.getId()));
+        if (!enable) {
+            throw new CustomException(500,"你没有权限操作该公众号");
+        }
         String wxJson = weChatService.addNews(articles,accountId);
         Boolean addResult  = articlesService.addArticles(wxJson,articles);
+        logger.info("用户:{}新增并发布微信公众号{}图文-------------end,结果:{}",userId,accountId,addResult);
+        return ResponseEntity.ok(JsonResult.success(addResult));
+    }
+
+    @GetMapping("/edition")
+    @ApiOperation(value = "发布公众号图文")
+    public ResponseEntity<JsonResult<Boolean>> editingArticles (@RequestHeader String token,
+                                                            @RequestParam String accountId,
+                                                            @RequestParam String id){
+        String userId = JwtTokenUtil.getUserId(token);
+        logger.info("用户:{}发布微信公众号{}图文-------------start",userId,accountId);
+        boolean enable = accountService.queryAccountByUserId(userId).stream()
+                .anyMatch(e->accountId.equals(e.getId()));
+        if (!enable) {
+            throw new CustomException(500,"你没有权限操作该公众号");
+        }
+        Articles articles = articlesService.getById(id);
+        String wxJson = weChatService.addNews(articles,accountId);
+        Boolean addResult  = articlesService.upArticles(wxJson,articles);
+        logger.info("用户:{}发布微信公众号{}图文-------------end,结果:{}",userId,accountId,addResult);
+        return ResponseEntity.ok(JsonResult.success(addResult));
+    }
+
+
+    @PostMapping("/new")
+    @ApiOperation(value = "新增公众号图文")
+    public ResponseEntity<JsonResult<Boolean>> saveArticles (@RequestHeader String token,
+                                                            @RequestParam String accountId,
+                                                            @RequestBody @Valid Articles articles){
+        String userId = JwtTokenUtil.getUserId(token);
+        logger.info("用户:{}新增微信公众号{}图文-------------start",userId,accountId);
+        boolean enable = accountService.queryAccountByUserId(userId).stream()
+                .anyMatch(e->accountId.equals(e.getId()));
+        if (!enable) {
+            throw new CustomException(500,"你没有权限操作该公众号");
+        }
+        Boolean addResult  = articlesService.save(articles);
         logger.info("用户:{}新增微信公众号{}图文-------------end,结果:{}",userId,accountId,addResult);
         return ResponseEntity.ok(JsonResult.success(addResult));
     }
 
 
+    @GetMapping("/rank")
+    @ApiOperation(value = "图文排行榜 2小时更新一次")
+    public ResponseEntity<JsonResult<Boolean>> rankArticles (@RequestHeader String token){
+        String userId = JwtTokenUtil.getUserId(token);
+        logger.info("用户:{}查询图文排行榜-------------start",userId);
+        return ResponseEntity.ok(JsonResult.success(false));
+    }
+
+
+
+
+
+
 }

+ 13 - 5
operation-backend/src/main/java/com/idiot/operationbackend/controller/material/MaterialController.java

@@ -2,6 +2,7 @@ package com.idiot.operationbackend.controller.material;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.idiot.operationbackend.entity.Material;
+import com.idiot.operationbackend.service.facade.AccountService;
 import com.idiot.operationbackend.service.facade.MaterialService;
 import com.idiot.operationbackend.service.facade.WeChatService;
 import com.idiot.operationbackend.support.*;
@@ -42,10 +43,13 @@ public class MaterialController {
     @Autowired
     private MaterialService materialService;
 
-    @GetMapping("/{accountId}")
+    @Autowired
+    private AccountService accountService;
+
+    @GetMapping
     @ApiOperation(value = "查询公众号素材")
     public ResponseEntity<JsonResult<Page<Material>>> materialPage (@RequestHeader String token,
-                                                          @PathVariable String accountId,
+                                                          @RequestParam String accountId,
                                                           @RequestParam String type,
                                                           @RequestParam int page){
         String userId = JwtTokenUtil.getUserId(token);
@@ -56,17 +60,22 @@ public class MaterialController {
     }
 
 
-    @PostMapping("/{accountId}")
+    @PostMapping
     @ApiOperation(value = "公众号上传素材(其他素材,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb))")
     @ApiParam(value = "type",name = "type",allowableValues = "image,voice,video,thumb")
     public ResponseEntity<JsonResult<Boolean>> addMaterial ( @RequestHeader String token,
-                                                            @PathVariable String accountId,
+                                                            @RequestParam String accountId,
                                                             @RequestParam String type,
                                                             @RequestParam(required = false) String title,
                                                             @RequestParam(required = false) String description,
                                                             MultipartFile file){
 
         String userId = JwtTokenUtil.getUserId(token);
+        boolean enable = accountService.queryAccountByUserId(userId).stream()
+                .anyMatch(e->accountId.equals(e.getId()));
+        if (!enable) {
+            throw new CustomException(500,"你没有权限操作该公众号");
+        }
         long size  = file.getSize();
         String fileName = file.getName();
         String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
@@ -106,7 +115,6 @@ public class MaterialController {
     }
 
 
-
     private void validImg(long size, String suffixName) {
         if (size > Constants.IMAGE_MAX_SIZE) {
             throw new CustomException(500,"文件太大,图片文件的大小最大为10M,请重新上传!");

+ 11 - 0
operation-backend/src/main/java/com/idiot/operationbackend/service/facade/ArticlesService.java

@@ -34,6 +34,17 @@ public interface ArticlesService extends IService<Articles> {
     Boolean addArticles(String wxJson,Articles articles);
 
 
+    /**
+     *  更新图文
+     * @author wangxiao
+     * @date 15:48 2020/9/21
+     * @param wxJson wxJson
+     * @param articles articles
+     * @return Boolean
+     */
+    Boolean upArticles(String wxJson,Articles articles);
+
+
     /**
      *  批量查询
      * @author wangxiao

+ 12 - 0
operation-backend/src/main/java/com/idiot/operationbackend/service/impl/ArticlesServiceImpl.java

@@ -55,4 +55,16 @@ public class ArticlesServiceImpl extends ServiceImpl<ArticlesMapper, Articles>
         List<String> ids = new ArrayList<>(Arrays.asList(idsStr.split(",")));
         return baseMapper.selectBatchIds(ids);
     }
+
+
+    @Override
+    public Boolean upArticles(String wxJson, Articles articles) {
+        JSONObject jsonObject = JSON.parseObject(wxJson);
+        if (StringUtils.isEmpty(wxJson) || Objects.isNull(articles)){
+            return false;
+        }
+        String mediaId = jsonObject.getString("media_id");
+        articles.setMediaId(mediaId);
+        return updateById(articles);
+    }
 }