Sfoglia il codice sorgente

Merge branch 'master' into dev-lqc

lqc 4 anni fa
parent
commit
96e30a3b86
49 ha cambiato i file con 3471 aggiunte e 47 eliminazioni
  1. 10 5
      src/main/java/com/mokamrp/privates/controller/WorkComplainH5RecordController.java
  2. 55 0
      src/main/java/com/mokamrp/privates/controller/crawer/AppBaseBasicProfileController.java
  3. 55 0
      src/main/java/com/mokamrp/privates/controller/crawer/SettingpageController.java
  4. 55 0
      src/main/java/com/mokamrp/privates/controller/data/H5ComplaintBtnClickController.java
  5. 66 0
      src/main/java/com/mokamrp/privates/controller/data/H5ComplaintOpenController.java
  6. 2 4
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashTaskTemplateController.java
  7. 1 1
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashWorkClientController.java
  8. 2 4
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashWorkwxTaskListController.java
  9. 98 12
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxStationBindBoxController.java
  10. 57 0
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxStationBindBoxGroupController.java
  11. 4 0
      src/main/java/com/mokamrp/privates/entity/PostBasePageHandle.java
  12. 1 0
      src/main/java/com/mokamrp/privates/entity/pangu/GetForsterwxStationBindBoxHandle.java
  13. 21 0
      src/main/java/com/mokamrp/privates/mapper/crawer/AppBaseBasicProfileMapper.java
  14. 102 0
      src/main/java/com/mokamrp/privates/mapper/crawer/AppBaseBasicProfileMapper.xml
  15. 21 0
      src/main/java/com/mokamrp/privates/mapper/crawer/SettingpageMapper.java
  16. 70 0
      src/main/java/com/mokamrp/privates/mapper/crawer/SettingpageMapper.xml
  17. 1240 0
      src/main/java/com/mokamrp/privates/mapper/crawer/pojo/AppBaseBasicProfile.java
  18. 656 0
      src/main/java/com/mokamrp/privates/mapper/crawer/pojo/Settingpage.java
  19. 21 0
      src/main/java/com/mokamrp/privates/mapper/data/H5ComplaintBtnClickMapper.java
  20. 23 0
      src/main/java/com/mokamrp/privates/mapper/data/H5ComplaintBtnClickMapper.xml
  21. 22 0
      src/main/java/com/mokamrp/privates/mapper/data/H5ComplaintOpenMapper.java
  22. 28 0
      src/main/java/com/mokamrp/privates/mapper/data/H5ComplaintOpenMapper.xml
  23. 125 0
      src/main/java/com/mokamrp/privates/mapper/data/pojo/H5ComplaintBtnClick.java
  24. 108 0
      src/main/java/com/mokamrp/privates/mapper/data/pojo/H5ComplaintOpen.java
  25. 21 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxStationBindBoxGroupMapper.java
  26. 26 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxStationBindBoxGroupMapper.xml
  27. 1 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxStationBindBoxMapper.xml
  28. 7 0
      src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxStationBindBox.java
  29. 98 0
      src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxStationBindBoxGroup.java
  30. 2 1
      src/main/java/com/mokamrp/privates/service/CoralApiService.java
  31. 20 0
      src/main/java/com/mokamrp/privates/service/crawer/AppBaseBasicProfileService.java
  32. 20 0
      src/main/java/com/mokamrp/privates/service/crawer/SettingpageService.java
  33. 43 0
      src/main/java/com/mokamrp/privates/service/crawer/impl/AppBaseBasicProfileServiceImpl.java
  34. 43 0
      src/main/java/com/mokamrp/privates/service/crawer/impl/SettingpageServiceImpl.java
  35. 20 0
      src/main/java/com/mokamrp/privates/service/data/H5ComplaintBtnClickService.java
  36. 20 0
      src/main/java/com/mokamrp/privates/service/data/H5ComplaintOpenService.java
  37. 43 0
      src/main/java/com/mokamrp/privates/service/data/impl/H5ComplaintBtnClickServiceImpl.java
  38. 43 0
      src/main/java/com/mokamrp/privates/service/data/impl/H5ComplaintOpenServiceImpl.java
  39. 1 1
      src/main/java/com/mokamrp/privates/service/impl/CoralApiServiceImpl.java
  40. 20 0
      src/main/java/com/mokamrp/privates/service/pangu/FosterwxStationBindBoxGroupService.java
  41. 4 2
      src/main/java/com/mokamrp/privates/service/pangu/FosterwxStationBindBoxService.java
  42. 43 0
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxStationBindBoxGroupServiceImpl.java
  43. 61 11
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxStationBindBoxServiceImpl.java
  44. 2 3
      src/main/java/com/mokamrp/privates/task/pangu/UpdateFosterwxCashWorkBoxClientInfo.java
  45. BIN
      src/main/resources/static/导入私域公众号&小程序.xls
  46. BIN
      src/main/resources/static/导入站点绑定公众号&小程序.xls
  47. 2 2
      src/test/java/com/mokamrp/AutoMPCrawer.java
  48. 87 0
      src/test/java/com/mokamrp/AutoMPData.java
  49. 1 1
      src/test/java/com/mokamrp/AutoMPPangu.java

+ 10 - 5
src/main/java/com/mokamrp/privates/controller/WorkComplainH5RecordController.java

@@ -5,22 +5,21 @@ import com.mokamrp.privates.constant.HttpStatus;
 import com.mokamrp.privates.entity.PostBasePageHandle;
 import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.mapper.data.pojo.H5ComplaintOpen;
+import com.mokamrp.privates.service.data.H5ComplaintBtnClickService;
+import com.mokamrp.privates.service.data.H5ComplaintOpenService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.*;
 import com.mokamrp.privates.service.WorkComplainH5RecordService;
 import com.mokamrp.privates.mapper.pojo.WorkComplainH5Record;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import com.mokamrp.privates.controller.BaseController;
 import javax.validation.Valid;
 import java.util.Map;
 import java.util.List;
 
-import org.springframework.web.bind.annotation.RestController;
-
 
 /**
  * <p>
@@ -38,6 +37,12 @@ public class WorkComplainH5RecordController extends BaseController<WorkComplainH
     public WorkComplainH5RecordService workComplainH5RecordService;
 
     @Autowired
+    public H5ComplaintOpenService h5ComplaintOpenService;
+
+    @Autowired
+    public H5ComplaintBtnClickService h5ComplaintBtnClickService;
+
+    @Autowired
     public StringRedisTemplate stringRedisTemplate;
 
     /*

+ 55 - 0
src/main/java/com/mokamrp/privates/controller/crawer/AppBaseBasicProfileController.java

@@ -0,0 +1,55 @@
+package com.mokamrp.privates.controller.crawer;
+
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.entity.ResHandle;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.service.crawer.AppBaseBasicProfileService;
+import com.mokamrp.privates.mapper.crawer.pojo.AppBaseBasicProfile;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.controller.BaseController;
+import javax.validation.Valid;
+import java.util.Map;
+import java.util.List;
+
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 小程序-用户信息-基本信息 前端控制器
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@RestController
+@RequestMapping("/appBaseBasicProfile")
+public class AppBaseBasicProfileController extends BaseController<AppBaseBasicProfile> {
+
+    @Autowired
+    public AppBaseBasicProfileService appBaseBasicProfileService;
+
+    /*
+     * @fast
+     * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
+     * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
+     */
+
+    @PostMapping("/list")
+    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        ResHandle<List<AppBaseBasicProfile>> res = appBaseBasicProfileService.getList(postBasePageHandle);
+        return AjaxResult.success(res);
+    }
+
+
+}
+

+ 55 - 0
src/main/java/com/mokamrp/privates/controller/crawer/SettingpageController.java

@@ -0,0 +1,55 @@
+package com.mokamrp.privates.controller.crawer;
+
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.entity.ResHandle;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.service.crawer.SettingpageService;
+import com.mokamrp.privates.mapper.crawer.pojo.Settingpage;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.controller.BaseController;
+import javax.validation.Valid;
+import java.util.Map;
+import java.util.List;
+
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 账号详情f=json 前端控制器
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@RestController
+@RequestMapping("/settingpage")
+public class SettingpageController extends BaseController<Settingpage> {
+
+    @Autowired
+    public SettingpageService settingpageService;
+
+    /*
+     * @fast
+     * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
+     * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
+     */
+
+    @PostMapping("/list")
+    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        ResHandle<List<Settingpage>> res = settingpageService.getList(postBasePageHandle);
+        return AjaxResult.success(res);
+    }
+
+
+}
+

+ 55 - 0
src/main/java/com/mokamrp/privates/controller/data/H5ComplaintBtnClickController.java

@@ -0,0 +1,55 @@
+package com.mokamrp.privates.controller.data;
+
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.entity.ResHandle;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.service.data.H5ComplaintBtnClickService;
+import com.mokamrp.privates.mapper.data.pojo.H5ComplaintBtnClick;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.controller.BaseController;
+import javax.validation.Valid;
+import java.util.Map;
+import java.util.List;
+
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 企微h5投诉数据按钮点击数据 前端控制器
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-30
+ */
+@RestController
+@RequestMapping("/h5ComplaintBtnClick")
+public class H5ComplaintBtnClickController extends BaseController<H5ComplaintBtnClick> {
+
+    @Autowired
+    public H5ComplaintBtnClickService h5ComplaintBtnClickService;
+
+    /*
+     * @fast
+     * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
+     * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
+     */
+
+    @PostMapping("/list")
+    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        ResHandle<List<H5ComplaintBtnClick>> res = h5ComplaintBtnClickService.getList(postBasePageHandle);
+        return AjaxResult.success(res);
+    }
+
+
+}
+

+ 66 - 0
src/main/java/com/mokamrp/privates/controller/data/H5ComplaintOpenController.java

@@ -0,0 +1,66 @@
+package com.mokamrp.privates.controller.data;
+
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.entity.ResHandle;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.service.data.H5ComplaintOpenService;
+import com.mokamrp.privates.mapper.data.pojo.H5ComplaintOpen;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.controller.BaseController;
+import javax.validation.Valid;
+import java.util.Map;
+import java.util.List;
+
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 企微h5投诉页面访问数据 前端控制器
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-30
+ */
+@RestController
+@Api(tags = "企微h5投诉数据")
+@RequestMapping("/h5ComplaintOpen")
+public class H5ComplaintOpenController extends BaseController<H5ComplaintOpen> {
+
+    @Autowired
+    public H5ComplaintOpenService h5ComplaintOpenService;
+
+    /*
+     * @fast
+     * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
+     * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
+     */
+
+    @PostMapping("/list")
+    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        ResHandle<List<H5ComplaintOpen>> res = h5ComplaintOpenService.getList(postBasePageHandle);
+        return AjaxResult.success(res);
+    }
+
+    @PostMapping("/openData")
+    public Object openData(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        ResHandle<List<H5ComplaintOpen>> res = h5ComplaintOpenService.getList(postBasePageHandle);
+        return AjaxResult.success(res);
+    }
+
+
+}
+

+ 2 - 4
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashTaskTemplateController.java

@@ -164,16 +164,14 @@ public class FosterwxCashTaskTemplateController extends BaseController<FosterwxC
                 Integer taskType = fosterwxCashWorkwxTaskList.getTaskType();
                 if (taskType == 1){
                     FosterwxCashOasBox boxOasInfo = fosterwxCashOasBoxService.getById(fosterwxCashWorkwxTaskList.getBoxId());
-                    Object info = coralApiService.getBoxInfo(boxOasInfo.getGhId());
-                    JSONObject json = JSONObject.parseObject(info.toString());
+                    JSONObject json = coralApiService.getBoxInfo(boxOasInfo.getGhId());
                     fosterwxCashWorkwxTaskList.setBoxType(boxOasInfo.getBoxType());
                     fosterwxCashWorkwxTaskList.setBoxName(boxOasInfo.getName());
                     fosterwxCashWorkwxTaskList.setBoxGhId(boxOasInfo.getGhId());
                     fosterwxCashWorkwxTaskList.setBoxAppid(json.get("appid").toString());
                 }else if (taskType == 3){
                     //.从缓存抽取ghid videoId tagId,同时从珊瑚云抽取appid boxType
-                    Object info = coralApiService.getBoxInfo(fosterwxCashWorkwxTaskList.getBoxGhId());
-                    JSONObject json = JSONObject.parseObject(info.toString());
+                    JSONObject json = coralApiService.getBoxInfo(fosterwxCashWorkwxTaskList.getBoxGhId());
                     fosterwxCashWorkwxTaskList.setBoxType(Integer.parseInt(json.get("boxType").toString()));
                     fosterwxCashWorkwxTaskList.setBoxAppid(json.get("appid").toString());
                 }

+ 1 - 1
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashWorkClientController.java

@@ -166,7 +166,7 @@ public class FosterwxCashWorkClientController extends BaseController<FosterwxCas
                 fosterwxCashWorkBoxClientInfoLambdaQueryWrapper.last("LIMIT 1");
                 FosterwxCashWorkBoxClientInfo fosterwxCashWorkBoxClientInfo = fosterwxCashWorkBoxClientInfoService.getOne(fosterwxCashWorkBoxClientInfoLambdaQueryWrapper);
 
-                Object obj = coralApiService.getBoxInfo(fosterwxCashWorkwxTaskList.getBoxGhId());
+                JSONObject obj = coralApiService.getBoxInfo(fosterwxCashWorkwxTaskList.getBoxGhId());
 
                 if (null != fosterwxCashWorkBoxClientInfo && null != obj) {
                     FosterwxCashBoxClientInfo.BoxInfo boxInfo = fosterwxCashBoxClientInfo.new BoxInfo();

+ 2 - 4
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashWorkwxTaskListController.java

@@ -88,16 +88,14 @@ public class FosterwxCashWorkwxTaskListController extends BaseController<Fosterw
         Integer taskType = editHandle.getRaw().getTaskType();
         if (taskType == 1) {
             FosterwxCashOasBox boxOasInfo = fosterwxCashOasBoxService.getById(editHandle.getRaw().getBoxId());
-            Object info = coralApiService.getBoxInfo(boxOasInfo.getGhId());
-            JSONObject json = JSONObject.parseObject(info.toString());
+            JSONObject json = coralApiService.getBoxInfo(boxOasInfo.getGhId());
             editHandle.getRaw().setBoxType(boxOasInfo.getBoxType());
             editHandle.getRaw().setBoxName(boxOasInfo.getName());
             editHandle.getRaw().setBoxGhId(boxOasInfo.getGhId());
             editHandle.getRaw().setBoxAppid(json.get("appid").toString());
         } else if (taskType == 3){
             //.从缓存抽取ghid videoId tagId,同时从珊瑚云抽取appid boxType
-            Object info = coralApiService.getBoxInfo(editHandle.getRaw().getBoxGhId());
-            JSONObject json = JSONObject.parseObject(info.toString());
+            JSONObject json = coralApiService.getBoxInfo(editHandle.getRaw().getBoxGhId());
             editHandle.getRaw().setBoxType(Integer.parseInt(json.get("boxType").toString()));
             editHandle.getRaw().setBoxAppid(json.get("appid").toString());
         }

+ 98 - 12
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxStationBindBoxController.java

@@ -1,14 +1,29 @@
 package com.mokamrp.privates.controller.pangu;
 
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.model.PutObjectRequest;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mokamrp.privates.config.OSSConfiguration;
+import com.mokamrp.privates.constant.Constants;
 import com.mokamrp.privates.constant.HttpMsg;
 import com.mokamrp.privates.constant.HttpStatus;
 import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.entity.SetGroupHandle;
 import com.mokamrp.privates.entity.VoltaHandle;
 import com.mokamrp.privates.entity.pangu.GetForsterwxStationBindBoxHandle;
 import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.help.Analysis;
 import com.mokamrp.privates.interceptor.AuthUser;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashMobile;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobileWxfriend;
 import com.mokamrp.privates.mapper.pojo.User;
+import com.mokamrp.privates.service.crawer.AppBaseBasicProfileService;
+import com.mokamrp.privates.service.crawer.SettingpageService;
+import com.mokamrp.privates.utils.OssFile;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -20,10 +35,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import com.mokamrp.privates.controller.BaseController;
 
 import javax.validation.Valid;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.io.ByteArrayInputStream;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.util.*;
 
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
@@ -38,11 +53,16 @@ import org.springframework.web.multipart.MultipartFile;
  * @since 2021-07-21
  */
 @RestController
+@Api(tags = "个微养号-小程序/公众号")
 @RequestMapping("/pangu/fosterwxStationBindBox")
 public class FosterwxStationBindBoxController extends BaseController<FosterwxStationBindBox> {
 
     @Autowired
     public FosterwxStationBindBoxService fosterwxStationBindBoxService;
+    @Autowired
+    private OSSConfiguration ossConfiguration;
+    @Autowired
+    private OSS ossClient;
 
     /*
      * @fast
@@ -55,10 +75,23 @@ public class FosterwxStationBindBoxController extends BaseController<FosterwxSta
         if (bindingResult.hasErrors()) {
             return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
         }
-        Map<String, Object> res = fosterwxStationBindBoxService.getList(getForsterwxStationBindBoxHandle);
+        ResHandle<List<FosterwxStationBindBox>> res = fosterwxStationBindBoxService.getList(getForsterwxStationBindBoxHandle);
         return AjaxResult.success(res);
     }
 
+    @ApiOperation(value = "批量设置分组")
+    @PostMapping("/setGroup")
+    public Object setGroup(@Valid @RequestBody SetGroupHandle handle, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        FosterwxStationBindBox save = new FosterwxStationBindBox();
+        save.setGroupId(handle.getGroupId());
+        save.setUpdateAt(LocalDateTime.now());
+        service.update(save, new QueryWrapper<FosterwxStationBindBox>().in("id", handle.getIds()));
+        return AjaxResult.success(Constants.SUCCESS, true);
+    }
+
     /**
      * 导入
      *
@@ -70,21 +103,74 @@ public class FosterwxStationBindBoxController extends BaseController<FosterwxSta
     public Object uploadFile(@RequestBody MultipartFile file, @AuthUser User authUser) {
         Map<String, Object> map = new HashMap<>(16);
         Map<Integer, String> feild = new HashMap<>(5);
-        feild.put(0, "stationId");
-        feild.put(1, "type");
-        feild.put(2, "ghId");
-        feild.put(3, "boxName");
-        feild.put(4, "scope");
-        feild.put(5, "remark");
+        feild.put(0, "groupId");
+        feild.put(1, "stationId");
+        feild.put(2, "type");
+        feild.put(3, "ghId");
+        feild.put(4, "boxName");
+        feild.put(5, "scope");
+        feild.put(6, "remark");
         List<Map<String, String>> row;
         VoltaHandle<ArrayList<Map<String, String>>> voltaRes = Analysis.analysis(file, feild);
         if (voltaRes.getErr() != null) {
             return AjaxResult.error(voltaRes.getErr());
         }
         row = voltaRes.getData();
-        Boolean res = fosterwxStationBindBoxService.importData(row, authUser);
+        try {
+            VoltaHandle<Boolean> res = fosterwxStationBindBoxService.importData(row, authUser);
+        } catch (Exception e) {
+            return AjaxResult.error(e.getMessage());
+        }
         return AjaxResult.success(HttpMsg.importSuccess);
     }
 
+    @PostMapping("/export")
+    public Object export(@Valid @RequestBody GetForsterwxStationBindBoxHandle getForsterwxStationBindBoxHandle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        ResHandle<List<FosterwxStationBindBox>> res = fosterwxStationBindBoxService.getList(getForsterwxStationBindBoxHandle);
+        List<Object> tempObj;
+        List<List<Object>> resList = new ArrayList<List<Object>>();
+        Object[] head = {"分组ID","站点ID","类型(1、小程序2、公众号)",
+                "小程序/公众号名称","ghid","小程序类型","主体信息",
+                "小程序状态(1、可用2、申请中3、使用中4、不可用5、违规",
+                "位置","备注"
+
+        };
+        List<Object> headList = Arrays.asList(head);
+        Date currentTime = new Date();
+        String fileName = "站点绑定公众号/小程序列表.csv";
+        resList.add(headList);
+        for (FosterwxStationBindBox fosterwxStationBindBox : res.getList()){
+            tempObj = new ArrayList<Object>() {
+                {
+                    this.add(fosterwxStationBindBox.getGroupId());
+                    this.add(fosterwxStationBindBox.getStationId());
+                    this.add(fosterwxStationBindBox.getType());
+                    this.add(fosterwxStationBindBox.getBoxName());
+                    this.add(fosterwxStationBindBox.getGhId());
+                    this.add(fosterwxStationBindBox.getBoxType());
+                    this.add(fosterwxStationBindBox.getCorpName());
+                    this.add(fosterwxStationBindBox.getStatus());
+                    this.add(fosterwxStationBindBox.getScope());
+                    this.add(fosterwxStationBindBox.getRemark());
+                }
+            };
+            resList.add(tempObj);
+        }
+        StringBuffer content = OssFile.createCSV(resList);
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+        String dateString = formatter.format(currentTime);
+        String randNum = Integer.toString((int)(10000+Math.random()*(99999-10000+1)));
+        String filePath = OSSConfiguration.PAN_DIR + dateString + "/" + randNum + "_" + fileName;
+        PutObjectRequest putObjectRequest = new PutObjectRequest(ossConfiguration.getBucketName(), filePath,
+                new ByteArrayInputStream(content.toString().getBytes()));
+        ossClient.putObject(putObjectRequest);
+        return AjaxResult.success(ossConfiguration.getHost() + filePath);
+    }
+
+
+
 }
 

+ 57 - 0
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxStationBindBoxGroupController.java

@@ -0,0 +1,57 @@
+package com.mokamrp.privates.controller.pangu;
+
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.entity.ResHandle;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.service.pangu.FosterwxStationBindBoxGroupService;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStationBindBoxGroup;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.controller.BaseController;
+import javax.validation.Valid;
+import java.util.Map;
+import java.util.List;
+
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 个微养号小程序/公众号分组 前端控制器
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@RestController
+@Api(tags = "个微养号-分组小程序/公众号")
+@RequestMapping("/pangu/fosterwxStationBindBoxGroup")
+public class FosterwxStationBindBoxGroupController extends BaseController<FosterwxStationBindBoxGroup> {
+
+    @Autowired
+    public FosterwxStationBindBoxGroupService fosterwxStationBindBoxGroupService;
+
+    /*
+     * @fast
+     * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
+     * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
+     */
+
+    @PostMapping("/list")
+    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        ResHandle<List<FosterwxStationBindBoxGroup>> res = fosterwxStationBindBoxGroupService.getList(postBasePageHandle);
+        return AjaxResult.success(res);
+    }
+
+
+}
+

+ 4 - 0
src/main/java/com/mokamrp/privates/entity/PostBasePageHandle.java

@@ -2,6 +2,7 @@ package com.mokamrp.privates.entity;
 
 import lombok.Data;
 
+import java.time.LocalDate;
 import java.util.List;
 
 @Data
@@ -27,6 +28,9 @@ public class PostBasePageHandle {
     private Integer status;
     private Integer materialId;
     private Integer tagId;
+    private String domain;
+    private LocalDate startDate;
+    private LocalDate endDate;
     public Integer getPage() {
         return page;
     }

+ 1 - 0
src/main/java/com/mokamrp/privates/entity/pangu/GetForsterwxStationBindBoxHandle.java

@@ -9,6 +9,7 @@ public class GetForsterwxStationBindBoxHandle {
     private Integer id;
     private Integer page;
     private Integer pagesize;
+    private Integer groupId;
     private Integer stationId;
     private String stationName;
     private String remark;

+ 21 - 0
src/main/java/com/mokamrp/privates/mapper/crawer/AppBaseBasicProfileMapper.java

@@ -0,0 +1,21 @@
+package com.mokamrp.privates.mapper.crawer;
+
+import com.mokamrp.privates.mapper.crawer.pojo.AppBaseBasicProfile;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.stereotype.Component;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * 小程序-用户信息-基本信息 Mapper 接口
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@Component
+public interface AppBaseBasicProfileMapper extends BaseMapper<AppBaseBasicProfile> {
+    public List<AppBaseBasicProfile> getList(Page<AppBaseBasicProfile> pageObj);
+}

File diff suppressed because it is too large
+ 102 - 0
src/main/java/com/mokamrp/privates/mapper/crawer/AppBaseBasicProfileMapper.xml


+ 21 - 0
src/main/java/com/mokamrp/privates/mapper/crawer/SettingpageMapper.java

@@ -0,0 +1,21 @@
+package com.mokamrp.privates.mapper.crawer;
+
+import com.mokamrp.privates.mapper.crawer.pojo.Settingpage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.stereotype.Component;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * 账号详情f=json Mapper 接口
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@Component
+public interface SettingpageMapper extends BaseMapper<Settingpage> {
+    public List<Settingpage> getList(Page<Settingpage> pageObj);
+}

+ 70 - 0
src/main/java/com/mokamrp/privates/mapper/crawer/SettingpageMapper.xml

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mokamrp.privates.mapper.crawer.SettingpageMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.mokamrp.privates.mapper.crawer.pojo.Settingpage">
+        <id column="primary_key" property="primaryKey" />
+        <result column="crawler_collection_time" property="crawlerCollectionTime" />
+        <result column="original_username" property="originalUsername" />
+        <result column="alias_can_modify" property="aliasCanModify" />
+        <result column="avatar_can_modify" property="avatarCanModify" />
+        <result column="avatar_can_modify_head_img" property="avatarCanModifyHeadImg" />
+        <result column="avatar_has_avatar" property="avatarHasAvatar" />
+        <result column="avatar_quota" property="avatarQuota" />
+        <result column="contractor_info_credential" property="contractorInfoCredential" />
+        <result column="contractor_info_name" property="contractorInfoName" />
+        <result column="contractor_info_operator_idcard" property="contractorInfoOperatorIdcard" />
+        <result column="contractor_info_operator_mobile" property="contractorInfoOperatorMobile" />
+        <result column="contractor_info_operator_name" property="contractorInfoOperatorName" />
+        <result column="intro_can_modify" property="introCanModify" />
+        <result column="intro_is_force_not_modify" property="introIsForceNotModify" />
+        <result column="intro_quota" property="introQuota" />
+        <result column="signature" property="signature" />
+        <result column="jsapi_domain" property="jsapiDomain" />
+        <result column="latitude" property="latitude" />
+        <result column="longitude" property="longitude" />
+        <result column="position" property="position" />
+        <result column="can_modify_nickname" property="canModifyNickname" />
+        <result column="invade" property="invade" />
+        <result column="nickname_is_force_not_modify" property="nicknameIsForceNotModify" />
+        <result column="mod_nickname_remain_num" property="modNicknameRemainNum" />
+        <result column="nickname" property="nickname" />
+        <result column="nickname_in_check" property="nicknameInCheck" />
+        <result column="nickname_mod_list" property="nicknameModList" />
+        <result column="nickname_modify_time" property="nicknameModifyTime" />
+        <result column="rename_deadline" property="renameDeadline" />
+        <result column="status" property="status" />
+        <result column="total_fans_num" property="totalFansNum" />
+        <result column="new_friend_cnt" property="newFriendCnt" />
+        <result column="trust_domain" property="trustDomain" />
+        <result column="username" property="username" />
+        <result column="verify_fans_limit" property="verifyFansLimit" />
+        <result column="wbverify_status" property="wbverifyStatus" />
+        <result column="annual_review" property="annualReview" />
+        <result column="annual_review_begin" property="annualReviewBegin" />
+        <result column="qverify_date" property="qverifyDate" />
+        <result column="refill" property="refill" />
+        <result column="vverify_date" property="vverifyDate" />
+        <result column="wxverify_expired" property="wxverifyExpired" />
+        <result column="wxverify_status" property="wxverifyStatus" />
+        <result column="wx_protect" property="wxProtect" />
+        <result column="mobile" property="mobile" />
+        <result column="wx_uin" property="wxUin" />
+        <result column="wx_alias" property="wxAlias" />
+        <result column="protect_status" property="protectStatus" />
+        <result column="is_qq_user" property="isQqUser" />
+        <result column="realname_status" property="realnameStatus" />
+        <result column="direct_login_before_time" property="directLoginBeforeTime" />
+        <result column="publisher_open" property="publisherOpen" />
+        <result column="customer" property="customer" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        crawler_collection_time, primary_key, original_username, alias_can_modify, avatar_can_modify, avatar_can_modify_head_img, avatar_has_avatar, avatar_quota, contractor_info_credential, contractor_info_name, contractor_info_operator_idcard, contractor_info_operator_mobile, contractor_info_operator_name, intro_can_modify, intro_is_force_not_modify, intro_quota, signature, jsapi_domain, latitude, longitude, position, can_modify_nickname, invade, nickname_is_force_not_modify, mod_nickname_remain_num, nickname, nickname_in_check, nickname_mod_list, nickname_modify_time, rename_deadline, status, total_fans_num, new_friend_cnt, trust_domain, username, verify_fans_limit, wbverify_status, annual_review, annual_review_begin, qverify_date, refill, vverify_date, wxverify_expired, wxverify_status, wx_protect, mobile, wx_uin, wx_alias, protect_status, is_qq_user, realname_status, direct_login_before_time, publisher_open, customer
+    </sql>
+    <select id="getList" resultType="com.mokamrp.privates.mapper.crawer.pojo.Settingpage">
+        SELECT * FROM mp_settingpage
+    </select>
+</mapper>

+ 1240 - 0
src/main/java/com/mokamrp/privates/mapper/crawer/pojo/AppBaseBasicProfile.java

@@ -0,0 +1,1240 @@
+package com.mokamrp.privates.mapper.crawer.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 小程序-用户信息-基本信息
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@TableName("mp_app_base_basic_profile")
+public class AppBaseBasicProfile extends Model<AppBaseBasicProfile> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+      @TableId(value = "primary_key", type = IdType.AUTO)
+    private String primaryKey;
+
+    /**
+     * 简称审核中
+     */
+    private String abbrAbbrInCheck;
+
+    /**
+     * 简称
+     */
+    private String abbrAbbr;
+
+    /**
+     * 审计原因
+     */
+    private String abbrAbbrAuditReason;
+
+    /**
+     * 简称修改
+     */
+    private String abbrAbbrCanModify;
+
+    /**
+     * 简称修改时间
+     */
+    private String abbrAbbrCanModifyTimes;
+
+    /**
+     * 简称状态
+     */
+    private String abbrAbbrCheckStatus;
+
+    /**
+     * 创建时间
+     */
+    private String abbrAbbrCreateTime;
+
+    /**
+     * 是否发布
+     */
+    private String abbrAbbrIsPublish;
+
+    /**
+     * 昵称修改次数
+     */
+    private String abbrAbbrRestModifyTimes;
+
+    /**
+     * 年费状态
+     */
+    private String annualfeeStatus;
+
+    /**
+     * 头像是否可以修改
+     */
+    private String avatarCanModify;
+
+    /**
+     * 修改头像图片
+     */
+    private String avatarCanModifyHeadImg;
+
+    /**
+     * 是否存在头像 1存在 0不存在
+     */
+    private String avatarHasAvatar;
+
+    /**
+     * 头像分享
+     */
+    private String avatarQuota;
+
+    /**
+     * 禁止搜索状态 
+     */
+    private String banSearchStatus;
+
+    /**
+     * 绑定邮箱账户
+     */
+    private String bindEmailAccount;
+
+    /**
+     * 绑定邮箱可以修改次数
+     */
+    private String bindEmailCanModify;
+
+    private String bindEmailCanRender;
+
+    /**
+     * 是否绑定邮箱
+     */
+    private String bindEmailIsEmail;
+
+    /**
+     * 下次修改邮箱账户时间
+     */
+    private String bindEmailNextModifyTime;
+
+    private String canSubjectalter;
+
+    /**
+     * 服务类目 json
+     */
+    private String category;
+
+    /**
+     * 关闭微信链接
+     */
+    private String closeMpLink;
+
+    /**
+     * 关闭服务预览
+     */
+    private String closeServicePreview;
+
+    /**
+     * 公司主体代码
+     */
+    private String contractorInfoCredential;
+
+    /**
+     * 公司名称
+     */
+    private String contractorInfoName;
+
+    /**
+     * 公司法人证件号
+     */
+    private String contractorOperatorInfoIdcard;
+
+    /**
+     * 公司法人手机号
+     */
+    private String contractorOperatorInfoMobile;
+
+    /**
+     * 公司法人名字
+     */
+    private String contractorOperatorInfoName;
+
+    /**
+     * 介绍是否可以修改
+     */
+    private String introCanModify;
+
+    /**
+     * 介绍分享
+     */
+    private String introQuota;
+
+    /**
+     * 介绍签名
+     */
+    private String introSignature;
+
+    private String lowestSupportVersion;
+
+    private String nikenameInvade;
+
+    /**
+     * 小程序昵称
+     */
+    private String nicknameNikename;
+
+    private String nikenameNicknameInCheck;
+
+    /**
+     * 小程序昵称修改时间
+     */
+    private String nikenameNicknameModifyTime;
+
+    /**
+     * 小程序可以分享
+     */
+    private String nikenameQuota;
+
+    private String nikenameRemainNum;
+
+    /**
+     * 小程序状态
+     */
+    private String nikenameStatus;
+
+    /**
+     * 小程序username
+     */
+    private String originalUsername;
+
+    /**
+     * 小程序可搜索状态
+     */
+    private String searchStatus;
+
+    /**
+     * 小程序禁止原因
+     */
+    private String weappEnableInfoForbidReason;
+
+    /**
+     * 小程序禁止状态
+     */
+    private String weappEnableInfoForbiddenFlag;
+
+    private String weappEnableInfoSelfOpenFlag;
+
+    /**
+     * 用户别名
+     */
+    private String userAlias;
+
+    private String userAppServiceType;
+
+    private String userCanDoVerifyPutOff;
+
+    /**
+     * 可修改用户昵称次数
+     */
+    private String userCanModifyNickname;
+
+    private String userCanSetCategoryApi;
+
+    /**
+     * 是否使用广告
+     */
+    private String userCanUseAdvert;
+
+    /**
+     * 是否使用城市服务
+     */
+    private String userCanUseCityservice;
+
+    /**
+     * 评价次数
+     */
+    private String userCanUseEvaluate;
+
+    private String userCanUseIap;
+
+    private String userCanUsePayAnalysis;
+
+    /**
+     * 是否被搜索
+     */
+    private String userCanUseSearch;
+
+    private String userCanUseSubscribemsg;
+
+    private String userCodeCategoryHasAuthorized;
+
+    private String userComponentOwnerOfCodeCategory;
+
+    private String userFakeId;
+
+    private String userFakeIdBase64;
+
+    private String userHasBindedByComponent;
+
+    /**
+     * 发布代码
+     */
+    private String userHasPublishedCode;
+
+    /**
+     * 用户头像
+     */
+    private String userIconUrl;
+
+    private String userIsAdvertiser;
+
+    /**
+     * 是否是海外
+     */
+    private String userIsOverseas;
+
+    private String userIsWxverify;
+
+    private String userIsWxverifyAnnualReview;
+
+    private String userIsWxverifyChecking;
+
+    private String userIsWxverifySubmitted;
+
+    /**
+     * 用户昵称
+     */
+    private String userNickName;
+
+    /**
+     * 真实名字状态
+     */
+    private String userRealnameStatus;
+
+    private String userRealnameType;
+
+    /**
+     * 注册国家
+     */
+    private String userRegisteredCountry;
+
+    /**
+     * 广告显示状态
+     */
+    private String userShowAdv;
+
+    private String userSysNotifyCnt;
+
+    private String userUnreadEvaluateCnt;
+
+    /**
+     * 用户名字
+     */
+    private String userUserName;
+
+    /**
+     * 用户角色
+     */
+    private String userUserRole;
+
+    /**
+     * 年度审核开始日期
+     */
+    private LocalDate userWxverifyAnnualReviewBeginDate;
+
+    /**
+     * 年度审核结束日期
+     */
+    private LocalDate userWxverifyAnnualReviewEndDate;
+
+    /**
+     * 验证日期
+     */
+    private LocalDate userWxverifyDate;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createdAt;
+
+    /**
+     * 审核状态
+     */
+    private Integer reviewStatus;
+
+    /**
+     * 关闭原因
+     */
+    private String closeReason;
+
+    /**
+     * 审核信息
+     */
+    private String reviewMsg;
+
+    /**
+     * 是否要通知
+     */
+    private Boolean isNotice;
+
+    private Boolean isPanNotices;
+
+    /**
+     * 审核时间
+     */
+    private LocalDateTime auditTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    private LocalDateTime noticeTime;
+
+
+    public String getPrimaryKey() {
+        return primaryKey;
+    }
+
+    public void setPrimaryKey(String primaryKey) {
+        this.primaryKey = primaryKey;
+    }
+
+    public String getAbbrAbbrInCheck() {
+        return abbrAbbrInCheck;
+    }
+
+    public void setAbbrAbbrInCheck(String abbrAbbrInCheck) {
+        this.abbrAbbrInCheck = abbrAbbrInCheck;
+    }
+
+    public String getAbbrAbbr() {
+        return abbrAbbr;
+    }
+
+    public void setAbbrAbbr(String abbrAbbr) {
+        this.abbrAbbr = abbrAbbr;
+    }
+
+    public String getAbbrAbbrAuditReason() {
+        return abbrAbbrAuditReason;
+    }
+
+    public void setAbbrAbbrAuditReason(String abbrAbbrAuditReason) {
+        this.abbrAbbrAuditReason = abbrAbbrAuditReason;
+    }
+
+    public String getAbbrAbbrCanModify() {
+        return abbrAbbrCanModify;
+    }
+
+    public void setAbbrAbbrCanModify(String abbrAbbrCanModify) {
+        this.abbrAbbrCanModify = abbrAbbrCanModify;
+    }
+
+    public String getAbbrAbbrCanModifyTimes() {
+        return abbrAbbrCanModifyTimes;
+    }
+
+    public void setAbbrAbbrCanModifyTimes(String abbrAbbrCanModifyTimes) {
+        this.abbrAbbrCanModifyTimes = abbrAbbrCanModifyTimes;
+    }
+
+    public String getAbbrAbbrCheckStatus() {
+        return abbrAbbrCheckStatus;
+    }
+
+    public void setAbbrAbbrCheckStatus(String abbrAbbrCheckStatus) {
+        this.abbrAbbrCheckStatus = abbrAbbrCheckStatus;
+    }
+
+    public String getAbbrAbbrCreateTime() {
+        return abbrAbbrCreateTime;
+    }
+
+    public void setAbbrAbbrCreateTime(String abbrAbbrCreateTime) {
+        this.abbrAbbrCreateTime = abbrAbbrCreateTime;
+    }
+
+    public String getAbbrAbbrIsPublish() {
+        return abbrAbbrIsPublish;
+    }
+
+    public void setAbbrAbbrIsPublish(String abbrAbbrIsPublish) {
+        this.abbrAbbrIsPublish = abbrAbbrIsPublish;
+    }
+
+    public String getAbbrAbbrRestModifyTimes() {
+        return abbrAbbrRestModifyTimes;
+    }
+
+    public void setAbbrAbbrRestModifyTimes(String abbrAbbrRestModifyTimes) {
+        this.abbrAbbrRestModifyTimes = abbrAbbrRestModifyTimes;
+    }
+
+    public String getAnnualfeeStatus() {
+        return annualfeeStatus;
+    }
+
+    public void setAnnualfeeStatus(String annualfeeStatus) {
+        this.annualfeeStatus = annualfeeStatus;
+    }
+
+    public String getAvatarCanModify() {
+        return avatarCanModify;
+    }
+
+    public void setAvatarCanModify(String avatarCanModify) {
+        this.avatarCanModify = avatarCanModify;
+    }
+
+    public String getAvatarCanModifyHeadImg() {
+        return avatarCanModifyHeadImg;
+    }
+
+    public void setAvatarCanModifyHeadImg(String avatarCanModifyHeadImg) {
+        this.avatarCanModifyHeadImg = avatarCanModifyHeadImg;
+    }
+
+    public String getAvatarHasAvatar() {
+        return avatarHasAvatar;
+    }
+
+    public void setAvatarHasAvatar(String avatarHasAvatar) {
+        this.avatarHasAvatar = avatarHasAvatar;
+    }
+
+    public String getAvatarQuota() {
+        return avatarQuota;
+    }
+
+    public void setAvatarQuota(String avatarQuota) {
+        this.avatarQuota = avatarQuota;
+    }
+
+    public String getBanSearchStatus() {
+        return banSearchStatus;
+    }
+
+    public void setBanSearchStatus(String banSearchStatus) {
+        this.banSearchStatus = banSearchStatus;
+    }
+
+    public String getBindEmailAccount() {
+        return bindEmailAccount;
+    }
+
+    public void setBindEmailAccount(String bindEmailAccount) {
+        this.bindEmailAccount = bindEmailAccount;
+    }
+
+    public String getBindEmailCanModify() {
+        return bindEmailCanModify;
+    }
+
+    public void setBindEmailCanModify(String bindEmailCanModify) {
+        this.bindEmailCanModify = bindEmailCanModify;
+    }
+
+    public String getBindEmailCanRender() {
+        return bindEmailCanRender;
+    }
+
+    public void setBindEmailCanRender(String bindEmailCanRender) {
+        this.bindEmailCanRender = bindEmailCanRender;
+    }
+
+    public String getBindEmailIsEmail() {
+        return bindEmailIsEmail;
+    }
+
+    public void setBindEmailIsEmail(String bindEmailIsEmail) {
+        this.bindEmailIsEmail = bindEmailIsEmail;
+    }
+
+    public String getBindEmailNextModifyTime() {
+        return bindEmailNextModifyTime;
+    }
+
+    public void setBindEmailNextModifyTime(String bindEmailNextModifyTime) {
+        this.bindEmailNextModifyTime = bindEmailNextModifyTime;
+    }
+
+    public String getCanSubjectalter() {
+        return canSubjectalter;
+    }
+
+    public void setCanSubjectalter(String canSubjectalter) {
+        this.canSubjectalter = canSubjectalter;
+    }
+
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+
+    public String getCloseMpLink() {
+        return closeMpLink;
+    }
+
+    public void setCloseMpLink(String closeMpLink) {
+        this.closeMpLink = closeMpLink;
+    }
+
+    public String getCloseServicePreview() {
+        return closeServicePreview;
+    }
+
+    public void setCloseServicePreview(String closeServicePreview) {
+        this.closeServicePreview = closeServicePreview;
+    }
+
+    public String getContractorInfoCredential() {
+        return contractorInfoCredential;
+    }
+
+    public void setContractorInfoCredential(String contractorInfoCredential) {
+        this.contractorInfoCredential = contractorInfoCredential;
+    }
+
+    public String getContractorInfoName() {
+        return contractorInfoName;
+    }
+
+    public void setContractorInfoName(String contractorInfoName) {
+        this.contractorInfoName = contractorInfoName;
+    }
+
+    public String getContractorOperatorInfoIdcard() {
+        return contractorOperatorInfoIdcard;
+    }
+
+    public void setContractorOperatorInfoIdcard(String contractorOperatorInfoIdcard) {
+        this.contractorOperatorInfoIdcard = contractorOperatorInfoIdcard;
+    }
+
+    public String getContractorOperatorInfoMobile() {
+        return contractorOperatorInfoMobile;
+    }
+
+    public void setContractorOperatorInfoMobile(String contractorOperatorInfoMobile) {
+        this.contractorOperatorInfoMobile = contractorOperatorInfoMobile;
+    }
+
+    public String getContractorOperatorInfoName() {
+        return contractorOperatorInfoName;
+    }
+
+    public void setContractorOperatorInfoName(String contractorOperatorInfoName) {
+        this.contractorOperatorInfoName = contractorOperatorInfoName;
+    }
+
+    public String getIntroCanModify() {
+        return introCanModify;
+    }
+
+    public void setIntroCanModify(String introCanModify) {
+        this.introCanModify = introCanModify;
+    }
+
+    public String getIntroQuota() {
+        return introQuota;
+    }
+
+    public void setIntroQuota(String introQuota) {
+        this.introQuota = introQuota;
+    }
+
+    public String getIntroSignature() {
+        return introSignature;
+    }
+
+    public void setIntroSignature(String introSignature) {
+        this.introSignature = introSignature;
+    }
+
+    public String getLowestSupportVersion() {
+        return lowestSupportVersion;
+    }
+
+    public void setLowestSupportVersion(String lowestSupportVersion) {
+        this.lowestSupportVersion = lowestSupportVersion;
+    }
+
+    public String getNikenameInvade() {
+        return nikenameInvade;
+    }
+
+    public void setNikenameInvade(String nikenameInvade) {
+        this.nikenameInvade = nikenameInvade;
+    }
+
+    public String getNicknameNikename() {
+        return nicknameNikename;
+    }
+
+    public void setNicknameNikename(String nicknameNikename) {
+        this.nicknameNikename = nicknameNikename;
+    }
+
+    public String getNikenameNicknameInCheck() {
+        return nikenameNicknameInCheck;
+    }
+
+    public void setNikenameNicknameInCheck(String nikenameNicknameInCheck) {
+        this.nikenameNicknameInCheck = nikenameNicknameInCheck;
+    }
+
+    public String getNikenameNicknameModifyTime() {
+        return nikenameNicknameModifyTime;
+    }
+
+    public void setNikenameNicknameModifyTime(String nikenameNicknameModifyTime) {
+        this.nikenameNicknameModifyTime = nikenameNicknameModifyTime;
+    }
+
+    public String getNikenameQuota() {
+        return nikenameQuota;
+    }
+
+    public void setNikenameQuota(String nikenameQuota) {
+        this.nikenameQuota = nikenameQuota;
+    }
+
+    public String getNikenameRemainNum() {
+        return nikenameRemainNum;
+    }
+
+    public void setNikenameRemainNum(String nikenameRemainNum) {
+        this.nikenameRemainNum = nikenameRemainNum;
+    }
+
+    public String getNikenameStatus() {
+        return nikenameStatus;
+    }
+
+    public void setNikenameStatus(String nikenameStatus) {
+        this.nikenameStatus = nikenameStatus;
+    }
+
+    public String getOriginalUsername() {
+        return originalUsername;
+    }
+
+    public void setOriginalUsername(String originalUsername) {
+        this.originalUsername = originalUsername;
+    }
+
+    public String getSearchStatus() {
+        return searchStatus;
+    }
+
+    public void setSearchStatus(String searchStatus) {
+        this.searchStatus = searchStatus;
+    }
+
+    public String getWeappEnableInfoForbidReason() {
+        return weappEnableInfoForbidReason;
+    }
+
+    public void setWeappEnableInfoForbidReason(String weappEnableInfoForbidReason) {
+        this.weappEnableInfoForbidReason = weappEnableInfoForbidReason;
+    }
+
+    public String getWeappEnableInfoForbiddenFlag() {
+        return weappEnableInfoForbiddenFlag;
+    }
+
+    public void setWeappEnableInfoForbiddenFlag(String weappEnableInfoForbiddenFlag) {
+        this.weappEnableInfoForbiddenFlag = weappEnableInfoForbiddenFlag;
+    }
+
+    public String getWeappEnableInfoSelfOpenFlag() {
+        return weappEnableInfoSelfOpenFlag;
+    }
+
+    public void setWeappEnableInfoSelfOpenFlag(String weappEnableInfoSelfOpenFlag) {
+        this.weappEnableInfoSelfOpenFlag = weappEnableInfoSelfOpenFlag;
+    }
+
+    public String getUserAlias() {
+        return userAlias;
+    }
+
+    public void setUserAlias(String userAlias) {
+        this.userAlias = userAlias;
+    }
+
+    public String getUserAppServiceType() {
+        return userAppServiceType;
+    }
+
+    public void setUserAppServiceType(String userAppServiceType) {
+        this.userAppServiceType = userAppServiceType;
+    }
+
+    public String getUserCanDoVerifyPutOff() {
+        return userCanDoVerifyPutOff;
+    }
+
+    public void setUserCanDoVerifyPutOff(String userCanDoVerifyPutOff) {
+        this.userCanDoVerifyPutOff = userCanDoVerifyPutOff;
+    }
+
+    public String getUserCanModifyNickname() {
+        return userCanModifyNickname;
+    }
+
+    public void setUserCanModifyNickname(String userCanModifyNickname) {
+        this.userCanModifyNickname = userCanModifyNickname;
+    }
+
+    public String getUserCanSetCategoryApi() {
+        return userCanSetCategoryApi;
+    }
+
+    public void setUserCanSetCategoryApi(String userCanSetCategoryApi) {
+        this.userCanSetCategoryApi = userCanSetCategoryApi;
+    }
+
+    public String getUserCanUseAdvert() {
+        return userCanUseAdvert;
+    }
+
+    public void setUserCanUseAdvert(String userCanUseAdvert) {
+        this.userCanUseAdvert = userCanUseAdvert;
+    }
+
+    public String getUserCanUseCityservice() {
+        return userCanUseCityservice;
+    }
+
+    public void setUserCanUseCityservice(String userCanUseCityservice) {
+        this.userCanUseCityservice = userCanUseCityservice;
+    }
+
+    public String getUserCanUseEvaluate() {
+        return userCanUseEvaluate;
+    }
+
+    public void setUserCanUseEvaluate(String userCanUseEvaluate) {
+        this.userCanUseEvaluate = userCanUseEvaluate;
+    }
+
+    public String getUserCanUseIap() {
+        return userCanUseIap;
+    }
+
+    public void setUserCanUseIap(String userCanUseIap) {
+        this.userCanUseIap = userCanUseIap;
+    }
+
+    public String getUserCanUsePayAnalysis() {
+        return userCanUsePayAnalysis;
+    }
+
+    public void setUserCanUsePayAnalysis(String userCanUsePayAnalysis) {
+        this.userCanUsePayAnalysis = userCanUsePayAnalysis;
+    }
+
+    public String getUserCanUseSearch() {
+        return userCanUseSearch;
+    }
+
+    public void setUserCanUseSearch(String userCanUseSearch) {
+        this.userCanUseSearch = userCanUseSearch;
+    }
+
+    public String getUserCanUseSubscribemsg() {
+        return userCanUseSubscribemsg;
+    }
+
+    public void setUserCanUseSubscribemsg(String userCanUseSubscribemsg) {
+        this.userCanUseSubscribemsg = userCanUseSubscribemsg;
+    }
+
+    public String getUserCodeCategoryHasAuthorized() {
+        return userCodeCategoryHasAuthorized;
+    }
+
+    public void setUserCodeCategoryHasAuthorized(String userCodeCategoryHasAuthorized) {
+        this.userCodeCategoryHasAuthorized = userCodeCategoryHasAuthorized;
+    }
+
+    public String getUserComponentOwnerOfCodeCategory() {
+        return userComponentOwnerOfCodeCategory;
+    }
+
+    public void setUserComponentOwnerOfCodeCategory(String userComponentOwnerOfCodeCategory) {
+        this.userComponentOwnerOfCodeCategory = userComponentOwnerOfCodeCategory;
+    }
+
+    public String getUserFakeId() {
+        return userFakeId;
+    }
+
+    public void setUserFakeId(String userFakeId) {
+        this.userFakeId = userFakeId;
+    }
+
+    public String getUserFakeIdBase64() {
+        return userFakeIdBase64;
+    }
+
+    public void setUserFakeIdBase64(String userFakeIdBase64) {
+        this.userFakeIdBase64 = userFakeIdBase64;
+    }
+
+    public String getUserHasBindedByComponent() {
+        return userHasBindedByComponent;
+    }
+
+    public void setUserHasBindedByComponent(String userHasBindedByComponent) {
+        this.userHasBindedByComponent = userHasBindedByComponent;
+    }
+
+    public String getUserHasPublishedCode() {
+        return userHasPublishedCode;
+    }
+
+    public void setUserHasPublishedCode(String userHasPublishedCode) {
+        this.userHasPublishedCode = userHasPublishedCode;
+    }
+
+    public String getUserIconUrl() {
+        return userIconUrl;
+    }
+
+    public void setUserIconUrl(String userIconUrl) {
+        this.userIconUrl = userIconUrl;
+    }
+
+    public String getUserIsAdvertiser() {
+        return userIsAdvertiser;
+    }
+
+    public void setUserIsAdvertiser(String userIsAdvertiser) {
+        this.userIsAdvertiser = userIsAdvertiser;
+    }
+
+    public String getUserIsOverseas() {
+        return userIsOverseas;
+    }
+
+    public void setUserIsOverseas(String userIsOverseas) {
+        this.userIsOverseas = userIsOverseas;
+    }
+
+    public String getUserIsWxverify() {
+        return userIsWxverify;
+    }
+
+    public void setUserIsWxverify(String userIsWxverify) {
+        this.userIsWxverify = userIsWxverify;
+    }
+
+    public String getUserIsWxverifyAnnualReview() {
+        return userIsWxverifyAnnualReview;
+    }
+
+    public void setUserIsWxverifyAnnualReview(String userIsWxverifyAnnualReview) {
+        this.userIsWxverifyAnnualReview = userIsWxverifyAnnualReview;
+    }
+
+    public String getUserIsWxverifyChecking() {
+        return userIsWxverifyChecking;
+    }
+
+    public void setUserIsWxverifyChecking(String userIsWxverifyChecking) {
+        this.userIsWxverifyChecking = userIsWxverifyChecking;
+    }
+
+    public String getUserIsWxverifySubmitted() {
+        return userIsWxverifySubmitted;
+    }
+
+    public void setUserIsWxverifySubmitted(String userIsWxverifySubmitted) {
+        this.userIsWxverifySubmitted = userIsWxverifySubmitted;
+    }
+
+    public String getUserNickName() {
+        return userNickName;
+    }
+
+    public void setUserNickName(String userNickName) {
+        this.userNickName = userNickName;
+    }
+
+    public String getUserRealnameStatus() {
+        return userRealnameStatus;
+    }
+
+    public void setUserRealnameStatus(String userRealnameStatus) {
+        this.userRealnameStatus = userRealnameStatus;
+    }
+
+    public String getUserRealnameType() {
+        return userRealnameType;
+    }
+
+    public void setUserRealnameType(String userRealnameType) {
+        this.userRealnameType = userRealnameType;
+    }
+
+    public String getUserRegisteredCountry() {
+        return userRegisteredCountry;
+    }
+
+    public void setUserRegisteredCountry(String userRegisteredCountry) {
+        this.userRegisteredCountry = userRegisteredCountry;
+    }
+
+    public String getUserShowAdv() {
+        return userShowAdv;
+    }
+
+    public void setUserShowAdv(String userShowAdv) {
+        this.userShowAdv = userShowAdv;
+    }
+
+    public String getUserSysNotifyCnt() {
+        return userSysNotifyCnt;
+    }
+
+    public void setUserSysNotifyCnt(String userSysNotifyCnt) {
+        this.userSysNotifyCnt = userSysNotifyCnt;
+    }
+
+    public String getUserUnreadEvaluateCnt() {
+        return userUnreadEvaluateCnt;
+    }
+
+    public void setUserUnreadEvaluateCnt(String userUnreadEvaluateCnt) {
+        this.userUnreadEvaluateCnt = userUnreadEvaluateCnt;
+    }
+
+    public String getUserUserName() {
+        return userUserName;
+    }
+
+    public void setUserUserName(String userUserName) {
+        this.userUserName = userUserName;
+    }
+
+    public String getUserUserRole() {
+        return userUserRole;
+    }
+
+    public void setUserUserRole(String userUserRole) {
+        this.userUserRole = userUserRole;
+    }
+
+    public LocalDate getUserWxverifyAnnualReviewBeginDate() {
+        return userWxverifyAnnualReviewBeginDate;
+    }
+
+    public void setUserWxverifyAnnualReviewBeginDate(LocalDate userWxverifyAnnualReviewBeginDate) {
+        this.userWxverifyAnnualReviewBeginDate = userWxverifyAnnualReviewBeginDate;
+    }
+
+    public LocalDate getUserWxverifyAnnualReviewEndDate() {
+        return userWxverifyAnnualReviewEndDate;
+    }
+
+    public void setUserWxverifyAnnualReviewEndDate(LocalDate userWxverifyAnnualReviewEndDate) {
+        this.userWxverifyAnnualReviewEndDate = userWxverifyAnnualReviewEndDate;
+    }
+
+    public LocalDate getUserWxverifyDate() {
+        return userWxverifyDate;
+    }
+
+    public void setUserWxverifyDate(LocalDate userWxverifyDate) {
+        this.userWxverifyDate = userWxverifyDate;
+    }
+
+    public LocalDateTime getCreatedAt() {
+        return createdAt;
+    }
+
+    public void setCreatedAt(LocalDateTime createdAt) {
+        this.createdAt = createdAt;
+    }
+
+    public Integer getReviewStatus() {
+        return reviewStatus;
+    }
+
+    public void setReviewStatus(Integer reviewStatus) {
+        this.reviewStatus = reviewStatus;
+    }
+
+    public String getCloseReason() {
+        return closeReason;
+    }
+
+    public void setCloseReason(String closeReason) {
+        this.closeReason = closeReason;
+    }
+
+    public String getReviewMsg() {
+        return reviewMsg;
+    }
+
+    public void setReviewMsg(String reviewMsg) {
+        this.reviewMsg = reviewMsg;
+    }
+
+    public Boolean getIsNotice() {
+        return isNotice;
+    }
+
+    public void setIsNotice(Boolean isNotice) {
+        this.isNotice = isNotice;
+    }
+
+    public Boolean getIsPanNotices() {
+        return isPanNotices;
+    }
+
+    public void setIsPanNotices(Boolean isPanNotices) {
+        this.isPanNotices = isPanNotices;
+    }
+
+    public LocalDateTime getAuditTime() {
+        return auditTime;
+    }
+
+    public void setAuditTime(LocalDateTime auditTime) {
+        this.auditTime = auditTime;
+    }
+
+    public LocalDateTime getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(LocalDateTime updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public LocalDateTime getNoticeTime() {
+        return noticeTime;
+    }
+
+    public void setNoticeTime(LocalDateTime noticeTime) {
+        this.noticeTime = noticeTime;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.primaryKey;
+    }
+
+    @Override
+    public String toString() {
+        return "AppBaseBasicProfile{" +
+        "primaryKey=" + primaryKey +
+        ", abbrAbbrInCheck=" + abbrAbbrInCheck +
+        ", abbrAbbr=" + abbrAbbr +
+        ", abbrAbbrAuditReason=" + abbrAbbrAuditReason +
+        ", abbrAbbrCanModify=" + abbrAbbrCanModify +
+        ", abbrAbbrCanModifyTimes=" + abbrAbbrCanModifyTimes +
+        ", abbrAbbrCheckStatus=" + abbrAbbrCheckStatus +
+        ", abbrAbbrCreateTime=" + abbrAbbrCreateTime +
+        ", abbrAbbrIsPublish=" + abbrAbbrIsPublish +
+        ", abbrAbbrRestModifyTimes=" + abbrAbbrRestModifyTimes +
+        ", annualfeeStatus=" + annualfeeStatus +
+        ", avatarCanModify=" + avatarCanModify +
+        ", avatarCanModifyHeadImg=" + avatarCanModifyHeadImg +
+        ", avatarHasAvatar=" + avatarHasAvatar +
+        ", avatarQuota=" + avatarQuota +
+        ", banSearchStatus=" + banSearchStatus +
+        ", bindEmailAccount=" + bindEmailAccount +
+        ", bindEmailCanModify=" + bindEmailCanModify +
+        ", bindEmailCanRender=" + bindEmailCanRender +
+        ", bindEmailIsEmail=" + bindEmailIsEmail +
+        ", bindEmailNextModifyTime=" + bindEmailNextModifyTime +
+        ", canSubjectalter=" + canSubjectalter +
+        ", category=" + category +
+        ", closeMpLink=" + closeMpLink +
+        ", closeServicePreview=" + closeServicePreview +
+        ", contractorInfoCredential=" + contractorInfoCredential +
+        ", contractorInfoName=" + contractorInfoName +
+        ", contractorOperatorInfoIdcard=" + contractorOperatorInfoIdcard +
+        ", contractorOperatorInfoMobile=" + contractorOperatorInfoMobile +
+        ", contractorOperatorInfoName=" + contractorOperatorInfoName +
+        ", introCanModify=" + introCanModify +
+        ", introQuota=" + introQuota +
+        ", introSignature=" + introSignature +
+        ", lowestSupportVersion=" + lowestSupportVersion +
+        ", nikenameInvade=" + nikenameInvade +
+        ", nicknameNikename=" + nicknameNikename +
+        ", nikenameNicknameInCheck=" + nikenameNicknameInCheck +
+        ", nikenameNicknameModifyTime=" + nikenameNicknameModifyTime +
+        ", nikenameQuota=" + nikenameQuota +
+        ", nikenameRemainNum=" + nikenameRemainNum +
+        ", nikenameStatus=" + nikenameStatus +
+        ", originalUsername=" + originalUsername +
+        ", searchStatus=" + searchStatus +
+        ", weappEnableInfoForbidReason=" + weappEnableInfoForbidReason +
+        ", weappEnableInfoForbiddenFlag=" + weappEnableInfoForbiddenFlag +
+        ", weappEnableInfoSelfOpenFlag=" + weappEnableInfoSelfOpenFlag +
+        ", userAlias=" + userAlias +
+        ", userAppServiceType=" + userAppServiceType +
+        ", userCanDoVerifyPutOff=" + userCanDoVerifyPutOff +
+        ", userCanModifyNickname=" + userCanModifyNickname +
+        ", userCanSetCategoryApi=" + userCanSetCategoryApi +
+        ", userCanUseAdvert=" + userCanUseAdvert +
+        ", userCanUseCityservice=" + userCanUseCityservice +
+        ", userCanUseEvaluate=" + userCanUseEvaluate +
+        ", userCanUseIap=" + userCanUseIap +
+        ", userCanUsePayAnalysis=" + userCanUsePayAnalysis +
+        ", userCanUseSearch=" + userCanUseSearch +
+        ", userCanUseSubscribemsg=" + userCanUseSubscribemsg +
+        ", userCodeCategoryHasAuthorized=" + userCodeCategoryHasAuthorized +
+        ", userComponentOwnerOfCodeCategory=" + userComponentOwnerOfCodeCategory +
+        ", userFakeId=" + userFakeId +
+        ", userFakeIdBase64=" + userFakeIdBase64 +
+        ", userHasBindedByComponent=" + userHasBindedByComponent +
+        ", userHasPublishedCode=" + userHasPublishedCode +
+        ", userIconUrl=" + userIconUrl +
+        ", userIsAdvertiser=" + userIsAdvertiser +
+        ", userIsOverseas=" + userIsOverseas +
+        ", userIsWxverify=" + userIsWxverify +
+        ", userIsWxverifyAnnualReview=" + userIsWxverifyAnnualReview +
+        ", userIsWxverifyChecking=" + userIsWxverifyChecking +
+        ", userIsWxverifySubmitted=" + userIsWxverifySubmitted +
+        ", userNickName=" + userNickName +
+        ", userRealnameStatus=" + userRealnameStatus +
+        ", userRealnameType=" + userRealnameType +
+        ", userRegisteredCountry=" + userRegisteredCountry +
+        ", userShowAdv=" + userShowAdv +
+        ", userSysNotifyCnt=" + userSysNotifyCnt +
+        ", userUnreadEvaluateCnt=" + userUnreadEvaluateCnt +
+        ", userUserName=" + userUserName +
+        ", userUserRole=" + userUserRole +
+        ", userWxverifyAnnualReviewBeginDate=" + userWxverifyAnnualReviewBeginDate +
+        ", userWxverifyAnnualReviewEndDate=" + userWxverifyAnnualReviewEndDate +
+        ", userWxverifyDate=" + userWxverifyDate +
+        ", createdAt=" + createdAt +
+        ", reviewStatus=" + reviewStatus +
+        ", closeReason=" + closeReason +
+        ", reviewMsg=" + reviewMsg +
+        ", isNotice=" + isNotice +
+        ", isPanNotices=" + isPanNotices +
+        ", auditTime=" + auditTime +
+        ", updateTime=" + updateTime +
+        ", noticeTime=" + noticeTime +
+        "}";
+    }
+}

+ 656 - 0
src/main/java/com/mokamrp/privates/mapper/crawer/pojo/Settingpage.java

@@ -0,0 +1,656 @@
+package com.mokamrp.privates.mapper.crawer.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 账号详情f=json
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@TableName("mp_settingpage")
+public class Settingpage extends Model<Settingpage> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 爬虫采集时间
+     */
+    private LocalDateTime crawlerCollectionTime;
+
+    /**
+     * 主键(original_username)
+     */
+      @TableId(value = "primary_key", type = IdType.AUTO)
+    private String primaryKey;
+
+    /**
+     * 原始ID
+     */
+    private String originalUsername;
+
+    private Boolean aliasCanModify;
+
+    private Boolean avatarCanModify;
+
+    private Boolean avatarCanModifyHeadImg;
+
+    private Boolean avatarHasAvatar;
+
+    private Boolean avatarQuota;
+
+    private String contractorInfoCredential;
+
+    private String contractorInfoName;
+
+    private String contractorInfoOperatorIdcard;
+
+    private String contractorInfoOperatorMobile;
+
+    private String contractorInfoOperatorName;
+
+    private Boolean introCanModify;
+
+    private Boolean introIsForceNotModify;
+
+    private Integer introQuota;
+
+    private String signature;
+
+    private String jsapiDomain;
+
+    private String latitude;
+
+    private String longitude;
+
+    private String position;
+
+    private Boolean canModifyNickname;
+
+    private Boolean invade;
+
+    private Boolean nicknameIsForceNotModify;
+
+    private Integer modNicknameRemainNum;
+
+    private String nickname;
+
+    private String nicknameInCheck;
+
+    private String nicknameModList;
+
+    private Integer nicknameModifyTime;
+
+    private String renameDeadline;
+
+    private Integer status;
+
+    /**
+     * 首页-总用户数
+     */
+    private Integer totalFansNum;
+
+    /**
+     * 首页-新增人数
+     */
+    private Integer newFriendCnt;
+
+    private String trustDomain;
+
+    private String username;
+
+    private Integer verifyFansLimit;
+
+    private Boolean wbverifyStatus;
+
+    private Boolean annualReview;
+
+    private String annualReviewBegin;
+
+    private String qverifyDate;
+
+    private Boolean refill;
+
+    private String vverifyDate;
+
+    private String wxverifyExpired;
+
+    private Boolean wxverifyStatus;
+
+    private Boolean wxProtect;
+
+    private String mobile;
+
+    private String wxUin;
+
+    private String wxAlias;
+
+    /**
+     * 风险操作保护
+0:(登录:未保护,群发消息:未保护,修改服务器配置:未保护)
+1:(登录:已保护,群发消息:未保护,修改服务器配置:未保护)
+3:(登录:已保护,群发消息:已保护,修改服务器配置:未保护)
+     */
+    private Boolean protectStatus;
+
+    private Boolean isQqUser;
+
+    /**
+     * 2:未验证主体真实性;1:已认证
+     */
+    private Boolean realnameStatus;
+
+    private String directLoginBeforeTime;
+
+    /**
+     * 是否开通流量主,1=开,0=关
+     */
+    private Boolean publisherOpen;
+
+    private String customer;
+
+
+    public LocalDateTime getCrawlerCollectionTime() {
+        return crawlerCollectionTime;
+    }
+
+    public void setCrawlerCollectionTime(LocalDateTime crawlerCollectionTime) {
+        this.crawlerCollectionTime = crawlerCollectionTime;
+    }
+
+    public String getPrimaryKey() {
+        return primaryKey;
+    }
+
+    public void setPrimaryKey(String primaryKey) {
+        this.primaryKey = primaryKey;
+    }
+
+    public String getOriginalUsername() {
+        return originalUsername;
+    }
+
+    public void setOriginalUsername(String originalUsername) {
+        this.originalUsername = originalUsername;
+    }
+
+    public Boolean getAliasCanModify() {
+        return aliasCanModify;
+    }
+
+    public void setAliasCanModify(Boolean aliasCanModify) {
+        this.aliasCanModify = aliasCanModify;
+    }
+
+    public Boolean getAvatarCanModify() {
+        return avatarCanModify;
+    }
+
+    public void setAvatarCanModify(Boolean avatarCanModify) {
+        this.avatarCanModify = avatarCanModify;
+    }
+
+    public Boolean getAvatarCanModifyHeadImg() {
+        return avatarCanModifyHeadImg;
+    }
+
+    public void setAvatarCanModifyHeadImg(Boolean avatarCanModifyHeadImg) {
+        this.avatarCanModifyHeadImg = avatarCanModifyHeadImg;
+    }
+
+    public Boolean getAvatarHasAvatar() {
+        return avatarHasAvatar;
+    }
+
+    public void setAvatarHasAvatar(Boolean avatarHasAvatar) {
+        this.avatarHasAvatar = avatarHasAvatar;
+    }
+
+    public Boolean getAvatarQuota() {
+        return avatarQuota;
+    }
+
+    public void setAvatarQuota(Boolean avatarQuota) {
+        this.avatarQuota = avatarQuota;
+    }
+
+    public String getContractorInfoCredential() {
+        return contractorInfoCredential;
+    }
+
+    public void setContractorInfoCredential(String contractorInfoCredential) {
+        this.contractorInfoCredential = contractorInfoCredential;
+    }
+
+    public String getContractorInfoName() {
+        return contractorInfoName;
+    }
+
+    public void setContractorInfoName(String contractorInfoName) {
+        this.contractorInfoName = contractorInfoName;
+    }
+
+    public String getContractorInfoOperatorIdcard() {
+        return contractorInfoOperatorIdcard;
+    }
+
+    public void setContractorInfoOperatorIdcard(String contractorInfoOperatorIdcard) {
+        this.contractorInfoOperatorIdcard = contractorInfoOperatorIdcard;
+    }
+
+    public String getContractorInfoOperatorMobile() {
+        return contractorInfoOperatorMobile;
+    }
+
+    public void setContractorInfoOperatorMobile(String contractorInfoOperatorMobile) {
+        this.contractorInfoOperatorMobile = contractorInfoOperatorMobile;
+    }
+
+    public String getContractorInfoOperatorName() {
+        return contractorInfoOperatorName;
+    }
+
+    public void setContractorInfoOperatorName(String contractorInfoOperatorName) {
+        this.contractorInfoOperatorName = contractorInfoOperatorName;
+    }
+
+    public Boolean getIntroCanModify() {
+        return introCanModify;
+    }
+
+    public void setIntroCanModify(Boolean introCanModify) {
+        this.introCanModify = introCanModify;
+    }
+
+    public Boolean getIntroIsForceNotModify() {
+        return introIsForceNotModify;
+    }
+
+    public void setIntroIsForceNotModify(Boolean introIsForceNotModify) {
+        this.introIsForceNotModify = introIsForceNotModify;
+    }
+
+    public Integer getIntroQuota() {
+        return introQuota;
+    }
+
+    public void setIntroQuota(Integer introQuota) {
+        this.introQuota = introQuota;
+    }
+
+    public String getSignature() {
+        return signature;
+    }
+
+    public void setSignature(String signature) {
+        this.signature = signature;
+    }
+
+    public String getJsapiDomain() {
+        return jsapiDomain;
+    }
+
+    public void setJsapiDomain(String jsapiDomain) {
+        this.jsapiDomain = jsapiDomain;
+    }
+
+    public String getLatitude() {
+        return latitude;
+    }
+
+    public void setLatitude(String latitude) {
+        this.latitude = latitude;
+    }
+
+    public String getLongitude() {
+        return longitude;
+    }
+
+    public void setLongitude(String longitude) {
+        this.longitude = longitude;
+    }
+
+    public String getPosition() {
+        return position;
+    }
+
+    public void setPosition(String position) {
+        this.position = position;
+    }
+
+    public Boolean getCanModifyNickname() {
+        return canModifyNickname;
+    }
+
+    public void setCanModifyNickname(Boolean canModifyNickname) {
+        this.canModifyNickname = canModifyNickname;
+    }
+
+    public Boolean getInvade() {
+        return invade;
+    }
+
+    public void setInvade(Boolean invade) {
+        this.invade = invade;
+    }
+
+    public Boolean getNicknameIsForceNotModify() {
+        return nicknameIsForceNotModify;
+    }
+
+    public void setNicknameIsForceNotModify(Boolean nicknameIsForceNotModify) {
+        this.nicknameIsForceNotModify = nicknameIsForceNotModify;
+    }
+
+    public Integer getModNicknameRemainNum() {
+        return modNicknameRemainNum;
+    }
+
+    public void setModNicknameRemainNum(Integer modNicknameRemainNum) {
+        this.modNicknameRemainNum = modNicknameRemainNum;
+    }
+
+    public String getNickname() {
+        return nickname;
+    }
+
+    public void setNickname(String nickname) {
+        this.nickname = nickname;
+    }
+
+    public String getNicknameInCheck() {
+        return nicknameInCheck;
+    }
+
+    public void setNicknameInCheck(String nicknameInCheck) {
+        this.nicknameInCheck = nicknameInCheck;
+    }
+
+    public String getNicknameModList() {
+        return nicknameModList;
+    }
+
+    public void setNicknameModList(String nicknameModList) {
+        this.nicknameModList = nicknameModList;
+    }
+
+    public Integer getNicknameModifyTime() {
+        return nicknameModifyTime;
+    }
+
+    public void setNicknameModifyTime(Integer nicknameModifyTime) {
+        this.nicknameModifyTime = nicknameModifyTime;
+    }
+
+    public String getRenameDeadline() {
+        return renameDeadline;
+    }
+
+    public void setRenameDeadline(String renameDeadline) {
+        this.renameDeadline = renameDeadline;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Integer getTotalFansNum() {
+        return totalFansNum;
+    }
+
+    public void setTotalFansNum(Integer totalFansNum) {
+        this.totalFansNum = totalFansNum;
+    }
+
+    public Integer getNewFriendCnt() {
+        return newFriendCnt;
+    }
+
+    public void setNewFriendCnt(Integer newFriendCnt) {
+        this.newFriendCnt = newFriendCnt;
+    }
+
+    public String getTrustDomain() {
+        return trustDomain;
+    }
+
+    public void setTrustDomain(String trustDomain) {
+        this.trustDomain = trustDomain;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public Integer getVerifyFansLimit() {
+        return verifyFansLimit;
+    }
+
+    public void setVerifyFansLimit(Integer verifyFansLimit) {
+        this.verifyFansLimit = verifyFansLimit;
+    }
+
+    public Boolean getWbverifyStatus() {
+        return wbverifyStatus;
+    }
+
+    public void setWbverifyStatus(Boolean wbverifyStatus) {
+        this.wbverifyStatus = wbverifyStatus;
+    }
+
+    public Boolean getAnnualReview() {
+        return annualReview;
+    }
+
+    public void setAnnualReview(Boolean annualReview) {
+        this.annualReview = annualReview;
+    }
+
+    public String getAnnualReviewBegin() {
+        return annualReviewBegin;
+    }
+
+    public void setAnnualReviewBegin(String annualReviewBegin) {
+        this.annualReviewBegin = annualReviewBegin;
+    }
+
+    public String getQverifyDate() {
+        return qverifyDate;
+    }
+
+    public void setQverifyDate(String qverifyDate) {
+        this.qverifyDate = qverifyDate;
+    }
+
+    public Boolean getRefill() {
+        return refill;
+    }
+
+    public void setRefill(Boolean refill) {
+        this.refill = refill;
+    }
+
+    public String getVverifyDate() {
+        return vverifyDate;
+    }
+
+    public void setVverifyDate(String vverifyDate) {
+        this.vverifyDate = vverifyDate;
+    }
+
+    public String getWxverifyExpired() {
+        return wxverifyExpired;
+    }
+
+    public void setWxverifyExpired(String wxverifyExpired) {
+        this.wxverifyExpired = wxverifyExpired;
+    }
+
+    public Boolean getWxverifyStatus() {
+        return wxverifyStatus;
+    }
+
+    public void setWxverifyStatus(Boolean wxverifyStatus) {
+        this.wxverifyStatus = wxverifyStatus;
+    }
+
+    public Boolean getWxProtect() {
+        return wxProtect;
+    }
+
+    public void setWxProtect(Boolean wxProtect) {
+        this.wxProtect = wxProtect;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public String getWxUin() {
+        return wxUin;
+    }
+
+    public void setWxUin(String wxUin) {
+        this.wxUin = wxUin;
+    }
+
+    public String getWxAlias() {
+        return wxAlias;
+    }
+
+    public void setWxAlias(String wxAlias) {
+        this.wxAlias = wxAlias;
+    }
+
+    public Boolean getProtectStatus() {
+        return protectStatus;
+    }
+
+    public void setProtectStatus(Boolean protectStatus) {
+        this.protectStatus = protectStatus;
+    }
+
+    public Boolean getIsQqUser() {
+        return isQqUser;
+    }
+
+    public void setIsQqUser(Boolean isQqUser) {
+        this.isQqUser = isQqUser;
+    }
+
+    public Boolean getRealnameStatus() {
+        return realnameStatus;
+    }
+
+    public void setRealnameStatus(Boolean realnameStatus) {
+        this.realnameStatus = realnameStatus;
+    }
+
+    public String getDirectLoginBeforeTime() {
+        return directLoginBeforeTime;
+    }
+
+    public void setDirectLoginBeforeTime(String directLoginBeforeTime) {
+        this.directLoginBeforeTime = directLoginBeforeTime;
+    }
+
+    public Boolean getPublisherOpen() {
+        return publisherOpen;
+    }
+
+    public void setPublisherOpen(Boolean publisherOpen) {
+        this.publisherOpen = publisherOpen;
+    }
+
+    public String getCustomer() {
+        return customer;
+    }
+
+    public void setCustomer(String customer) {
+        this.customer = customer;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.primaryKey;
+    }
+
+    @Override
+    public String toString() {
+        return "Settingpage{" +
+        "crawlerCollectionTime=" + crawlerCollectionTime +
+        ", primaryKey=" + primaryKey +
+        ", originalUsername=" + originalUsername +
+        ", aliasCanModify=" + aliasCanModify +
+        ", avatarCanModify=" + avatarCanModify +
+        ", avatarCanModifyHeadImg=" + avatarCanModifyHeadImg +
+        ", avatarHasAvatar=" + avatarHasAvatar +
+        ", avatarQuota=" + avatarQuota +
+        ", contractorInfoCredential=" + contractorInfoCredential +
+        ", contractorInfoName=" + contractorInfoName +
+        ", contractorInfoOperatorIdcard=" + contractorInfoOperatorIdcard +
+        ", contractorInfoOperatorMobile=" + contractorInfoOperatorMobile +
+        ", contractorInfoOperatorName=" + contractorInfoOperatorName +
+        ", introCanModify=" + introCanModify +
+        ", introIsForceNotModify=" + introIsForceNotModify +
+        ", introQuota=" + introQuota +
+        ", signature=" + signature +
+        ", jsapiDomain=" + jsapiDomain +
+        ", latitude=" + latitude +
+        ", longitude=" + longitude +
+        ", position=" + position +
+        ", canModifyNickname=" + canModifyNickname +
+        ", invade=" + invade +
+        ", nicknameIsForceNotModify=" + nicknameIsForceNotModify +
+        ", modNicknameRemainNum=" + modNicknameRemainNum +
+        ", nickname=" + nickname +
+        ", nicknameInCheck=" + nicknameInCheck +
+        ", nicknameModList=" + nicknameModList +
+        ", nicknameModifyTime=" + nicknameModifyTime +
+        ", renameDeadline=" + renameDeadline +
+        ", status=" + status +
+        ", totalFansNum=" + totalFansNum +
+        ", newFriendCnt=" + newFriendCnt +
+        ", trustDomain=" + trustDomain +
+        ", username=" + username +
+        ", verifyFansLimit=" + verifyFansLimit +
+        ", wbverifyStatus=" + wbverifyStatus +
+        ", annualReview=" + annualReview +
+        ", annualReviewBegin=" + annualReviewBegin +
+        ", qverifyDate=" + qverifyDate +
+        ", refill=" + refill +
+        ", vverifyDate=" + vverifyDate +
+        ", wxverifyExpired=" + wxverifyExpired +
+        ", wxverifyStatus=" + wxverifyStatus +
+        ", wxProtect=" + wxProtect +
+        ", mobile=" + mobile +
+        ", wxUin=" + wxUin +
+        ", wxAlias=" + wxAlias +
+        ", protectStatus=" + protectStatus +
+        ", isQqUser=" + isQqUser +
+        ", realnameStatus=" + realnameStatus +
+        ", directLoginBeforeTime=" + directLoginBeforeTime +
+        ", publisherOpen=" + publisherOpen +
+        ", customer=" + customer +
+        "}";
+    }
+}

+ 21 - 0
src/main/java/com/mokamrp/privates/mapper/data/H5ComplaintBtnClickMapper.java

@@ -0,0 +1,21 @@
+package com.mokamrp.privates.mapper.data;
+
+import com.mokamrp.privates.mapper.data.pojo.H5ComplaintBtnClick;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.stereotype.Component;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * 企微h5投诉数据按钮点击数据 Mapper 接口
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-30
+ */
+@Component
+public interface H5ComplaintBtnClickMapper extends BaseMapper<H5ComplaintBtnClick> {
+    public List<H5ComplaintBtnClick> getList(Page<H5ComplaintBtnClick> pageObj);
+}

+ 23 - 0
src/main/java/com/mokamrp/privates/mapper/data/H5ComplaintBtnClickMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mokamrp.privates.mapper.data.H5ComplaintBtnClickMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.mokamrp.privates.mapper.data.pojo.H5ComplaintBtnClick">
+        <id column="id" property="id" />
+        <result column="complaint_type" property="complaintType" />
+        <result column="btn_click" property="btnClick" />
+        <result column="complaint_type_click" property="complaintTypeClick" />
+        <result column="domain" property="domain" />
+        <result column="ip" property="ip" />
+        <result column="date" property="date" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, complaint_type, btn_click, complaint_type_click, domain, ip, date
+    </sql>
+    <select id="getList" resultType="com.mokamrp.privates.mapper.data.pojo.H5ComplaintBtnClick">
+        SELECT * FROM workwx_h5_complaint_btn_click
+    </select>
+</mapper>

+ 22 - 0
src/main/java/com/mokamrp/privates/mapper/data/H5ComplaintOpenMapper.java

@@ -0,0 +1,22 @@
+package com.mokamrp.privates.mapper.data;
+
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.mapper.data.pojo.H5ComplaintOpen;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.stereotype.Component;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * 企微h5投诉页面访问数据 Mapper 接口
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-30
+ */
+@Component
+public interface H5ComplaintOpenMapper extends BaseMapper<H5ComplaintOpen> {
+    public List<H5ComplaintOpen> getList(Page<H5ComplaintOpen> pageObj, @Param("params")PostBasePageHandle postBasePageHandle);
+}

+ 28 - 0
src/main/java/com/mokamrp/privates/mapper/data/H5ComplaintOpenMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mokamrp.privates.mapper.data.H5ComplaintOpenMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.mokamrp.privates.mapper.data.pojo.H5ComplaintOpen">
+        <id column="id" property="id" />
+        <result column="page_show" property="pageShow" />
+        <result column="domain" property="domain" />
+        <result column="ip" property="ip" />
+        <result column="date" property="date" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, page_show, domain, ip, date
+    </sql>
+    <select id="getList" resultType="com.mokamrp.privates.mapper.data.pojo.H5ComplaintOpen">
+        SELECT A.*,B.submit_cnt FROM workwx_h5_complaint_open as A
+        left join (select date,domain,SUM(submit_btn_click) as submit_cnt from workwx_h5_complaint_btn_click group by date,domain)
+            as B on A.date = B.date and A.domain = B.domain
+        group by A.date,A.domain
+        <where>
+            <if test="params.domain != null">and A.domain = #{params.domain}</if>
+            <if test="params.startDate != null and params.endDate != null">and A.date between #{params.startDate} and #{params.endDate}</if>
+        </where>
+    </select>
+</mapper>

+ 125 - 0
src/main/java/com/mokamrp/privates/mapper/data/pojo/H5ComplaintBtnClick.java

@@ -0,0 +1,125 @@
+package com.mokamrp.privates.mapper.data.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 企微h5投诉数据按钮点击数据
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-30
+ */
+@TableName("workwx_h5_complaint_btn_click")
+public class H5ComplaintBtnClick extends Model<H5ComplaintBtnClick> {
+
+    private static final long serialVersionUID = 1L;
+
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 投诉类型
+     */
+    private Integer complaintType;
+
+    /**
+     * 关闭按钮点击
+     */
+    private Integer closeBtnClick;
+    /**
+     * 提交按钮点击
+     */
+    private Integer submitBtnClick;
+
+    /**
+     * 选择投诉类型按钮点击
+     */
+    private Integer complaintTypeClick;
+
+    /**
+     * 域名
+     */
+    private String domain;
+
+    /**
+     * ip
+     */
+    private String ip;
+
+    /**
+     * 时间 YYYY-MM-DD
+     */
+    private String date;
+
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Integer getComplaintType() {
+        return complaintType;
+    }
+
+    public void setComplaintType(Integer complaintType) {
+        this.complaintType = complaintType;
+    }
+
+
+    public Integer getComplaintTypeClick() {
+        return complaintTypeClick;
+    }
+
+    public void setComplaintTypeClick(Integer complaintTypeClick) {
+        this.complaintTypeClick = complaintTypeClick;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public String getDate() {
+        return date;
+    }
+
+    public void setDate(String date) {
+        this.date = date;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "H5ComplaintBtnClick{" +
+        "id=" + id +
+        ", complaintType=" + complaintType +
+        ", complaintTypeClick=" + complaintTypeClick +
+        ", domain=" + domain +
+        ", ip=" + ip +
+        ", date=" + date +
+        "}";
+    }
+}

+ 108 - 0
src/main/java/com/mokamrp/privates/mapper/data/pojo/H5ComplaintOpen.java

@@ -0,0 +1,108 @@
+package com.mokamrp.privates.mapper.data.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 企微h5投诉页面访问数据
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-30
+ */
+@Data
+@TableName("workwx_h5_complaint_open")
+public class H5ComplaintOpen extends Model<H5ComplaintOpen> {
+
+    private static final long serialVersionUID = 1L;
+
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 投诉页面曝光数
+     */
+    private Integer pageShow;
+
+    /**
+     * 域名
+     */
+    private String domain;
+
+    @TableField(exist = false)
+    private Integer submitCnt;
+
+    /**
+     * ip
+     */
+    private String ip;
+
+    /**
+     * 时间 YYYY-MM-DD
+     */
+    private String date;
+
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Integer getPageShow() {
+        return pageShow;
+    }
+
+    public void setPageShow(Integer pageShow) {
+        this.pageShow = pageShow;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public String getDate() {
+        return date;
+    }
+
+    public void setDate(String date) {
+        this.date = date;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "H5ComplaintOpen{" +
+        "id=" + id +
+        ", pageShow=" + pageShow +
+        ", domain=" + domain +
+        ", ip=" + ip +
+        ", date=" + date +
+        "}";
+    }
+}

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

@@ -0,0 +1,21 @@
+package com.mokamrp.privates.mapper.pangu;
+
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStationBindBoxGroup;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.stereotype.Component;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * 个微养号小程序/公众号分组 Mapper 接口
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@Component
+public interface FosterwxStationBindBoxGroupMapper extends BaseMapper<FosterwxStationBindBoxGroup> {
+    public List<FosterwxStationBindBoxGroup> getList(Page<FosterwxStationBindBoxGroup> pageObj);
+}

+ 26 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxStationBindBoxGroupMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mokamrp.privates.mapper.pangu.FosterwxStationBindBoxGroupMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.mokamrp.privates.mapper.pangu.pojo.FosterwxStationBindBoxGroup">
+        <id column="id" property="id" />
+        <result column="dept_id" property="deptId" />
+        <result column="group_name" property="groupName" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, dept_id, group_name, create_at, update_at
+    </sql>
+    <select id="getList" resultType="com.mokamrp.privates.mapper.pangu.pojo.FosterwxStationBindBoxGroup">
+        SELECT A.*, B.cnt, B.group_id
+        FROM pan_fosterwx_station_bind_box_group as A
+                 LEFT JOIN (SELECT COUNT(id) AS cnt, group_id
+                            from pan_fosterwx_station_bind_box
+                            GROUP BY group_id) AS B ON A.id = B.group_id
+        order by A.id desc
+    </select>
+</mapper>

+ 1 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxStationBindBoxMapper.xml

@@ -31,6 +31,7 @@
                     #{item}
                 </foreach>
             </if>
+            <if test="handle.groupId != null">and group_id = #{handle.groupId}</if>
             <if test="handle.uploadUid">and upload_uid = #{handle.uploadUid}</if>
             <if test="handle.remark">and remark like concat('%',#{handle.remark},'%')</if>
         </where>

+ 7 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxStationBindBox.java

@@ -35,6 +35,8 @@ public class FosterwxStationBindBox extends Model<FosterwxStationBindBox> {
      */
     private Integer stationId;
 
+    private Integer groupId;
+
     /**
      * 类型(1.小程序2.公众号)
      */
@@ -50,6 +52,11 @@ public class FosterwxStationBindBox extends Model<FosterwxStationBindBox> {
      */
     private String boxName;
 
+    private Integer boxType;
+
+    private Integer status;
+
+    private String corpName;
     /**
      * 使用场景
      */

+ 98 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxStationBindBoxGroup.java

@@ -0,0 +1,98 @@
+package com.mokamrp.privates.mapper.pangu.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 个微养号小程序/公众号分组
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@TableName("pan_fosterwx_station_bind_box_group")
+public class FosterwxStationBindBoxGroup extends Model<FosterwxStationBindBoxGroup> {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField(exist = false)
+    private Integer cnt;
+
+    /**
+     * 部门ID
+     */
+    private String deptId;
+
+    private String groupName;
+
+    private LocalDateTime createAt;
+
+    private LocalDateTime updateAt;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(String deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public LocalDateTime getCreateAt() {
+        return createAt;
+    }
+
+    public void setCreateAt(LocalDateTime createAt) {
+        this.createAt = createAt;
+    }
+
+    public LocalDateTime getUpdateAt() {
+        return updateAt;
+    }
+
+    public void setUpdateAt(LocalDateTime updateAt) {
+        this.updateAt = updateAt;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "FosterwxStationBindBoxGroup{" +
+                "id=" + id +
+                ", deptId=" + deptId +
+                ", groupName=" + groupName +
+                ", createAt=" + createAt +
+                ", updateAt=" + updateAt +
+                "}";
+    }
+}

+ 2 - 1
src/main/java/com/mokamrp/privates/service/CoralApiService.java

@@ -1,5 +1,6 @@
 package com.mokamrp.privates.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mokamrp.privates.mapper.pojo.ChatTool;
 
@@ -7,5 +8,5 @@ public interface CoralApiService  {
     //.@leon 获取小程序Access_Token
     public String getBoxToken(String ghId);
     //.@leon 获取小程序信息
-    public Object getBoxInfo(String ghId);
+    public JSONObject getBoxInfo(String ghId);
 }

+ 20 - 0
src/main/java/com/mokamrp/privates/service/crawer/AppBaseBasicProfileService.java

@@ -0,0 +1,20 @@
+package com.mokamrp.privates.service.crawer;
+
+import com.mokamrp.privates.mapper.crawer.pojo.AppBaseBasicProfile;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.List;
+import java.util.Map;
+/**
+ * <p>
+ * 小程序-用户信息-基本信息 服务类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+public interface AppBaseBasicProfileService extends IService<AppBaseBasicProfile> {
+    //.@leon 获取数据列表
+    public ResHandle<List<AppBaseBasicProfile>> getList(PostBasePageHandle handle);
+}

+ 20 - 0
src/main/java/com/mokamrp/privates/service/crawer/SettingpageService.java

@@ -0,0 +1,20 @@
+package com.mokamrp.privates.service.crawer;
+
+import com.mokamrp.privates.mapper.crawer.pojo.Settingpage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.List;
+import java.util.Map;
+/**
+ * <p>
+ * 账号详情f=json 服务类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+public interface SettingpageService extends IService<Settingpage> {
+    //.@leon 获取数据列表
+    public ResHandle<List<Settingpage>> getList(PostBasePageHandle handle);
+}

+ 43 - 0
src/main/java/com/mokamrp/privates/service/crawer/impl/AppBaseBasicProfileServiceImpl.java

@@ -0,0 +1,43 @@
+package com.mokamrp.privates.service.crawer.impl;
+
+import com.mokamrp.privates.mapper.crawer.pojo.AppBaseBasicProfile;
+import com.mokamrp.privates.mapper.crawer.AppBaseBasicProfileMapper;
+import com.mokamrp.privates.service.crawer.AppBaseBasicProfileService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.*;
+
+/**
+ * <p>
+ * 小程序-用户信息-基本信息 服务实现类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@Service
+public class AppBaseBasicProfileServiceImpl extends ServiceImpl<AppBaseBasicProfileMapper, AppBaseBasicProfile> implements AppBaseBasicProfileService {
+
+    @Autowired
+    public AppBaseBasicProfileMapper appBaseBasicProfileMapper;
+    /**
+     * 获取数据列表 支持分页
+     * @param handle
+     * @return
+     */
+    public ResHandle<List<AppBaseBasicProfile>> getList(PostBasePageHandle handle) {
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
+        Page<AppBaseBasicProfile> pageObj = new Page<AppBaseBasicProfile>(page, pagesize);
+        List<AppBaseBasicProfile> list = appBaseBasicProfileMapper.getList(pageObj);
+        ResHandle<List<AppBaseBasicProfile>> res = new ResHandle<>();
+        res.setList(list);
+        res.setTotal(pageObj.getTotal());
+        return res;
+    }
+}

+ 43 - 0
src/main/java/com/mokamrp/privates/service/crawer/impl/SettingpageServiceImpl.java

@@ -0,0 +1,43 @@
+package com.mokamrp.privates.service.crawer.impl;
+
+import com.mokamrp.privates.mapper.crawer.pojo.Settingpage;
+import com.mokamrp.privates.mapper.crawer.SettingpageMapper;
+import com.mokamrp.privates.service.crawer.SettingpageService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.*;
+
+/**
+ * <p>
+ * 账号详情f=json 服务实现类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@Service
+public class SettingpageServiceImpl extends ServiceImpl<SettingpageMapper, Settingpage> implements SettingpageService {
+
+    @Autowired
+    public SettingpageMapper settingpageMapper;
+    /**
+     * 获取数据列表 支持分页
+     * @param handle
+     * @return
+     */
+    public ResHandle<List<Settingpage>> getList(PostBasePageHandle handle) {
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
+        Page<Settingpage> pageObj = new Page<Settingpage>(page, pagesize);
+        List<Settingpage> list = settingpageMapper.getList(pageObj);
+        ResHandle<List<Settingpage>> res = new ResHandle<>();
+        res.setList(list);
+        res.setTotal(pageObj.getTotal());
+        return res;
+    }
+}

+ 20 - 0
src/main/java/com/mokamrp/privates/service/data/H5ComplaintBtnClickService.java

@@ -0,0 +1,20 @@
+package com.mokamrp.privates.service.data;
+
+import com.mokamrp.privates.mapper.data.pojo.H5ComplaintBtnClick;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.List;
+import java.util.Map;
+/**
+ * <p>
+ * 企微h5投诉数据按钮点击数据 服务类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-30
+ */
+public interface H5ComplaintBtnClickService extends IService<H5ComplaintBtnClick> {
+    //.@leon 获取数据列表
+    public ResHandle<List<H5ComplaintBtnClick>> getList(PostBasePageHandle handle);
+}

+ 20 - 0
src/main/java/com/mokamrp/privates/service/data/H5ComplaintOpenService.java

@@ -0,0 +1,20 @@
+package com.mokamrp.privates.service.data;
+
+import com.mokamrp.privates.mapper.data.pojo.H5ComplaintOpen;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.List;
+import java.util.Map;
+/**
+ * <p>
+ * 企微h5投诉页面访问数据 服务类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-30
+ */
+public interface H5ComplaintOpenService extends IService<H5ComplaintOpen> {
+    //.@leon 获取数据列表
+    public ResHandle<List<H5ComplaintOpen>> getList(PostBasePageHandle handle);
+}

+ 43 - 0
src/main/java/com/mokamrp/privates/service/data/impl/H5ComplaintBtnClickServiceImpl.java

@@ -0,0 +1,43 @@
+package com.mokamrp.privates.service.data.impl;
+
+import com.mokamrp.privates.mapper.data.pojo.H5ComplaintBtnClick;
+import com.mokamrp.privates.mapper.data.H5ComplaintBtnClickMapper;
+import com.mokamrp.privates.service.data.H5ComplaintBtnClickService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.*;
+
+/**
+ * <p>
+ * 企微h5投诉数据按钮点击数据 服务实现类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-30
+ */
+@Service
+public class H5ComplaintBtnClickServiceImpl extends ServiceImpl<H5ComplaintBtnClickMapper, H5ComplaintBtnClick> implements H5ComplaintBtnClickService {
+
+    @Autowired
+    public H5ComplaintBtnClickMapper h5ComplaintBtnClickMapper;
+    /**
+     * 获取数据列表 支持分页
+     * @param handle
+     * @return
+     */
+    public ResHandle<List<H5ComplaintBtnClick>> getList(PostBasePageHandle handle) {
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
+        Page<H5ComplaintBtnClick> pageObj = new Page<H5ComplaintBtnClick>(page, pagesize);
+        List<H5ComplaintBtnClick> list = h5ComplaintBtnClickMapper.getList(pageObj);
+        ResHandle<List<H5ComplaintBtnClick>> res = new ResHandle<>();
+        res.setList(list);
+        res.setTotal(pageObj.getTotal());
+        return res;
+    }
+}

+ 43 - 0
src/main/java/com/mokamrp/privates/service/data/impl/H5ComplaintOpenServiceImpl.java

@@ -0,0 +1,43 @@
+package com.mokamrp.privates.service.data.impl;
+
+import com.mokamrp.privates.mapper.data.pojo.H5ComplaintOpen;
+import com.mokamrp.privates.mapper.data.H5ComplaintOpenMapper;
+import com.mokamrp.privates.service.data.H5ComplaintOpenService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.*;
+
+/**
+ * <p>
+ * 企微h5投诉页面访问数据 服务实现类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-30
+ */
+@Service
+public class H5ComplaintOpenServiceImpl extends ServiceImpl<H5ComplaintOpenMapper, H5ComplaintOpen> implements H5ComplaintOpenService {
+
+    @Autowired
+    public H5ComplaintOpenMapper h5ComplaintOpenMapper;
+    /**
+     * 获取数据列表 支持分页
+     * @param handle
+     * @return
+     */
+    public ResHandle<List<H5ComplaintOpen>> getList(PostBasePageHandle handle) {
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
+        Page<H5ComplaintOpen> pageObj = new Page<H5ComplaintOpen>(page, pagesize);
+        List<H5ComplaintOpen> list = h5ComplaintOpenMapper.getList(pageObj,handle);
+        ResHandle<List<H5ComplaintOpen>> res = new ResHandle<>();
+        res.setList(list);
+        res.setTotal(pageObj.getTotal());
+        return res;
+    }
+}

+ 1 - 1
src/main/java/com/mokamrp/privates/service/impl/CoralApiServiceImpl.java

@@ -37,7 +37,7 @@ public class CoralApiServiceImpl implements CoralApiService {
      * @param ghId
      * @return
      */
-    public Object getBoxInfo(String ghId) {
+    public JSONObject getBoxInfo(String ghId) {
         String newCoral = "https://moka-coral.mokamrp.com/coral/api";
         String url = "/box/getBoxInfo";
         String params = "ghId=" + ghId;

+ 20 - 0
src/main/java/com/mokamrp/privates/service/pangu/FosterwxStationBindBoxGroupService.java

@@ -0,0 +1,20 @@
+package com.mokamrp.privates.service.pangu;
+
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStationBindBoxGroup;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.List;
+import java.util.Map;
+/**
+ * <p>
+ * 个微养号小程序/公众号分组 服务类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+public interface FosterwxStationBindBoxGroupService extends IService<FosterwxStationBindBoxGroup> {
+    //.@leon 获取数据列表
+    public ResHandle<List<FosterwxStationBindBoxGroup>> getList(PostBasePageHandle handle);
+}

+ 4 - 2
src/main/java/com/mokamrp/privates/service/pangu/FosterwxStationBindBoxService.java

@@ -1,5 +1,7 @@
 package com.mokamrp.privates.service.pangu;
 
+import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.entity.VoltaHandle;
 import com.mokamrp.privates.entity.pangu.GetForsterwxStationBindBoxHandle;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStationBindBox;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -18,7 +20,7 @@ import java.util.Map;
  */
 public interface FosterwxStationBindBoxService extends IService<FosterwxStationBindBox> {
     //.@leon 获取数据列表
-    public Map<String, Object> getList(GetForsterwxStationBindBoxHandle handle);
+    public ResHandle<List<FosterwxStationBindBox>> getList(GetForsterwxStationBindBoxHandle handle);
     //.@leon 导入数据
-    public Boolean importData(List<Map<String,String>> row, User authUser);
+    public VoltaHandle<Boolean> importData(List<Map<String,String>> row, User authUser) throws Exception;
 }

+ 43 - 0
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxStationBindBoxGroupServiceImpl.java

@@ -0,0 +1,43 @@
+package com.mokamrp.privates.service.pangu.impl;
+
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStationBindBoxGroup;
+import com.mokamrp.privates.mapper.pangu.FosterwxStationBindBoxGroupMapper;
+import com.mokamrp.privates.service.pangu.FosterwxStationBindBoxGroupService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.*;
+
+/**
+ * <p>
+ * 个微养号小程序/公众号分组 服务实现类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-11-29
+ */
+@Service
+public class FosterwxStationBindBoxGroupServiceImpl extends ServiceImpl<FosterwxStationBindBoxGroupMapper, FosterwxStationBindBoxGroup> implements FosterwxStationBindBoxGroupService {
+
+    @Autowired
+    public FosterwxStationBindBoxGroupMapper fosterwxStationBindBoxGroupMapper;
+    /**
+     * 获取数据列表 支持分页
+     * @param handle
+     * @return
+     */
+    public ResHandle<List<FosterwxStationBindBoxGroup>> getList(PostBasePageHandle handle) {
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
+        Page<FosterwxStationBindBoxGroup> pageObj = new Page<FosterwxStationBindBoxGroup>(page, pagesize);
+        List<FosterwxStationBindBoxGroup> list = fosterwxStationBindBoxGroupMapper.getList(pageObj);
+        ResHandle<List<FosterwxStationBindBoxGroup>> res = new ResHandle<>();
+        res.setList(list);
+        res.setTotal(pageObj.getTotal());
+        return res;
+    }
+}

+ 61 - 11
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxStationBindBoxServiceImpl.java

@@ -1,10 +1,20 @@
 package com.mokamrp.privates.service.pangu.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.entity.VoltaHandle;
 import com.mokamrp.privates.entity.pangu.GetForsterwxStationBindBoxHandle;
+import com.mokamrp.privates.mapper.crawer.pojo.AppBaseBasicProfile;
+import com.mokamrp.privates.mapper.crawer.pojo.Settingpage;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobileWxfriend;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStationBindBox;
 import com.mokamrp.privates.mapper.pangu.FosterwxStationBindBoxMapper;
 import com.mokamrp.privates.mapper.pojo.User;
 import com.mokamrp.privates.mapper.pojo.WorkEmployeeFriendcircle;
+import com.mokamrp.privates.service.CoralApiService;
+import com.mokamrp.privates.service.crawer.AppBaseBasicProfileService;
+import com.mokamrp.privates.service.crawer.SettingpageService;
 import com.mokamrp.privates.service.pangu.FosterwxStationBindBoxService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
@@ -31,38 +41,53 @@ public class FosterwxStationBindBoxServiceImpl extends ServiceImpl<FosterwxStati
 
     @Autowired
     public FosterwxStationBindBoxMapper fosterwxStationBindBoxMapper;
+
+    @Autowired
+    public CoralApiService coralApiService;
+
+    @Autowired
+    public SettingpageService settingpageService;
+
+    @Autowired
+    public AppBaseBasicProfileService appBaseBasicProfileService;
+
     /**
      * 获取数据列表 支持分页
+     *
      * @param handle
      * @return
      */
-    public Map<String, Object> getList(GetForsterwxStationBindBoxHandle handle) {
+    public ResHandle<List<FosterwxStationBindBox>> getList(GetForsterwxStationBindBoxHandle handle) {
+        ResHandle<List<FosterwxStationBindBox>> res = new ResHandle<List<FosterwxStationBindBox>>();
         Integer pagesize = handle.getPagesize();
         Integer page = handle.getPage();
         Page<FosterwxStationBindBox> pageObj = new Page<FosterwxStationBindBox>(page, pagesize);
-        List<FosterwxStationBindBox> list = fosterwxStationBindBoxMapper.getList(pageObj,handle);
+        List<FosterwxStationBindBox> list = fosterwxStationBindBoxMapper.getList(pageObj, handle);
         Map<String, Object> resMap = new HashMap<String, Object>();
-        resMap.put("list", list);
-        resMap.put("total", pageObj.getTotal());
-        return resMap;
+        res.setTotal(pageObj.getTotal());
+        res.setList(list);
+        return res;
     }
 
     /**
      * 导入数据
+     *
      * @param row
      * @return
      */
-    @Transactional
-    public Boolean importData(List<Map<String,String>> row, User authUser){
-        if(row.size() <= 0){
-            return false;
+    @Transactional(rollbackFor = Exception.class)
+    public VoltaHandle<Boolean> importData(List<Map<String, String>> row, User authUser) throws Exception {
+        VoltaHandle<Boolean> res = new VoltaHandle<>();
+        if (row.size() <= 0) {
+            throw new Exception("表格读取完成后,没有获取到任何数据");
         }
         List<FosterwxStationBindBox> add = new ArrayList<>();
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        for (int i = 0;i<row.size();i++) {
+        for (int i = 0; i < row.size(); i++) {
             System.out.println(row.get(i));
             Map<String, String> cell = row.get(i);
             FosterwxStationBindBox fosterwxStationBindBox = new FosterwxStationBindBox();
+            fosterwxStationBindBox.setGroupId(Integer.parseInt(row.get(i).get("groupId")));
             fosterwxStationBindBox.setStationId(Integer.parseInt(row.get(i).get("stationId")));
             fosterwxStationBindBox.setType(Integer.parseInt(row.get(i).get("type")));
             fosterwxStationBindBox.setGhId(row.get(i).get("ghId"));
@@ -72,10 +97,35 @@ public class FosterwxStationBindBoxServiceImpl extends ServiceImpl<FosterwxStati
             fosterwxStationBindBox.setUploadUid(authUser.getId());
             fosterwxStationBindBox.setCreateAt(LocalDateTime.now());
             fosterwxStationBindBox.setUpdateAt(LocalDateTime.now());
+
+            //.小程序去珊瑚云获取类型
+            if (fosterwxStationBindBox.getType() == 1){
+                JSONObject boxInfo = coralApiService.getBoxInfo(fosterwxStationBindBox.getGhId());
+                if (boxInfo == null) {
+                    throw new Exception("第" + (i + 1) + "行,ghId 在珊瑚云不存在");
+                }
+                fosterwxStationBindBox.setBoxType(Integer.parseInt(boxInfo.get("box_type").toString()));
+                AppBaseBasicProfile appBaseBasicProfile =  appBaseBasicProfileService.getOne(
+                        new QueryWrapper<AppBaseBasicProfile>().eq("primary_key",fosterwxStationBindBox.getGhId())
+                );
+                if (appBaseBasicProfile == null){
+                    throw new Exception("第" + (i + 1) + "行,ghId 在灯塔不存在");
+                }
+                fosterwxStationBindBox.setCorpName(appBaseBasicProfile.getContractorInfoName());
+            }else{
+                Settingpage settingpage =  settingpageService.getOne(
+                        new QueryWrapper<Settingpage>().eq("primary_key",fosterwxStationBindBox.getGhId())
+                );
+                if (settingpage == null){
+                    throw new Exception("第" + (i + 1) + "行,ghId 在灯塔不存在");
+                }
+                fosterwxStationBindBox.setCorpName(settingpage.getContractorInfoName());
+            }
+
             add.add(fosterwxStationBindBox);
         }
         this.saveBatch(add);
-        return true;
+        return res;
     }
 
 

+ 2 - 3
src/main/java/com/mokamrp/privates/task/pangu/UpdateFosterwxCashWorkBoxClientInfo.java

@@ -30,11 +30,10 @@ public class UpdateFosterwxCashWorkBoxClientInfo {
         List<FosterwxCashWorkBoxClientInfo> list = fosterwxCashWorkBoxClientInfoService.list(new QueryWrapper<FosterwxCashWorkBoxClientInfo>().isNull("box_type"));
         for (FosterwxCashWorkBoxClientInfo box : list){
             String ghId = box.getGhid().replace("@app","");
-            Object coralBox = coralApiService.getBoxInfo(ghId);
-            if(coralBox == null){
+            JSONObject json = coralApiService.getBoxInfo(ghId);
+            if(json == null){
                 continue;
             }
-            JSONObject json = JSONObject.parseObject(coralBox.toString());
             Integer boxType = Integer.parseInt(json.get("boxType").toString());
             String[] params = box.getEnterpoint().split("&");
             Integer materialId = null;

BIN
src/main/resources/static/导入私域公众号&小程序.xls


BIN
src/main/resources/static/导入站点绑定公众号&小程序.xls


+ 2 - 2
src/test/java/com/mokamrp/AutoMPCrawer.java

@@ -46,8 +46,8 @@ public class AutoMPCrawer {
 				.setSuperControllerClass("BaseController")
 				.setColumnNaming(NamingStrategy.underline_to_camel)
 				.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略,下划线转驼峰命名
-				.setTablePrefix("wx_") //表名前缀
-				.setInclude("wx_login_ban");
+				.setTablePrefix("mp_") //表名前缀
+				.setInclude("mp_settingpage");
 		//4. 包名策略配置
 		PackageConfig pkConfig = new PackageConfig();
 		pkConfig.setParent("com.mokamrp.privates")

+ 87 - 0
src/test/java/com/mokamrp/AutoMPData.java

@@ -0,0 +1,87 @@
+package com.mokamrp;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.InjectionConfig;
+import com.baomidou.mybatisplus.generator.config.*;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class AutoMPData {
+    /**
+     * 代码生成    示例代码
+     */
+    @Test
+    public void testGenerator() {
+
+        //1. 全局配置
+        String outPutDir = "D://project/moka-private/src/main/java";
+        GlobalConfig config = new GlobalConfig();
+        config.setActiveRecord(true) // 是否支持AR模式
+                .setAuthor("leon") // 作者
+                .setOutputDir(outPutDir) // 生成路径
+                .setFileOverride(true)  // 文件覆盖
+                .setIdType(IdType.AUTO) // 主键策略
+                .setServiceName("%sService")  // 设置生成的service接口的名字的首字母是否为I
+                // IEmployeeService
+                .setBaseResultMap(true) //生成sql映射文件
+                .setBaseColumnList(true);//生成sql片段
+
+        //2. 数据源配置
+        DataSourceConfig dsConfig = new DataSourceConfig();
+        dsConfig.setDbType(DbType.MYSQL)  // 设置数据库类型
+                .setDriverName("com.mysql.cj.jdbc.Driver")
+                .setUrl("jdbc:mysql://rm-uf6uysb4ncki343q7go.mysql.rds.aliyuncs.com:3306/hera_data")
+                .setUsername("yangpeng_data_warehouse")
+                .setPassword("YangPeng_Data_War666$%Yp");
+        //3. 策略配置
+        StrategyConfig stConfig = new StrategyConfig();
+        stConfig.setCapitalMode(true) //全局大写命名
+                .setRestControllerStyle(true) //.RestController
+                .setSuperControllerClass("BaseController")
+                .setColumnNaming(NamingStrategy.underline_to_camel)
+                .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略,下划线转驼峰命名
+                .setTablePrefix("workwx_") //表名前缀
+                .setInclude("workwx_h5_complaint_open");
+        //4. 包名策略配置
+        PackageConfig pkConfig = new PackageConfig();
+        pkConfig.setParent("com.mokamrp.privates")
+                .setMapper("mapper.data")
+                .setService("service.data")
+                .setServiceImpl("service.data.impl")
+                .setController("controller.data")
+                .setEntity("mapper.data.pojo")
+                .setXml("mapper.data");
+        //5. 注入自定义配置
+        InjectionConfig cfg = new InjectionConfig() {
+            @Override
+            public void initMap() {
+                Map<String, Object> map = new HashMap<String, Object>();
+                this.setMap(map);
+            }
+        };
+
+        //6. 整合配置
+        AutoGenerator ag = new AutoGenerator();
+        ag.setGlobalConfig(config)
+                .setDataSource(dsConfig)
+                .setStrategy(stConfig)
+                .setPackageInfo(pkConfig);
+        //. @leon 自定义模板
+        TemplateConfig tc = new TemplateConfig();
+        tc.setService("/template/service.java.vm");
+        tc.setServiceImpl("/template/serviceImpl.java.vm");
+        tc.setController("/template/controller.java.vm");
+        tc.setMapper("/template/mapper.java.vm");
+        tc.setXml("/template/mapper.xml.vm");
+        ag.setTemplate(tc);
+        //7. 执行
+        ag.execute();
+    }
+
+
+}

+ 1 - 1
src/test/java/com/mokamrp/AutoMPPangu.java

@@ -46,7 +46,7 @@ public class AutoMPPangu {
                 .setColumnNaming(NamingStrategy.underline_to_camel)
                 .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略,下划线转驼峰命名
                 .setTablePrefix("pan_") //表名前缀
-                .setInclude("pan_dept");
+                .setInclude("pan_fosterwx_station_bind_box_group");
         //4. 包名策略配置
         PackageConfig pkConfig = new PackageConfig();
         pkConfig.setParent("com.mokamrp.privates")

Some files were not shown because too many files changed in this diff