瀏覽代碼

头条 初版2

zhaoxian 2 年之前
父節點
當前提交
6d39648a32

+ 80 - 0
ruixuan-live/src/main/java/com/ruixuan/bytedance/controller/BytedanceColonelActivityController.java

@@ -0,0 +1,80 @@
+package com.ruixuan.bytedance.controller;
+
+import com.ruixuan.bytedance.entity.BytedanceColonelActivity;
+import com.ruixuan.bytedance.service.IBytedanceColonelActivityService;
+import com.ruixuan.common.core.controller.BaseController;
+import com.ruixuan.common.core.domain.AjaxResult;
+import com.ruixuan.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 团长活动 信息Controller
+ *
+ * @date 2023-08-11
+ */
+@Api(tags = "-------------头条团长活动")
+@RestController
+@RequestMapping("/bytedance/activity")
+public class BytedanceColonelActivityController extends BaseController {
+    @Autowired
+    private IBytedanceColonelActivityService bytedanceColonelActivityService;
+
+    /**
+     * 查询团长活动 信息列表
+     */
+    @ApiOperation(value = "查询团长活动 信息列表")
+    @GetMapping("/list")
+    public TableDataInfo list(BytedanceColonelActivity bytedanceColonelActivity) {
+        startPage();
+        List<BytedanceColonelActivity> list = bytedanceColonelActivityService.selectBytedanceColonelActivityList(bytedanceColonelActivity);
+        return getDataTable(list);
+    }
+
+    /**
+     * 获取团长活动 信息详细信息
+     */
+    @ApiOperation(value = "获取团长活动 信息详细信息")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(bytedanceColonelActivityService.selectBytedanceColonelActivityById(id));
+    }
+
+    /**
+     * 新增团长活动 信息
+     */
+    @ApiOperation(value = "新增团长活动 信息")
+    @PostMapping
+    public void add() {
+        bytedanceColonelActivityService.addBytedanceColonelActivityList(1L);
+    }
+
+    /**
+     * 修改团长活动 信息
+     */
+    @ApiOperation(value = "修改团长活动 信息")
+    @PutMapping
+    public AjaxResult edit(@RequestBody BytedanceColonelActivity bytedanceColonelActivity) {
+        return toAjax(bytedanceColonelActivityService.updateBytedanceColonelActivity(bytedanceColonelActivity));
+    }
+
+    /**
+     * 删除团长活动 信息
+     */
+    @ApiOperation(value = "修改团长活动 信息")
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bytedanceColonelActivityService.deleteBytedanceColonelActivityByIds(ids));
+    }
+}

+ 24 - 17
ruixuan-live/src/main/java/com/ruixuan/bytedance/controller/BytedanceController.java

@@ -5,12 +5,16 @@ import com.doudian.open.api.alliance_instituteColonelActivityList.AllianceInstit
 import com.doudian.open.api.alliance_instituteColonelActivityList.param.AllianceInstituteColonelActivityListParam;
 import com.doudian.open.core.AccessToken;
 import com.ruixuan.bytedance.service.IBytedanceAccessTokenService;
+import com.ruixuan.bytedance.service.IBytedanceColonelActivityService;
 import com.ruixuan.common.core.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
@@ -23,24 +27,27 @@ import org.springframework.web.bind.annotation.RestController;
 public class BytedanceController extends BaseController {
 
     @Autowired
-    private IBytedanceAccessTokenService tokenService;
-
-    @ApiOperation(value = "test")
-    @GetMapping("/getInfo")
-    public void testGetInfo() {
-
-        AccessToken accessToken = tokenService.getAccessToken(1L);
-        AllianceInstituteColonelActivityListRequest request = new AllianceInstituteColonelActivityListRequest();
-        AllianceInstituteColonelActivityListParam param = request.getParam();
-        param.setStatus(0);
-        param.setSearchType(0L);
-        param.setSortType(0L);
-        param.setPage(1L);
-        param.setPageSize(20L);
-        AllianceInstituteColonelActivityListResponse response = request.execute(accessToken);
-
-        System.out.println(response);
+    private IBytedanceColonelActivityService bytedanceColonelActivityService;
+
+
+    /**
+     * 新增团长活动列表
+     */
+    @ApiOperation(value = "新增团长活动 信息")
+    @GetMapping("/addBytedanceColonelActivityList")
+    public void addBytedanceColonelActivityList() {
+        bytedanceColonelActivityService.addBytedanceColonelActivityList(1L);
     }
 
+    /**
+     * 新增团长活动详情
+     */
+    @ApiOperation(value = "新增团长活动详情")
+    @GetMapping("/addBytedanceColonelActivityDetail")
+    public void addBytedanceColonelActivityDetail(@ApiParam("activityId") @RequestParam(value = "活动ID", required = true) Long activityId) {
+        bytedanceColonelActivityService.addBytedanceColonelActivityDetail(activityId);
+    }
+
+
 
 }

+ 0 - 4
ruixuan-live/src/main/java/com/ruixuan/bytedance/controller/TestController.java

@@ -1,4 +0,0 @@
-package com.ruixuan.bytedance.controller;
-
-public class TestController {
-}

+ 96 - 0
ruixuan-live/src/main/java/com/ruixuan/bytedance/entity/BytedanceColonelActivity.java

@@ -0,0 +1,96 @@
+package com.ruixuan.bytedance.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruixuan.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 团长活动 信息对象 bytedance_colonel_activity
+ *
+ * @date 2023-08-11
+ */
+@Data
+public class BytedanceColonelActivity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 活动ID
+     */
+    @Excel(name = "活动ID")
+    private Long activityId;
+
+    /**
+     * 活动ID
+     */
+    @Excel(name = "机构ID")
+    private Long institutionId;
+
+    /**
+     * 团长百应ID
+     */
+    @Excel(name = "团长百应ID")
+    private Long colonelBuyinId;
+
+    /**
+     * 活动名称
+     */
+    @Excel(name = "活动名称")
+    private String activityName;
+
+    /**
+     * 活动开始时间
+     */
+    @Excel(name = "活动开始时间")
+    private Long activityStartTime;
+
+    /**
+     * 活动结束时间
+     */
+    @Excel(name = "活动结束时间")
+    private Long activityEndTime;
+
+    /**
+     * 活动状态,1:未上线;2:报名未开始;3:报名中;4:推广未开始;5:推广中;7:报名结束
+     */
+    @Excel(name = "活动状态,1:未上线;2:报名未开始;3:报名中;4:推广未开始;5:推广中;7:报名结束")
+    private Integer status;
+
+    /**
+     * 活动报名开始时间
+     */
+    @Excel(name = "活动报名开始时间")
+    private Long applicationStartTime;
+
+    /**
+     * 活动报名结束时间
+     */
+    @Excel(name = "活动报名结束时间")
+    private Long applicationEndTime;
+
+    /**
+     * 角色权限字符串
+     */
+    @Excel(name = "行业类目限制")
+    private String categoriesLimit;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+
+}

+ 165 - 0
ruixuan-live/src/main/java/com/ruixuan/bytedance/entity/BytedanceColonelActivityDetail.java

@@ -0,0 +1,165 @@
+package com.ruixuan.bytedance.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruixuan.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 团长活动详情对象 bytedance_colonel_activity_detail
+ */
+@Data
+public class BytedanceColonelActivityDetail implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 机构ID
+     */
+    @Excel(name = "机构ID")
+    private Long institutionId;
+
+    /**
+     * 活动ID
+     */
+    @Excel(name = "活动ID")
+    private Long activityId;
+
+    /**
+     * 活动名称
+     */
+    @Excel(name = "活动名称")
+    private String activityName;
+
+    /**
+     * 报名门槛是否限制新手店铺 0否、1是
+     */
+    @Excel(name = "报名门槛是否限制新手店铺 0否、1是")
+    private Integer isNewShop;
+
+    /**
+     * 报名门槛。0:普通店;1:专营店;2:旗舰店;3:专卖店;4:商场店;5:专卖型旗舰店;6:官方旗舰店;7:企业店;8:个体店
+     */
+    @Excel(name = "报名门槛。0:普通店;1:专营店;2:旗舰店;3:专卖店;4:商场店;5:专卖型旗舰店;6:官方旗舰店;7:企业店;8:个体店")
+    private String shopType;
+
+    /**
+     * 活动描述
+     */
+    @Excel(name = "活动描述")
+    private String activityDesc;
+
+    /**
+     * 活动开始时间
+     */
+    @Excel(name = "活动开始时间")
+    private Long applyStartTime;
+
+    /**
+     * 活动结束时间
+     */
+    @Excel(name = "活动结束时间")
+    private Long applyEndTime;
+
+    /**
+     * 活动要求的最低服务费率
+     */
+    @Excel(name = "活动要求的最低服务费率")
+    private String commissionRate;
+
+    /**
+     * 微信号
+     */
+    @Excel(name = "微信号")
+    private String wechatId;
+
+    /**
+     * 手机号
+     */
+    @Excel(name = "手机号")
+    private String phoneNum;
+
+    /**
+     * 预估销售额
+     */
+    @Excel(name = "预估销售额")
+    private String estimatedSingleSale;
+
+    /**
+     * 活动类型。1: 全部商家; 2: 指定商家
+     */
+    @Excel(name = "活动类型。1: 全部商家; 2: 指定商家")
+    private Integer activityType;
+
+    /**
+     * 指定商家ID
+     */
+    @Excel(name = "指定商家ID")
+    private String specifiedShopIds;
+
+    /**
+     * 招商类目
+     */
+    @Excel(name = "招商类目")
+    private String categories;
+
+    /**
+     * 报名门槛-店铺体验分选项。0表示不限
+     */
+    @Excel(name = "报名门槛-店铺体验分选项。0表示不限")
+    private Long shopScore;
+
+    /**
+     * 最短推广周期,0:不限;>0:具体天数;现在只有0、15、30、60、90
+     */
+    @Excel(name = "最短推广周期,0:不限;>0:具体天数;现在只有0、15、30、60、90")
+    private Long minPromotionDays;
+
+    /**
+     * 跨境店铺 可/不可 报名(0:跨境店铺可报名,1:跨境店铺不可报名)
+     */
+    @Excel(name = "跨境店铺 可/不可 报名", readConverterExp = "0=:跨境店铺可报名,1:跨境店铺不可报名")
+    private Long thresholdCrossBorder;
+
+    /**
+     * 是否有报名门槛 0否、1是
+     */
+    @Excel(name = "是否有报名门槛 0否、1是")
+    private Integer hasThreshold;
+
+    /**
+     * 团长百应ID
+     */
+    @Excel(name = "团长百应ID")
+    private Long colonelBuyinId;
+
+    /**
+     * 团长活动设置的限时独家期限 0-6个月, 单位:月
+     */
+    @Excel(name = "团长活动设置的限时独家期限 0-6个月, 单位:月")
+    private Long monthsOfProtection;
+
+    /**
+     * 团长名称
+     */
+    @Excel(name = "团长名称")
+    private String colonelName;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+}

+ 69 - 0
ruixuan-live/src/main/java/com/ruixuan/bytedance/mapper/BytedanceColonelActivityMapper.java

@@ -0,0 +1,69 @@
+package com.ruixuan.bytedance.mapper;
+
+import com.ruixuan.bytedance.entity.BytedanceColonelActivity;
+import com.ruixuan.bytedance.entity.BytedanceColonelActivityDetail;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 团长活动 信息Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-08-11
+ */
+public interface BytedanceColonelActivityMapper {
+    /**
+     * 查询团长活动 信息
+     *
+     * @param id 团长活动 信息主键
+     * @return 团长活动 信息
+     */
+    public BytedanceColonelActivity selectBytedanceColonelActivityById(Long id);
+
+    /**
+     * 查询团长活动 信息列表
+     *
+     * @param bytedanceColonelActivity 团长活动 信息
+     * @return 团长活动 信息集合
+     */
+    public List<BytedanceColonelActivity> selectBytedanceColonelActivityList(BytedanceColonelActivity bytedanceColonelActivity);
+
+    /**
+     * 新增团长活动 信息
+     *
+     * @param bytedanceColonelActivity 团长活动 信息
+     * @return 结果
+     */
+    public int insertBytedanceColonelActivity(BytedanceColonelActivity bytedanceColonelActivity);
+
+    /**
+     * 修改团长活动 信息
+     *
+     * @param bytedanceColonelActivity 团长活动 信息
+     * @return 结果
+     */
+    public int updateBytedanceColonelActivity(BytedanceColonelActivity bytedanceColonelActivity);
+
+    /**
+     * 删除团长活动 信息
+     *
+     * @param id 团长活动 信息主键
+     * @return 结果
+     */
+    public int deleteBytedanceColonelActivityById(Long id);
+
+    /**
+     * 批量删除团长活动 信息
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBytedanceColonelActivityByIds(Long[] ids);
+
+    void replaceBatch(@Param("activityList") List<BytedanceColonelActivity> activityList);
+
+    void insertDetail(BytedanceColonelActivityDetail activityDetail);
+
+    BytedanceColonelActivityDetail getDetailByActivityId(@Param("activityId") Long activityId);
+}

+ 71 - 0
ruixuan-live/src/main/java/com/ruixuan/bytedance/service/IBytedanceColonelActivityService.java

@@ -0,0 +1,71 @@
+package com.ruixuan.bytedance.service;
+
+
+import com.ruixuan.bytedance.entity.BytedanceColonelActivity;
+
+import java.util.List;
+
+/**
+ * 团长活动 信息Service接口
+ *
+ * @author ruoyi
+ * @date 2023-08-11
+ */
+public interface IBytedanceColonelActivityService {
+    /**
+     * 查询团长活动 信息
+     *
+     * @param id 团长活动 信息主键
+     * @return 团长活动 信息
+     */
+    public BytedanceColonelActivity selectBytedanceColonelActivityById(Long id);
+
+    /**
+     * 查询团长活动 信息列表
+     *
+     * @param bytedanceColonelActivity 团长活动 信息
+     * @return 团长活动 信息集合
+     */
+    public List<BytedanceColonelActivity> selectBytedanceColonelActivityList(BytedanceColonelActivity bytedanceColonelActivity);
+
+
+    /**
+     * 修改团长活动 信息
+     *
+     * @param bytedanceColonelActivity 团长活动 信息
+     * @return 结果
+     */
+    public int updateBytedanceColonelActivity(BytedanceColonelActivity bytedanceColonelActivity);
+
+    /**
+     * 批量删除团长活动 信息
+     *
+     * @param ids 需要删除的团长活动 信息主键集合
+     * @return 结果
+     */
+    public int deleteBytedanceColonelActivityByIds(Long[] ids);
+
+    /**
+     * 删除团长活动 信息信息
+     *
+     * @param id 团长活动 信息主键
+     * @return 结果
+     */
+    public int deleteBytedanceColonelActivityById(Long id);
+
+
+    //-------------------------------------
+
+    /**
+     * job新增团长活动列表
+     */
+    public void addBytedanceColonelActivityList(Long page);
+
+
+    /**
+     * job 新增团长活动详情
+     */
+    void addBytedanceColonelActivityDetail(long activityId);
+
+
+}

+ 221 - 0
ruixuan-live/src/main/java/com/ruixuan/bytedance/service/impl/BytedanceColonelActivityServiceImpl.java

@@ -0,0 +1,221 @@
+package com.ruixuan.bytedance.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.doudian.open.api.alliance_instituteColonelActivityList.AllianceInstituteColonelActivityListRequest;
+import com.doudian.open.api.alliance_instituteColonelActivityList.AllianceInstituteColonelActivityListResponse;
+import com.doudian.open.api.alliance_instituteColonelActivityList.data.ActivityListItem;
+import com.doudian.open.api.alliance_instituteColonelActivityList.data.AllianceInstituteColonelActivityListData;
+import com.doudian.open.api.alliance_instituteColonelActivityList.param.AllianceInstituteColonelActivityListParam;
+import com.doudian.open.api.buyin_colonelActivityDetail.BuyinColonelActivityDetailRequest;
+import com.doudian.open.api.buyin_colonelActivityDetail.BuyinColonelActivityDetailResponse;
+import com.doudian.open.api.buyin_colonelActivityDetail.data.BuyinColonelActivityDetailData;
+import com.doudian.open.api.buyin_colonelActivityDetail.param.BuyinColonelActivityDetailParam;
+import com.doudian.open.api.buyin_decryptContactInfo.BuyinDecryptContactInfoRequest;
+import com.doudian.open.api.buyin_decryptContactInfo.BuyinDecryptContactInfoResponse;
+import com.doudian.open.api.buyin_decryptContactInfo.data.BuyinDecryptContactInfoData;
+import com.doudian.open.api.buyin_decryptContactInfo.param.BuyinDecryptContactInfoParam;
+import com.doudian.open.core.AccessToken;
+import com.ruixuan.bytedance.entity.BytedanceColonelActivity;
+import com.ruixuan.bytedance.entity.BytedanceColonelActivityDetail;
+import com.ruixuan.bytedance.mapper.BytedanceColonelActivityMapper;
+import com.ruixuan.bytedance.service.IBytedanceAccessTokenService;
+import com.ruixuan.bytedance.service.IBytedanceColonelActivityService;
+import com.ruixuan.common.utils.Check;
+import com.ruixuan.common.utils.DateUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 团长活动 信息Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-08-11
+ */
+@Slf4j
+@Service
+public class BytedanceColonelActivityServiceImpl implements IBytedanceColonelActivityService {
+    @Autowired
+    private BytedanceColonelActivityMapper bytedanceColonelActivityMapper;
+
+    @Autowired
+    private IBytedanceAccessTokenService tokenService;
+
+    /**
+     * 查询团长活动 信息
+     *
+     * @param id 团长活动 信息主键
+     * @return 团长活动 信息
+     */
+    @Override
+    public BytedanceColonelActivity selectBytedanceColonelActivityById(Long id) {
+        return bytedanceColonelActivityMapper.selectBytedanceColonelActivityById(id);
+    }
+
+    /**
+     * 查询团长活动 信息列表
+     *
+     * @param bytedanceColonelActivity 团长活动 信息
+     * @return 团长活动 信息
+     */
+    @Override
+    public List<BytedanceColonelActivity> selectBytedanceColonelActivityList(BytedanceColonelActivity bytedanceColonelActivity) {
+        return bytedanceColonelActivityMapper.selectBytedanceColonelActivityList(bytedanceColonelActivity);
+    }
+
+
+    /**
+     * 修改团长活动 信息
+     *
+     * @param bytedanceColonelActivity 团长活动 信息
+     * @return 结果
+     */
+    @Override
+    public int updateBytedanceColonelActivity(BytedanceColonelActivity bytedanceColonelActivity) {
+        bytedanceColonelActivity.setUpdateTime(DateUtils.getNowDate());
+        return bytedanceColonelActivityMapper.updateBytedanceColonelActivity(bytedanceColonelActivity);
+    }
+
+    /**
+     * 批量删除团长活动 信息
+     *
+     * @param ids 需要删除的团长活动 信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBytedanceColonelActivityByIds(Long[] ids) {
+        return bytedanceColonelActivityMapper.deleteBytedanceColonelActivityByIds(ids);
+    }
+
+    /**
+     * 删除团长活动 信息信息
+     *
+     * @param id 团长活动 信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBytedanceColonelActivityById(Long id) {
+        return bytedanceColonelActivityMapper.deleteBytedanceColonelActivityById(id);
+    }
+
+
+    /**
+     * 新增团长活动 信息
+     *
+     * @param bytedanceColonelActivity 团长活动 信息
+     */
+    @Override
+    public void addBytedanceColonelActivityList(Long page) {
+        AccessToken accessToken = tokenService.getAccessToken(1L);
+        AllianceInstituteColonelActivityListRequest request = new AllianceInstituteColonelActivityListRequest();
+        AllianceInstituteColonelActivityListParam param = request.getParam();
+        param.setStatus(0);
+        param.setSearchType(0L);
+        param.setSortType(0L);
+        param.setPage(page);
+        param.setPageSize(20L);
+        AllianceInstituteColonelActivityListResponse response = request.execute(accessToken);
+        if (Check.isNull(response) || !"10000".equals(response.getCode())) {
+            log.error("\n【请求接口】: {}\n【请求参数】:{}\n【响应数据】:{}", "/alliance/instituteColonelActivityList;(团长活动查询接口)", param, response);
+            return;
+        }
+        AllianceInstituteColonelActivityListData data = response.getData();
+        List<ActivityListItem> activityList = data.getActivityList();
+        if (Check.isNotNull(activityList)) {
+            List<BytedanceColonelActivity> list = new ArrayList<>();
+            for (ActivityListItem activityItem : activityList) {
+                BytedanceColonelActivity activity = new BytedanceColonelActivity();
+                BeanUtils.copyProperties(activityItem, activity);
+                activity.setActivityStartTime(DateUtils.strDateToInt(activityItem.getActivityStartTime()));
+                activity.setActivityEndTime(DateUtils.strDateToInt(activityItem.getActivityEndTime()));
+                activity.setApplicationStartTime(DateUtils.strDateToInt(activityItem.getApplicationStartTime()));
+                activity.setApplicationEndTime(DateUtils.strDateToInt(activityItem.getApplicationEndTime()));
+                if (Check.isNotNull(activityItem.getCategoriesLimit())) {
+                    activity.setCategoriesLimit(JSONObject.toJSON(activityItem.getCategoriesLimit()).toString());
+                }
+                activity.setInstitutionId(data.getInstitutionId());
+                activity.setColonelBuyinId(data.getColonelBuyinId());
+                list.add(activity);
+            }
+            bytedanceColonelActivityMapper.replaceBatch(list);
+
+            //添加详情
+            for (BytedanceColonelActivity activity : list) {
+                BytedanceColonelActivityDetail activityDetail = bytedanceColonelActivityMapper.getDetailByActivityId(activity.getActivityId());
+                if (Check.isNull(activityDetail)) {
+                    addBytedanceColonelActivityDetail(activity.getActivityId());
+                }
+            }
+
+            int size = data.getActivityList().size();
+            if (size >= 20) {
+                addBytedanceColonelActivityList(page + 1);
+            }
+        }
+    }
+
+    @Override
+    public void addBytedanceColonelActivityDetail(long activityId) {
+        AccessToken accessToken = tokenService.getAccessToken(1L);
+        BuyinColonelActivityDetailRequest request = new BuyinColonelActivityDetailRequest();
+        BuyinColonelActivityDetailParam param = request.getParam();
+        param.setActivityId(activityId);
+        BuyinColonelActivityDetailResponse response = request.execute(accessToken);
+        if (Check.isNull(response) || !"10000".equals(response.getCode())) {
+            log.error("\n【请求接口】: {}\n【请求参数】:{}\n【响应数据】:{}", "/buyin/colonelActivityDetail;(获取团长活动详情)", param, response);
+            return;
+        }
+        BuyinColonelActivityDetailData data = response.getData();
+        if (Check.isNotNull(data)) {
+            BytedanceColonelActivityDetail activityDetail = new BytedanceColonelActivityDetail();
+            BeanUtils.copyProperties(data, activityDetail);
+            if (Check.isNotNull(data.getIsNewShop())) {
+                activityDetail.setIsNewShop(data.getIsNewShop() ? 1 : 0);
+            }
+            if (Check.isNotNull(data.getHasThreshold())) {
+                activityDetail.setHasThreshold(data.getHasThreshold() ? 1 : 0);
+            }
+            if (Check.isNotNull(data.getShopType())) {
+                activityDetail.setShopType(JSONObject.toJSON(data.getShopType()).toString());
+            }
+            if (Check.isNotNull(data.getWechatId())) {
+                activityDetail.setWechatId(decryptContactInfo(accessToken, data.getWechatId(), activityId));
+            }
+            if (Check.isNotNull(data.getPhoneNum())) {
+                activityDetail.setPhoneNum(decryptContactInfo(accessToken, data.getPhoneNum(), activityId));
+            }
+            //招商类目
+            if (Check.isNotNull(data.getCategories())) {
+                activityDetail.setCategories(JSONObject.toJSON(data.getCategories()).toString());
+            }
+            activityDetail.setApplyStartTime(DateUtils.strDateToInt(data.getApplyStartTime()));
+            activityDetail.setApplyEndTime(DateUtils.strDateToInt(data.getApplyEndTime()));
+            bytedanceColonelActivityMapper.insertDetail(activityDetail);
+        }
+
+    }
+
+    /**
+     * 联系方式解密
+     */
+    public String decryptContactInfo(AccessToken accessToken, String text, Long activityId) {
+        try {
+            BuyinDecryptContactInfoRequest request = new BuyinDecryptContactInfoRequest();
+            BuyinDecryptContactInfoParam param = request.getParam();
+            param.setText(text);
+            BuyinDecryptContactInfoResponse response = request.execute(accessToken);
+            BuyinDecryptContactInfoData data = response.getData();
+            return data.getContactInfo();
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("联系方式解密失败,活动ID:{}", activityId);
+        }
+        return null;
+    }
+
+
+}

+ 246 - 0
ruixuan-live/src/main/resources/mapper/bytedance/BytedanceColonelActivityMapper.xml

@@ -0,0 +1,246 @@
+<?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.ruixuan.bytedance.mapper.BytedanceColonelActivityMapper">
+
+    <resultMap type="com.ruixuan.bytedance.entity.BytedanceColonelActivity" id="BytedanceColonelActivityResult">
+        <result property="id" column="id"/>
+        <result property="activityId" column="activity_id"/>
+        <result property="colonelBuyinId" column="colonel_buyin_id"/>
+        <result property="activityName" column="activity_name"/>
+        <result property="activityStartTime" column="activity_start_time"/>
+        <result property="activityEndTime" column="activity_end_time"/>
+        <result property="status" column="status"/>
+        <result property="applicationStartTime" column="application_start_time"/>
+        <result property="applicationEndTime" column="application_end_time"/>
+        <result property="categoriesLimit" column="categories_limit"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <sql id="selectBytedanceColonelActivityVo">
+        select id,
+               activity_id,
+               colonel_buyin_id,
+               activity_name,
+               activity_start_time,
+               activity_end_time,
+               status,
+               application_start_time,
+               application_end_time,
+               categories_limit,
+               create_time,
+               update_time
+        from bytedance_colonel_activity
+    </sql>
+
+    <select id="selectBytedanceColonelActivityList"
+            parameterType="com.ruixuan.bytedance.entity.BytedanceColonelActivity"
+            resultMap="BytedanceColonelActivityResult">
+        <include refid="selectBytedanceColonelActivityVo"/>
+        <where>
+            <if test="activityId != null ">and activity_id = #{activityId}</if>
+            <if test="colonelBuyinId != null ">and colonel_buyin_id = #{colonelBuyinId}</if>
+            <if test="activityName != null  and activityName != ''">and activity_name like concat('%', #{activityName},
+                '%')
+            </if>
+            <if test="activityStartTime != null ">and activity_start_time = #{activityStartTime}</if>
+            <if test="activityEndTime != null ">and activity_end_time = #{activityEndTime}</if>
+            <if test="status != null ">and status = #{status}</if>
+            <if test="applicationStartTime != null  and applicationStartTime != ''">and application_start_time =
+                #{applicationStartTime}
+            </if>
+            <if test="applicationEndTime != null ">and application_end_time = #{applicationEndTime}</if>
+            <if test="categoriesLimit != null  and categoriesLimit != ''">and categories_limit = #{categoriesLimit}</if>
+        </where>
+    </select>
+
+    <select id="selectBytedanceColonelActivityById" parameterType="Long" resultMap="BytedanceColonelActivityResult">
+        <include refid="selectBytedanceColonelActivityVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBytedanceColonelActivity" parameterType="com.ruixuan.bytedance.entity.BytedanceColonelActivity"
+            useGeneratedKeys="true"
+            keyProperty="id">
+        insert into bytedance_colonel_activity
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="activityId != null">activity_id,</if>
+            <if test="colonelBuyinId != null">colonel_buyin_id,</if>
+            <if test="activityName != null">activity_name,</if>
+            <if test="activityStartTime != null">activity_start_time,</if>
+            <if test="activityEndTime != null">activity_end_time,</if>
+            <if test="status != null">status,</if>
+            <if test="applicationStartTime != null">application_start_time,</if>
+            <if test="applicationEndTime != null">application_end_time,</if>
+            <if test="categoriesLimit != null">categories_limit,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="activityId != null">#{activityId},</if>
+            <if test="colonelBuyinId != null">#{colonelBuyinId},</if>
+            <if test="activityName != null">#{activityName},</if>
+            <if test="activityStartTime != null">#{activityStartTime},</if>
+            <if test="activityEndTime != null">#{activityEndTime},</if>
+            <if test="status != null">#{status},</if>
+            <if test="applicationStartTime != null">#{applicationStartTime},</if>
+            <if test="applicationEndTime != null">#{applicationEndTime},</if>
+            <if test="categoriesLimit != null">#{categoriesLimit},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBytedanceColonelActivity" parameterType="com.ruixuan.bytedance.entity.BytedanceColonelActivity">
+        update bytedance_colonel_activity
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="activityId != null">activity_id = #{activityId},</if>
+            <if test="colonelBuyinId != null">colonel_buyin_id = #{colonelBuyinId},</if>
+            <if test="activityName != null">activity_name = #{activityName},</if>
+            <if test="activityStartTime != null">activity_start_time = #{activityStartTime},</if>
+            <if test="activityEndTime != null">activity_end_time = #{activityEndTime},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="applicationStartTime != null">application_start_time = #{applicationStartTime},</if>
+            <if test="applicationEndTime != null">application_end_time = #{applicationEndTime},</if>
+            <if test="categoriesLimit != null">categories_limit = #{categoriesLimit},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBytedanceColonelActivityById" parameterType="Long">
+        delete
+        from bytedance_colonel_activity
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBytedanceColonelActivityByIds" parameterType="String">
+        delete from bytedance_colonel_activity where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+
+    <insert id="replaceBatch">
+        replace into bytedance_colonel_activity(
+        institution_id,
+        activity_id,
+        colonel_buyin_id,
+        activity_name,
+        activity_start_time,
+        activity_end_time,
+        status,
+        application_start_time,
+        application_end_time,
+        categories_limit
+        )
+        values
+        <foreach collection="activityList" item="cell" separator=",">
+            (
+            #{cell.institutionId},
+            #{cell.activityId},
+            #{cell.colonelBuyinId},
+            #{cell.activityName},
+            #{cell.activityStartTime},
+            #{cell.activityEndTime},
+            #{cell.status},
+            #{cell.applicationStartTime},
+            #{cell.applicationEndTime},
+            #{cell.categoriesLimit}
+            )
+        </foreach>
+    </insert>
+
+
+    <insert id="insertDetail"
+            parameterType="com.ruixuan.bytedance.entity.BytedanceColonelActivityDetail" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into bytedance_colonel_activity_detail
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="institutionId != null">institution_id,</if>
+            <if test="activityId != null">activity_id,</if>
+            <if test="activityName != null">activity_name,</if>
+            <if test="isNewShop != null">is_new_shop,</if>
+            <if test="shopType != null">shop_type,</if>
+            <if test="activityDesc != null">activity_desc,</if>
+            <if test="applyStartTime != null">apply_start_time,</if>
+            <if test="applyEndTime != null">apply_end_time,</if>
+            <if test="commissionRate != null">commission_rate,</if>
+            <if test="wechatId != null">wechat_id,</if>
+            <if test="phoneNum != null">phone_num,</if>
+            <if test="estimatedSingleSale != null">estimated_single_sale,</if>
+            <if test="activityType != null">activity_type,</if>
+            <if test="specifiedShopIds != null">specified_shop_ids,</if>
+            <if test="categories != null">categories,</if>
+            <if test="shopScore != null">shop_score,</if>
+            <if test="minPromotionDays != null">min_promotion_days,</if>
+            <if test="thresholdCrossBorder != null">threshold_cross_border,</if>
+            <if test="hasThreshold != null">has_threshold,</if>
+            <if test="colonelBuyinId != null">colonel_buyin_id,</if>
+            <if test="monthsOfProtection != null">months_of_protection,</if>
+            <if test="colonelName != null">colonel_name,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="institutionId != null">#{institutionId},</if>
+            <if test="activityId != null">#{activityId},</if>
+            <if test="activityName != null">#{activityName},</if>
+            <if test="isNewShop != null">#{isNewShop},</if>
+            <if test="shopType != null">#{shopType},</if>
+            <if test="activityDesc != null">#{activityDesc},</if>
+            <if test="applyStartTime != null">#{applyStartTime},</if>
+            <if test="applyEndTime != null">#{applyEndTime},</if>
+            <if test="commissionRate != null">#{commissionRate},</if>
+            <if test="wechatId != null">#{wechatId},</if>
+            <if test="phoneNum != null">#{phoneNum},</if>
+            <if test="estimatedSingleSale != null">#{estimatedSingleSale},</if>
+            <if test="activityType != null">#{activityType},</if>
+            <if test="specifiedShopIds != null">#{specifiedShopIds},</if>
+            <if test="categories != null">#{categories},</if>
+            <if test="shopScore != null">#{shopScore},</if>
+            <if test="minPromotionDays != null">#{minPromotionDays},</if>
+            <if test="thresholdCrossBorder != null">#{thresholdCrossBorder},</if>
+            <if test="hasThreshold != null">#{hasThreshold},</if>
+            <if test="colonelBuyinId != null">#{colonelBuyinId},</if>
+            <if test="monthsOfProtection != null">#{monthsOfProtection},</if>
+            <if test="colonelName != null">#{colonelName},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+        </trim>
+    </insert>
+
+
+    <select id="getDetailByActivityId" parameterType="Long" resultMap="BytedanceColonelActivityResult">
+        select id,
+               institution_id,
+               activity_id,
+               activity_name,
+               is_new_shop,
+               shop_type,
+               activity_desc,
+               apply_start_time,
+               apply_end_time,
+               commission_rate,
+               wechat_id,
+               phone_num,
+               estimated_single_sale,
+               activity_type,
+               specified_shop_ids,
+               categories,
+               shop_score,
+               min_promotion_days,
+               threshold_cross_border,
+               has_threshold,
+               colonel_buyin_id,
+               months_of_protection,
+               colonel_name
+        from bytedance_colonel_activity_detail
+        where activity_id = #{activityId}
+    </select>
+
+</mapper>