Explorar el Código

add(backend) [1236547896325874156753]

wangxiao hace 4 años
padre
commit
1685b9da3f
Se han modificado 16 ficheros con 491 adiciones y 11 borrados
  1. 19 0
      operation-backend/src/main/java/com/idiot/operationbackend/controller/MaterialController.java
  2. 2 9
      operation-backend/src/main/java/com/idiot/operationbackend/controller/WeChatController.java
  3. 1 0
      operation-backend/src/main/java/com/idiot/operationbackend/controller/account/AccountController.java
  4. 13 0
      operation-backend/src/main/java/com/idiot/operationbackend/controller/fans/FansController.java
  5. 0 2
      operation-backend/src/main/java/com/idiot/operationbackend/controller/fans/FansMsgController.java
  6. 1 0
      operation-backend/src/main/java/com/idiot/operationbackend/controller/fans/TagController.java
  7. 77 0
      operation-backend/src/main/java/com/idiot/operationbackend/controller/interactive/PushMsgController.java
  8. 135 0
      operation-backend/src/main/java/com/idiot/operationbackend/entity/AccountPush.java
  9. 104 0
      operation-backend/src/main/java/com/idiot/operationbackend/entity/Material.java
  10. 11 0
      operation-backend/src/main/java/com/idiot/operationbackend/mappers/AccountPushMapper.java
  11. 11 0
      operation-backend/src/main/java/com/idiot/operationbackend/mappers/MaterialMapper.java
  12. 24 0
      operation-backend/src/main/java/com/idiot/operationbackend/service/facade/AccountPushService.java
  13. 11 0
      operation-backend/src/main/java/com/idiot/operationbackend/service/facade/MaterialService.java
  14. 25 0
      operation-backend/src/main/java/com/idiot/operationbackend/service/impl/AccountPushServiceImpl.java
  15. 16 0
      operation-backend/src/main/java/com/idiot/operationbackend/service/impl/MaterialServiceImpl.java
  16. 41 0
      sql/dataBase.sql

+ 19 - 0
operation-backend/src/main/java/com/idiot/operationbackend/controller/MaterialController.java

@@ -0,0 +1,19 @@
+package com.idiot.operationbackend.controller;
+
+import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 素材
+ * @author wang xiao
+ * @date Created in 17:57 2020/9/18
+ */
+@RestController
+@RequestMapping("/material")
+@Api(value = "MaterialController", tags ="素材")
+public class MaterialController {
+
+
+
+}

+ 2 - 9
operation-backend/src/main/java/com/idiot/operationbackend/controller/WeChatController.java

@@ -46,8 +46,7 @@ public class WeChatController {
     @Autowired
     private WeChatService weChatService;
 
-    @Autowired
-    private SubscribeSceneService sceneService;
+
 
 
     @GetMapping("preAuth")
@@ -58,7 +57,6 @@ public class WeChatController {
 
 
 
-
     @PostMapping("/notice")
     @ApiOperation(value = "验证票据接受url")
     public String noticeCallBack(HttpServletRequest request)  {
@@ -151,12 +149,7 @@ public class WeChatController {
     }
 
 
-    @GetMapping("/subscribeScene")
-    @ApiOperation(value = "查询用户关注公众号来源类型")
-    public ResponseEntity<JsonResult<List<SubscribeScene>>> getSubscribeScene (@RequestHeader String token) {
-        String userId = JwtTokenUtil.getUserId(token);
-        return ResponseEntity.ok(JsonResult.success(sceneService.list()));
-    }
+
 
 
 }

+ 1 - 0
operation-backend/src/main/java/com/idiot/operationbackend/controller/account/AccountController.java

@@ -21,6 +21,7 @@ import java.util.List;
 import java.util.stream.Collectors;
 
 /**
+ * 公众号 管理
  * @author wang xiao
  * @date Created in 19:50 2020/9/10
  */

+ 13 - 0
operation-backend/src/main/java/com/idiot/operationbackend/controller/fans/FansController.java

@@ -1,7 +1,9 @@
 package com.idiot.operationbackend.controller.fans;
 
 
+import com.idiot.operationbackend.entity.SubscribeScene;
 import com.idiot.operationbackend.service.facade.AccountFansService;
+import com.idiot.operationbackend.service.facade.SubscribeSceneService;
 import com.idiot.operationbackend.service.facade.WeChatService;
 import com.idiot.operationbackend.support.CustomException;
 import com.idiot.operationbackend.support.JsonResult;
@@ -20,6 +22,7 @@ import java.util.Arrays;
 import java.util.List;
 
 /**
+ * 粉丝管理
  * @author wang xiao
  * @date Created in 17:55 2020/9/17
  */
@@ -36,6 +39,10 @@ public class FansController {
     @Autowired
     private WeChatService weChatService;
 
+    @Autowired
+    private SubscribeSceneService sceneService;
+
+
     private final Logger logger = LoggerFactory.getLogger(FansController.class);
 
 
@@ -109,6 +116,12 @@ public class FansController {
         return ResponseEntity.ok(JsonResult.success(ifAdd));
     }
 
+    @GetMapping("/subscribeScene")
+    @ApiOperation(value = "查询粉丝关注公众号来源类型")
+    public ResponseEntity<JsonResult<List<SubscribeScene>>> getSubscribeScene (@RequestHeader String token) {
+        String userId = JwtTokenUtil.getUserId(token);
+        return ResponseEntity.ok(JsonResult.success(sceneService.list()));
+    }
 
 
 

+ 0 - 2
operation-backend/src/main/java/com/idiot/operationbackend/controller/fans/FansMsgController.java

@@ -115,6 +115,4 @@ public class FansMsgController {
 
 
 
-
-
 }

+ 1 - 0
operation-backend/src/main/java/com/idiot/operationbackend/controller/fans/TagController.java

@@ -19,6 +19,7 @@ import javax.validation.Valid;
 import java.util.List;
 
 /**
+ * 标签管理
  * @author wang xiao
  * @date Created in 19:51 2020/9/17
  */

+ 77 - 0
operation-backend/src/main/java/com/idiot/operationbackend/controller/interactive/PushMsgController.java

@@ -0,0 +1,77 @@
+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.service.facade.AccountPushService;
+import com.idiot.operationbackend.service.facade.AccountService;
+import com.idiot.operationbackend.support.JsonResult;
+import com.idiot.operationbackend.util.JwtTokenUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 推送
+ * @author wang xiao
+ * @date Created in 15:56 2020/9/18
+ */
+@RestController
+@RequestMapping("/push")
+@Api(value = "PushMsgController", tags ="公众号推送")
+public class PushMsgController {
+
+
+
+    private final Logger logger = LoggerFactory.getLogger(AuthController.class);
+
+
+    @Autowired
+    private AccountService accountService;
+
+    @Autowired
+    private AccountPushService pushService;
+
+    @GetMapping
+    @ApiOperation(value = "查询推送列表")
+    public ResponseEntity<JsonResult<List<AccountPush>>> getAccountPushList(@RequestHeader String token) {
+        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));
+    }
+
+
+
+    private AccountPush nonPush (Account account){
+        AccountPush push = new AccountPush();
+        push.setNikeName(account.getNickName());
+        push.setHeadImage(account.getHeadImg());
+        return push;
+    }
+
+
+
+
+}

+ 135 - 0
operation-backend/src/main/java/com/idiot/operationbackend/entity/AccountPush.java

@@ -0,0 +1,135 @@
+package com.idiot.operationbackend.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+ * 公众号推送
+ * @author wang xiao
+ * @date Created in 16:45 2020/9/18
+ */
+@TableName("t_account_push")
+public class AccountPush {
+
+    @TableId
+    private String id;
+
+
+    private String accountId;
+
+    private String nikeName;
+
+    private String headImage;
+
+    private Integer pushType;
+
+    private String pushTimer;
+
+    private String quiet;
+
+    private Integer trigger;
+
+    private Integer pushLimit;
+
+    private Boolean enable;
+
+    private String materialIds;
+
+    private String createTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getAccountId() {
+        return accountId;
+    }
+
+    public String getNikeName() {
+        return nikeName;
+    }
+
+    public void setNikeName(String nikeName) {
+        this.nikeName = nikeName;
+    }
+
+    public String getHeadImage() {
+        return headImage;
+    }
+
+    public void setHeadImage(String headImage) {
+        this.headImage = headImage;
+    }
+
+    public void setAccountId(String accountId) {
+        this.accountId = accountId;
+    }
+
+    public Integer getPushType() {
+        return pushType;
+    }
+
+    public void setPushType(Integer pushType) {
+        this.pushType = pushType;
+    }
+
+    public String getPushTimer() {
+        return pushTimer;
+    }
+
+    public void setPushTimer(String pushTimer) {
+        this.pushTimer = pushTimer;
+    }
+
+    public String getQuiet() {
+        return quiet;
+    }
+
+    public void setQuiet(String quiet) {
+        this.quiet = quiet;
+    }
+
+    public Integer getTrigger() {
+        return trigger;
+    }
+
+    public void setTrigger(Integer trigger) {
+        this.trigger = trigger;
+    }
+
+    public Integer getPushLimit() {
+        return pushLimit;
+    }
+
+    public void setPushLimit(Integer pushLimit) {
+        this.pushLimit = pushLimit;
+    }
+
+    public String getMaterialIds() {
+        return materialIds;
+    }
+
+    public void setMaterialIds(String materialIds) {
+        this.materialIds = materialIds;
+    }
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+}

+ 104 - 0
operation-backend/src/main/java/com/idiot/operationbackend/entity/Material.java

@@ -0,0 +1,104 @@
+package com.idiot.operationbackend.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+ * 素材
+ * @author wang xiao
+ * @date Created in 18:12 2020/9/18
+ */
+@TableName("t_account_material")
+public class Material {
+
+    @TableId
+    private String id;
+
+    private String description;
+
+    private Integer type;
+
+    private String mediaId;
+
+    private String accountId;
+
+    private String localUrl;
+
+    private String name;
+
+    private String wxUrl;
+
+    private String createTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getMediaId() {
+        return mediaId;
+    }
+
+    public void setMediaId(String mediaId) {
+        this.mediaId = mediaId;
+    }
+
+    public String getAccountId() {
+        return accountId;
+    }
+
+    public void setAccountId(String accountId) {
+        this.accountId = accountId;
+    }
+
+    public String getLocalUrl() {
+        return localUrl;
+    }
+
+    public void setLocalUrl(String localUrl) {
+        this.localUrl = localUrl;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getWxUrl() {
+        return wxUrl;
+    }
+
+    public void setWxUrl(String wxUrl) {
+        this.wxUrl = wxUrl;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+}

+ 11 - 0
operation-backend/src/main/java/com/idiot/operationbackend/mappers/AccountPushMapper.java

@@ -0,0 +1,11 @@
+package com.idiot.operationbackend.mappers;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.idiot.operationbackend.entity.AccountPush;
+
+/**
+ * @author wang xiao
+ * @date Created in 17:21 2020/9/18
+ */
+public interface AccountPushMapper extends BaseMapper<AccountPush> {
+}

+ 11 - 0
operation-backend/src/main/java/com/idiot/operationbackend/mappers/MaterialMapper.java

@@ -0,0 +1,11 @@
+package com.idiot.operationbackend.mappers;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.idiot.operationbackend.entity.Material;
+
+/**
+ * @author wang xiao
+ * @date Created in 18:40 2020/9/18
+ */
+public interface MaterialMapper extends BaseMapper<Material> {
+}

+ 24 - 0
operation-backend/src/main/java/com/idiot/operationbackend/service/facade/AccountPushService.java

@@ -0,0 +1,24 @@
+package com.idiot.operationbackend.service.facade;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.idiot.operationbackend.entity.AccountPush;
+
+import java.util.List;
+
+/**
+ * @author wang xiao
+ * @date Created in 17:21 2020/9/18
+ */
+public interface AccountPushService extends IService<AccountPush> {
+
+    /**
+     *  查询公告号推送
+     * @author wangxiao
+     * @date 17:31 2020/9/18
+     * @param accountIds
+     * @return java.util.List<com.idiot.operationbackend.entity.AccountPush>
+     */
+    List<AccountPush> queryAccountPush(List<String> accountIds);
+
+
+}

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

@@ -0,0 +1,11 @@
+package com.idiot.operationbackend.service.facade;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.idiot.operationbackend.entity.Material;
+
+/**
+ * @author wang xiao
+ * @date Created in 18:40 2020/9/18
+ */
+public interface MaterialService extends IService<Material> {
+}

+ 25 - 0
operation-backend/src/main/java/com/idiot/operationbackend/service/impl/AccountPushServiceImpl.java

@@ -0,0 +1,25 @@
+package com.idiot.operationbackend.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.idiot.operationbackend.entity.AccountPush;
+import com.idiot.operationbackend.mappers.AccountPushMapper;
+import com.idiot.operationbackend.service.facade.AccountPushService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author wang xiao
+ * @date Created in 17:22 2020/9/18
+ */
+@Service
+public class AccountPushServiceImpl extends ServiceImpl<AccountPushMapper, AccountPush>
+        implements AccountPushService {
+
+
+    @Override
+    public List<AccountPush> queryAccountPush(List<String> accountIds) {
+        return list(Wrappers.<AccountPush>lambdaQuery().in(AccountPush::getAccountId,accountIds));
+    }
+}

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

@@ -0,0 +1,16 @@
+package com.idiot.operationbackend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.idiot.operationbackend.entity.Material;
+import com.idiot.operationbackend.mappers.MaterialMapper;
+import com.idiot.operationbackend.service.facade.MaterialService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author wang xiao
+ * @date Created in 18:41 2020/9/18
+ */
+@Service
+public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material>
+        implements MaterialService {
+}

+ 41 - 0
sql/dataBase.sql

@@ -195,3 +195,44 @@ CREATE TABLE `t_fans_msg`  (
   `read` tinyint(1) NULL DEFAULT NULL COMMENT '是否已读 0未读',
   PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
+
+
+
+-- ----------------------------
+-- Table structure for t_account_push  推送消息
+-- ----------------------------
+DROP TABLE IF EXISTS `t_account_push`;
+CREATE TABLE `t_account_push`  (
+  `id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'id',
+  `account_id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '公众号id',
+  `push_type` int(0) NULL DEFAULT 0 COMMENT '推送方式:0-全部推送,1-按顺序推送,2-随机推送一条',
+  `push_timer` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '推送限制时间 ',
+  `quiet` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '安静时间',
+  `trigger` int(0) NULL DEFAULT 111 COMMENT '第一位关注公众号,第二位 发送消息到公众号 第三位 点击菜单',
+  `push_limit` int(0) NULL DEFAULT NULL COMMENT '推送限制',
+  `enable` int(0) NULL DEFAULT NULL COMMENT '开关',
+  `material_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '推送内容',
+  `nike_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '名称冗余字段',
+  `head_image` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT 'headImage 冗余字段',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '推送内容' ROW_FORMAT = Dynamic;
+
+
+-- ----------------------------
+-- Table structure for t_account_material 素材
+-- ----------------------------
+DROP TABLE IF EXISTS `t_account_material`;
+CREATE TABLE `t_account_material`  (
+  `id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'id',
+  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '描述',
+  `type` int(0) NULL DEFAULT NULL COMMENT '类型',
+  `media_id` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '微信media id',
+  `account_id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '公众号id',
+  `local_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '本地地址',
+  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '名称',
+  `wx_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '微信url',
+  `create_time` datetime(0) NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '素材' ROW_FORMAT = Dynamic;
+