Ver Fonte

Merge branch '20251119-wyp-weCom' into test

wangyunpeng há 2 dias atrás
pai
commit
834c9e042a
69 ficheiros alterados com 8441 adições e 36 exclusões
  1. 31 0
      api-module/src/main/java/com/tzld/piaoquan/api/common/enums/wecom/MsgSendStatusEnum.java
  2. 34 0
      api-module/src/main/java/com/tzld/piaoquan/api/common/enums/wecom/ThirdPartWeComStaffStatusEnum.java
  3. 10 0
      api-module/src/main/java/com/tzld/piaoquan/api/component/WeComThirdPartyApiClient.java
  4. 69 0
      api-module/src/main/java/com/tzld/piaoquan/api/controller/wecom/thirdpart/WeComThirdPartyAccountController.java
  5. 47 0
      api-module/src/main/java/com/tzld/piaoquan/api/controller/wecom/thirdpart/WeComThirdPartyRoomController.java
  6. 2 2
      api-module/src/main/java/com/tzld/piaoquan/api/dao/generator/MybatisGeneratorMain.java
  7. 30 0
      api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigMapper.java
  8. 30 0
      api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigTaskContentMapper.java
  9. 30 0
      api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigTaskMapper.java
  10. 30 0
      api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigMapper.java
  11. 30 0
      api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigTaskContentMapper.java
  12. 30 0
      api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigTaskMapper.java
  13. 2 0
      api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ext/ThirdPartWeComMapperExt.java
  14. 18 3
      api-module/src/main/java/com/tzld/piaoquan/api/job/wecom/thirdpart/WeComAccountJob.java
  15. 10 6
      api-module/src/main/java/com/tzld/piaoquan/api/job/wecom/thirdpart/WeComSendMsgJob.java
  16. 8 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ExternalBusinessCardResponse.java
  17. 34 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyAccountConfigParam.java
  18. 19 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyAccountConfigTaskContentParam.java
  19. 21 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyAccountConfigTaskParam.java
  20. 15 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyAccountListParam.java
  21. 10 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyAccountLogOutParam.java
  22. 10 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyConfigGetParam.java
  23. 30 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyRoomConfigParam.java
  24. 19 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyRoomConfigTaskContentParam.java
  25. 21 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyRoomConfigTaskParam.java
  26. 15 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyRoomListParam.java
  27. 11 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComMsg.java
  28. 60 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComMsgExample.java
  29. 125 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfig.java
  30. 842 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfigExample.java
  31. 103 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfigTask.java
  32. 114 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfigTaskContent.java
  33. 792 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfigTaskContentExample.java
  34. 722 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfigTaskExample.java
  35. 11 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaff.java
  36. 136 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfig.java
  37. 902 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfigExample.java
  38. 103 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfigTask.java
  39. 114 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfigTaskContent.java
  40. 792 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfigTaskContentExample.java
  41. 722 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfigTaskExample.java
  42. 70 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffExample.java
  43. 19 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/vo/IdNameVO.java
  44. 16 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/vo/contentplatform/AccountQrCodeVO.java
  45. 19 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyAccountConfigTaskContentVO.java
  46. 21 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyAccountConfigTaskVO.java
  47. 30 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyAccountConfigVO.java
  48. 31 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyAccountVO.java
  49. 19 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyRoomConfigTaskContentVO.java
  50. 21 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyRoomConfigTaskVO.java
  51. 30 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyRoomConfigVO.java
  52. 24 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyRoomVO.java
  53. 29 0
      api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/WeComThirdPartyAccountService.java
  54. 22 0
      api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/WeComThirdPartyRoomService.java
  55. 1 1
      api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/WeComThirdPartyService.java
  56. 72 0
      api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/impl/WeComThirdPartyAccountServiceImpl.java
  57. 51 0
      api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/impl/WeComThirdPartyRoomServiceImpl.java
  58. 42 7
      api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/impl/WeComThirdPartyServiceImpl.java
  59. 23 5
      api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComMsgMapper.xml
  60. 294 0
      api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigMapper.xml
  61. 278 0
      api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigTaskContentMapper.xml
  62. 261 0
      api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigTaskMapper.xml
  63. 311 0
      api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigMapper.xml
  64. 278 0
      api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigTaskContentMapper.xml
  65. 261 0
      api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigTaskMapper.xml
  66. 23 6
      api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComStaffMapper.xml
  67. 6 0
      api-module/src/main/resources/mapper/wecom/thirdpart/ext/ThirdPartWeComMapperExt.xml
  68. 12 6
      api-module/src/main/resources/mybatis-api-wecomThirdpart-generator-config.xml
  69. 23 0
      common-module/src/main/java/com/tzld/piaoquan/growth/common/utils/DistributedIdGenerator.java

+ 31 - 0
api-module/src/main/java/com/tzld/piaoquan/api/common/enums/wecom/MsgSendStatusEnum.java

@@ -0,0 +1,31 @@
+package com.tzld.piaoquan.api.common.enums.wecom;
+
+import lombok.Getter;
+
+@Getter
+public enum MsgSendStatusEnum {
+    FAIL(0, "失败"),
+    NORMAL(1, "正常"),
+
+    other(999, "其他");
+
+    private final int val;
+    private final String description;
+
+    MsgSendStatusEnum(int val, String description) {
+        this.val = val;
+        this.description = description;
+    }
+
+    public static MsgSendStatusEnum from(int val) {
+        for (MsgSendStatusEnum statusEnum : MsgSendStatusEnum.values()) {
+            if (statusEnum.getVal() == val) {
+                return statusEnum;
+            }
+        }
+
+        return other;
+    }
+
+
+}

+ 34 - 0
api-module/src/main/java/com/tzld/piaoquan/api/common/enums/wecom/ThirdPartWeComStaffStatusEnum.java

@@ -0,0 +1,34 @@
+package com.tzld.piaoquan.api.common.enums.wecom;
+
+import lombok.Getter;
+
+@Getter
+public enum ThirdPartWeComStaffStatusEnum {
+    
+    NORMAL(0, "正常"),
+    OFFLINE(1, "掉线"),
+    QUIT(2, "离线"),
+
+    other(999, "其他");
+
+    // 0正常,1掉线,2离线
+    private final int val;
+    private final String description;
+
+    ThirdPartWeComStaffStatusEnum(int val, String description) {
+        this.val = val;
+        this.description = description;
+    }
+
+    public static ThirdPartWeComStaffStatusEnum from(int val) {
+        for (ThirdPartWeComStaffStatusEnum statusEnum : ThirdPartWeComStaffStatusEnum.values()) {
+            if (statusEnum.getVal() == val) {
+                return statusEnum;
+            }
+        }
+
+        return other;
+    }
+
+
+}

+ 10 - 0
api-module/src/main/java/com/tzld/piaoquan/api/component/WeComThirdPartyApiClient.java

@@ -79,6 +79,16 @@ public class WeComThirdPartyApiClient {
         return postRequest("/wxwork/GetRunClientByUuid", request);
     }
 
+    /**
+     * 获取当前账号对外名片二维码
+     *
+     * @param request 请求体
+     * @return 响应结果
+     */
+    public String getExternalBusinessCard(UuidRequest request) {
+        return postRequest("/wxwork/ExternalBusinessCard", request);
+    }
+
     /**
      * 获取内部联系人列表
      *

+ 69 - 0
api-module/src/main/java/com/tzld/piaoquan/api/controller/wecom/thirdpart/WeComThirdPartyAccountController.java

@@ -0,0 +1,69 @@
+package com.tzld.piaoquan.api.controller.wecom.thirdpart;
+
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.*;
+import com.tzld.piaoquan.api.model.vo.IdNameVO;
+import com.tzld.piaoquan.api.model.vo.contentplatform.AccountQrCodeVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyAccountConfigVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyAccountVO;
+import com.tzld.piaoquan.api.service.wecom.thirdparty.WeComThirdPartyAccountService;
+import com.tzld.piaoquan.growth.common.common.base.CommonResponse;
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/wecom/thirdparty/account")
+@CrossOrigin(origins = "*")
+public class WeComThirdPartyAccountController {
+
+    @Autowired
+    private WeComThirdPartyAccountService service;
+
+    @GetMapping("/getQrCode")
+    public CommonResponse<AccountQrCodeVO> getQrCode(@RequestParam String id) {
+        return CommonResponse.success(service.getQrCode(id));
+    }
+
+    @GetMapping("/getNeedCheckCode")
+    public CommonResponse<Boolean> getNeedCheckCode(@RequestParam String uuid) {
+        return CommonResponse.success(service.getNeedCheckCode(uuid));
+    }
+
+    @PostMapping("/setCheckCode")
+    public CommonResponse<Void> setCheckCode(@RequestBody CheckCodeRequest param) {
+        service.setCheckCode(param);
+        return CommonResponse.success();
+    }
+
+    @PostMapping("/list")
+    public CommonResponse<Page<ThirdPartyAccountVO>> list(@RequestBody ThirdPartyAccountListParam param) {
+        return CommonResponse.success(service.list(param));
+    }
+
+    @GetMapping("/getPushAccountList")
+    public CommonResponse<List<IdNameVO<Long>>> getPushAccountList(@RequestParam Long accountId, @RequestParam String name) {
+        return CommonResponse.success(service.getPushAccountList(accountId, name));
+    }
+
+    @PostMapping("/getAccountConfig")
+    public CommonResponse<ThirdPartyAccountConfigVO> getAccountConfig(@RequestBody ThirdPartyConfigGetParam param) {
+        return CommonResponse.success(service.getAccountConfig(param));
+    }
+
+    @PostMapping("/saveAccountConfig")
+    public CommonResponse<Void> saveAccountConfig(@RequestBody ThirdPartyAccountConfigParam param) {
+        service.saveAccountConfig(param);
+        return CommonResponse.success();
+    }
+
+    @PostMapping("/logout")
+    public CommonResponse<Void> logout(@RequestBody ThirdPartyAccountLogOutParam param) {
+        service.logout(param);
+        return CommonResponse.success();
+    }
+
+}

+ 47 - 0
api-module/src/main/java/com/tzld/piaoquan/api/controller/wecom/thirdpart/WeComThirdPartyRoomController.java

@@ -0,0 +1,47 @@
+package com.tzld.piaoquan.api.controller.wecom.thirdpart;
+
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyRoomConfigParam;
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyConfigGetParam;
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyRoomListParam;
+import com.tzld.piaoquan.api.model.vo.IdNameVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyRoomConfigVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyRoomVO;
+import com.tzld.piaoquan.api.service.wecom.thirdparty.WeComThirdPartyRoomService;
+import com.tzld.piaoquan.growth.common.common.base.CommonResponse;
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/wecom/thirdparty/room")
+@CrossOrigin(origins = "*")
+public class WeComThirdPartyRoomController {
+
+    @Autowired
+    private WeComThirdPartyRoomService service;
+
+    @PostMapping("/list")
+    public CommonResponse<Page<ThirdPartyRoomVO>> list(@RequestBody ThirdPartyRoomListParam param) {
+        return CommonResponse.success(service.list(param));
+    }
+
+    @GetMapping("/getPushAccountList")
+    public CommonResponse<List<IdNameVO<Long>>> getPushAccountList(@RequestParam Long roomId, @RequestParam String name) {
+        return CommonResponse.success(service.getPushAccountList(roomId, name));
+    }
+
+    @PostMapping("/getRoomConfig")
+    public CommonResponse<ThirdPartyRoomConfigVO> getRoomConfig(@RequestBody ThirdPartyConfigGetParam param) {
+        return CommonResponse.success(service.getRoomConfig(param));
+    }
+
+    @PostMapping("/saveRoomConfig")
+    public CommonResponse<Void> saveRoomConfig(@RequestBody ThirdPartyRoomConfigParam param) {
+        service.saveRoomConfig(param);
+        return CommonResponse.success();
+    }
+}

+ 2 - 2
api-module/src/main/java/com/tzld/piaoquan/api/dao/generator/MybatisGeneratorMain.java

@@ -22,8 +22,8 @@ public class MybatisGeneratorMain {
 
         //File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-generator-config.xml").getFile());
 //        File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-api-generator-config.xml").getFile());
-        File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-api-contentPlatform-generator-config.xml").getFile());
-//        File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-api-wecomThirdpart-generator-config.xml").getFile());
+//        File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-api-contentPlatform-generator-config.xml").getFile());
+        File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-api-wecomThirdpart-generator-config.xml").getFile());
         ConfigurationParser cp = new ConfigurationParser(warnings);
         Configuration config = cp.parseConfiguration(configFile);
         DefaultShellCallback callback = new DefaultShellCallback(true);

+ 30 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart;
+
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfig;
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface ThirdPartWeComRoomConfigMapper {
+    long countByExample(ThirdPartWeComRoomConfigExample example);
+
+    int deleteByExample(ThirdPartWeComRoomConfigExample example);
+
+    int deleteByPrimaryKey(String id);
+
+    int insert(ThirdPartWeComRoomConfig record);
+
+    int insertSelective(ThirdPartWeComRoomConfig record);
+
+    List<ThirdPartWeComRoomConfig> selectByExample(ThirdPartWeComRoomConfigExample example);
+
+    ThirdPartWeComRoomConfig selectByPrimaryKey(String id);
+
+    int updateByExampleSelective(@Param("record") ThirdPartWeComRoomConfig record, @Param("example") ThirdPartWeComRoomConfigExample example);
+
+    int updateByExample(@Param("record") ThirdPartWeComRoomConfig record, @Param("example") ThirdPartWeComRoomConfigExample example);
+
+    int updateByPrimaryKeySelective(ThirdPartWeComRoomConfig record);
+
+    int updateByPrimaryKey(ThirdPartWeComRoomConfig record);
+}

+ 30 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigTaskContentMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart;
+
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContent;
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContentExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface ThirdPartWeComRoomConfigTaskContentMapper {
+    long countByExample(ThirdPartWeComRoomConfigTaskContentExample example);
+
+    int deleteByExample(ThirdPartWeComRoomConfigTaskContentExample example);
+
+    int deleteByPrimaryKey(String id);
+
+    int insert(ThirdPartWeComRoomConfigTaskContent record);
+
+    int insertSelective(ThirdPartWeComRoomConfigTaskContent record);
+
+    List<ThirdPartWeComRoomConfigTaskContent> selectByExample(ThirdPartWeComRoomConfigTaskContentExample example);
+
+    ThirdPartWeComRoomConfigTaskContent selectByPrimaryKey(String id);
+
+    int updateByExampleSelective(@Param("record") ThirdPartWeComRoomConfigTaskContent record, @Param("example") ThirdPartWeComRoomConfigTaskContentExample example);
+
+    int updateByExample(@Param("record") ThirdPartWeComRoomConfigTaskContent record, @Param("example") ThirdPartWeComRoomConfigTaskContentExample example);
+
+    int updateByPrimaryKeySelective(ThirdPartWeComRoomConfigTaskContent record);
+
+    int updateByPrimaryKey(ThirdPartWeComRoomConfigTaskContent record);
+}

+ 30 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigTaskMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart;
+
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTask;
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface ThirdPartWeComRoomConfigTaskMapper {
+    long countByExample(ThirdPartWeComRoomConfigTaskExample example);
+
+    int deleteByExample(ThirdPartWeComRoomConfigTaskExample example);
+
+    int deleteByPrimaryKey(String id);
+
+    int insert(ThirdPartWeComRoomConfigTask record);
+
+    int insertSelective(ThirdPartWeComRoomConfigTask record);
+
+    List<ThirdPartWeComRoomConfigTask> selectByExample(ThirdPartWeComRoomConfigTaskExample example);
+
+    ThirdPartWeComRoomConfigTask selectByPrimaryKey(String id);
+
+    int updateByExampleSelective(@Param("record") ThirdPartWeComRoomConfigTask record, @Param("example") ThirdPartWeComRoomConfigTaskExample example);
+
+    int updateByExample(@Param("record") ThirdPartWeComRoomConfigTask record, @Param("example") ThirdPartWeComRoomConfigTaskExample example);
+
+    int updateByPrimaryKeySelective(ThirdPartWeComRoomConfigTask record);
+
+    int updateByPrimaryKey(ThirdPartWeComRoomConfigTask record);
+}

+ 30 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart;
+
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfig;
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface ThirdPartWeComStaffConfigMapper {
+    long countByExample(ThirdPartWeComStaffConfigExample example);
+
+    int deleteByExample(ThirdPartWeComStaffConfigExample example);
+
+    int deleteByPrimaryKey(String id);
+
+    int insert(ThirdPartWeComStaffConfig record);
+
+    int insertSelective(ThirdPartWeComStaffConfig record);
+
+    List<ThirdPartWeComStaffConfig> selectByExample(ThirdPartWeComStaffConfigExample example);
+
+    ThirdPartWeComStaffConfig selectByPrimaryKey(String id);
+
+    int updateByExampleSelective(@Param("record") ThirdPartWeComStaffConfig record, @Param("example") ThirdPartWeComStaffConfigExample example);
+
+    int updateByExample(@Param("record") ThirdPartWeComStaffConfig record, @Param("example") ThirdPartWeComStaffConfigExample example);
+
+    int updateByPrimaryKeySelective(ThirdPartWeComStaffConfig record);
+
+    int updateByPrimaryKey(ThirdPartWeComStaffConfig record);
+}

+ 30 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigTaskContentMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart;
+
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskContent;
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskContentExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface ThirdPartWeComStaffConfigTaskContentMapper {
+    long countByExample(ThirdPartWeComStaffConfigTaskContentExample example);
+
+    int deleteByExample(ThirdPartWeComStaffConfigTaskContentExample example);
+
+    int deleteByPrimaryKey(String id);
+
+    int insert(ThirdPartWeComStaffConfigTaskContent record);
+
+    int insertSelective(ThirdPartWeComStaffConfigTaskContent record);
+
+    List<ThirdPartWeComStaffConfigTaskContent> selectByExample(ThirdPartWeComStaffConfigTaskContentExample example);
+
+    ThirdPartWeComStaffConfigTaskContent selectByPrimaryKey(String id);
+
+    int updateByExampleSelective(@Param("record") ThirdPartWeComStaffConfigTaskContent record, @Param("example") ThirdPartWeComStaffConfigTaskContentExample example);
+
+    int updateByExample(@Param("record") ThirdPartWeComStaffConfigTaskContent record, @Param("example") ThirdPartWeComStaffConfigTaskContentExample example);
+
+    int updateByPrimaryKeySelective(ThirdPartWeComStaffConfigTaskContent record);
+
+    int updateByPrimaryKey(ThirdPartWeComStaffConfigTaskContent record);
+}

+ 30 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigTaskMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart;
+
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTask;
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface ThirdPartWeComStaffConfigTaskMapper {
+    long countByExample(ThirdPartWeComStaffConfigTaskExample example);
+
+    int deleteByExample(ThirdPartWeComStaffConfigTaskExample example);
+
+    int deleteByPrimaryKey(String id);
+
+    int insert(ThirdPartWeComStaffConfigTask record);
+
+    int insertSelective(ThirdPartWeComStaffConfigTask record);
+
+    List<ThirdPartWeComStaffConfigTask> selectByExample(ThirdPartWeComStaffConfigTaskExample example);
+
+    ThirdPartWeComStaffConfigTask selectByPrimaryKey(String id);
+
+    int updateByExampleSelective(@Param("record") ThirdPartWeComStaffConfigTask record, @Param("example") ThirdPartWeComStaffConfigTaskExample example);
+
+    int updateByExample(@Param("record") ThirdPartWeComStaffConfigTask record, @Param("example") ThirdPartWeComStaffConfigTaskExample example);
+
+    int updateByPrimaryKeySelective(ThirdPartWeComStaffConfigTask record);
+
+    int updateByPrimaryKey(ThirdPartWeComStaffConfigTask record);
+}

+ 2 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/wecom/thirdpart/ext/ThirdPartWeComMapperExt.java

@@ -24,4 +24,6 @@ public interface ThirdPartWeComMapperExt {
     void batchInsertThirdPartWeComRoom(@Param("records") List<ThirdPartWeComRoom> partition);
 
     void batchUpdateThirdPartWeComRoom(@Param("records") List<ThirdPartWeComRoom> partition);
+
+    void updateStaffQrImageByUuid(@Param("uuid") String uuid, @Param("qrImage") String qrImage);
 }

+ 18 - 3
api-module/src/main/java/com/tzld/piaoquan/api/job/wecom/thirdpart/WeComAccountJob.java

@@ -2,12 +2,14 @@ package com.tzld.piaoquan.api.job.wecom.thirdpart;
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
+import com.tzld.piaoquan.api.common.enums.wecom.ThirdPartWeComStaffStatusEnum;
 import com.tzld.piaoquan.api.component.WeComThirdPartyApiClient;
+import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComStaffMapper;
 import com.tzld.piaoquan.api.model.param.wecom.thirdpart.CommonResponse;
 import com.tzld.piaoquan.api.model.param.wecom.thirdpart.LoginInfo;
 import com.tzld.piaoquan.api.model.param.wecom.thirdpart.UuidRequest;
 import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaff;
-import com.tzld.piaoquan.api.service.wecom.thirdparty.WeComThirdPartyService;
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffExample;
 import com.tzld.piaoquan.growth.common.utils.LarkRobotUtil;
 import com.tzld.piaoquan.growth.common.utils.RedisUtils;
 import com.xxl.job.core.biz.model.ReturnT;
@@ -16,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
@@ -24,7 +27,7 @@ import java.util.Objects;
 public class WeComAccountJob {
 
     @Autowired
-    WeComThirdPartyService weComThirdPartyService;
+    ThirdPartWeComStaffMapper thirdPartWeComStaffMapper;
     @Autowired
     WeComThirdPartyApiClient apiClient;
 
@@ -33,7 +36,7 @@ public class WeComAccountJob {
 
     @XxlJob("checkAccountOnline")
     public ReturnT<String> checkAccountOnline(String param) {
-        List<ThirdPartWeComStaff> activeStaffList = weComThirdPartyService.getActiveStaffList();
+        List<ThirdPartWeComStaff> activeStaffList = getCheckOnlineStaffList();
         for (ThirdPartWeComStaff staff : activeStaffList) {
             String uuid = staff.getThirdUuid();
             String offLineKey = "wecom:thirdpart:offline:" + uuid;
@@ -53,8 +56,20 @@ public class WeComAccountJob {
                                 "账号VID:" + staff.getThirdStaffId() + "\n" +
                                 "账号UUID:" + uuid + "\n" +
                                 "账号状态:已下线");
+                if (staff.getStatus() == ThirdPartWeComStaffStatusEnum.NORMAL.getVal()) {
+                    staff.setStatus(ThirdPartWeComStaffStatusEnum.OFFLINE.getVal());
+                    thirdPartWeComStaffMapper.updateByPrimaryKeySelective(staff);
+                }
             }
         }
         return ReturnT.SUCCESS;
     }
+
+    private List<ThirdPartWeComStaff> getCheckOnlineStaffList() {
+        List<Integer> statusList = Arrays.asList(ThirdPartWeComStaffStatusEnum.NORMAL.getVal(),
+                ThirdPartWeComStaffStatusEnum.OFFLINE.getVal());
+        ThirdPartWeComStaffExample example = new ThirdPartWeComStaffExample();
+        example.createCriteria().andStatusIn(statusList);
+        return thirdPartWeComStaffMapper.selectByExample(example);
+    }
 }

+ 10 - 6
api-module/src/main/java/com/tzld/piaoquan/api/job/wecom/thirdpart/WeComSendMsgJob.java

@@ -3,13 +3,12 @@ package com.tzld.piaoquan.api.job.wecom.thirdpart;
 import com.alibaba.fastjson.JSONObject;
 import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import com.tzld.piaoquan.api.common.enums.wecom.MsgSendStatusEnum;
 import com.tzld.piaoquan.api.component.VideoApiService;
 import com.tzld.piaoquan.api.dao.mapper.contentplatform.ext.ContentPlatformPlanMapperExt;
 import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComMsgMapper;
 import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComRoomMapper;
-import com.tzld.piaoquan.api.model.param.wecom.thirdpart.CdnUploadImgLinkRequest;
-import com.tzld.piaoquan.api.model.param.wecom.thirdpart.CdnUploadImgLinkResponse;
-import com.tzld.piaoquan.api.model.param.wecom.thirdpart.SendAppMsgRequest;
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.*;
 import com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformVideo;
 import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComMsg;
 import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComMsgExample;
@@ -104,9 +103,9 @@ public class WeComSendMsgJob {
                             // build发送体
                             SendAppMsgRequest request = buildSendAppMsgRequest(cgiReplyBucketData, staff, room);
                             // 发送消息
-                            weComThirdPartyService.sendAppMsg(request);
+                            CommonResponse<SendAppMsgResponse> response = weComThirdPartyService.sendAppMsg(staff, room, request);
                             // 存储消息
-                            saveWeComMsg(staff.getId(), cgiReplyBucketData.getMiniVideoId(), request);
+                            saveWeComMsg(staff.getId(), cgiReplyBucketData.getMiniVideoId(), request, response);
                         }
                     }
                 });
@@ -273,7 +272,7 @@ public class WeComSendMsgJob {
         return msgList.stream().map(ThirdPartWeComMsg::getVideoId).collect(Collectors.toList());
     }
 
-    private void saveWeComMsg(Long staffId, Long videoId, SendAppMsgRequest request) {
+    private void saveWeComMsg(Long staffId, Long videoId, SendAppMsgRequest request, CommonResponse<SendAppMsgResponse> response) {
         ThirdPartWeComMsg msg = new ThirdPartWeComMsg();
         msg.setStaffId(staffId);
         msg.setVideoId(videoId);
@@ -292,6 +291,11 @@ public class WeComSendMsgJob {
         msg.setMd5(request.getMd5());
         msg.setAeskey(request.getAeskey());
         msg.setFilesize(request.getFileSize());
+        if (response.getErrcode() == 0) {
+            msg.setStatus(MsgSendStatusEnum.NORMAL.getVal());
+        } else {
+            msg.setStatus(MsgSendStatusEnum.FAIL.getVal());
+        }
         msgMapper.insertSelective(msg);
     }
 

+ 8 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ExternalBusinessCardResponse.java

@@ -0,0 +1,8 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import lombok.Data;
+
+@Data
+public class ExternalBusinessCardResponse {
+    private String qr_image;
+}

+ 34 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyAccountConfigParam.java

@@ -0,0 +1,34 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ThirdPartyAccountConfigParam {
+
+    @ApiModelProperty(value = "投放场景")
+    private String putScene;
+    @ApiModelProperty(value = "渠道")
+    private String channel;
+    @ApiModelProperty(value = "是否开启(0否,1是)")
+    private Integer switchFlag;
+    @ApiModelProperty(value = "推送触发人数")
+    private Integer openRoomSendSwitchNum;
+    @ApiModelProperty(value = "主推送人员")
+    private Long primaryThirdStaffId;
+    @ApiModelProperty(value = "主推送人员名称")
+    private String primaryThirdStaffName;
+    @ApiModelProperty(value = "次推送人员")
+    private Long secondThirdStaffId;
+    @ApiModelProperty(value = "次推送人员名称")
+    private String secondThirdStaffName;
+    @ApiModelProperty(value = "任务列表")
+    private List<ThirdPartyAccountConfigTaskParam> taskList;
+    @ApiModelProperty(value = "配置同步 0-仅对新建群生效 1-所有群 2-指定群生效")
+    private Integer configSync;
+    @ApiModelProperty(value = "指定群生效列表")
+    private List<Long> configSyncRoomIdList;
+
+}

+ 19 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyAccountConfigTaskContentParam.java

@@ -0,0 +1,19 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ThirdPartyAccountConfigTaskContentParam {
+
+    @ApiModelProperty(value = "类型 0-文案 1-小程序")
+    private Integer type;
+    @ApiModelProperty(value = "文案内容")
+    private String content;
+    @ApiModelProperty(value = "小程序来源 0-热榜 1-标签 2-账号")
+    private Integer source;
+    @ApiModelProperty(value = "小程序来源内容 (标签/账号id)")
+    private String sourceContent;
+    @ApiModelProperty(value = "顺序")
+    private Integer seq;
+}

+ 21 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyAccountConfigTaskParam.java

@@ -0,0 +1,21 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ThirdPartyAccountConfigTaskParam {
+
+    @ApiModelProperty(value = "投放场景")
+    private Integer switchFlag;
+    @ApiModelProperty(value = "发送时间")
+    private List<String> sendTime;
+    @ApiModelProperty(value = "随机浮动分钟")
+    private Integer randomMin;
+    @ApiModelProperty(value = "顺序")
+    private Integer seq;
+    @ApiModelProperty(value = "发送内容列表")
+    private List<ThirdPartyAccountConfigTaskContentParam> contentList;
+}

+ 15 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyAccountListParam.java

@@ -0,0 +1,15 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ThirdPartyAccountListParam {
+
+    @ApiModelProperty(value = "企微主体名称")
+    private String corpName;
+    @ApiModelProperty(value = "账号名称")
+    private String accountName;
+    @ApiModelProperty(value = "手机号")
+    private String mobile;
+}

+ 10 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyAccountLogOutParam.java

@@ -0,0 +1,10 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ThirdPartyAccountLogOutParam {
+    @ApiModelProperty(value = "账号id")
+    private String id;
+}

+ 10 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyConfigGetParam.java

@@ -0,0 +1,10 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ThirdPartyConfigGetParam {
+    @ApiModelProperty(value = "id")
+    private Long id;
+}

+ 30 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyRoomConfigParam.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ThirdPartyRoomConfigParam {
+
+    @ApiModelProperty(value = "投放场景")
+    private String putScene;
+    @ApiModelProperty(value = "渠道")
+    private String channel;
+    @ApiModelProperty(value = "是否开启(0否,1是)")
+    private Integer switchFlag;
+    @ApiModelProperty(value = "推送触发人数")
+    private Integer openRoomSendSwitchNum;
+    @ApiModelProperty(value = "主推送人员")
+    private Long primaryThirdStaffId;
+    @ApiModelProperty(value = "主推送人员名称")
+    private String primaryThirdStaffName;
+    @ApiModelProperty(value = "次推送人员")
+    private Long secondThirdStaffId;
+    @ApiModelProperty(value = "次推送人员名称")
+    private String secondThirdStaffName;
+    @ApiModelProperty(value = "任务列表")
+    private List<ThirdPartyRoomConfigTaskParam> taskList;
+
+}

+ 19 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyRoomConfigTaskContentParam.java

@@ -0,0 +1,19 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ThirdPartyRoomConfigTaskContentParam {
+
+    @ApiModelProperty(value = "类型 0-文案 1-小程序")
+    private Integer type;
+    @ApiModelProperty(value = "文案内容")
+    private String content;
+    @ApiModelProperty(value = "小程序来源 0-热榜 1-标签 2-账号")
+    private Integer source;
+    @ApiModelProperty(value = "小程序来源内容 (标签/账号id)")
+    private String sourceContent;
+    @ApiModelProperty(value = "顺序")
+    private Integer seq;
+}

+ 21 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyRoomConfigTaskParam.java

@@ -0,0 +1,21 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ThirdPartyRoomConfigTaskParam {
+
+    @ApiModelProperty(value = "投放场景")
+    private Integer switchFlag;
+    @ApiModelProperty(value = "发送时间")
+    private List<String> sendTime;
+    @ApiModelProperty(value = "随机浮动分钟")
+    private Integer randomMin;
+    @ApiModelProperty(value = "顺序")
+    private Integer seq;
+    @ApiModelProperty(value = "发送内容列表")
+    private List<ThirdPartyRoomConfigTaskContentParam> contentList;
+}

+ 15 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/ThirdPartyRoomListParam.java

@@ -0,0 +1,15 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ThirdPartyRoomListParam {
+
+    @ApiModelProperty(value = "企微主体名称")
+    private String corpName;
+    @ApiModelProperty(value = "群主")
+    private String groupLeaderName;
+    @ApiModelProperty(value = "推送人员")
+    private String pushAccountName;
+}

+ 11 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComMsg.java

@@ -37,6 +37,8 @@ public class ThirdPartWeComMsg {
 
     private Boolean isroom;
 
+    private Integer status;
+
     private Date createTime;
 
     private String desc;
@@ -177,6 +179,14 @@ public class ThirdPartWeComMsg {
         this.isroom = isroom;
     }
 
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
     public Date getCreateTime() {
         return createTime;
     }
@@ -216,6 +226,7 @@ public class ThirdPartWeComMsg {
         sb.append(", aeskey=").append(aeskey);
         sb.append(", filesize=").append(filesize);
         sb.append(", isroom=").append(isroom);
+        sb.append(", status=").append(status);
         sb.append(", createTime=").append(createTime);
         sb.append(", desc=").append(desc);
         sb.append("]");

+ 60 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComMsgExample.java

@@ -1246,6 +1246,66 @@ public class ThirdPartWeComMsgExample {
             return (Criteria) this;
         }
 
+        public Criteria andStatusIsNull() {
+            addCriterion("`status` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNotNull() {
+            addCriterion("`status` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusEqualTo(Integer value) {
+            addCriterion("`status` =", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotEqualTo(Integer value) {
+            addCriterion("`status` <>", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThan(Integer value) {
+            addCriterion("`status` >", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("`status` >=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThan(Integer value) {
+            addCriterion("`status` <", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("`status` <=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIn(List<Integer> values) {
+            addCriterion("`status` in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotIn(List<Integer> values) {
+            addCriterion("`status` not in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusBetween(Integer value1, Integer value2) {
+            addCriterion("`status` between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("`status` not between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
         public Criteria andCreateTimeIsNull() {
             addCriterion("create_time is null");
             return (Criteria) this;

+ 125 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfig.java

@@ -0,0 +1,125 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import java.util.Date;
+
+public class ThirdPartWeComRoomConfig {
+    private String id;
+
+    private Long roomId;
+
+    private Integer accountConfigId;
+
+    private String putScene;
+
+    private String channel;
+
+    private Long primaryThirdStaffId;
+
+    private Long secondThirdStaffId;
+
+    private Integer status;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Long getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(Long roomId) {
+        this.roomId = roomId;
+    }
+
+    public Integer getAccountConfigId() {
+        return accountConfigId;
+    }
+
+    public void setAccountConfigId(Integer accountConfigId) {
+        this.accountConfigId = accountConfigId;
+    }
+
+    public String getPutScene() {
+        return putScene;
+    }
+
+    public void setPutScene(String putScene) {
+        this.putScene = putScene;
+    }
+
+    public String getChannel() {
+        return channel;
+    }
+
+    public void setChannel(String channel) {
+        this.channel = channel;
+    }
+
+    public Long getPrimaryThirdStaffId() {
+        return primaryThirdStaffId;
+    }
+
+    public void setPrimaryThirdStaffId(Long primaryThirdStaffId) {
+        this.primaryThirdStaffId = primaryThirdStaffId;
+    }
+
+    public Long getSecondThirdStaffId() {
+        return secondThirdStaffId;
+    }
+
+    public void setSecondThirdStaffId(Long secondThirdStaffId) {
+        this.secondThirdStaffId = secondThirdStaffId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", roomId=").append(roomId);
+        sb.append(", accountConfigId=").append(accountConfigId);
+        sb.append(", putScene=").append(putScene);
+        sb.append(", channel=").append(channel);
+        sb.append(", primaryThirdStaffId=").append(primaryThirdStaffId);
+        sb.append(", secondThirdStaffId=").append(secondThirdStaffId);
+        sb.append(", status=").append(status);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 842 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfigExample.java

@@ -0,0 +1,842 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class ThirdPartWeComRoomConfigExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public ThirdPartWeComRoomConfigExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(String value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(String value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(String value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(String value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(String value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(String value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLike(String value) {
+            addCriterion("id like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotLike(String value) {
+            addCriterion("id not like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<String> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<String> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(String value1, String value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(String value1, String value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdIsNull() {
+            addCriterion("room_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdIsNotNull() {
+            addCriterion("room_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdEqualTo(Long value) {
+            addCriterion("room_id =", value, "roomId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdNotEqualTo(Long value) {
+            addCriterion("room_id <>", value, "roomId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdGreaterThan(Long value) {
+            addCriterion("room_id >", value, "roomId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("room_id >=", value, "roomId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdLessThan(Long value) {
+            addCriterion("room_id <", value, "roomId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdLessThanOrEqualTo(Long value) {
+            addCriterion("room_id <=", value, "roomId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdIn(List<Long> values) {
+            addCriterion("room_id in", values, "roomId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdNotIn(List<Long> values) {
+            addCriterion("room_id not in", values, "roomId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdBetween(Long value1, Long value2) {
+            addCriterion("room_id between", value1, value2, "roomId");
+            return (Criteria) this;
+        }
+
+        public Criteria andRoomIdNotBetween(Long value1, Long value2) {
+            addCriterion("room_id not between", value1, value2, "roomId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdIsNull() {
+            addCriterion("account_config_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdIsNotNull() {
+            addCriterion("account_config_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdEqualTo(Integer value) {
+            addCriterion("account_config_id =", value, "accountConfigId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdNotEqualTo(Integer value) {
+            addCriterion("account_config_id <>", value, "accountConfigId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdGreaterThan(Integer value) {
+            addCriterion("account_config_id >", value, "accountConfigId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("account_config_id >=", value, "accountConfigId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdLessThan(Integer value) {
+            addCriterion("account_config_id <", value, "accountConfigId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdLessThanOrEqualTo(Integer value) {
+            addCriterion("account_config_id <=", value, "accountConfigId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdIn(List<Integer> values) {
+            addCriterion("account_config_id in", values, "accountConfigId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdNotIn(List<Integer> values) {
+            addCriterion("account_config_id not in", values, "accountConfigId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdBetween(Integer value1, Integer value2) {
+            addCriterion("account_config_id between", value1, value2, "accountConfigId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountConfigIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("account_config_id not between", value1, value2, "accountConfigId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneIsNull() {
+            addCriterion("put_scene is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneIsNotNull() {
+            addCriterion("put_scene is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneEqualTo(String value) {
+            addCriterion("put_scene =", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneNotEqualTo(String value) {
+            addCriterion("put_scene <>", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneGreaterThan(String value) {
+            addCriterion("put_scene >", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneGreaterThanOrEqualTo(String value) {
+            addCriterion("put_scene >=", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneLessThan(String value) {
+            addCriterion("put_scene <", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneLessThanOrEqualTo(String value) {
+            addCriterion("put_scene <=", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneLike(String value) {
+            addCriterion("put_scene like", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneNotLike(String value) {
+            addCriterion("put_scene not like", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneIn(List<String> values) {
+            addCriterion("put_scene in", values, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneNotIn(List<String> values) {
+            addCriterion("put_scene not in", values, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneBetween(String value1, String value2) {
+            addCriterion("put_scene between", value1, value2, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneNotBetween(String value1, String value2) {
+            addCriterion("put_scene not between", value1, value2, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIsNull() {
+            addCriterion("channel is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIsNotNull() {
+            addCriterion("channel is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelEqualTo(String value) {
+            addCriterion("channel =", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotEqualTo(String value) {
+            addCriterion("channel <>", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelGreaterThan(String value) {
+            addCriterion("channel >", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelGreaterThanOrEqualTo(String value) {
+            addCriterion("channel >=", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelLessThan(String value) {
+            addCriterion("channel <", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelLessThanOrEqualTo(String value) {
+            addCriterion("channel <=", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelLike(String value) {
+            addCriterion("channel like", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotLike(String value) {
+            addCriterion("channel not like", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIn(List<String> values) {
+            addCriterion("channel in", values, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotIn(List<String> values) {
+            addCriterion("channel not in", values, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelBetween(String value1, String value2) {
+            addCriterion("channel between", value1, value2, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotBetween(String value1, String value2) {
+            addCriterion("channel not between", value1, value2, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdIsNull() {
+            addCriterion("primary_third_staff_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdIsNotNull() {
+            addCriterion("primary_third_staff_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdEqualTo(Long value) {
+            addCriterion("primary_third_staff_id =", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdNotEqualTo(Long value) {
+            addCriterion("primary_third_staff_id <>", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdGreaterThan(Long value) {
+            addCriterion("primary_third_staff_id >", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("primary_third_staff_id >=", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdLessThan(Long value) {
+            addCriterion("primary_third_staff_id <", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdLessThanOrEqualTo(Long value) {
+            addCriterion("primary_third_staff_id <=", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdIn(List<Long> values) {
+            addCriterion("primary_third_staff_id in", values, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdNotIn(List<Long> values) {
+            addCriterion("primary_third_staff_id not in", values, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdBetween(Long value1, Long value2) {
+            addCriterion("primary_third_staff_id between", value1, value2, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdNotBetween(Long value1, Long value2) {
+            addCriterion("primary_third_staff_id not between", value1, value2, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdIsNull() {
+            addCriterion("second_third_staff_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdIsNotNull() {
+            addCriterion("second_third_staff_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdEqualTo(Long value) {
+            addCriterion("second_third_staff_id =", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdNotEqualTo(Long value) {
+            addCriterion("second_third_staff_id <>", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdGreaterThan(Long value) {
+            addCriterion("second_third_staff_id >", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("second_third_staff_id >=", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdLessThan(Long value) {
+            addCriterion("second_third_staff_id <", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdLessThanOrEqualTo(Long value) {
+            addCriterion("second_third_staff_id <=", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdIn(List<Long> values) {
+            addCriterion("second_third_staff_id in", values, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdNotIn(List<Long> values) {
+            addCriterion("second_third_staff_id not in", values, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdBetween(Long value1, Long value2) {
+            addCriterion("second_third_staff_id between", value1, value2, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdNotBetween(Long value1, Long value2) {
+            addCriterion("second_third_staff_id not between", value1, value2, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNull() {
+            addCriterion("`status` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNotNull() {
+            addCriterion("`status` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusEqualTo(Integer value) {
+            addCriterion("`status` =", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotEqualTo(Integer value) {
+            addCriterion("`status` <>", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThan(Integer value) {
+            addCriterion("`status` >", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("`status` >=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThan(Integer value) {
+            addCriterion("`status` <", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("`status` <=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIn(List<Integer> values) {
+            addCriterion("`status` in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotIn(List<Integer> values) {
+            addCriterion("`status` not in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusBetween(Integer value1, Integer value2) {
+            addCriterion("`status` between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("`status` not between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 103 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfigTask.java

@@ -0,0 +1,103 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import java.util.Date;
+
+public class ThirdPartWeComRoomConfigTask {
+    private String id;
+
+    private String configId;
+
+    private Integer switchFlag;
+
+    private String sendTime;
+
+    private Integer randomMin;
+
+    private Integer seq;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getConfigId() {
+        return configId;
+    }
+
+    public void setConfigId(String configId) {
+        this.configId = configId;
+    }
+
+    public Integer getSwitchFlag() {
+        return switchFlag;
+    }
+
+    public void setSwitchFlag(Integer switchFlag) {
+        this.switchFlag = switchFlag;
+    }
+
+    public String getSendTime() {
+        return sendTime;
+    }
+
+    public void setSendTime(String sendTime) {
+        this.sendTime = sendTime;
+    }
+
+    public Integer getRandomMin() {
+        return randomMin;
+    }
+
+    public void setRandomMin(Integer randomMin) {
+        this.randomMin = randomMin;
+    }
+
+    public Integer getSeq() {
+        return seq;
+    }
+
+    public void setSeq(Integer seq) {
+        this.seq = seq;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", configId=").append(configId);
+        sb.append(", switchFlag=").append(switchFlag);
+        sb.append(", sendTime=").append(sendTime);
+        sb.append(", randomMin=").append(randomMin);
+        sb.append(", seq=").append(seq);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 114 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfigTaskContent.java

@@ -0,0 +1,114 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import java.util.Date;
+
+public class ThirdPartWeComRoomConfigTaskContent {
+    private String id;
+
+    private String taskId;
+
+    private Integer type;
+
+    private String content;
+
+    private Integer source;
+
+    private String sourceContent;
+
+    private Integer seq;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getSource() {
+        return source;
+    }
+
+    public void setSource(Integer source) {
+        this.source = source;
+    }
+
+    public String getSourceContent() {
+        return sourceContent;
+    }
+
+    public void setSourceContent(String sourceContent) {
+        this.sourceContent = sourceContent;
+    }
+
+    public Integer getSeq() {
+        return seq;
+    }
+
+    public void setSeq(Integer seq) {
+        this.seq = seq;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", taskId=").append(taskId);
+        sb.append(", type=").append(type);
+        sb.append(", content=").append(content);
+        sb.append(", source=").append(source);
+        sb.append(", sourceContent=").append(sourceContent);
+        sb.append(", seq=").append(seq);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 792 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfigTaskContentExample.java

@@ -0,0 +1,792 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class ThirdPartWeComRoomConfigTaskContentExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public ThirdPartWeComRoomConfigTaskContentExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(String value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(String value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(String value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(String value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(String value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(String value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLike(String value) {
+            addCriterion("id like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotLike(String value) {
+            addCriterion("id not like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<String> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<String> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(String value1, String value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(String value1, String value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdIsNull() {
+            addCriterion("task_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdIsNotNull() {
+            addCriterion("task_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdEqualTo(String value) {
+            addCriterion("task_id =", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdNotEqualTo(String value) {
+            addCriterion("task_id <>", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdGreaterThan(String value) {
+            addCriterion("task_id >", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdGreaterThanOrEqualTo(String value) {
+            addCriterion("task_id >=", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdLessThan(String value) {
+            addCriterion("task_id <", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdLessThanOrEqualTo(String value) {
+            addCriterion("task_id <=", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdLike(String value) {
+            addCriterion("task_id like", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdNotLike(String value) {
+            addCriterion("task_id not like", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdIn(List<String> values) {
+            addCriterion("task_id in", values, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdNotIn(List<String> values) {
+            addCriterion("task_id not in", values, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdBetween(String value1, String value2) {
+            addCriterion("task_id between", value1, value2, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdNotBetween(String value1, String value2) {
+            addCriterion("task_id not between", value1, value2, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeIsNull() {
+            addCriterion("`type` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeIsNotNull() {
+            addCriterion("`type` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeEqualTo(Integer value) {
+            addCriterion("`type` =", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotEqualTo(Integer value) {
+            addCriterion("`type` <>", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeGreaterThan(Integer value) {
+            addCriterion("`type` >", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("`type` >=", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeLessThan(Integer value) {
+            addCriterion("`type` <", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeLessThanOrEqualTo(Integer value) {
+            addCriterion("`type` <=", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeIn(List<Integer> values) {
+            addCriterion("`type` in", values, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotIn(List<Integer> values) {
+            addCriterion("`type` not in", values, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeBetween(Integer value1, Integer value2) {
+            addCriterion("`type` between", value1, value2, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotBetween(Integer value1, Integer value2) {
+            addCriterion("`type` not between", value1, value2, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIsNull() {
+            addCriterion("content is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIsNotNull() {
+            addCriterion("content is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentEqualTo(String value) {
+            addCriterion("content =", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentNotEqualTo(String value) {
+            addCriterion("content <>", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentGreaterThan(String value) {
+            addCriterion("content >", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentGreaterThanOrEqualTo(String value) {
+            addCriterion("content >=", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentLessThan(String value) {
+            addCriterion("content <", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentLessThanOrEqualTo(String value) {
+            addCriterion("content <=", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentLike(String value) {
+            addCriterion("content like", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentNotLike(String value) {
+            addCriterion("content not like", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIn(List<String> values) {
+            addCriterion("content in", values, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentNotIn(List<String> values) {
+            addCriterion("content not in", values, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentBetween(String value1, String value2) {
+            addCriterion("content between", value1, value2, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentNotBetween(String value1, String value2) {
+            addCriterion("content not between", value1, value2, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIsNull() {
+            addCriterion("`source` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIsNotNull() {
+            addCriterion("`source` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceEqualTo(Integer value) {
+            addCriterion("`source` =", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotEqualTo(Integer value) {
+            addCriterion("`source` <>", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceGreaterThan(Integer value) {
+            addCriterion("`source` >", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceGreaterThanOrEqualTo(Integer value) {
+            addCriterion("`source` >=", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceLessThan(Integer value) {
+            addCriterion("`source` <", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceLessThanOrEqualTo(Integer value) {
+            addCriterion("`source` <=", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIn(List<Integer> values) {
+            addCriterion("`source` in", values, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotIn(List<Integer> values) {
+            addCriterion("`source` not in", values, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceBetween(Integer value1, Integer value2) {
+            addCriterion("`source` between", value1, value2, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotBetween(Integer value1, Integer value2) {
+            addCriterion("`source` not between", value1, value2, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentIsNull() {
+            addCriterion("source_content is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentIsNotNull() {
+            addCriterion("source_content is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentEqualTo(String value) {
+            addCriterion("source_content =", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentNotEqualTo(String value) {
+            addCriterion("source_content <>", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentGreaterThan(String value) {
+            addCriterion("source_content >", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentGreaterThanOrEqualTo(String value) {
+            addCriterion("source_content >=", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentLessThan(String value) {
+            addCriterion("source_content <", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentLessThanOrEqualTo(String value) {
+            addCriterion("source_content <=", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentLike(String value) {
+            addCriterion("source_content like", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentNotLike(String value) {
+            addCriterion("source_content not like", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentIn(List<String> values) {
+            addCriterion("source_content in", values, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentNotIn(List<String> values) {
+            addCriterion("source_content not in", values, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentBetween(String value1, String value2) {
+            addCriterion("source_content between", value1, value2, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentNotBetween(String value1, String value2) {
+            addCriterion("source_content not between", value1, value2, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIsNull() {
+            addCriterion("seq is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIsNotNull() {
+            addCriterion("seq is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqEqualTo(Integer value) {
+            addCriterion("seq =", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotEqualTo(Integer value) {
+            addCriterion("seq <>", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqGreaterThan(Integer value) {
+            addCriterion("seq >", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqGreaterThanOrEqualTo(Integer value) {
+            addCriterion("seq >=", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqLessThan(Integer value) {
+            addCriterion("seq <", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqLessThanOrEqualTo(Integer value) {
+            addCriterion("seq <=", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIn(List<Integer> values) {
+            addCriterion("seq in", values, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotIn(List<Integer> values) {
+            addCriterion("seq not in", values, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqBetween(Integer value1, Integer value2) {
+            addCriterion("seq between", value1, value2, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotBetween(Integer value1, Integer value2) {
+            addCriterion("seq not between", value1, value2, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 722 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComRoomConfigTaskExample.java

@@ -0,0 +1,722 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class ThirdPartWeComRoomConfigTaskExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public ThirdPartWeComRoomConfigTaskExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(String value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(String value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(String value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(String value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(String value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(String value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLike(String value) {
+            addCriterion("id like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotLike(String value) {
+            addCriterion("id not like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<String> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<String> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(String value1, String value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(String value1, String value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdIsNull() {
+            addCriterion("config_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdIsNotNull() {
+            addCriterion("config_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdEqualTo(String value) {
+            addCriterion("config_id =", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdNotEqualTo(String value) {
+            addCriterion("config_id <>", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdGreaterThan(String value) {
+            addCriterion("config_id >", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdGreaterThanOrEqualTo(String value) {
+            addCriterion("config_id >=", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdLessThan(String value) {
+            addCriterion("config_id <", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdLessThanOrEqualTo(String value) {
+            addCriterion("config_id <=", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdLike(String value) {
+            addCriterion("config_id like", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdNotLike(String value) {
+            addCriterion("config_id not like", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdIn(List<String> values) {
+            addCriterion("config_id in", values, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdNotIn(List<String> values) {
+            addCriterion("config_id not in", values, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdBetween(String value1, String value2) {
+            addCriterion("config_id between", value1, value2, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdNotBetween(String value1, String value2) {
+            addCriterion("config_id not between", value1, value2, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagIsNull() {
+            addCriterion("switch_flag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagIsNotNull() {
+            addCriterion("switch_flag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagEqualTo(Integer value) {
+            addCriterion("switch_flag =", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagNotEqualTo(Integer value) {
+            addCriterion("switch_flag <>", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagGreaterThan(Integer value) {
+            addCriterion("switch_flag >", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("switch_flag >=", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagLessThan(Integer value) {
+            addCriterion("switch_flag <", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagLessThanOrEqualTo(Integer value) {
+            addCriterion("switch_flag <=", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagIn(List<Integer> values) {
+            addCriterion("switch_flag in", values, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagNotIn(List<Integer> values) {
+            addCriterion("switch_flag not in", values, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagBetween(Integer value1, Integer value2) {
+            addCriterion("switch_flag between", value1, value2, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagNotBetween(Integer value1, Integer value2) {
+            addCriterion("switch_flag not between", value1, value2, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeIsNull() {
+            addCriterion("send_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeIsNotNull() {
+            addCriterion("send_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeEqualTo(String value) {
+            addCriterion("send_time =", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeNotEqualTo(String value) {
+            addCriterion("send_time <>", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeGreaterThan(String value) {
+            addCriterion("send_time >", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeGreaterThanOrEqualTo(String value) {
+            addCriterion("send_time >=", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeLessThan(String value) {
+            addCriterion("send_time <", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeLessThanOrEqualTo(String value) {
+            addCriterion("send_time <=", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeLike(String value) {
+            addCriterion("send_time like", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeNotLike(String value) {
+            addCriterion("send_time not like", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeIn(List<String> values) {
+            addCriterion("send_time in", values, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeNotIn(List<String> values) {
+            addCriterion("send_time not in", values, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeBetween(String value1, String value2) {
+            addCriterion("send_time between", value1, value2, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeNotBetween(String value1, String value2) {
+            addCriterion("send_time not between", value1, value2, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinIsNull() {
+            addCriterion("random_min is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinIsNotNull() {
+            addCriterion("random_min is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinEqualTo(Integer value) {
+            addCriterion("random_min =", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinNotEqualTo(Integer value) {
+            addCriterion("random_min <>", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinGreaterThan(Integer value) {
+            addCriterion("random_min >", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinGreaterThanOrEqualTo(Integer value) {
+            addCriterion("random_min >=", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinLessThan(Integer value) {
+            addCriterion("random_min <", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinLessThanOrEqualTo(Integer value) {
+            addCriterion("random_min <=", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinIn(List<Integer> values) {
+            addCriterion("random_min in", values, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinNotIn(List<Integer> values) {
+            addCriterion("random_min not in", values, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinBetween(Integer value1, Integer value2) {
+            addCriterion("random_min between", value1, value2, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinNotBetween(Integer value1, Integer value2) {
+            addCriterion("random_min not between", value1, value2, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIsNull() {
+            addCriterion("seq is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIsNotNull() {
+            addCriterion("seq is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqEqualTo(Integer value) {
+            addCriterion("seq =", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotEqualTo(Integer value) {
+            addCriterion("seq <>", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqGreaterThan(Integer value) {
+            addCriterion("seq >", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqGreaterThanOrEqualTo(Integer value) {
+            addCriterion("seq >=", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqLessThan(Integer value) {
+            addCriterion("seq <", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqLessThanOrEqualTo(Integer value) {
+            addCriterion("seq <=", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIn(List<Integer> values) {
+            addCriterion("seq in", values, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotIn(List<Integer> values) {
+            addCriterion("seq not in", values, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqBetween(Integer value1, Integer value2) {
+            addCriterion("seq between", value1, value2, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotBetween(Integer value1, Integer value2) {
+            addCriterion("seq not between", value1, value2, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 11 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaff.java

@@ -17,6 +17,8 @@ public class ThirdPartWeComStaff {
 
     private String avatar;
 
+    private String qrImage;
+
     private Integer status;
 
     private Integer autoCreateRoom;
@@ -81,6 +83,14 @@ public class ThirdPartWeComStaff {
         this.avatar = avatar;
     }
 
+    public String getQrImage() {
+        return qrImage;
+    }
+
+    public void setQrImage(String qrImage) {
+        this.qrImage = qrImage;
+    }
+
     public Integer getStatus() {
         return status;
     }
@@ -126,6 +136,7 @@ public class ThirdPartWeComStaff {
         sb.append(", thirdStaffId=").append(thirdStaffId);
         sb.append(", thirdUuid=").append(thirdUuid);
         sb.append(", avatar=").append(avatar);
+        sb.append(", qrImage=").append(qrImage);
         sb.append(", status=").append(status);
         sb.append(", autoCreateRoom=").append(autoCreateRoom);
         sb.append(", createTime=").append(createTime);

+ 136 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfig.java

@@ -0,0 +1,136 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import java.util.Date;
+
+public class ThirdPartWeComStaffConfig {
+    private String id;
+
+    private Long staffId;
+
+    private String putScene;
+
+    private String channel;
+
+    private Integer switchFlag;
+
+    private Integer openRoomSendSwitchNum;
+
+    private Long primaryThirdStaffId;
+
+    private Long secondThirdStaffId;
+
+    private Integer status;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Long getStaffId() {
+        return staffId;
+    }
+
+    public void setStaffId(Long staffId) {
+        this.staffId = staffId;
+    }
+
+    public String getPutScene() {
+        return putScene;
+    }
+
+    public void setPutScene(String putScene) {
+        this.putScene = putScene;
+    }
+
+    public String getChannel() {
+        return channel;
+    }
+
+    public void setChannel(String channel) {
+        this.channel = channel;
+    }
+
+    public Integer getSwitchFlag() {
+        return switchFlag;
+    }
+
+    public void setSwitchFlag(Integer switchFlag) {
+        this.switchFlag = switchFlag;
+    }
+
+    public Integer getOpenRoomSendSwitchNum() {
+        return openRoomSendSwitchNum;
+    }
+
+    public void setOpenRoomSendSwitchNum(Integer openRoomSendSwitchNum) {
+        this.openRoomSendSwitchNum = openRoomSendSwitchNum;
+    }
+
+    public Long getPrimaryThirdStaffId() {
+        return primaryThirdStaffId;
+    }
+
+    public void setPrimaryThirdStaffId(Long primaryThirdStaffId) {
+        this.primaryThirdStaffId = primaryThirdStaffId;
+    }
+
+    public Long getSecondThirdStaffId() {
+        return secondThirdStaffId;
+    }
+
+    public void setSecondThirdStaffId(Long secondThirdStaffId) {
+        this.secondThirdStaffId = secondThirdStaffId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", staffId=").append(staffId);
+        sb.append(", putScene=").append(putScene);
+        sb.append(", channel=").append(channel);
+        sb.append(", switchFlag=").append(switchFlag);
+        sb.append(", openRoomSendSwitchNum=").append(openRoomSendSwitchNum);
+        sb.append(", primaryThirdStaffId=").append(primaryThirdStaffId);
+        sb.append(", secondThirdStaffId=").append(secondThirdStaffId);
+        sb.append(", status=").append(status);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 902 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfigExample.java

@@ -0,0 +1,902 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class ThirdPartWeComStaffConfigExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public ThirdPartWeComStaffConfigExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(String value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(String value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(String value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(String value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(String value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(String value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLike(String value) {
+            addCriterion("id like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotLike(String value) {
+            addCriterion("id not like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<String> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<String> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(String value1, String value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(String value1, String value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdIsNull() {
+            addCriterion("staff_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdIsNotNull() {
+            addCriterion("staff_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdEqualTo(Long value) {
+            addCriterion("staff_id =", value, "staffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdNotEqualTo(Long value) {
+            addCriterion("staff_id <>", value, "staffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdGreaterThan(Long value) {
+            addCriterion("staff_id >", value, "staffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("staff_id >=", value, "staffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdLessThan(Long value) {
+            addCriterion("staff_id <", value, "staffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdLessThanOrEqualTo(Long value) {
+            addCriterion("staff_id <=", value, "staffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdIn(List<Long> values) {
+            addCriterion("staff_id in", values, "staffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdNotIn(List<Long> values) {
+            addCriterion("staff_id not in", values, "staffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdBetween(Long value1, Long value2) {
+            addCriterion("staff_id between", value1, value2, "staffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStaffIdNotBetween(Long value1, Long value2) {
+            addCriterion("staff_id not between", value1, value2, "staffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneIsNull() {
+            addCriterion("put_scene is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneIsNotNull() {
+            addCriterion("put_scene is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneEqualTo(String value) {
+            addCriterion("put_scene =", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneNotEqualTo(String value) {
+            addCriterion("put_scene <>", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneGreaterThan(String value) {
+            addCriterion("put_scene >", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneGreaterThanOrEqualTo(String value) {
+            addCriterion("put_scene >=", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneLessThan(String value) {
+            addCriterion("put_scene <", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneLessThanOrEqualTo(String value) {
+            addCriterion("put_scene <=", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneLike(String value) {
+            addCriterion("put_scene like", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneNotLike(String value) {
+            addCriterion("put_scene not like", value, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneIn(List<String> values) {
+            addCriterion("put_scene in", values, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneNotIn(List<String> values) {
+            addCriterion("put_scene not in", values, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneBetween(String value1, String value2) {
+            addCriterion("put_scene between", value1, value2, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andPutSceneNotBetween(String value1, String value2) {
+            addCriterion("put_scene not between", value1, value2, "putScene");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIsNull() {
+            addCriterion("channel is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIsNotNull() {
+            addCriterion("channel is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelEqualTo(String value) {
+            addCriterion("channel =", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotEqualTo(String value) {
+            addCriterion("channel <>", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelGreaterThan(String value) {
+            addCriterion("channel >", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelGreaterThanOrEqualTo(String value) {
+            addCriterion("channel >=", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelLessThan(String value) {
+            addCriterion("channel <", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelLessThanOrEqualTo(String value) {
+            addCriterion("channel <=", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelLike(String value) {
+            addCriterion("channel like", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotLike(String value) {
+            addCriterion("channel not like", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIn(List<String> values) {
+            addCriterion("channel in", values, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotIn(List<String> values) {
+            addCriterion("channel not in", values, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelBetween(String value1, String value2) {
+            addCriterion("channel between", value1, value2, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotBetween(String value1, String value2) {
+            addCriterion("channel not between", value1, value2, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagIsNull() {
+            addCriterion("switch_flag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagIsNotNull() {
+            addCriterion("switch_flag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagEqualTo(Integer value) {
+            addCriterion("switch_flag =", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagNotEqualTo(Integer value) {
+            addCriterion("switch_flag <>", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagGreaterThan(Integer value) {
+            addCriterion("switch_flag >", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("switch_flag >=", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagLessThan(Integer value) {
+            addCriterion("switch_flag <", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagLessThanOrEqualTo(Integer value) {
+            addCriterion("switch_flag <=", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagIn(List<Integer> values) {
+            addCriterion("switch_flag in", values, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagNotIn(List<Integer> values) {
+            addCriterion("switch_flag not in", values, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagBetween(Integer value1, Integer value2) {
+            addCriterion("switch_flag between", value1, value2, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagNotBetween(Integer value1, Integer value2) {
+            addCriterion("switch_flag not between", value1, value2, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumIsNull() {
+            addCriterion("open_room_send_switch_num is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumIsNotNull() {
+            addCriterion("open_room_send_switch_num is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumEqualTo(Integer value) {
+            addCriterion("open_room_send_switch_num =", value, "openRoomSendSwitchNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumNotEqualTo(Integer value) {
+            addCriterion("open_room_send_switch_num <>", value, "openRoomSendSwitchNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumGreaterThan(Integer value) {
+            addCriterion("open_room_send_switch_num >", value, "openRoomSendSwitchNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumGreaterThanOrEqualTo(Integer value) {
+            addCriterion("open_room_send_switch_num >=", value, "openRoomSendSwitchNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumLessThan(Integer value) {
+            addCriterion("open_room_send_switch_num <", value, "openRoomSendSwitchNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumLessThanOrEqualTo(Integer value) {
+            addCriterion("open_room_send_switch_num <=", value, "openRoomSendSwitchNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumIn(List<Integer> values) {
+            addCriterion("open_room_send_switch_num in", values, "openRoomSendSwitchNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumNotIn(List<Integer> values) {
+            addCriterion("open_room_send_switch_num not in", values, "openRoomSendSwitchNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumBetween(Integer value1, Integer value2) {
+            addCriterion("open_room_send_switch_num between", value1, value2, "openRoomSendSwitchNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenRoomSendSwitchNumNotBetween(Integer value1, Integer value2) {
+            addCriterion("open_room_send_switch_num not between", value1, value2, "openRoomSendSwitchNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdIsNull() {
+            addCriterion("primary_third_staff_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdIsNotNull() {
+            addCriterion("primary_third_staff_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdEqualTo(Long value) {
+            addCriterion("primary_third_staff_id =", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdNotEqualTo(Long value) {
+            addCriterion("primary_third_staff_id <>", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdGreaterThan(Long value) {
+            addCriterion("primary_third_staff_id >", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("primary_third_staff_id >=", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdLessThan(Long value) {
+            addCriterion("primary_third_staff_id <", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdLessThanOrEqualTo(Long value) {
+            addCriterion("primary_third_staff_id <=", value, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdIn(List<Long> values) {
+            addCriterion("primary_third_staff_id in", values, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdNotIn(List<Long> values) {
+            addCriterion("primary_third_staff_id not in", values, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdBetween(Long value1, Long value2) {
+            addCriterion("primary_third_staff_id between", value1, value2, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPrimaryThirdStaffIdNotBetween(Long value1, Long value2) {
+            addCriterion("primary_third_staff_id not between", value1, value2, "primaryThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdIsNull() {
+            addCriterion("second_third_staff_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdIsNotNull() {
+            addCriterion("second_third_staff_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdEqualTo(Long value) {
+            addCriterion("second_third_staff_id =", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdNotEqualTo(Long value) {
+            addCriterion("second_third_staff_id <>", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdGreaterThan(Long value) {
+            addCriterion("second_third_staff_id >", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("second_third_staff_id >=", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdLessThan(Long value) {
+            addCriterion("second_third_staff_id <", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdLessThanOrEqualTo(Long value) {
+            addCriterion("second_third_staff_id <=", value, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdIn(List<Long> values) {
+            addCriterion("second_third_staff_id in", values, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdNotIn(List<Long> values) {
+            addCriterion("second_third_staff_id not in", values, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdBetween(Long value1, Long value2) {
+            addCriterion("second_third_staff_id between", value1, value2, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSecondThirdStaffIdNotBetween(Long value1, Long value2) {
+            addCriterion("second_third_staff_id not between", value1, value2, "secondThirdStaffId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNull() {
+            addCriterion("`status` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNotNull() {
+            addCriterion("`status` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusEqualTo(Integer value) {
+            addCriterion("`status` =", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotEqualTo(Integer value) {
+            addCriterion("`status` <>", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThan(Integer value) {
+            addCriterion("`status` >", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("`status` >=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThan(Integer value) {
+            addCriterion("`status` <", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("`status` <=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIn(List<Integer> values) {
+            addCriterion("`status` in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotIn(List<Integer> values) {
+            addCriterion("`status` not in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusBetween(Integer value1, Integer value2) {
+            addCriterion("`status` between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("`status` not between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 103 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfigTask.java

@@ -0,0 +1,103 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import java.util.Date;
+
+public class ThirdPartWeComStaffConfigTask {
+    private String id;
+
+    private String configId;
+
+    private Integer switchFlag;
+
+    private String sendTime;
+
+    private Integer randomMin;
+
+    private Integer seq;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getConfigId() {
+        return configId;
+    }
+
+    public void setConfigId(String configId) {
+        this.configId = configId;
+    }
+
+    public Integer getSwitchFlag() {
+        return switchFlag;
+    }
+
+    public void setSwitchFlag(Integer switchFlag) {
+        this.switchFlag = switchFlag;
+    }
+
+    public String getSendTime() {
+        return sendTime;
+    }
+
+    public void setSendTime(String sendTime) {
+        this.sendTime = sendTime;
+    }
+
+    public Integer getRandomMin() {
+        return randomMin;
+    }
+
+    public void setRandomMin(Integer randomMin) {
+        this.randomMin = randomMin;
+    }
+
+    public Integer getSeq() {
+        return seq;
+    }
+
+    public void setSeq(Integer seq) {
+        this.seq = seq;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", configId=").append(configId);
+        sb.append(", switchFlag=").append(switchFlag);
+        sb.append(", sendTime=").append(sendTime);
+        sb.append(", randomMin=").append(randomMin);
+        sb.append(", seq=").append(seq);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 114 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfigTaskContent.java

@@ -0,0 +1,114 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import java.util.Date;
+
+public class ThirdPartWeComStaffConfigTaskContent {
+    private String id;
+
+    private String taskId;
+
+    private Integer type;
+
+    private String content;
+
+    private Integer source;
+
+    private String sourceContent;
+
+    private Integer seq;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getSource() {
+        return source;
+    }
+
+    public void setSource(Integer source) {
+        this.source = source;
+    }
+
+    public String getSourceContent() {
+        return sourceContent;
+    }
+
+    public void setSourceContent(String sourceContent) {
+        this.sourceContent = sourceContent;
+    }
+
+    public Integer getSeq() {
+        return seq;
+    }
+
+    public void setSeq(Integer seq) {
+        this.seq = seq;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", taskId=").append(taskId);
+        sb.append(", type=").append(type);
+        sb.append(", content=").append(content);
+        sb.append(", source=").append(source);
+        sb.append(", sourceContent=").append(sourceContent);
+        sb.append(", seq=").append(seq);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 792 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfigTaskContentExample.java

@@ -0,0 +1,792 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class ThirdPartWeComStaffConfigTaskContentExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public ThirdPartWeComStaffConfigTaskContentExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(String value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(String value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(String value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(String value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(String value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(String value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLike(String value) {
+            addCriterion("id like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotLike(String value) {
+            addCriterion("id not like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<String> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<String> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(String value1, String value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(String value1, String value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdIsNull() {
+            addCriterion("task_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdIsNotNull() {
+            addCriterion("task_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdEqualTo(String value) {
+            addCriterion("task_id =", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdNotEqualTo(String value) {
+            addCriterion("task_id <>", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdGreaterThan(String value) {
+            addCriterion("task_id >", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdGreaterThanOrEqualTo(String value) {
+            addCriterion("task_id >=", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdLessThan(String value) {
+            addCriterion("task_id <", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdLessThanOrEqualTo(String value) {
+            addCriterion("task_id <=", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdLike(String value) {
+            addCriterion("task_id like", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdNotLike(String value) {
+            addCriterion("task_id not like", value, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdIn(List<String> values) {
+            addCriterion("task_id in", values, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdNotIn(List<String> values) {
+            addCriterion("task_id not in", values, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdBetween(String value1, String value2) {
+            addCriterion("task_id between", value1, value2, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTaskIdNotBetween(String value1, String value2) {
+            addCriterion("task_id not between", value1, value2, "taskId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeIsNull() {
+            addCriterion("`type` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeIsNotNull() {
+            addCriterion("`type` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeEqualTo(Integer value) {
+            addCriterion("`type` =", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotEqualTo(Integer value) {
+            addCriterion("`type` <>", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeGreaterThan(Integer value) {
+            addCriterion("`type` >", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("`type` >=", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeLessThan(Integer value) {
+            addCriterion("`type` <", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeLessThanOrEqualTo(Integer value) {
+            addCriterion("`type` <=", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeIn(List<Integer> values) {
+            addCriterion("`type` in", values, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotIn(List<Integer> values) {
+            addCriterion("`type` not in", values, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeBetween(Integer value1, Integer value2) {
+            addCriterion("`type` between", value1, value2, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotBetween(Integer value1, Integer value2) {
+            addCriterion("`type` not between", value1, value2, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIsNull() {
+            addCriterion("content is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIsNotNull() {
+            addCriterion("content is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentEqualTo(String value) {
+            addCriterion("content =", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentNotEqualTo(String value) {
+            addCriterion("content <>", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentGreaterThan(String value) {
+            addCriterion("content >", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentGreaterThanOrEqualTo(String value) {
+            addCriterion("content >=", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentLessThan(String value) {
+            addCriterion("content <", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentLessThanOrEqualTo(String value) {
+            addCriterion("content <=", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentLike(String value) {
+            addCriterion("content like", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentNotLike(String value) {
+            addCriterion("content not like", value, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentIn(List<String> values) {
+            addCriterion("content in", values, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentNotIn(List<String> values) {
+            addCriterion("content not in", values, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentBetween(String value1, String value2) {
+            addCriterion("content between", value1, value2, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andContentNotBetween(String value1, String value2) {
+            addCriterion("content not between", value1, value2, "content");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIsNull() {
+            addCriterion("`source` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIsNotNull() {
+            addCriterion("`source` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceEqualTo(Integer value) {
+            addCriterion("`source` =", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotEqualTo(Integer value) {
+            addCriterion("`source` <>", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceGreaterThan(Integer value) {
+            addCriterion("`source` >", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceGreaterThanOrEqualTo(Integer value) {
+            addCriterion("`source` >=", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceLessThan(Integer value) {
+            addCriterion("`source` <", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceLessThanOrEqualTo(Integer value) {
+            addCriterion("`source` <=", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIn(List<Integer> values) {
+            addCriterion("`source` in", values, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotIn(List<Integer> values) {
+            addCriterion("`source` not in", values, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceBetween(Integer value1, Integer value2) {
+            addCriterion("`source` between", value1, value2, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotBetween(Integer value1, Integer value2) {
+            addCriterion("`source` not between", value1, value2, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentIsNull() {
+            addCriterion("source_content is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentIsNotNull() {
+            addCriterion("source_content is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentEqualTo(String value) {
+            addCriterion("source_content =", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentNotEqualTo(String value) {
+            addCriterion("source_content <>", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentGreaterThan(String value) {
+            addCriterion("source_content >", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentGreaterThanOrEqualTo(String value) {
+            addCriterion("source_content >=", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentLessThan(String value) {
+            addCriterion("source_content <", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentLessThanOrEqualTo(String value) {
+            addCriterion("source_content <=", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentLike(String value) {
+            addCriterion("source_content like", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentNotLike(String value) {
+            addCriterion("source_content not like", value, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentIn(List<String> values) {
+            addCriterion("source_content in", values, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentNotIn(List<String> values) {
+            addCriterion("source_content not in", values, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentBetween(String value1, String value2) {
+            addCriterion("source_content between", value1, value2, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceContentNotBetween(String value1, String value2) {
+            addCriterion("source_content not between", value1, value2, "sourceContent");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIsNull() {
+            addCriterion("seq is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIsNotNull() {
+            addCriterion("seq is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqEqualTo(Integer value) {
+            addCriterion("seq =", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotEqualTo(Integer value) {
+            addCriterion("seq <>", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqGreaterThan(Integer value) {
+            addCriterion("seq >", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqGreaterThanOrEqualTo(Integer value) {
+            addCriterion("seq >=", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqLessThan(Integer value) {
+            addCriterion("seq <", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqLessThanOrEqualTo(Integer value) {
+            addCriterion("seq <=", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIn(List<Integer> values) {
+            addCriterion("seq in", values, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotIn(List<Integer> values) {
+            addCriterion("seq not in", values, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqBetween(Integer value1, Integer value2) {
+            addCriterion("seq between", value1, value2, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotBetween(Integer value1, Integer value2) {
+            addCriterion("seq not between", value1, value2, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 722 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffConfigTaskExample.java

@@ -0,0 +1,722 @@
+package com.tzld.piaoquan.api.model.po.wecom.thirdpart;
+
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class ThirdPartWeComStaffConfigTaskExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public ThirdPartWeComStaffConfigTaskExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(String value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(String value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(String value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(String value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(String value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(String value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLike(String value) {
+            addCriterion("id like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotLike(String value) {
+            addCriterion("id not like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<String> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<String> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(String value1, String value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(String value1, String value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdIsNull() {
+            addCriterion("config_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdIsNotNull() {
+            addCriterion("config_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdEqualTo(String value) {
+            addCriterion("config_id =", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdNotEqualTo(String value) {
+            addCriterion("config_id <>", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdGreaterThan(String value) {
+            addCriterion("config_id >", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdGreaterThanOrEqualTo(String value) {
+            addCriterion("config_id >=", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdLessThan(String value) {
+            addCriterion("config_id <", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdLessThanOrEqualTo(String value) {
+            addCriterion("config_id <=", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdLike(String value) {
+            addCriterion("config_id like", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdNotLike(String value) {
+            addCriterion("config_id not like", value, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdIn(List<String> values) {
+            addCriterion("config_id in", values, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdNotIn(List<String> values) {
+            addCriterion("config_id not in", values, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdBetween(String value1, String value2) {
+            addCriterion("config_id between", value1, value2, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andConfigIdNotBetween(String value1, String value2) {
+            addCriterion("config_id not between", value1, value2, "configId");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagIsNull() {
+            addCriterion("switch_flag is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagIsNotNull() {
+            addCriterion("switch_flag is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagEqualTo(Integer value) {
+            addCriterion("switch_flag =", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagNotEqualTo(Integer value) {
+            addCriterion("switch_flag <>", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagGreaterThan(Integer value) {
+            addCriterion("switch_flag >", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagGreaterThanOrEqualTo(Integer value) {
+            addCriterion("switch_flag >=", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagLessThan(Integer value) {
+            addCriterion("switch_flag <", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagLessThanOrEqualTo(Integer value) {
+            addCriterion("switch_flag <=", value, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagIn(List<Integer> values) {
+            addCriterion("switch_flag in", values, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagNotIn(List<Integer> values) {
+            addCriterion("switch_flag not in", values, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagBetween(Integer value1, Integer value2) {
+            addCriterion("switch_flag between", value1, value2, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSwitchFlagNotBetween(Integer value1, Integer value2) {
+            addCriterion("switch_flag not between", value1, value2, "switchFlag");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeIsNull() {
+            addCriterion("send_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeIsNotNull() {
+            addCriterion("send_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeEqualTo(String value) {
+            addCriterion("send_time =", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeNotEqualTo(String value) {
+            addCriterion("send_time <>", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeGreaterThan(String value) {
+            addCriterion("send_time >", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeGreaterThanOrEqualTo(String value) {
+            addCriterion("send_time >=", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeLessThan(String value) {
+            addCriterion("send_time <", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeLessThanOrEqualTo(String value) {
+            addCriterion("send_time <=", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeLike(String value) {
+            addCriterion("send_time like", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeNotLike(String value) {
+            addCriterion("send_time not like", value, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeIn(List<String> values) {
+            addCriterion("send_time in", values, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeNotIn(List<String> values) {
+            addCriterion("send_time not in", values, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeBetween(String value1, String value2) {
+            addCriterion("send_time between", value1, value2, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSendTimeNotBetween(String value1, String value2) {
+            addCriterion("send_time not between", value1, value2, "sendTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinIsNull() {
+            addCriterion("random_min is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinIsNotNull() {
+            addCriterion("random_min is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinEqualTo(Integer value) {
+            addCriterion("random_min =", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinNotEqualTo(Integer value) {
+            addCriterion("random_min <>", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinGreaterThan(Integer value) {
+            addCriterion("random_min >", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinGreaterThanOrEqualTo(Integer value) {
+            addCriterion("random_min >=", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinLessThan(Integer value) {
+            addCriterion("random_min <", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinLessThanOrEqualTo(Integer value) {
+            addCriterion("random_min <=", value, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinIn(List<Integer> values) {
+            addCriterion("random_min in", values, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinNotIn(List<Integer> values) {
+            addCriterion("random_min not in", values, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinBetween(Integer value1, Integer value2) {
+            addCriterion("random_min between", value1, value2, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andRandomMinNotBetween(Integer value1, Integer value2) {
+            addCriterion("random_min not between", value1, value2, "randomMin");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIsNull() {
+            addCriterion("seq is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIsNotNull() {
+            addCriterion("seq is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqEqualTo(Integer value) {
+            addCriterion("seq =", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotEqualTo(Integer value) {
+            addCriterion("seq <>", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqGreaterThan(Integer value) {
+            addCriterion("seq >", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqGreaterThanOrEqualTo(Integer value) {
+            addCriterion("seq >=", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqLessThan(Integer value) {
+            addCriterion("seq <", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqLessThanOrEqualTo(Integer value) {
+            addCriterion("seq <=", value, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqIn(List<Integer> values) {
+            addCriterion("seq in", values, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotIn(List<Integer> values) {
+            addCriterion("seq not in", values, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqBetween(Integer value1, Integer value2) {
+            addCriterion("seq between", value1, value2, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andSeqNotBetween(Integer value1, Integer value2) {
+            addCriterion("seq not between", value1, value2, "seq");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 70 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/wecom/thirdpart/ThirdPartWeComStaffExample.java

@@ -576,6 +576,76 @@ public class ThirdPartWeComStaffExample {
             return (Criteria) this;
         }
 
+        public Criteria andQrImageIsNull() {
+            addCriterion("qr_image is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageIsNotNull() {
+            addCriterion("qr_image is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageEqualTo(String value) {
+            addCriterion("qr_image =", value, "qrImage");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageNotEqualTo(String value) {
+            addCriterion("qr_image <>", value, "qrImage");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageGreaterThan(String value) {
+            addCriterion("qr_image >", value, "qrImage");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageGreaterThanOrEqualTo(String value) {
+            addCriterion("qr_image >=", value, "qrImage");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageLessThan(String value) {
+            addCriterion("qr_image <", value, "qrImage");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageLessThanOrEqualTo(String value) {
+            addCriterion("qr_image <=", value, "qrImage");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageLike(String value) {
+            addCriterion("qr_image like", value, "qrImage");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageNotLike(String value) {
+            addCriterion("qr_image not like", value, "qrImage");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageIn(List<String> values) {
+            addCriterion("qr_image in", values, "qrImage");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageNotIn(List<String> values) {
+            addCriterion("qr_image not in", values, "qrImage");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageBetween(String value1, String value2) {
+            addCriterion("qr_image between", value1, value2, "qrImage");
+            return (Criteria) this;
+        }
+
+        public Criteria andQrImageNotBetween(String value1, String value2) {
+            addCriterion("qr_image not between", value1, value2, "qrImage");
+            return (Criteria) this;
+        }
+
         public Criteria andStatusIsNull() {
             addCriterion("`status` is null");
             return (Criteria) this;

+ 19 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/IdNameVO.java

@@ -0,0 +1,19 @@
+package com.tzld.piaoquan.api.model.vo;
+
+import lombok.Data;
+
+import java.util.Objects;
+
+@Data
+public class IdNameVO<T> {
+    private T id;
+    private String name;
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        IdNameVO<?> idNameVO = (IdNameVO<?>) o;
+        return Objects.equals(id, idNameVO.id);
+    }
+}

+ 16 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/contentplatform/AccountQrCodeVO.java

@@ -0,0 +1,16 @@
+package com.tzld.piaoquan.api.model.vo.contentplatform;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AccountQrCodeVO {
+    @ApiModelProperty(value = "uuid")
+    private String uuid;
+    @ApiModelProperty(value = "登录二维码")
+    private String qrcode;
+    @ApiModelProperty(value = "登录二维码key")
+    private String Key;
+    @ApiModelProperty(value = "过期时间")
+    private Long Ttl;
+}

+ 19 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyAccountConfigTaskContentVO.java

@@ -0,0 +1,19 @@
+package com.tzld.piaoquan.api.model.vo.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ThirdPartyAccountConfigTaskContentVO {
+
+    @ApiModelProperty(value = "类型 0-文案 1-小程序")
+    private Integer type;
+    @ApiModelProperty(value = "文案内容")
+    private String content;
+    @ApiModelProperty(value = "小程序来源 0-热榜 1-标签 2-账号")
+    private Integer source;
+    @ApiModelProperty(value = "小程序来源内容 (标签/账号id)")
+    private String sourceContent;
+    @ApiModelProperty(value = "顺序")
+    private Integer seq;
+}

+ 21 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyAccountConfigTaskVO.java

@@ -0,0 +1,21 @@
+package com.tzld.piaoquan.api.model.vo.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ThirdPartyAccountConfigTaskVO {
+
+    @ApiModelProperty(value = "投放场景")
+    private Integer switchFlag;
+    @ApiModelProperty(value = "发送时间")
+    private List<String> sendTime;
+    @ApiModelProperty(value = "随机浮动分钟")
+    private Integer randomMin;
+    @ApiModelProperty(value = "顺序")
+    private Integer seq;
+    @ApiModelProperty(value = "发送内容列表")
+    private List<ThirdPartyAccountConfigTaskContentVO> contentList;
+}

+ 30 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyAccountConfigVO.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.api.model.vo.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ThirdPartyAccountConfigVO {
+
+    @ApiModelProperty(value = "投放场景")
+    private String putScene;
+    @ApiModelProperty(value = "渠道")
+    private String channel;
+    @ApiModelProperty(value = "是否开启(0否,1是)")
+    private Integer switchFlag;
+    @ApiModelProperty(value = "推送触发人数")
+    private Integer openRoomSendSwitchNum;
+    @ApiModelProperty(value = "主推送人员")
+    private Long primaryThirdStaffId;
+    @ApiModelProperty(value = "主推送人员名称")
+    private String primaryThirdStaffName;
+    @ApiModelProperty(value = "次推送人员")
+    private Long secondThirdStaffId;
+    @ApiModelProperty(value = "次推送人员名称")
+    private String secondThirdStaffName;
+    @ApiModelProperty(value = "任务列表")
+    private List<ThirdPartyAccountConfigTaskVO> taskList;
+
+}

+ 31 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyAccountVO.java

@@ -0,0 +1,31 @@
+package com.tzld.piaoquan.api.model.vo.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ThirdPartyAccountVO {
+
+    @ApiModelProperty(value = "ID")
+    private Long id;
+    @ApiModelProperty(value = "企业名称")
+    private String corpName;
+    @ApiModelProperty(value = "账号名称")
+    private String accountName;
+    @ApiModelProperty(value = "账号实名人")
+    private String realName;
+    @ApiModelProperty(value = "手机号")
+    private String mobile;
+    @ApiModelProperty(value = "账号状态(0正常,1掉线,2离线)")
+    private Integer status;
+    @ApiModelProperty(value = "名片")
+    private String qrImage;
+
+    @ApiModelProperty(value = "三方用户id")
+    private Long thirdStaffId;
+    @ApiModelProperty(value = "三方uuid")
+    private String thirdUuid;
+    @ApiModelProperty(value = "头像")
+    private String avatar;
+
+}

+ 19 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyRoomConfigTaskContentVO.java

@@ -0,0 +1,19 @@
+package com.tzld.piaoquan.api.model.vo.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ThirdPartyRoomConfigTaskContentVO {
+
+    @ApiModelProperty(value = "类型 0-文案 1-小程序")
+    private Integer type;
+    @ApiModelProperty(value = "文案内容")
+    private String content;
+    @ApiModelProperty(value = "小程序来源 0-热榜 1-标签 2-账号")
+    private Integer source;
+    @ApiModelProperty(value = "小程序来源内容 (标签/账号id)")
+    private String sourceContent;
+    @ApiModelProperty(value = "顺序")
+    private Integer seq;
+}

+ 21 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyRoomConfigTaskVO.java

@@ -0,0 +1,21 @@
+package com.tzld.piaoquan.api.model.vo.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ThirdPartyRoomConfigTaskVO {
+
+    @ApiModelProperty(value = "投放场景")
+    private Integer switchFlag;
+    @ApiModelProperty(value = "发送时间")
+    private List<String> sendTime;
+    @ApiModelProperty(value = "随机浮动分钟")
+    private Integer randomMin;
+    @ApiModelProperty(value = "顺序")
+    private Integer seq;
+    @ApiModelProperty(value = "发送内容列表")
+    private List<ThirdPartyRoomConfigTaskContentVO> contentList;
+}

+ 30 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyRoomConfigVO.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.api.model.vo.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ThirdPartyRoomConfigVO {
+
+    @ApiModelProperty(value = "投放场景")
+    private String putScene;
+    @ApiModelProperty(value = "渠道")
+    private String channel;
+    @ApiModelProperty(value = "是否开启(0否,1是)")
+    private Integer switchFlag;
+    @ApiModelProperty(value = "推送触发人数")
+    private Integer openRoomSendSwitchNum;
+    @ApiModelProperty(value = "主推送人员")
+    private Long primaryThirdStaffId;
+    @ApiModelProperty(value = "主推送人员名称")
+    private String primaryThirdStaffName;
+    @ApiModelProperty(value = "次推送人员")
+    private Long secondThirdStaffId;
+    @ApiModelProperty(value = "次推送人员名称")
+    private String secondThirdStaffName;
+    @ApiModelProperty(value = "任务列表")
+    private List<ThirdPartyRoomConfigTaskVO> taskList;
+
+}

+ 24 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/wecom/thirdpart/ThirdPartyRoomVO.java

@@ -0,0 +1,24 @@
+package com.tzld.piaoquan.api.model.vo.wecom.thirdpart;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ThirdPartyRoomVO {
+
+    @ApiModelProperty(value = "ID")
+    private Long id;
+    @ApiModelProperty(value = "企业名称")
+    private String corpName;
+    @ApiModelProperty(value = "群名称")
+    private String roomName;
+    @ApiModelProperty(value = "群主")
+    private String groupLeaderName;
+    @ApiModelProperty(value = "推送人员")
+    private List<String> pushAccountNameList;
+    @ApiModelProperty(value = "群人数")
+    private Integer memberCount;
+
+}

+ 29 - 0
api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/WeComThirdPartyAccountService.java

@@ -0,0 +1,29 @@
+package com.tzld.piaoquan.api.service.wecom.thirdparty;
+
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.*;
+import com.tzld.piaoquan.api.model.vo.IdNameVO;
+import com.tzld.piaoquan.api.model.vo.contentplatform.AccountQrCodeVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyAccountConfigVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyAccountVO;
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+
+import java.util.List;
+
+public interface WeComThirdPartyAccountService {
+
+    AccountQrCodeVO getQrCode(String id);
+
+    Boolean getNeedCheckCode(String uuid);
+
+    void setCheckCode(CheckCodeRequest param);
+
+    Page<ThirdPartyAccountVO> list(ThirdPartyAccountListParam param);
+
+    List<IdNameVO<Long>> getPushAccountList(Long accountId, String name);
+
+    ThirdPartyAccountConfigVO getAccountConfig(ThirdPartyConfigGetParam param);
+
+    void saveAccountConfig(ThirdPartyAccountConfigParam param);
+
+    void logout(ThirdPartyAccountLogOutParam param);
+}

+ 22 - 0
api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/WeComThirdPartyRoomService.java

@@ -0,0 +1,22 @@
+package com.tzld.piaoquan.api.service.wecom.thirdparty;
+
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyConfigGetParam;
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyRoomConfigParam;
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyRoomListParam;
+import com.tzld.piaoquan.api.model.vo.IdNameVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyRoomConfigVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyRoomVO;
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+
+import java.util.List;
+
+public interface WeComThirdPartyRoomService {
+
+    Page<ThirdPartyRoomVO> list(ThirdPartyRoomListParam param);
+
+    List<IdNameVO<Long>> getPushAccountList(Long roomId, String name);
+
+    ThirdPartyRoomConfigVO getRoomConfig(ThirdPartyConfigGetParam param);
+
+    void saveRoomConfig(ThirdPartyRoomConfigParam param);
+}

+ 1 - 1
api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/WeComThirdPartyService.java

@@ -30,7 +30,7 @@ public interface WeComThirdPartyService {
 
     CdnUploadImgLinkResponse cdnUploadImgLink(CdnUploadImgLinkRequest request);
 
-    void sendAppMsg(SendAppMsgRequest request);
+    CommonResponse<SendAppMsgResponse> sendAppMsg(ThirdPartWeComStaff staff, ThirdPartWeComRoom room, SendAppMsgRequest request);
 
     List<ThirdPartWeComStaff> getActiveStaffList();
 

+ 72 - 0
api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/impl/WeComThirdPartyAccountServiceImpl.java

@@ -0,0 +1,72 @@
+package com.tzld.piaoquan.api.service.wecom.thirdparty.impl;
+
+import com.tzld.piaoquan.api.component.WeComThirdPartyApiClient;
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.*;
+import com.tzld.piaoquan.api.model.vo.IdNameVO;
+import com.tzld.piaoquan.api.model.vo.contentplatform.AccountQrCodeVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyAccountConfigVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyAccountVO;
+import com.tzld.piaoquan.api.service.wecom.thirdparty.WeComThirdPartyAccountService;
+import com.tzld.piaoquan.api.service.wecom.thirdparty.WeComThirdPartyService;
+import com.tzld.piaoquan.growth.common.utils.RedisUtils;
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Slf4j
+@Service
+public class WeComThirdPartyAccountServiceImpl implements WeComThirdPartyAccountService {
+
+    @Autowired
+    private WeComThirdPartyApiClient apiClient;
+    @Autowired
+    private WeComThirdPartyService weComThirdPartyService;
+
+    @Autowired
+    private RedisUtils redisUtils;
+
+    @Override
+    public AccountQrCodeVO getQrCode(String id) {
+        return null;
+    }
+
+    @Override
+    public Boolean getNeedCheckCode(String uuid) {
+        return null;
+    }
+
+    @Override
+    public void setCheckCode(CheckCodeRequest param) {
+
+    }
+
+    @Override
+    public Page<ThirdPartyAccountVO> list(ThirdPartyAccountListParam param) {
+        return null;
+    }
+
+    @Override
+    public List<IdNameVO<Long>> getPushAccountList(Long accountId, String name) {
+        return null;
+    }
+
+    @Override
+    public ThirdPartyAccountConfigVO getAccountConfig(ThirdPartyConfigGetParam param) {
+        return null;
+    }
+
+    @Override
+    public void saveAccountConfig(ThirdPartyAccountConfigParam param) {
+
+    }
+
+    @Override
+    public void logout(ThirdPartyAccountLogOutParam param) {
+
+    }
+
+
+}

+ 51 - 0
api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/impl/WeComThirdPartyRoomServiceImpl.java

@@ -0,0 +1,51 @@
+package com.tzld.piaoquan.api.service.wecom.thirdparty.impl;
+
+import com.tzld.piaoquan.api.component.WeComThirdPartyApiClient;
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyConfigGetParam;
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyRoomConfigParam;
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.ThirdPartyRoomListParam;
+import com.tzld.piaoquan.api.model.vo.IdNameVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyRoomConfigVO;
+import com.tzld.piaoquan.api.model.vo.wecom.thirdpart.ThirdPartyRoomVO;
+import com.tzld.piaoquan.api.service.wecom.thirdparty.WeComThirdPartyRoomService;
+import com.tzld.piaoquan.api.service.wecom.thirdparty.WeComThirdPartyService;
+import com.tzld.piaoquan.growth.common.utils.RedisUtils;
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Slf4j
+@Service
+public class WeComThirdPartyRoomServiceImpl implements WeComThirdPartyRoomService {
+
+    @Autowired
+    private WeComThirdPartyApiClient apiClient;
+    @Autowired
+    private WeComThirdPartyService weComThirdPartyService;
+
+    @Autowired
+    private RedisUtils redisUtils;
+
+    @Override
+    public Page<ThirdPartyRoomVO> list(ThirdPartyRoomListParam param) {
+        return null;
+    }
+
+    @Override
+    public List<IdNameVO<Long>> getPushAccountList(Long roomId, String name) {
+        return null;
+    }
+
+    @Override
+    public ThirdPartyRoomConfigVO getRoomConfig(ThirdPartyConfigGetParam param) {
+        return null;
+    }
+
+    @Override
+    public void saveRoomConfig(ThirdPartyRoomConfigParam param) {
+
+    }
+}

+ 42 - 7
api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/impl/WeComThirdPartyServiceImpl.java

@@ -2,20 +2,26 @@ package com.tzld.piaoquan.api.service.wecom.thirdparty.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
+import com.stuuudy.commons.external.filestorage.enums.EnumFileType;
+import com.stuuudy.commons.external.filestorage.enums.EnumPublicBuckets;
 import com.tzld.piaoquan.api.common.enums.ExceptionEnum;
+import com.tzld.piaoquan.api.common.enums.wecom.ThirdPartWeComStaffStatusEnum;
 import com.tzld.piaoquan.api.common.exception.CommonException;
 import com.tzld.piaoquan.api.component.WeComThirdPartyApiClient;
 import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComCorpMapper;
 import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComRoomMapper;
 import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComStaffMapper;
+import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ext.ThirdPartWeComMapperExt;
 import com.tzld.piaoquan.api.model.param.wecom.thirdpart.*;
 import com.tzld.piaoquan.api.model.po.wecom.thirdpart.*;
 import com.tzld.piaoquan.api.service.wecom.thirdparty.WeComThirdPartyService;
+import com.tzld.piaoquan.api.util.AliOssFileTool;
 import com.tzld.piaoquan.growth.common.dao.mapper.CorpMapper;
 import com.tzld.piaoquan.growth.common.model.po.Corp;
 import com.tzld.piaoquan.growth.common.model.po.CorpExample;
 import com.tzld.piaoquan.growth.common.utils.DateUtil;
 import com.tzld.piaoquan.growth.common.utils.LarkRobotUtil;
+import com.tzld.piaoquan.growth.common.utils.RandomUtil;
 import com.tzld.piaoquan.growth.common.utils.RedisUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -23,10 +29,9 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.*;
 
 @Slf4j
 @Service
@@ -41,6 +46,8 @@ public class WeComThirdPartyServiceImpl implements WeComThirdPartyService {
     @Autowired
     private ThirdPartWeComCorpMapper thirdPartWeComCorpMapper;
     @Autowired
+    private ThirdPartWeComMapperExt weComMapperExt;
+    @Autowired
     private CorpMapper corpMapper;
 
     @Autowired
@@ -157,10 +164,31 @@ public class WeComThirdPartyServiceImpl implements WeComThirdPartyService {
             existStaff.setMobile(userObject.getMobile());
             existStaff.setAvatar(userObject.getAvatar());
             existStaff.setThirdUuid(uuid);
-            existStaff.setStatus(0);
+            existStaff.setStatus(ThirdPartWeComStaffStatusEnum.NORMAL.getVal());
+            existStaff.setUpdateTime(new Date());
             thirdPartWeComStaffMapper.updateByPrimaryKeySelective(existStaff);
         }
 
+        // 获取名片二维码
+        String response = apiClient.getExternalBusinessCard(new UuidRequest(uuid));
+        CommonResponse<ExternalBusinessCardResponse> cardCommonResponse =
+                JSONObject.parseObject(response, new TypeReference<CommonResponse<ExternalBusinessCardResponse>>() {});
+        // base64 to inputStream
+        ExternalBusinessCardResponse cardResponse = cardCommonResponse.getData();
+        if (Objects.isNull(cardResponse)) {
+            return;
+        }
+        String qrImageBase64 = cardResponse.getQr_image();
+        if (StringUtils.isBlank(qrImageBase64)) {
+            return;
+        }
+        byte[] bytes = Base64.getDecoder().decode(qrImageBase64);
+        InputStream inputStream = new ByteArrayInputStream(bytes);
+        String fileUri = "temp/" + System.currentTimeMillis() + "_" + RandomUtil.generate18String() + ".png";
+        String qrImage = AliOssFileTool.saveInPublicReturnHost(inputStream, EnumPublicBuckets.PUBBUCKET, fileUri, EnumFileType.PICTURE);
+        weComMapperExt.updateStaffQrImageByUuid(uuid, qrImage);
+
+        // 清除掉线检测
         String offLineKey = "wecom:thirdpart:offline:" + uuid;
         redisUtils.del(offLineKey);
     }
@@ -291,19 +319,26 @@ public class WeComThirdPartyServiceImpl implements WeComThirdPartyService {
     }
 
     @Override
-    public void sendAppMsg(SendAppMsgRequest request) {
+    public CommonResponse<SendAppMsgResponse> sendAppMsg(ThirdPartWeComStaff staff, ThirdPartWeComRoom room, SendAppMsgRequest request) {
         String response = apiClient.sendAppMsg(request);
         CommonResponse<SendAppMsgResponse> commonResponse =
                 JSONObject.parseObject(response, new TypeReference<CommonResponse<SendAppMsgResponse>>() {});
         if (commonResponse.getErrcode() != 0) {
+            LarkRobotUtil.sendWeComThirdPartMessage(
+                    "【发送应用消息失败通知】\n" +
+                            "账号名称:" + staff.getName() + "\n" +
+                            "群名:" + room.getName() + "\n" +
+                            "错误码:" + commonResponse.getErrcode() + "\n" +
+                            "错误信息:" + commonResponse.getErrmsg());
             log.error("WeComThirdPartyService send app msg failed, request: {}, response: {}", request, response);
         }
+        return commonResponse;
     }
 
     @Override
     public List<ThirdPartWeComStaff> getActiveStaffList() {
         ThirdPartWeComStaffExample example = new ThirdPartWeComStaffExample();
-        example.createCriteria().andStatusEqualTo(0);
+        example.createCriteria().andStatusEqualTo(ThirdPartWeComStaffStatusEnum.NORMAL.getVal());
         return thirdPartWeComStaffMapper.selectByExample(example);
     }
 

+ 23 - 5
api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComMsgMapper.xml

@@ -19,6 +19,7 @@
     <result column="aeskey" jdbcType="VARCHAR" property="aeskey" />
     <result column="fileSize" jdbcType="INTEGER" property="filesize" />
     <result column="isRoom" jdbcType="BIT" property="isroom" />
+    <result column="status" jdbcType="INTEGER" property="status" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
   </resultMap>
   <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComMsg">
@@ -84,7 +85,8 @@
   </sql>
   <sql id="Base_Column_List">
     id, uuid, send_userid, staff_id, video_id, appName, title, weappIconUrl, pagepath, 
-    root_source_id, username, appid, cdnkey, md5, aeskey, fileSize, isRoom, create_time
+    root_source_id, username, appid, cdnkey, md5, aeskey, fileSize, isRoom, `status`, 
+    create_time
   </sql>
   <sql id="Blob_Column_List">
     `desc`
@@ -149,15 +151,15 @@
       title, weappIconUrl, pagepath, 
       root_source_id, username, appid, 
       cdnkey, md5, aeskey, 
-      fileSize, isRoom, create_time, 
-      `desc`)
+      fileSize, isRoom, `status`, 
+      create_time, `desc`)
     values (#{id,jdbcType=BIGINT}, #{uuid,jdbcType=VARCHAR}, #{sendUserid,jdbcType=BIGINT}, 
       #{staffId,jdbcType=BIGINT}, #{videoId,jdbcType=BIGINT}, #{appname,jdbcType=VARCHAR}, 
       #{title,jdbcType=VARCHAR}, #{weappiconurl,jdbcType=VARCHAR}, #{pagepath,jdbcType=VARCHAR}, 
       #{rootSourceId,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, #{appid,jdbcType=VARCHAR}, 
       #{cdnkey,jdbcType=VARCHAR}, #{md5,jdbcType=VARCHAR}, #{aeskey,jdbcType=VARCHAR}, 
-      #{filesize,jdbcType=INTEGER}, #{isroom,jdbcType=BIT}, #{createTime,jdbcType=TIMESTAMP}, 
-      #{desc,jdbcType=LONGVARCHAR})
+      #{filesize,jdbcType=INTEGER}, #{isroom,jdbcType=BIT}, #{status,jdbcType=INTEGER}, 
+      #{createTime,jdbcType=TIMESTAMP}, #{desc,jdbcType=LONGVARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComMsg">
     insert into third_part_we_com_msg
@@ -213,6 +215,9 @@
       <if test="isroom != null">
         isRoom,
       </if>
+      <if test="status != null">
+        `status`,
+      </if>
       <if test="createTime != null">
         create_time,
       </if>
@@ -272,6 +277,9 @@
       <if test="isroom != null">
         #{isroom,jdbcType=BIT},
       </if>
+      <if test="status != null">
+        #{status,jdbcType=INTEGER},
+      </if>
       <if test="createTime != null">
         #{createTime,jdbcType=TIMESTAMP},
       </if>
@@ -340,6 +348,9 @@
       <if test="record.isroom != null">
         isRoom = #{record.isroom,jdbcType=BIT},
       </if>
+      <if test="record.status != null">
+        `status` = #{record.status,jdbcType=INTEGER},
+      </if>
       <if test="record.createTime != null">
         create_time = #{record.createTime,jdbcType=TIMESTAMP},
       </if>
@@ -370,6 +381,7 @@
       aeskey = #{record.aeskey,jdbcType=VARCHAR},
       fileSize = #{record.filesize,jdbcType=INTEGER},
       isRoom = #{record.isroom,jdbcType=BIT},
+      `status` = #{record.status,jdbcType=INTEGER},
       create_time = #{record.createTime,jdbcType=TIMESTAMP},
       `desc` = #{record.desc,jdbcType=LONGVARCHAR}
     <if test="_parameter != null">
@@ -395,6 +407,7 @@
       aeskey = #{record.aeskey,jdbcType=VARCHAR},
       fileSize = #{record.filesize,jdbcType=INTEGER},
       isRoom = #{record.isroom,jdbcType=BIT},
+      `status` = #{record.status,jdbcType=INTEGER},
       create_time = #{record.createTime,jdbcType=TIMESTAMP}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -451,6 +464,9 @@
       <if test="isroom != null">
         isRoom = #{isroom,jdbcType=BIT},
       </if>
+      <if test="status != null">
+        `status` = #{status,jdbcType=INTEGER},
+      </if>
       <if test="createTime != null">
         create_time = #{createTime,jdbcType=TIMESTAMP},
       </if>
@@ -478,6 +494,7 @@
       aeskey = #{aeskey,jdbcType=VARCHAR},
       fileSize = #{filesize,jdbcType=INTEGER},
       isRoom = #{isroom,jdbcType=BIT},
+      `status` = #{status,jdbcType=INTEGER},
       create_time = #{createTime,jdbcType=TIMESTAMP},
       `desc` = #{desc,jdbcType=LONGVARCHAR}
     where id = #{id,jdbcType=BIGINT}
@@ -500,6 +517,7 @@
       aeskey = #{aeskey,jdbcType=VARCHAR},
       fileSize = #{filesize,jdbcType=INTEGER},
       isRoom = #{isroom,jdbcType=BIT},
+      `status` = #{status,jdbcType=INTEGER},
       create_time = #{createTime,jdbcType=TIMESTAMP}
     where id = #{id,jdbcType=BIGINT}
   </update>

+ 294 - 0
api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigMapper.xml

@@ -0,0 +1,294 @@
+<?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.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComRoomConfigMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfig">
+    <id column="id" jdbcType="VARCHAR" property="id" />
+    <result column="room_id" jdbcType="BIGINT" property="roomId" />
+    <result column="account_config_id" jdbcType="INTEGER" property="accountConfigId" />
+    <result column="put_scene" jdbcType="VARCHAR" property="putScene" />
+    <result column="channel" jdbcType="VARCHAR" property="channel" />
+    <result column="primary_third_staff_id" jdbcType="BIGINT" property="primaryThirdStaffId" />
+    <result column="second_third_staff_id" jdbcType="BIGINT" property="secondThirdStaffId" />
+    <result column="status" jdbcType="INTEGER" property="status" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, room_id, account_config_id, put_scene, channel, primary_third_staff_id, second_third_staff_id, 
+    `status`, create_time, update_time
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from third_part_we_com_room_config
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from third_part_we_com_room_config
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from third_part_we_com_room_config
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigExample">
+    delete from third_part_we_com_room_config
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfig">
+    insert into third_part_we_com_room_config (id, room_id, account_config_id, 
+      put_scene, channel, primary_third_staff_id, 
+      second_third_staff_id, `status`, create_time, 
+      update_time)
+    values (#{id,jdbcType=VARCHAR}, #{roomId,jdbcType=BIGINT}, #{accountConfigId,jdbcType=INTEGER}, 
+      #{putScene,jdbcType=VARCHAR}, #{channel,jdbcType=VARCHAR}, #{primaryThirdStaffId,jdbcType=BIGINT}, 
+      #{secondThirdStaffId,jdbcType=BIGINT}, #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, 
+      #{updateTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfig">
+    insert into third_part_we_com_room_config
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="roomId != null">
+        room_id,
+      </if>
+      <if test="accountConfigId != null">
+        account_config_id,
+      </if>
+      <if test="putScene != null">
+        put_scene,
+      </if>
+      <if test="channel != null">
+        channel,
+      </if>
+      <if test="primaryThirdStaffId != null">
+        primary_third_staff_id,
+      </if>
+      <if test="secondThirdStaffId != null">
+        second_third_staff_id,
+      </if>
+      <if test="status != null">
+        `status`,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="roomId != null">
+        #{roomId,jdbcType=BIGINT},
+      </if>
+      <if test="accountConfigId != null">
+        #{accountConfigId,jdbcType=INTEGER},
+      </if>
+      <if test="putScene != null">
+        #{putScene,jdbcType=VARCHAR},
+      </if>
+      <if test="channel != null">
+        #{channel,jdbcType=VARCHAR},
+      </if>
+      <if test="primaryThirdStaffId != null">
+        #{primaryThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="secondThirdStaffId != null">
+        #{secondThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="status != null">
+        #{status,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigExample" resultType="java.lang.Long">
+    select count(*) from third_part_we_com_room_config
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update third_part_we_com_room_config
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=VARCHAR},
+      </if>
+      <if test="record.roomId != null">
+        room_id = #{record.roomId,jdbcType=BIGINT},
+      </if>
+      <if test="record.accountConfigId != null">
+        account_config_id = #{record.accountConfigId,jdbcType=INTEGER},
+      </if>
+      <if test="record.putScene != null">
+        put_scene = #{record.putScene,jdbcType=VARCHAR},
+      </if>
+      <if test="record.channel != null">
+        channel = #{record.channel,jdbcType=VARCHAR},
+      </if>
+      <if test="record.primaryThirdStaffId != null">
+        primary_third_staff_id = #{record.primaryThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="record.secondThirdStaffId != null">
+        second_third_staff_id = #{record.secondThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="record.status != null">
+        `status` = #{record.status,jdbcType=INTEGER},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update third_part_we_com_room_config
+    set id = #{record.id,jdbcType=VARCHAR},
+      room_id = #{record.roomId,jdbcType=BIGINT},
+      account_config_id = #{record.accountConfigId,jdbcType=INTEGER},
+      put_scene = #{record.putScene,jdbcType=VARCHAR},
+      channel = #{record.channel,jdbcType=VARCHAR},
+      primary_third_staff_id = #{record.primaryThirdStaffId,jdbcType=BIGINT},
+      second_third_staff_id = #{record.secondThirdStaffId,jdbcType=BIGINT},
+      `status` = #{record.status,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfig">
+    update third_part_we_com_room_config
+    <set>
+      <if test="roomId != null">
+        room_id = #{roomId,jdbcType=BIGINT},
+      </if>
+      <if test="accountConfigId != null">
+        account_config_id = #{accountConfigId,jdbcType=INTEGER},
+      </if>
+      <if test="putScene != null">
+        put_scene = #{putScene,jdbcType=VARCHAR},
+      </if>
+      <if test="channel != null">
+        channel = #{channel,jdbcType=VARCHAR},
+      </if>
+      <if test="primaryThirdStaffId != null">
+        primary_third_staff_id = #{primaryThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="secondThirdStaffId != null">
+        second_third_staff_id = #{secondThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="status != null">
+        `status` = #{status,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfig">
+    update third_part_we_com_room_config
+    set room_id = #{roomId,jdbcType=BIGINT},
+      account_config_id = #{accountConfigId,jdbcType=INTEGER},
+      put_scene = #{putScene,jdbcType=VARCHAR},
+      channel = #{channel,jdbcType=VARCHAR},
+      primary_third_staff_id = #{primaryThirdStaffId,jdbcType=BIGINT},
+      second_third_staff_id = #{secondThirdStaffId,jdbcType=BIGINT},
+      `status` = #{status,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      update_time = #{updateTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 278 - 0
api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigTaskContentMapper.xml

@@ -0,0 +1,278 @@
+<?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.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContentMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContent">
+    <id column="id" jdbcType="VARCHAR" property="id" />
+    <result column="task_id" jdbcType="VARCHAR" property="taskId" />
+    <result column="type" jdbcType="INTEGER" property="type" />
+    <result column="content" jdbcType="VARCHAR" property="content" />
+    <result column="source" jdbcType="INTEGER" property="source" />
+    <result column="source_content" jdbcType="VARCHAR" property="sourceContent" />
+    <result column="seq" jdbcType="INTEGER" property="seq" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, task_id, `type`, content, `source`, source_content, seq, create_time, update_time
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContentExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from third_part_we_com_room_config_task_content
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from third_part_we_com_room_config_task_content
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from third_part_we_com_room_config_task_content
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContentExample">
+    delete from third_part_we_com_room_config_task_content
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContent">
+    insert into third_part_we_com_room_config_task_content (id, task_id, `type`, 
+      content, `source`, source_content, 
+      seq, create_time, update_time
+      )
+    values (#{id,jdbcType=VARCHAR}, #{taskId,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, 
+      #{content,jdbcType=VARCHAR}, #{source,jdbcType=INTEGER}, #{sourceContent,jdbcType=VARCHAR}, 
+      #{seq,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContent">
+    insert into third_part_we_com_room_config_task_content
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="taskId != null">
+        task_id,
+      </if>
+      <if test="type != null">
+        `type`,
+      </if>
+      <if test="content != null">
+        content,
+      </if>
+      <if test="source != null">
+        `source`,
+      </if>
+      <if test="sourceContent != null">
+        source_content,
+      </if>
+      <if test="seq != null">
+        seq,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="taskId != null">
+        #{taskId,jdbcType=VARCHAR},
+      </if>
+      <if test="type != null">
+        #{type,jdbcType=INTEGER},
+      </if>
+      <if test="content != null">
+        #{content,jdbcType=VARCHAR},
+      </if>
+      <if test="source != null">
+        #{source,jdbcType=INTEGER},
+      </if>
+      <if test="sourceContent != null">
+        #{sourceContent,jdbcType=VARCHAR},
+      </if>
+      <if test="seq != null">
+        #{seq,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContentExample" resultType="java.lang.Long">
+    select count(*) from third_part_we_com_room_config_task_content
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update third_part_we_com_room_config_task_content
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=VARCHAR},
+      </if>
+      <if test="record.taskId != null">
+        task_id = #{record.taskId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.type != null">
+        `type` = #{record.type,jdbcType=INTEGER},
+      </if>
+      <if test="record.content != null">
+        content = #{record.content,jdbcType=VARCHAR},
+      </if>
+      <if test="record.source != null">
+        `source` = #{record.source,jdbcType=INTEGER},
+      </if>
+      <if test="record.sourceContent != null">
+        source_content = #{record.sourceContent,jdbcType=VARCHAR},
+      </if>
+      <if test="record.seq != null">
+        seq = #{record.seq,jdbcType=INTEGER},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update third_part_we_com_room_config_task_content
+    set id = #{record.id,jdbcType=VARCHAR},
+      task_id = #{record.taskId,jdbcType=VARCHAR},
+      `type` = #{record.type,jdbcType=INTEGER},
+      content = #{record.content,jdbcType=VARCHAR},
+      `source` = #{record.source,jdbcType=INTEGER},
+      source_content = #{record.sourceContent,jdbcType=VARCHAR},
+      seq = #{record.seq,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContent">
+    update third_part_we_com_room_config_task_content
+    <set>
+      <if test="taskId != null">
+        task_id = #{taskId,jdbcType=VARCHAR},
+      </if>
+      <if test="type != null">
+        `type` = #{type,jdbcType=INTEGER},
+      </if>
+      <if test="content != null">
+        content = #{content,jdbcType=VARCHAR},
+      </if>
+      <if test="source != null">
+        `source` = #{source,jdbcType=INTEGER},
+      </if>
+      <if test="sourceContent != null">
+        source_content = #{sourceContent,jdbcType=VARCHAR},
+      </if>
+      <if test="seq != null">
+        seq = #{seq,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContent">
+    update third_part_we_com_room_config_task_content
+    set task_id = #{taskId,jdbcType=VARCHAR},
+      `type` = #{type,jdbcType=INTEGER},
+      content = #{content,jdbcType=VARCHAR},
+      `source` = #{source,jdbcType=INTEGER},
+      source_content = #{sourceContent,jdbcType=VARCHAR},
+      seq = #{seq,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      update_time = #{updateTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 261 - 0
api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComRoomConfigTaskMapper.xml

@@ -0,0 +1,261 @@
+<?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.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComRoomConfigTaskMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTask">
+    <id column="id" jdbcType="VARCHAR" property="id" />
+    <result column="config_id" jdbcType="VARCHAR" property="configId" />
+    <result column="switch_flag" jdbcType="INTEGER" property="switchFlag" />
+    <result column="send_time" jdbcType="VARCHAR" property="sendTime" />
+    <result column="random_min" jdbcType="INTEGER" property="randomMin" />
+    <result column="seq" jdbcType="INTEGER" property="seq" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, config_id, switch_flag, send_time, random_min, seq, create_time, update_time
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from third_part_we_com_room_config_task
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from third_part_we_com_room_config_task
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from third_part_we_com_room_config_task
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskExample">
+    delete from third_part_we_com_room_config_task
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTask">
+    insert into third_part_we_com_room_config_task (id, config_id, switch_flag, 
+      send_time, random_min, seq, 
+      create_time, update_time)
+    values (#{id,jdbcType=VARCHAR}, #{configId,jdbcType=VARCHAR}, #{switchFlag,jdbcType=INTEGER}, 
+      #{sendTime,jdbcType=VARCHAR}, #{randomMin,jdbcType=INTEGER}, #{seq,jdbcType=INTEGER}, 
+      #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTask">
+    insert into third_part_we_com_room_config_task
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="configId != null">
+        config_id,
+      </if>
+      <if test="switchFlag != null">
+        switch_flag,
+      </if>
+      <if test="sendTime != null">
+        send_time,
+      </if>
+      <if test="randomMin != null">
+        random_min,
+      </if>
+      <if test="seq != null">
+        seq,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="configId != null">
+        #{configId,jdbcType=VARCHAR},
+      </if>
+      <if test="switchFlag != null">
+        #{switchFlag,jdbcType=INTEGER},
+      </if>
+      <if test="sendTime != null">
+        #{sendTime,jdbcType=VARCHAR},
+      </if>
+      <if test="randomMin != null">
+        #{randomMin,jdbcType=INTEGER},
+      </if>
+      <if test="seq != null">
+        #{seq,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTaskExample" resultType="java.lang.Long">
+    select count(*) from third_part_we_com_room_config_task
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update third_part_we_com_room_config_task
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=VARCHAR},
+      </if>
+      <if test="record.configId != null">
+        config_id = #{record.configId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.switchFlag != null">
+        switch_flag = #{record.switchFlag,jdbcType=INTEGER},
+      </if>
+      <if test="record.sendTime != null">
+        send_time = #{record.sendTime,jdbcType=VARCHAR},
+      </if>
+      <if test="record.randomMin != null">
+        random_min = #{record.randomMin,jdbcType=INTEGER},
+      </if>
+      <if test="record.seq != null">
+        seq = #{record.seq,jdbcType=INTEGER},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update third_part_we_com_room_config_task
+    set id = #{record.id,jdbcType=VARCHAR},
+      config_id = #{record.configId,jdbcType=VARCHAR},
+      switch_flag = #{record.switchFlag,jdbcType=INTEGER},
+      send_time = #{record.sendTime,jdbcType=VARCHAR},
+      random_min = #{record.randomMin,jdbcType=INTEGER},
+      seq = #{record.seq,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTask">
+    update third_part_we_com_room_config_task
+    <set>
+      <if test="configId != null">
+        config_id = #{configId,jdbcType=VARCHAR},
+      </if>
+      <if test="switchFlag != null">
+        switch_flag = #{switchFlag,jdbcType=INTEGER},
+      </if>
+      <if test="sendTime != null">
+        send_time = #{sendTime,jdbcType=VARCHAR},
+      </if>
+      <if test="randomMin != null">
+        random_min = #{randomMin,jdbcType=INTEGER},
+      </if>
+      <if test="seq != null">
+        seq = #{seq,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoomConfigTask">
+    update third_part_we_com_room_config_task
+    set config_id = #{configId,jdbcType=VARCHAR},
+      switch_flag = #{switchFlag,jdbcType=INTEGER},
+      send_time = #{sendTime,jdbcType=VARCHAR},
+      random_min = #{randomMin,jdbcType=INTEGER},
+      seq = #{seq,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      update_time = #{updateTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 311 - 0
api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigMapper.xml

@@ -0,0 +1,311 @@
+<?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.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComStaffConfigMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfig">
+    <id column="id" jdbcType="VARCHAR" property="id" />
+    <result column="staff_id" jdbcType="BIGINT" property="staffId" />
+    <result column="put_scene" jdbcType="VARCHAR" property="putScene" />
+    <result column="channel" jdbcType="VARCHAR" property="channel" />
+    <result column="switch_flag" jdbcType="INTEGER" property="switchFlag" />
+    <result column="open_room_send_switch_num" jdbcType="INTEGER" property="openRoomSendSwitchNum" />
+    <result column="primary_third_staff_id" jdbcType="BIGINT" property="primaryThirdStaffId" />
+    <result column="second_third_staff_id" jdbcType="BIGINT" property="secondThirdStaffId" />
+    <result column="status" jdbcType="INTEGER" property="status" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, staff_id, put_scene, channel, switch_flag, open_room_send_switch_num, primary_third_staff_id, 
+    second_third_staff_id, `status`, create_time, update_time
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from third_part_we_com_staff_config
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from third_part_we_com_staff_config
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from third_part_we_com_staff_config
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigExample">
+    delete from third_part_we_com_staff_config
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfig">
+    insert into third_part_we_com_staff_config (id, staff_id, put_scene, 
+      channel, switch_flag, open_room_send_switch_num, 
+      primary_third_staff_id, second_third_staff_id, 
+      `status`, create_time, update_time
+      )
+    values (#{id,jdbcType=VARCHAR}, #{staffId,jdbcType=BIGINT}, #{putScene,jdbcType=VARCHAR}, 
+      #{channel,jdbcType=VARCHAR}, #{switchFlag,jdbcType=INTEGER}, #{openRoomSendSwitchNum,jdbcType=INTEGER}, 
+      #{primaryThirdStaffId,jdbcType=BIGINT}, #{secondThirdStaffId,jdbcType=BIGINT}, 
+      #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfig">
+    insert into third_part_we_com_staff_config
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="staffId != null">
+        staff_id,
+      </if>
+      <if test="putScene != null">
+        put_scene,
+      </if>
+      <if test="channel != null">
+        channel,
+      </if>
+      <if test="switchFlag != null">
+        switch_flag,
+      </if>
+      <if test="openRoomSendSwitchNum != null">
+        open_room_send_switch_num,
+      </if>
+      <if test="primaryThirdStaffId != null">
+        primary_third_staff_id,
+      </if>
+      <if test="secondThirdStaffId != null">
+        second_third_staff_id,
+      </if>
+      <if test="status != null">
+        `status`,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="staffId != null">
+        #{staffId,jdbcType=BIGINT},
+      </if>
+      <if test="putScene != null">
+        #{putScene,jdbcType=VARCHAR},
+      </if>
+      <if test="channel != null">
+        #{channel,jdbcType=VARCHAR},
+      </if>
+      <if test="switchFlag != null">
+        #{switchFlag,jdbcType=INTEGER},
+      </if>
+      <if test="openRoomSendSwitchNum != null">
+        #{openRoomSendSwitchNum,jdbcType=INTEGER},
+      </if>
+      <if test="primaryThirdStaffId != null">
+        #{primaryThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="secondThirdStaffId != null">
+        #{secondThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="status != null">
+        #{status,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigExample" resultType="java.lang.Long">
+    select count(*) from third_part_we_com_staff_config
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update third_part_we_com_staff_config
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=VARCHAR},
+      </if>
+      <if test="record.staffId != null">
+        staff_id = #{record.staffId,jdbcType=BIGINT},
+      </if>
+      <if test="record.putScene != null">
+        put_scene = #{record.putScene,jdbcType=VARCHAR},
+      </if>
+      <if test="record.channel != null">
+        channel = #{record.channel,jdbcType=VARCHAR},
+      </if>
+      <if test="record.switchFlag != null">
+        switch_flag = #{record.switchFlag,jdbcType=INTEGER},
+      </if>
+      <if test="record.openRoomSendSwitchNum != null">
+        open_room_send_switch_num = #{record.openRoomSendSwitchNum,jdbcType=INTEGER},
+      </if>
+      <if test="record.primaryThirdStaffId != null">
+        primary_third_staff_id = #{record.primaryThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="record.secondThirdStaffId != null">
+        second_third_staff_id = #{record.secondThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="record.status != null">
+        `status` = #{record.status,jdbcType=INTEGER},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update third_part_we_com_staff_config
+    set id = #{record.id,jdbcType=VARCHAR},
+      staff_id = #{record.staffId,jdbcType=BIGINT},
+      put_scene = #{record.putScene,jdbcType=VARCHAR},
+      channel = #{record.channel,jdbcType=VARCHAR},
+      switch_flag = #{record.switchFlag,jdbcType=INTEGER},
+      open_room_send_switch_num = #{record.openRoomSendSwitchNum,jdbcType=INTEGER},
+      primary_third_staff_id = #{record.primaryThirdStaffId,jdbcType=BIGINT},
+      second_third_staff_id = #{record.secondThirdStaffId,jdbcType=BIGINT},
+      `status` = #{record.status,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfig">
+    update third_part_we_com_staff_config
+    <set>
+      <if test="staffId != null">
+        staff_id = #{staffId,jdbcType=BIGINT},
+      </if>
+      <if test="putScene != null">
+        put_scene = #{putScene,jdbcType=VARCHAR},
+      </if>
+      <if test="channel != null">
+        channel = #{channel,jdbcType=VARCHAR},
+      </if>
+      <if test="switchFlag != null">
+        switch_flag = #{switchFlag,jdbcType=INTEGER},
+      </if>
+      <if test="openRoomSendSwitchNum != null">
+        open_room_send_switch_num = #{openRoomSendSwitchNum,jdbcType=INTEGER},
+      </if>
+      <if test="primaryThirdStaffId != null">
+        primary_third_staff_id = #{primaryThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="secondThirdStaffId != null">
+        second_third_staff_id = #{secondThirdStaffId,jdbcType=BIGINT},
+      </if>
+      <if test="status != null">
+        `status` = #{status,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfig">
+    update third_part_we_com_staff_config
+    set staff_id = #{staffId,jdbcType=BIGINT},
+      put_scene = #{putScene,jdbcType=VARCHAR},
+      channel = #{channel,jdbcType=VARCHAR},
+      switch_flag = #{switchFlag,jdbcType=INTEGER},
+      open_room_send_switch_num = #{openRoomSendSwitchNum,jdbcType=INTEGER},
+      primary_third_staff_id = #{primaryThirdStaffId,jdbcType=BIGINT},
+      second_third_staff_id = #{secondThirdStaffId,jdbcType=BIGINT},
+      `status` = #{status,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      update_time = #{updateTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 278 - 0
api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigTaskContentMapper.xml

@@ -0,0 +1,278 @@
+<?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.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComStaffConfigTaskContentMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskContent">
+    <id column="id" jdbcType="VARCHAR" property="id" />
+    <result column="task_id" jdbcType="VARCHAR" property="taskId" />
+    <result column="type" jdbcType="INTEGER" property="type" />
+    <result column="content" jdbcType="VARCHAR" property="content" />
+    <result column="source" jdbcType="INTEGER" property="source" />
+    <result column="source_content" jdbcType="VARCHAR" property="sourceContent" />
+    <result column="seq" jdbcType="INTEGER" property="seq" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, task_id, `type`, content, `source`, source_content, seq, create_time, update_time
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskContentExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from third_part_we_com_staff_config_task_content
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from third_part_we_com_staff_config_task_content
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from third_part_we_com_staff_config_task_content
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskContentExample">
+    delete from third_part_we_com_staff_config_task_content
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskContent">
+    insert into third_part_we_com_staff_config_task_content (id, task_id, `type`, 
+      content, `source`, source_content, 
+      seq, create_time, update_time
+      )
+    values (#{id,jdbcType=VARCHAR}, #{taskId,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, 
+      #{content,jdbcType=VARCHAR}, #{source,jdbcType=INTEGER}, #{sourceContent,jdbcType=VARCHAR}, 
+      #{seq,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskContent">
+    insert into third_part_we_com_staff_config_task_content
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="taskId != null">
+        task_id,
+      </if>
+      <if test="type != null">
+        `type`,
+      </if>
+      <if test="content != null">
+        content,
+      </if>
+      <if test="source != null">
+        `source`,
+      </if>
+      <if test="sourceContent != null">
+        source_content,
+      </if>
+      <if test="seq != null">
+        seq,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="taskId != null">
+        #{taskId,jdbcType=VARCHAR},
+      </if>
+      <if test="type != null">
+        #{type,jdbcType=INTEGER},
+      </if>
+      <if test="content != null">
+        #{content,jdbcType=VARCHAR},
+      </if>
+      <if test="source != null">
+        #{source,jdbcType=INTEGER},
+      </if>
+      <if test="sourceContent != null">
+        #{sourceContent,jdbcType=VARCHAR},
+      </if>
+      <if test="seq != null">
+        #{seq,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskContentExample" resultType="java.lang.Long">
+    select count(*) from third_part_we_com_staff_config_task_content
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update third_part_we_com_staff_config_task_content
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=VARCHAR},
+      </if>
+      <if test="record.taskId != null">
+        task_id = #{record.taskId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.type != null">
+        `type` = #{record.type,jdbcType=INTEGER},
+      </if>
+      <if test="record.content != null">
+        content = #{record.content,jdbcType=VARCHAR},
+      </if>
+      <if test="record.source != null">
+        `source` = #{record.source,jdbcType=INTEGER},
+      </if>
+      <if test="record.sourceContent != null">
+        source_content = #{record.sourceContent,jdbcType=VARCHAR},
+      </if>
+      <if test="record.seq != null">
+        seq = #{record.seq,jdbcType=INTEGER},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update third_part_we_com_staff_config_task_content
+    set id = #{record.id,jdbcType=VARCHAR},
+      task_id = #{record.taskId,jdbcType=VARCHAR},
+      `type` = #{record.type,jdbcType=INTEGER},
+      content = #{record.content,jdbcType=VARCHAR},
+      `source` = #{record.source,jdbcType=INTEGER},
+      source_content = #{record.sourceContent,jdbcType=VARCHAR},
+      seq = #{record.seq,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskContent">
+    update third_part_we_com_staff_config_task_content
+    <set>
+      <if test="taskId != null">
+        task_id = #{taskId,jdbcType=VARCHAR},
+      </if>
+      <if test="type != null">
+        `type` = #{type,jdbcType=INTEGER},
+      </if>
+      <if test="content != null">
+        content = #{content,jdbcType=VARCHAR},
+      </if>
+      <if test="source != null">
+        `source` = #{source,jdbcType=INTEGER},
+      </if>
+      <if test="sourceContent != null">
+        source_content = #{sourceContent,jdbcType=VARCHAR},
+      </if>
+      <if test="seq != null">
+        seq = #{seq,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskContent">
+    update third_part_we_com_staff_config_task_content
+    set task_id = #{taskId,jdbcType=VARCHAR},
+      `type` = #{type,jdbcType=INTEGER},
+      content = #{content,jdbcType=VARCHAR},
+      `source` = #{source,jdbcType=INTEGER},
+      source_content = #{sourceContent,jdbcType=VARCHAR},
+      seq = #{seq,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      update_time = #{updateTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 261 - 0
api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComStaffConfigTaskMapper.xml

@@ -0,0 +1,261 @@
+<?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.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComStaffConfigTaskMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTask">
+    <id column="id" jdbcType="VARCHAR" property="id" />
+    <result column="config_id" jdbcType="VARCHAR" property="configId" />
+    <result column="switch_flag" jdbcType="INTEGER" property="switchFlag" />
+    <result column="send_time" jdbcType="VARCHAR" property="sendTime" />
+    <result column="random_min" jdbcType="INTEGER" property="randomMin" />
+    <result column="seq" jdbcType="INTEGER" property="seq" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, config_id, switch_flag, send_time, random_min, seq, create_time, update_time
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from third_part_we_com_staff_config_task
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from third_part_we_com_staff_config_task
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from third_part_we_com_staff_config_task
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskExample">
+    delete from third_part_we_com_staff_config_task
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTask">
+    insert into third_part_we_com_staff_config_task (id, config_id, switch_flag, 
+      send_time, random_min, seq, 
+      create_time, update_time)
+    values (#{id,jdbcType=VARCHAR}, #{configId,jdbcType=VARCHAR}, #{switchFlag,jdbcType=INTEGER}, 
+      #{sendTime,jdbcType=VARCHAR}, #{randomMin,jdbcType=INTEGER}, #{seq,jdbcType=INTEGER}, 
+      #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTask">
+    insert into third_part_we_com_staff_config_task
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="configId != null">
+        config_id,
+      </if>
+      <if test="switchFlag != null">
+        switch_flag,
+      </if>
+      <if test="sendTime != null">
+        send_time,
+      </if>
+      <if test="randomMin != null">
+        random_min,
+      </if>
+      <if test="seq != null">
+        seq,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="configId != null">
+        #{configId,jdbcType=VARCHAR},
+      </if>
+      <if test="switchFlag != null">
+        #{switchFlag,jdbcType=INTEGER},
+      </if>
+      <if test="sendTime != null">
+        #{sendTime,jdbcType=VARCHAR},
+      </if>
+      <if test="randomMin != null">
+        #{randomMin,jdbcType=INTEGER},
+      </if>
+      <if test="seq != null">
+        #{seq,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTaskExample" resultType="java.lang.Long">
+    select count(*) from third_part_we_com_staff_config_task
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update third_part_we_com_staff_config_task
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=VARCHAR},
+      </if>
+      <if test="record.configId != null">
+        config_id = #{record.configId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.switchFlag != null">
+        switch_flag = #{record.switchFlag,jdbcType=INTEGER},
+      </if>
+      <if test="record.sendTime != null">
+        send_time = #{record.sendTime,jdbcType=VARCHAR},
+      </if>
+      <if test="record.randomMin != null">
+        random_min = #{record.randomMin,jdbcType=INTEGER},
+      </if>
+      <if test="record.seq != null">
+        seq = #{record.seq,jdbcType=INTEGER},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update third_part_we_com_staff_config_task
+    set id = #{record.id,jdbcType=VARCHAR},
+      config_id = #{record.configId,jdbcType=VARCHAR},
+      switch_flag = #{record.switchFlag,jdbcType=INTEGER},
+      send_time = #{record.sendTime,jdbcType=VARCHAR},
+      random_min = #{record.randomMin,jdbcType=INTEGER},
+      seq = #{record.seq,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTask">
+    update third_part_we_com_staff_config_task
+    <set>
+      <if test="configId != null">
+        config_id = #{configId,jdbcType=VARCHAR},
+      </if>
+      <if test="switchFlag != null">
+        switch_flag = #{switchFlag,jdbcType=INTEGER},
+      </if>
+      <if test="sendTime != null">
+        send_time = #{sendTime,jdbcType=VARCHAR},
+      </if>
+      <if test="randomMin != null">
+        random_min = #{randomMin,jdbcType=INTEGER},
+      </if>
+      <if test="seq != null">
+        seq = #{seq,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffConfigTask">
+    update third_part_we_com_staff_config_task
+    set config_id = #{configId,jdbcType=VARCHAR},
+      switch_flag = #{switchFlag,jdbcType=INTEGER},
+      send_time = #{sendTime,jdbcType=VARCHAR},
+      random_min = #{randomMin,jdbcType=INTEGER},
+      seq = #{seq,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      update_time = #{updateTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 23 - 6
api-module/src/main/resources/mapper/wecom/thirdpart/ThirdPartWeComStaffMapper.xml

@@ -9,6 +9,7 @@
     <result column="third_staff_id" jdbcType="BIGINT" property="thirdStaffId" />
     <result column="third_uuid" jdbcType="VARCHAR" property="thirdUuid" />
     <result column="avatar" jdbcType="VARCHAR" property="avatar" />
+    <result column="qr_image" jdbcType="VARCHAR" property="qrImage" />
     <result column="status" jdbcType="INTEGER" property="status" />
     <result column="auto_create_room" jdbcType="INTEGER" property="autoCreateRoom" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
@@ -73,8 +74,8 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    id, corp_id, mobile, `name`, third_staff_id, third_uuid, avatar, `status`, auto_create_room, 
-    create_time, update_time
+    id, corp_id, mobile, `name`, third_staff_id, third_uuid, avatar, qr_image, `status`, 
+    auto_create_room, create_time, update_time
   </sql>
   <select id="selectByExample" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaffExample" resultMap="BaseResultMap">
     select
@@ -112,12 +113,14 @@
   <insert id="insert" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaff">
     insert into third_part_we_com_staff (id, corp_id, mobile, 
       `name`, third_staff_id, third_uuid, 
-      avatar, `status`, auto_create_room, 
-      create_time, update_time)
+      avatar, qr_image, `status`, 
+      auto_create_room, create_time, update_time
+      )
     values (#{id,jdbcType=BIGINT}, #{corpId,jdbcType=BIGINT}, #{mobile,jdbcType=VARCHAR}, 
       #{name,jdbcType=VARCHAR}, #{thirdStaffId,jdbcType=BIGINT}, #{thirdUuid,jdbcType=VARCHAR}, 
-      #{avatar,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, #{autoCreateRoom,jdbcType=INTEGER}, 
-      #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
+      #{avatar,jdbcType=VARCHAR}, #{qrImage,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, 
+      #{autoCreateRoom,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaff">
     insert into third_part_we_com_staff
@@ -143,6 +146,9 @@
       <if test="avatar != null">
         avatar,
       </if>
+      <if test="qrImage != null">
+        qr_image,
+      </if>
       <if test="status != null">
         `status`,
       </if>
@@ -178,6 +184,9 @@
       <if test="avatar != null">
         #{avatar,jdbcType=VARCHAR},
       </if>
+      <if test="qrImage != null">
+        #{qrImage,jdbcType=VARCHAR},
+      </if>
       <if test="status != null">
         #{status,jdbcType=INTEGER},
       </if>
@@ -222,6 +231,9 @@
       <if test="record.avatar != null">
         avatar = #{record.avatar,jdbcType=VARCHAR},
       </if>
+      <if test="record.qrImage != null">
+        qr_image = #{record.qrImage,jdbcType=VARCHAR},
+      </if>
       <if test="record.status != null">
         `status` = #{record.status,jdbcType=INTEGER},
       </if>
@@ -248,6 +260,7 @@
       third_staff_id = #{record.thirdStaffId,jdbcType=BIGINT},
       third_uuid = #{record.thirdUuid,jdbcType=VARCHAR},
       avatar = #{record.avatar,jdbcType=VARCHAR},
+      qr_image = #{record.qrImage,jdbcType=VARCHAR},
       `status` = #{record.status,jdbcType=INTEGER},
       auto_create_room = #{record.autoCreateRoom,jdbcType=INTEGER},
       create_time = #{record.createTime,jdbcType=TIMESTAMP},
@@ -277,6 +290,9 @@
       <if test="avatar != null">
         avatar = #{avatar,jdbcType=VARCHAR},
       </if>
+      <if test="qrImage != null">
+        qr_image = #{qrImage,jdbcType=VARCHAR},
+      </if>
       <if test="status != null">
         `status` = #{status,jdbcType=INTEGER},
       </if>
@@ -300,6 +316,7 @@
       third_staff_id = #{thirdStaffId,jdbcType=BIGINT},
       third_uuid = #{thirdUuid,jdbcType=VARCHAR},
       avatar = #{avatar,jdbcType=VARCHAR},
+      qr_image = #{qrImage,jdbcType=VARCHAR},
       `status` = #{status,jdbcType=INTEGER},
       auto_create_room = #{autoCreateRoom,jdbcType=INTEGER},
       create_time = #{createTime,jdbcType=TIMESTAMP},

+ 6 - 0
api-module/src/main/resources/mapper/wecom/thirdpart/ext/ThirdPartWeComMapperExt.xml

@@ -331,4 +331,10 @@
         </foreach>
     </update>
 
+    <update id="updateStaffQrImageByUuid">
+        update third_part_we_com_staff
+        set qr_image = #{qrImage}
+        where third_uuid = #{uuid}
+    </update>
+
 </mapper>

+ 12 - 6
api-module/src/main/resources/mybatis-api-wecomThirdpart-generator-config.xml

@@ -50,12 +50,18 @@
             <property name="enableSubPackages" value="true"/>
         </javaClientGenerator>
 
-        <table tableName="third_part_we_com_corp" domainObjectName="ThirdPartWeComCorp" alias=""/>
-        <table tableName="third_part_we_com_room" domainObjectName="ThirdPartWeComRoom" alias=""/>
-        <table tableName="third_part_we_com_room_user" domainObjectName="ThirdPartWeComRoomUser" alias=""/>
-        <table tableName="third_part_we_com_staff" domainObjectName="ThirdPartWeComStaff" alias=""/>
-        <table tableName="third_part_we_com_staff_user" domainObjectName="ThirdPartWeComStaffUser" alias=""/>
-        <table tableName="third_part_we_com_msg" domainObjectName="ThirdPartWeComMsg" alias=""/>
+<!--        <table tableName="third_part_we_com_corp" domainObjectName="ThirdPartWeComCorp" alias=""/>-->
+<!--        <table tableName="third_part_we_com_room" domainObjectName="ThirdPartWeComRoom" alias=""/>-->
+<!--        <table tableName="third_part_we_com_room_user" domainObjectName="ThirdPartWeComRoomUser" alias=""/>-->
+        <table tableName="third_part_we_com_room_config" domainObjectName="ThirdPartWeComRoomConfig" alias=""/>
+        <table tableName="third_part_we_com_room_config_task" domainObjectName="ThirdPartWeComRoomConfigTask" alias=""/>
+        <table tableName="third_part_we_com_room_config_task_content" domainObjectName="ThirdPartWeComRoomConfigTaskContent" alias=""/>
+<!--        <table tableName="third_part_we_com_staff" domainObjectName="ThirdPartWeComStaff" alias=""/>-->
+<!--        <table tableName="third_part_we_com_staff_user" domainObjectName="ThirdPartWeComStaffUser" alias=""/>-->
+        <table tableName="third_part_we_com_staff_config" domainObjectName="ThirdPartWeComStaffConfig" alias=""/>
+        <table tableName="third_part_we_com_staff_config_task" domainObjectName="ThirdPartWeComStaffConfigTask" alias=""/>
+        <table tableName="third_part_we_com_staff_config_task_content" domainObjectName="ThirdPartWeComStaffConfigTaskContent" alias=""/>
+<!--        <table tableName="third_part_we_com_msg" domainObjectName="ThirdPartWeComMsg" alias=""/>-->
     </context>
 
 </generatorConfiguration>

+ 23 - 0
common-module/src/main/java/com/tzld/piaoquan/growth/common/utils/DistributedIdGenerator.java

@@ -0,0 +1,23 @@
+package com.tzld.piaoquan.growth.common.utils;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Random;
+
+public abstract class DistributedIdGenerator {
+    /**
+     * 生成一个
+     *
+     * @return
+     */
+    public static String generate() {
+        StringBuilder builder = new StringBuilder();
+        builder.append(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()));
+        builder.append(new Random().nextInt(899999) + 100000);
+        return builder.toString();
+    }
+
+    public static void main(String[] args) {
+        System.out.println(generate());
+    }
+}