瀏覽代碼

add(backend) [只能推送]

wangxiao 4 年之前
父節點
當前提交
8cd4ce4837

+ 52 - 17
operation-backend/src/main/java/com/idiot/operationbackend/controller/interactive/PushMsgController.java

@@ -3,8 +3,12 @@ package com.idiot.operationbackend.controller.interactive;
 import com.idiot.operationbackend.controller.AuthController;
 import com.idiot.operationbackend.entity.Account;
 import com.idiot.operationbackend.entity.AccountPush;
+import com.idiot.operationbackend.entity.Articles;
+import com.idiot.operationbackend.entity.Material;
 import com.idiot.operationbackend.service.facade.AccountPushService;
 import com.idiot.operationbackend.service.facade.AccountService;
+import com.idiot.operationbackend.service.facade.ArticlesService;
+import com.idiot.operationbackend.service.facade.MaterialService;
 import com.idiot.operationbackend.support.JsonResult;
 import com.idiot.operationbackend.util.JwtTokenUtil;
 import io.swagger.annotations.Api;
@@ -17,6 +21,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -40,6 +45,13 @@ public class PushMsgController {
     @Autowired
     private AccountPushService pushService;
 
+    @Autowired
+    private MaterialService materialService;
+
+    @Autowired
+    private ArticlesService articlesService;
+
+
     @GetMapping
     @ApiOperation(value = "查询推送列表")
     public ResponseEntity<JsonResult<List<AccountPush>>> getAccountPushList(@RequestHeader String token) {
@@ -59,35 +71,58 @@ public class PushMsgController {
         return ResponseEntity.ok(JsonResult.success(result));
     }
 
-    @PostMapping
-    @ApiOperation(value = "新增智能推送")
-    public ResponseEntity<JsonResult<List<AccountPush>>> addAccountPush(@RequestHeader String token,
-                                                                        @RequestBody AccountPush push) {
+    @PutMapping
+    @ApiOperation(value = "修改智能推送")
+    public ResponseEntity<JsonResult<Boolean>> upAccountPush(@RequestHeader String token,
+                                                              @RequestBody AccountPush push) {
         String userId = JwtTokenUtil.getUserId(token);
-        logger.info("用户:{}查询推送消息列表",userId);
-        List<Account> accounts = accountService.queryAccountByUserId(userId);
-        List<String> accIds = accounts.stream().map(Account::getId).collect(Collectors.toList());
-        List<AccountPush> pushList = pushService.queryAccountPush(accIds);
-        List<AccountPush> result = new ArrayList<>(accIds.size());
-        for (Account account : accounts) {
-            AccountPush var = pushList.stream()
-                    .filter(e->account.getId().equals(e.getAccountId()))
-                    .findAny()
-                    .orElseGet(()->nonPush(account));
-            result.add(var);
-        }
-        return ResponseEntity.ok(JsonResult.success(result));
+        logger.info("用户:{}修改推送消息列表",userId);
+        boolean addResult = pushService.saveOrUpdate(push);
+        return ResponseEntity.ok(JsonResult.success(addResult));
     }
 
+    @GetMapping("/{id}")
+    @ApiOperation(value = "查看推送详情")
+    public ResponseEntity<JsonResult<AccountPush>> getAccountPush(@RequestHeader String token,
+                                                                  @PathVariable String id,
+                                                                  @RequestParam String accountId) {
+        String userId = JwtTokenUtil.getUserId(token);
+        logger.info("用户:{}查看推送消息详情",userId);
 
+        AccountPush accountPush = pushService.getById(id);
+        if (Objects.isNull(accountPush)){
+            Account account = accountService.getById(accountId);
+            accountPush = nonPush(account);
+        }
+        queryContents(accountPush);
+        return ResponseEntity.ok(JsonResult.success(accountPush));
+    }
 
     private AccountPush nonPush (Account account){
         AccountPush push = new AccountPush();
         push.setNikeName(account.getNickName());
         push.setHeadImage(account.getHeadImg());
+        push.setEnable(false);
         return push;
     }
 
+    private void queryContents(AccountPush accountPush) {
+        String artIds = accountPush.getArticlesIds();
+        String matIds = accountPush.getMaterialIds();
+        List<Object> content = new ArrayList<>();
+        List<Articles> articles = articlesService.queryArticlesByIds(artIds);
+        List<Material> materials = materialService.queryByIds(matIds);
+        if (Objects.nonNull(articles)) {
+            content.addAll(articles);
+        }
+        if (Objects.nonNull(materials)) {
+            content.addAll(materials);
+        }
+        accountPush.setContents(content);
+    }
+
+
+
 
 
 

+ 24 - 2
operation-backend/src/main/java/com/idiot/operationbackend/entity/AccountPush.java

@@ -1,8 +1,11 @@
 package com.idiot.operationbackend.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 
+import java.util.List;
+
 /**
  * 公众号推送
  * @author wang xiao
@@ -14,7 +17,7 @@ public class AccountPush {
     @TableId
     private String id;
 
-
+    @TableField(exist = false)
     private String accountId;
 
     private String nikeName;
@@ -35,10 +38,13 @@ public class AccountPush {
 
     private String materialIds;
 
-    private String ArticlesIds;
+    private String articlesIds;
 
     private String createTime;
 
+    @TableField(exist = false)
+    private List<Object> contents;
+
     public String getId() {
         return id;
     }
@@ -134,4 +140,20 @@ public class AccountPush {
     public void setCreateTime(String createTime) {
         this.createTime = createTime;
     }
+
+    public String getArticlesIds() {
+        return articlesIds;
+    }
+
+    public void setArticlesIds(String articlesIds) {
+        this.articlesIds = articlesIds;
+    }
+
+    public List<Object> getContents() {
+        return contents;
+    }
+
+    public void setContents(List<Object> contents) {
+        this.contents = contents;
+    }
 }

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

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.idiot.operationbackend.entity.Articles;
 
+import java.util.List;
+
 /**
  * @author wang xiao
  * @date Created in 11:04 2020/9/21
@@ -30,4 +32,14 @@ public interface ArticlesService extends IService<Articles> {
      * @return Boolean
      */
     Boolean addArticles(String wxJson,Articles articles);
+
+
+    /**
+     *  批量查询
+     * @author wangxiao
+     * @date 16:59 2020/9/21
+     * @param idsStr idsStr
+     * @return java.util.List<com.idiot.operationbackend.entity.Articles>
+     */
+    List<Articles> queryArticlesByIds(String idsStr);
 }

+ 12 - 0
operation-backend/src/main/java/com/idiot/operationbackend/service/facade/MaterialService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.idiot.operationbackend.entity.Material;
 
+import java.util.List;
+
 /**
  * @author wang xiao
  * @date Created in 18:40 2020/9/18
@@ -31,4 +33,14 @@ public interface MaterialService extends IService<Material> {
      * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.idiot.operationbackend.entity.Material>
      */
     Page<Material> pageMaterial(String accountId,String type,int page);
+
+
+    /**
+     *  批量查询
+     * @author wangxiao
+     * @date 17:03 2020/9/21
+     * @param idsStr idsStr
+     * @return java.util.List<com.idiot.operationbackend.entity.Material>
+     */
+    List<Material> queryByIds(String idsStr);
 }

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

@@ -12,6 +12,9 @@ import com.idiot.operationbackend.service.facade.ArticlesService;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -43,4 +46,13 @@ public class ArticlesServiceImpl extends ServiceImpl<ArticlesMapper, Articles>
         articles.setMediaId(mediaId);
         return save(articles);
     }
+
+    @Override
+    public List<Articles> queryArticlesByIds(String idsStr) {
+        if (StringUtils.isEmpty(idsStr)) {
+            return null;
+        }
+        List<String> ids = new ArrayList<>(Arrays.asList(idsStr.split(",")));
+        return baseMapper.selectBatchIds(ids);
+    }
 }

+ 13 - 0
operation-backend/src/main/java/com/idiot/operationbackend/service/impl/MaterialServiceImpl.java

@@ -14,6 +14,9 @@ import com.sun.xml.internal.ws.api.model.MEP;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -52,4 +55,14 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material>
                 .orderByDesc(Material::getCreateTime);
         return page(queryPage,queryWrapper);
     }
+
+
+    @Override
+    public List<Material> queryByIds(String idsStr) {
+        if (StringUtils.isEmpty(idsStr)) {
+            return null;
+        }
+        List<String> ids = new ArrayList<>(Arrays.asList(idsStr.split(",")));
+        return baseMapper.selectBatchIds(ids);
+    }
 }