Explorar el Código

增加客服发送朋友圈相关后台功能,增加默认接口List相关自动生成代码

leon hace 5 años
padre
commit
a2de6259f2
Se han modificado 27 ficheros con 1056 adiciones y 82 borrados
  1. 0 57
      src/main/java/com/mokamrp/privates/Result/ReturnT.java
  2. 2 0
      src/main/java/com/mokamrp/privates/constant/HttpMsg.java
  3. 2 0
      src/main/java/com/mokamrp/privates/constant/RedisKey.java
  4. 81 0
      src/main/java/com/mokamrp/privates/controller/WorkEmployeeFriendcircleController.java
  5. 72 0
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxStationController.java
  6. 24 0
      src/main/java/com/mokamrp/privates/mapper/WorkEmployeeFriendcircleMapper.java
  7. 31 0
      src/main/java/com/mokamrp/privates/mapper/WorkEmployeeFriendcircleMapper.xml
  8. 21 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxStationMapper.java
  9. 23 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxStationMapper.xml
  10. 133 0
      src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxStation.java
  11. 175 0
      src/main/java/com/mokamrp/privates/mapper/pojo/WorkEmployeeFriendcircle.java
  12. 158 0
      src/main/java/com/mokamrp/privates/mapper/vo/WorkEmployeeFriendcircleVo.java
  13. 25 0
      src/main/java/com/mokamrp/privates/service/WorkEmployeeFriendcircleService.java
  14. 0 1
      src/main/java/com/mokamrp/privates/service/data/impl/PanCSTQRecordServiceImpl.java
  15. 83 0
      src/main/java/com/mokamrp/privates/service/impl/WorkEmployeeFriendcircleServiceImpl.java
  16. 18 0
      src/main/java/com/mokamrp/privates/service/pangu/FosterwxStationService.java
  17. 42 0
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxStationServiceImpl.java
  18. 43 0
      src/main/java/com/mokamrp/privates/tast/SendFrendcircleTask.java
  19. 1 1
      src/main/java/com/mokamrp/privates/tast/pangu/UpdatePanguDataTask.java
  20. BIN
      src/main/resources/static/导入发送朋友圈任务.xls
  21. 19 3
      src/main/resources/template/controller.java.vm
  22. 25 0
      src/main/resources/template/mapper.java.vm
  23. 41 0
      src/main/resources/template/mapper.xml.vm
  24. 4 5
      src/main/resources/template/service.java.vm
  25. 22 8
      src/main/resources/template/serviceImpl.java.vm
  26. 6 4
      src/test/java/com/mokamrp/AutoMP.java
  27. 5 3
      src/test/java/com/mokamrp/AutoMPPangu.java

+ 0 - 57
src/main/java/com/mokamrp/privates/Result/ReturnT.java

@@ -1,57 +0,0 @@
-package com.mokamrp.privates.Result;
-
-import java.io.Serializable;
-
-/**
- * common return
- *
- * @param <T>
- * @author xuxueli 2015-12-4 16:32:31
- */
-public class ReturnT<T> implements Serializable {
-    public static final long serialVersionUID = 42L;
-
-    public static final int SUCCESS_CODE = 200;
-    public static final int FAIL_CODE = 500;
-    public static final ReturnT<String> SUCCESS = new ReturnT<String>(null);
-    public static final ReturnT<String> FAIL = new ReturnT<String>(FAIL_CODE, null);
-
-    private int code;
-    private String msg;
-    private T data;
-
-    public ReturnT(int code, String msg) {
-        this.code = code;
-        this.msg = msg;
-    }
-
-    public ReturnT(T data) {
-        this.code = SUCCESS_CODE;
-        this.data = data;
-    }
-
-    public int getCode() {
-        return code;
-    }
-
-    public void setCode(int code) {
-        this.code = code;
-    }
-
-    public String getMsg() {
-        return msg;
-    }
-
-    public void setMsg(String msg) {
-        this.msg = msg;
-    }
-
-    public T getData() {
-        return data;
-    }
-
-    public void setData(T data) {
-        this.data = data;
-    }
-
-}

+ 2 - 0
src/main/java/com/mokamrp/privates/constant/HttpMsg.java

@@ -6,4 +6,6 @@ public class HttpMsg {
     public static final String success = "操作成功";
 
     public static final String error = "操作失败";
+
+    public static final String importSuccess = "导入数据成功";
 }

+ 2 - 0
src/main/java/com/mokamrp/privates/constant/RedisKey.java

@@ -21,5 +21,7 @@ public class RedisKey {
     public static final String PanPromoteCodeInfo = "pan_promote_code_info";
     //.检测微信环境域名状态第三方登录token
     public static final String CheckWxDomainToken = "check_wx_domain_token";
+    //.企微客服发送朋友圈任务
+    public static final String WorkEmployeeFriendcircleJob = "work_employee_friendcircle_job";
 }
 

+ 81 - 0
src/main/java/com/mokamrp/privates/controller/WorkEmployeeFriendcircleController.java

@@ -0,0 +1,81 @@
+package com.mokamrp.privates.controller;
+
+import com.mokamrp.privates.constant.HttpMsg;
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.help.Analysis;
+import com.mokamrp.privates.interceptor.AuthUser;
+import com.mokamrp.privates.mapper.pojo.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+import com.mokamrp.privates.service.WorkEmployeeFriendcircleService;
+import com.mokamrp.privates.mapper.pojo.WorkEmployeeFriendcircle;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.controller.BaseController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * <p>
+ * 客服朋友圈任务 前端控制器
+ * </p>
+ *
+ * @author leon
+ * @since 2021-07-20
+ */
+@RestController
+@RequestMapping("/workEmployeeFriendcircle")
+public class WorkEmployeeFriendcircleController extends BaseController<WorkEmployeeFriendcircle> {
+
+    @Autowired
+    public WorkEmployeeFriendcircleService workEmployeeFriendcircleService;
+
+    /*
+     * @fast
+     * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
+     * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
+     */
+
+    @PostMapping("/list")
+    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        Map<String, Object> res = workEmployeeFriendcircleService.getList(postBasePageHandle);
+        return AjaxResult.success(res);
+    }
+
+    /**
+     * 导入
+     * @param file
+     * @param authUser
+     * @return
+     */
+    @PostMapping("/import")
+    public Object uploadFile(@RequestBody MultipartFile file, @AuthUser User authUser) {
+        Map<String, Object> map = new HashMap<>(16);
+        Map<Integer, String> feild = new HashMap<>(5);
+        feild.put(0, "deviceCode");
+        feild.put(1, "corpId");
+        feild.put(2, "shareUrl");
+        feild.put(3, "title");
+        feild.put(4, "sendAt"); //.2021-01-01 22:22:22
+        List<Map<String, String>> row = new ArrayList<>();
+        try {
+            row = Analysis.analysis(file, feild);
+        } catch (Exception e) {
+            return AjaxResult.error(e.getMessage());
+        }
+        Boolean res = workEmployeeFriendcircleService.importData(row);
+        return AjaxResult.success(HttpMsg.importSuccess);
+    }
+}
+

+ 72 - 0
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxStationController.java

@@ -0,0 +1,72 @@
+package com.mokamrp.privates.controller.pangu;
+
+import com.mokamrp.privates.constant.Constants;
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.AddHandle;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.interceptor.AuthUser;
+import com.mokamrp.privates.mapper.pojo.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.service.pangu.FosterwxStationService;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.controller.BaseController;
+import javax.validation.Valid;
+import java.util.Map;
+
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 盘古微信养号站点库 前端控制器
+ * </p>
+ *
+ * @author leon
+ * @since 2021-07-19
+ */
+@RestController
+@RequestMapping("/pangu/fosterwxStation")
+public class FosterwxStationController extends BaseController<FosterwxStation> {
+
+    @Autowired
+    public FosterwxStationService fosterwxStationService;
+
+    /*
+     * @fast
+     * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
+     * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
+     */
+
+    @PostMapping("/list")
+    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        Map<String,Object> res = fosterwxStationService.getList(postBasePageHandle);
+        return AjaxResult.success(res);
+    }
+
+    @PostMapping("/addPro")
+    public Object addPro(@Valid @RequestBody AddHandle<FosterwxStation> addHandle, @AuthUser User user, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        addHandle.getRaw().setUploadUid(user.getId());
+        this.onInsert(addHandle.getRaw());
+        Boolean res = service.save(addHandle.getRaw());
+        if (res) {
+            return AjaxResult.success(Constants.SUCCESS, res);
+        } else {
+            return AjaxResult.error("新增失败", res);
+        }
+    }
+
+
+}
+

+ 24 - 0
src/main/java/com/mokamrp/privates/mapper/WorkEmployeeFriendcircleMapper.java

@@ -0,0 +1,24 @@
+package com.mokamrp.privates.mapper;
+
+import com.mokamrp.privates.mapper.pojo.WorkEmployeeFriendcircle;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mokamrp.privates.mapper.vo.WorkEmployeeFriendcircleVo;
+import org.springframework.stereotype.Component;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * 客服朋友圈任务 Mapper 接口
+ * </p>
+ *
+ * @author leon
+ * @since 2021-07-20
+ */
+@Component
+public interface WorkEmployeeFriendcircleMapper extends BaseMapper<WorkEmployeeFriendcircle> {
+    public List<WorkEmployeeFriendcircle> getList(Page<WorkEmployeeFriendcircle> pageObj);
+
+    public List<WorkEmployeeFriendcircleVo> getNeedSendList();
+}

+ 31 - 0
src/main/java/com/mokamrp/privates/mapper/WorkEmployeeFriendcircleMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mokamrp.privates.mapper.WorkEmployeeFriendcircleMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.mokamrp.privates.mapper.pojo.WorkEmployeeFriendcircle">
+        <id column="id" property="id" />
+        <result column="corp_id" property="corpId" />
+        <result column="device_code" property="deviceCode" />
+        <result column="title" property="title" />
+        <result column="share_url" property="shareUrl" />
+        <result column="status" property="status" />
+        <result column="remark" property="remark" />
+        <result column="send_at" property="sendAt" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, corp_id, device_code, title, share_url, status, remark, send_at, create_at, update_at
+    </sql>
+    <select id="getList" resultType="com.mokamrp.privates.mapper.pojo.WorkEmployeeFriendcircle">
+        SELECT * FROM private_work_employee_friendcircle
+    </select>
+    <select id="getNeedSendList" resultType="com.mokamrp.privates.mapper.vo.WorkEmployeeFriendcircleVo">
+        SELECT A.*,B.name AS corp_name FROM private_work_employee_friendcircle AS A
+        LEFT JOIN mc_corp AS B ON A.corp_id = B.id
+        WHERE A.send_at &lt;= NOW() AND A.status = 0
+    </select>
+</mapper>

+ 21 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxStationMapper.java

@@ -0,0 +1,21 @@
+package com.mokamrp.privates.mapper.pangu;
+
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.stereotype.Component;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * 盘古微信养号站点库 Mapper 接口
+ * </p>
+ *
+ * @author leon
+ * @since 2021-07-19
+ */
+@Component
+public interface FosterwxStationMapper extends BaseMapper<FosterwxStation> {
+    public List<FosterwxStation> getList(Page<FosterwxStation> pageObj);
+}

+ 23 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxStationMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mokamrp.privates.mapper.pangu.FosterwxStationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.mokamrp.privates.mapper.pangu.pojo.FosterwxStation">
+        <id column="id" property="id" />
+        <result column="station_name" property="stationName" />
+        <result column="station_uid" property="stationUid" />
+        <result column="box_share_url" property="boxShareUrl" />
+        <result column="upload_uid" property="uploadUid" />
+        <result column="create_at" property="createAt" />
+        <result column="upload_at" property="uploadAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, station_name, station_uid, box_share_url, upload_uid, create_at, upload_at
+    </sql>
+    <select id="getList" resultType="com.mokamrp.privates.mapper.pangu.pojo.FosterwxStation">
+        SELECT * FROM pan_fosterwx_station
+    </select>
+</mapper>

+ 133 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxStation.java

@@ -0,0 +1,133 @@
+package com.mokamrp.privates.mapper.pangu.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 盘古微信养号站点库
+ * </p>
+ *
+ * @author leon
+ * @since 2021-07-19
+ */
+@TableName("pan_fosterwx_station")
+public class FosterwxStation extends Model<FosterwxStation> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 站点名称
+     */
+    private String stationName;
+
+    /**
+     * 站点负责人id(private.user.id)
+     */
+    private Integer stationUid;
+
+    /**
+     * 小程序分享链接
+     */
+    private String boxShareUrl;
+
+    /**
+     * 创建人
+     */
+    private Integer uploadUid;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createAt;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime uploadAt;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getStationName() {
+        return stationName;
+    }
+
+    public void setStationName(String stationName) {
+        this.stationName = stationName;
+    }
+
+    public Integer getStationUid() {
+        return stationUid;
+    }
+
+    public void setStationUid(Integer stationUid) {
+        this.stationUid = stationUid;
+    }
+
+    public String getBoxShareUrl() {
+        return boxShareUrl;
+    }
+
+    public void setBoxShareUrl(String boxShareUrl) {
+        this.boxShareUrl = boxShareUrl;
+    }
+
+    public Integer getUploadUid() {
+        return uploadUid;
+    }
+
+    public void setUploadUid(Integer uploadUid) {
+        this.uploadUid = uploadUid;
+    }
+
+    public LocalDateTime getCreateAt() {
+        return createAt;
+    }
+
+    public void setCreateAt(LocalDateTime createAt) {
+        this.createAt = createAt;
+    }
+
+    public LocalDateTime getUploadAt() {
+        return uploadAt;
+    }
+
+    public void setUploadAt(LocalDateTime uploadAt) {
+        this.uploadAt = uploadAt;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "FosterwxStation{" +
+        "id=" + id +
+        ", stationName=" + stationName +
+        ", stationUid=" + stationUid +
+        ", boxShareUrl=" + boxShareUrl +
+        ", uploadUid=" + uploadUid +
+        ", createAt=" + createAt +
+        ", uploadAt=" + uploadAt +
+        "}";
+    }
+}

+ 175 - 0
src/main/java/com/mokamrp/privates/mapper/pojo/WorkEmployeeFriendcircle.java

@@ -0,0 +1,175 @@
+package com.mokamrp.privates.mapper.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 客服朋友圈任务
+ * </p>
+ *
+ * @author leon
+ * @since 2021-07-20
+ */
+@TableName("private_work_employee_friendcircle")
+public class WorkEmployeeFriendcircle extends Model<WorkEmployeeFriendcircle> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 企业ID(mc_corp.id)
+     */
+    private Integer corpId;
+
+    /**
+     * 设备编码
+     */
+    private String deviceCode;
+
+    /**
+     * 朋友圈标题
+     */
+    private String title;
+
+    /**
+     * 朋友圈分享链接
+     */
+    private String shareUrl;
+
+    /**
+     * 状态(0等待发送1发送成功2发送错误)
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 发送时间
+     */
+    private LocalDateTime sendAt;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createAt;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateAt;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getCorpId() {
+        return corpId;
+    }
+
+    public void setCorpId(Integer corpId) {
+        this.corpId = corpId;
+    }
+
+    public String getDeviceCode() {
+        return deviceCode;
+    }
+
+    public void setDeviceCode(String deviceCode) {
+        this.deviceCode = deviceCode;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getShareUrl() {
+        return shareUrl;
+    }
+
+    public void setShareUrl(String shareUrl) {
+        this.shareUrl = shareUrl;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public LocalDateTime getSendAt() {
+        return sendAt;
+    }
+
+    public void setSendAt(LocalDateTime sendAt) {
+        this.sendAt = sendAt;
+    }
+
+    public LocalDateTime getCreateAt() {
+        return createAt;
+    }
+
+    public void setCreateAt(LocalDateTime createAt) {
+        this.createAt = createAt;
+    }
+
+    public LocalDateTime getUpdateAt() {
+        return updateAt;
+    }
+
+    public void setUpdateAt(LocalDateTime updateAt) {
+        this.updateAt = updateAt;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "WorkEmployeeFriendcircle{" +
+        "id=" + id +
+        ", corpId=" + corpId +
+        ", deviceCode=" + deviceCode +
+        ", title=" + title +
+        ", shareUrl=" + shareUrl +
+        ", status=" + status +
+        ", remark=" + remark +
+        ", sendAt=" + sendAt +
+        ", createAt=" + createAt +
+        ", updateAt=" + updateAt +
+        "}";
+    }
+}

+ 158 - 0
src/main/java/com/mokamrp/privates/mapper/vo/WorkEmployeeFriendcircleVo.java

@@ -0,0 +1,158 @@
+package com.mokamrp.privates.mapper.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 客服朋友圈任务
+ * </p>
+ *
+ * @author leon
+ * @since 2021-07-20
+ */
+@TableName("private_work_employee_friendcircle")
+public class WorkEmployeeFriendcircleVo {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 企业ID(mc_corp.id)
+     */
+    private Integer corpId;
+
+    private String corpName;
+
+    /**
+     * 设备编码
+     */
+    private String deviceCode;
+
+    /**
+     * 朋友圈标题
+     */
+    private String title;
+
+    /**
+     * 朋友圈分享链接
+     */
+    private String shareUrl;
+
+    /**
+     * 状态(0等待发送1发送成功2发送错误)
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 发送时间
+     */
+    private LocalDateTime sendAt;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createAt;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateAt;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getCorpId() {
+        return corpId;
+    }
+
+    public void setCorpId(Integer corpId) {
+        this.corpId = corpId;
+    }
+
+    public String getDeviceCode() {
+        return deviceCode;
+    }
+
+    public void setDeviceCode(String deviceCode) {
+        this.deviceCode = deviceCode;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getShareUrl() {
+        return shareUrl;
+    }
+
+    public void setShareUrl(String shareUrl) {
+        this.shareUrl = shareUrl;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public LocalDateTime getSendAt() {
+        return sendAt;
+    }
+
+    public void setSendAt(LocalDateTime sendAt) {
+        this.sendAt = sendAt;
+    }
+
+    public LocalDateTime getCreateAt() {
+        return createAt;
+    }
+
+    public void setCreateAt(LocalDateTime createAt) {
+        this.createAt = createAt;
+    }
+
+    public LocalDateTime getUpdateAt() {
+        return updateAt;
+    }
+
+    public void setUpdateAt(LocalDateTime updateAt) {
+        this.updateAt = updateAt;
+    }
+
+}

+ 25 - 0
src/main/java/com/mokamrp/privates/service/WorkEmployeeFriendcircleService.java

@@ -0,0 +1,25 @@
+package com.mokamrp.privates.service;
+
+import com.mokamrp.privates.mapper.pojo.WorkEmployeeFriendcircle;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.mapper.vo.WorkEmployeeFriendcircleVo;
+
+import java.util.List;
+import java.util.Map;
+/**
+ * <p>
+ * 客服朋友圈任务 服务类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-07-20
+ */
+public interface WorkEmployeeFriendcircleService extends IService<WorkEmployeeFriendcircle> {
+    //.@leon 获取数据列表
+    public Map<String, Object> getList(PostBasePageHandle handle);
+    //.@leon 导入数据
+    public Boolean importData(List<Map<String,String>> row);
+    //.@leon 获取需要发送的朋友圈任务
+    public List<WorkEmployeeFriendcircleVo> getNeedSendList();
+}

+ 0 - 1
src/main/java/com/mokamrp/privates/service/data/impl/PanCSTQRecordServiceImpl.java

@@ -28,5 +28,4 @@ public class PanCSTQRecordServiceImpl  extends ServiceImpl<PanCSTQRecordMapper,P
         System.out.println(res);
         return res;
     }
-
 }

+ 83 - 0
src/main/java/com/mokamrp/privates/service/impl/WorkEmployeeFriendcircleServiceImpl.java

@@ -0,0 +1,83 @@
+package com.mokamrp.privates.service.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.mokamrp.privates.mapper.pojo.SetUserTag;
+import com.mokamrp.privates.mapper.pojo.SetUserTagMain;
+import com.mokamrp.privates.mapper.pojo.WorkEmployeeFriendcircle;
+import com.mokamrp.privates.mapper.WorkEmployeeFriendcircleMapper;
+import com.mokamrp.privates.mapper.vo.WorkEmployeeFriendcircleVo;
+import com.mokamrp.privates.service.WorkEmployeeFriendcircleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.tomcat.jni.Local;
+import org.springframework.stereotype.Service;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+/**
+ * <p>
+ * 客服朋友圈任务 服务实现类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-07-20
+ */
+@Service
+public class WorkEmployeeFriendcircleServiceImpl extends ServiceImpl<WorkEmployeeFriendcircleMapper, WorkEmployeeFriendcircle> implements WorkEmployeeFriendcircleService {
+
+    @Autowired
+    public WorkEmployeeFriendcircleMapper workEmployeeFriendcircleMapper;
+    /**
+     * 获取数据列表 支持分页
+     * @param handle
+     * @return
+     */
+    public Map<String, Object> getList(PostBasePageHandle handle) {
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
+        Page<WorkEmployeeFriendcircle> pageObj = new Page<WorkEmployeeFriendcircle>(page, pagesize);
+        List<WorkEmployeeFriendcircle> list = workEmployeeFriendcircleMapper.getList(pageObj);
+        Map<String, Object> resMap = new HashMap<String, Object>();
+        resMap.put("list", list);
+        resMap.put("total", pageObj.getTotal());
+        return resMap;
+    }
+
+    public List<WorkEmployeeFriendcircleVo> getNeedSendList(){
+        List<WorkEmployeeFriendcircleVo> list = workEmployeeFriendcircleMapper.getNeedSendList();
+        return list;
+    }
+
+    /**
+     * 导入数据
+     * @param row
+     * @return
+     */
+    public Boolean importData(List<Map<String,String>> row){
+        if(row.size() <= 0){
+            return false;
+        }
+        List<WorkEmployeeFriendcircle> add = new ArrayList<>();
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        for (int i = 0;i<row.size();i++) {
+            System.out.println(row.get(i));
+            Map<String, String> cell = row.get(i);
+            WorkEmployeeFriendcircle workEmployeeFriendcircle = new WorkEmployeeFriendcircle();
+            workEmployeeFriendcircle.setDeviceCode(row.get(i).get("deviceCode"));
+            workEmployeeFriendcircle.setCorpId(Integer.parseInt(row.get(i).get("corpId")));
+            workEmployeeFriendcircle.setShareUrl(row.get(i).get("shareUrl"));
+            workEmployeeFriendcircle.setTitle(row.get(i).get("title"));
+            workEmployeeFriendcircle.setSendAt(LocalDateTime.parse(row.get(i).get("sendAt"),df));
+            workEmployeeFriendcircle.setCreateAt(LocalDateTime.now());
+            workEmployeeFriendcircle.setUpdateAt(LocalDateTime.now());
+            add.add(workEmployeeFriendcircle);
+        }
+        this.saveBatch(add);
+        return true;
+    }
+}

+ 18 - 0
src/main/java/com/mokamrp/privates/service/pangu/FosterwxStationService.java

@@ -0,0 +1,18 @@
+package com.mokamrp.privates.service.pangu;
+
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStation;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import java.util.Map;
+/**
+ * <p>
+ * 盘古微信养号站点库 服务类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-07-19
+ */
+public interface FosterwxStationService extends IService<FosterwxStation> {
+    //.@leon 获取数据列表
+    public Map<String, Object> getList(PostBasePageHandle handle);
+}

+ 42 - 0
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxStationServiceImpl.java

@@ -0,0 +1,42 @@
+package com.mokamrp.privates.service.pangu.impl;
+
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStation;
+import com.mokamrp.privates.mapper.pangu.FosterwxStationMapper;
+import com.mokamrp.privates.service.pangu.FosterwxStationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import java.util.*;
+
+/**
+ * <p>
+ * 盘古微信养号站点库 服务实现类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-07-19
+ */
+@Service
+public class FosterwxStationServiceImpl extends ServiceImpl<FosterwxStationMapper, FosterwxStation> implements FosterwxStationService {
+
+    @Autowired
+    public FosterwxStationMapper fosterwxStationMapper;
+    /**
+     * 获取数据列表 支持分页
+     * @param handle
+     * @return
+     */
+    public Map<String, Object> getList(PostBasePageHandle handle) {
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
+        Page<FosterwxStation> pageObj = new Page<FosterwxStation>(page, pagesize);
+        List<FosterwxStation> list = fosterwxStationMapper.getList(pageObj);
+        Map<String, Object> resMap = new HashMap<String, Object>();
+        resMap.put("list", list);
+        resMap.put("total", pageObj.getTotal());
+        return resMap;
+    }
+}

+ 43 - 0
src/main/java/com/mokamrp/privates/tast/SendFrendcircleTask.java

@@ -0,0 +1,43 @@
+package com.mokamrp.privates.tast;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mokamrp.privates.constant.RedisKey;
+import com.mokamrp.privates.mapper.pojo.WorkEmployeeFriendcircle;
+import com.mokamrp.privates.mapper.vo.WorkEmployeeFriendcircleVo;
+import com.mokamrp.privates.service.WorkContactEmployeeService;
+import com.mokamrp.privates.service.WorkEmployeeFriendcircleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Component
+public class SendFrendcircleTask {
+
+    @Autowired
+    private WorkEmployeeFriendcircleService workEmployeeFriendcircleService;
+
+    @Autowired
+    private StringRedisTemplate stringRedisTemplate;
+
+    /**
+     * 发送朋友圈任务更新
+     */
+    @Scheduled(fixedDelay = 300 * 1000)
+    public void execute() {
+        List<WorkEmployeeFriendcircleVo> needSendList = workEmployeeFriendcircleService.getNeedSendList();
+        for (WorkEmployeeFriendcircleVo workEmployeeFriendcircleVo :needSendList) {
+            String jsonStr = JSON.toJSONString(workEmployeeFriendcircleVo);
+            stringRedisTemplate.opsForList().leftPush(RedisKey.WorkEmployeeFriendcircleJob,jsonStr);
+            WorkEmployeeFriendcircle save = new WorkEmployeeFriendcircle();
+            save.setStatus(1);
+            save.setUpdateAt(LocalDateTime.now());
+            workEmployeeFriendcircleService.update(save,new QueryWrapper<WorkEmployeeFriendcircle>().eq("id",workEmployeeFriendcircleVo.getId()));
+        }
+    }
+
+}

+ 1 - 1
src/main/java/com/mokamrp/privates/tast/pangu/UpdatePanguDataTask.java

@@ -35,7 +35,7 @@ public class UpdatePanguDataTask {
     @Autowired
     public PromoteQrcodePoolRecordService promoteQrcodePoolRecordService;
 
-    @Scheduled(cron = "0 */1 * * * ?")
+    @Scheduled(cron = "0 */30 * * * ?")
     public void execute() {
         System.out.println("[cronjob]:同步盘古个微码每日数据");
         List<PromoteQrcodePoolRecord> promoteQrcodePoolRecordList = promoteQrcodePoolRecordService.list();

BIN
src/main/resources/static/导入发送朋友圈任务.xls


+ 19 - 3
src/main/resources/template/controller.java.vm

@@ -1,10 +1,19 @@
 package ${package.Controller};
 
-import com.mokamrp.privates.controller.BaseController;
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.help.AjaxResult;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.RequestMapping;
 import ${package.Service}.${table.serviceName};
 import ${package.Entity}.${entity};
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.controller.BaseController;
+import javax.validation.Valid;
+import java.util.Map;
 
 #if(${restControllerStyle})
 import org.springframework.web.bind.annotation.RestController;
@@ -14,8 +23,6 @@ import org.springframework.stereotype.Controller;
 #if(${superControllerClassPackage})
 
 #end
-import javax.validation.Valid;
-import java.util.List;
 
 /**
  * <p>
@@ -50,6 +57,15 @@ public class ${table.controllerName} {
      * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
      */
 
+    @PostMapping("/list")
+    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        Map<String,Object> res = ${table.entityPath}Service.getList(postBasePageHandle);
+        return AjaxResult.success(res);
+    }
+
 
 }
 

+ 25 - 0
src/main/resources/template/mapper.java.vm

@@ -0,0 +1,25 @@
+package ${package.Mapper};
+
+import ${package.Entity}.${entity};
+import ${superMapperClassPackage};
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.stereotype.Component;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * $!{table.comment} Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since ${date}
+ */
+#if(${kotlin})
+interface ${table.mapperName} : ${superMapperClass}<${entity}>
+#else
+@Component
+public interface ${table.mapperName} extends ${superMapperClass}<${entity}> {
+    public List<${entity}> getList(Page<${entity}> pageObj);
+}
+#end

+ 41 - 0
src/main/resources/template/mapper.xml.vm

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="${package.Mapper}.${table.mapperName}">
+
+#if(${enableCache})
+    <!-- 开启二级缓存 -->
+    <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
+
+#end
+#if(${baseResultMap})
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="${package.Entity}.${entity}">
+#foreach($field in ${table.fields})
+#if(${field.keyFlag})##生成主键排在第一位
+        <id column="${field.name}" property="${field.propertyName}" />
+#end
+#end
+#foreach($field in ${table.commonFields})##生成公共字段
+        <result column="${field.name}" property="${field.propertyName}" />
+#end
+#foreach($field in ${table.fields})
+#if(!${field.keyFlag})##生成普通字段
+        <result column="${field.name}" property="${field.propertyName}" />
+#end
+#end
+    </resultMap>
+
+#end
+#if(${baseColumnList})
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+#foreach($field in ${table.commonFields})
+        ${field.columnName},
+#end
+        ${table.fieldNames}
+    </sql>
+    <select id="getList" resultType="${package.Entity}.${entity}">
+        SELECT * FROM ${table.name}
+    </select>
+#end
+</mapper>

+ 4 - 5
src/main/resources/template/service.java.vm

@@ -2,10 +2,8 @@ package ${package.Service};
 
 import ${package.Entity}.${entity};
 import ${superServiceClassPackage};
-import com.mokamrp.privates.entity.IndexHandle;
-import com.mokamrp.privates.mapper.pojo.IndexBaseRes;
-import java.util.List;
-
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import java.util.Map;
 /**
  * <p>
  * $!{table.comment} 服务类
@@ -18,6 +16,7 @@ import java.util.List;
 interface ${table.serviceName} : ${superServiceClass}<${entity}>
 #else
 public interface ${table.serviceName} extends ${superServiceClass}<${entity}> {
-
+    //.@leon 获取数据列表
+    public Map<String, Object> getList(PostBasePageHandle handle);
 }
 #end

+ 22 - 8
src/main/resources/template/serviceImpl.java.vm

@@ -1,18 +1,15 @@
 package ${package.ServiceImpl};
 
-import com.baomidou.mybatisplus.mapper.QueryWrapper;
-import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.baomidou.mybatisplus.plugins.Page;
 import ${package.Entity}.${entity};
 import ${package.Mapper}.${table.mapperName};
 import ${package.Service}.${table.serviceName};
 import ${superServiceImplClassPackage};
 import org.springframework.stereotype.Service;
-import com.mokamrp.privates.entity.IndexHandle;
-import com.mokamrp.privates.mapper.pojo.IndexBaseRes;
-
-import java.util.Iterator;
-import java.util.Map;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import java.util.*;
 
 /**
  * <p>
@@ -30,5 +27,22 @@ open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperNam
 #else
 public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}> implements ${table.serviceName} {
 
+    @Autowired
+    public ${table.mapperName} ${table.entityPath}Mapper;
+    /**
+     * 获取数据列表 支持分页
+     * @param handle
+     * @return
+     */
+    public Map<String, Object> getList(PostBasePageHandle handle) {
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
+        Page<${entity}> pageObj = new Page<${entity}>(page, pagesize);
+        List<${entity}> list = ${table.entityPath}Mapper.getList(pageObj);
+        Map<String, Object> resMap = new HashMap<String, Object>();
+        resMap.put("list", list);
+        resMap.put("total", pageObj.getTotal());
+        return resMap;
+    }
 }
 #end

+ 6 - 4
src/test/java/com/mokamrp/AutoMP.java

@@ -35,7 +35,7 @@ public class AutoMP {
 		DataSourceConfig  dsConfig  = new DataSourceConfig();
 		dsConfig.setDbType(DbType.MYSQL)  // 设置数据库类型
 				.setDriverName("com.mysql.cj.jdbc.Driver")
-				.setUrl("jdbc:mysql://rm-uf618jc32u2o80g55oo.mysql.rds.aliyuncs.com:3306/mochat")
+				.setUrl("jdbc:mysql://172.18.71.27:3306/mochat")
 				.setUsername("typer")
 				.setPassword("jch9sh_shl");
 		 
@@ -47,7 +47,7 @@ public class AutoMP {
 				.setColumnNaming(NamingStrategy.underline_to_camel)
 				.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略,下划线转驼峰命名
 				.setTablePrefix("private_") //表名前缀
-				.setInclude("private_work_employee_forbbiden_record");  // 生成的表
+				.setInclude("private_work_employee_friendcircle");  // 生成的表
 		
 		//4. 包名策略配置 
 		PackageConfig pkConfig = new PackageConfig();
@@ -74,9 +74,11 @@ public class AutoMP {
 		  .setPackageInfo(pkConfig);
 		//. @leon 自定义模板
 		TemplateConfig tc = new TemplateConfig();
-//		tc.setService("/template/service.java.vm");
-//		tc.setServiceImpl("/template/serviceImpl.java.vm");
+		tc.setService("/template/service.java.vm");
+		tc.setServiceImpl("/template/serviceImpl.java.vm");
 		tc.setController("/template/controller.java.vm");
+		tc.setMapper("/template/mapper.java.vm");
+		tc.setXml("/template/mapper.xml.vm");
 		ag.setTemplate(tc);
 		//7. 执行
 		ag.execute();

+ 5 - 3
src/test/java/com/mokamrp/AutoMPPangu.java

@@ -47,7 +47,7 @@ public class AutoMPPangu {
 				.setColumnNaming(NamingStrategy.underline_to_camel)
 				.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略,下划线转驼峰命名
 				.setTablePrefix("pan_") //表名前缀
-				.setInclude("pan_domain_second");  //生成的表
+				.setInclude("pan_fosterwx_station");  //生成的表
 		
 		//4. 包名策略配置 
 		PackageConfig pkConfig = new PackageConfig();
@@ -75,9 +75,11 @@ public class AutoMPPangu {
 		  .setPackageInfo(pkConfig);
 		//. @leon 自定义模板
 		TemplateConfig tc = new TemplateConfig();
-//		tc.setService("/template/service.java.vm");
-//		tc.setServiceImpl("/template/serviceImpl.java.vm");
+		tc.setService("/template/service.java.vm");
+		tc.setServiceImpl("/template/serviceImpl.java.vm");
 		tc.setController("/template/controller.java.vm");
+		tc.setMapper("/template/mapper.java.vm");
+		tc.setXml("/template/mapper.xml.vm");
 		ag.setTemplate(tc);
 		//7. 执行
 		ag.execute();