From d4660575e17019cfd3effc7b8002fca3c8c4f1b4 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 19 Oct 2022 21:17:36 +0800 Subject: [PATCH] =?UTF-8?q?//=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/basic/TtPoiPlanController.java | 177 ++-- .../V2022101700001__add_tt_poi_take_rate.sql | 803 ++++++++++++++++++ .../com/iformall/domain/po/TtPoiTakeRate.java | 13 + .../douyin/web/api/TtWebPoiPlanService.java | 73 ++ .../web/api/impl/TtWebPoiPlanServiceImpl.java | 75 ++ .../douyin/web/bean/PoiOrientedPlan.java | 128 +++ .../web/bean/PoiOrientedPlanDetail.java | 61 ++ .../douyin/web/bean/PoiOrientedPlanPage.java | 39 + .../web/bean/PoiOrientedPlanTalentDetail.java | 101 +++ .../com/iformall/enums/EnumCpsPlanStatus.java | 6 +- .../iformall/mapper/TtPoiTakeRateMapper.java | 2 +- .../service/TtCouponGoodsService.java | 15 +- .../impl/TtCouponGoodsServiceImpl.java | 273 ++++-- .../impl/WxProfitSharingOrderServiceImpl.java | 2 +- .../resources/mapper/TtPoiTakeRateMapper.xml | 12 +- 15 files changed, 1616 insertions(+), 164 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V2022101700001__add_tt_poi_take_rate.sql create mode 100644 mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlan.java create mode 100644 mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanDetail.java create mode 100644 mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanPage.java create mode 100644 mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanTalentDetail.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtPoiPlanController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtPoiPlanController.java index 020cd0bf9..93f9779bf 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtPoiPlanController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtPoiPlanController.java @@ -8,6 +8,8 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.TtPoiTakeRate; import com.iformall.domain.po.base.BaseEntity; +import com.iformall.enums.EnumCpsPlanContentType; +import com.iformall.enums.EnumCpsPlanStatus; import com.iformall.enums.EnumCpsPlanType; import com.iformall.service.TtCouponGoodsService; import io.swagger.annotations.ApiImplicitParam; @@ -34,8 +36,23 @@ public class TtPoiPlanController extends BaseController { @Autowired private TtCouponGoodsService ttCouponGoodsService; -// @TenantIgnore @ApiOperation("分页列表接口") + @GetMapping("takeRateList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + @SystemControllerLog(description = "列表") + public ResultData takeRateList(@ModelAttribute TtPoiTakeRate record, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::list"); + if (null == record) record = new TtPoiTakeRate(); + record.updateTenantInfo(getTenantInfo()); + record.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); + final PageInfo page = ttCouponGoodsService.takeRateListAsPage(record, pageNum, pageSize); + return new ResultData(page); + } + +// @TenantIgnore + @ApiOperation("通用计划分页列表接口") @GetMapping("list") @ApiImplicitParams({}) @SystemControllerLog(description = "列表") @@ -53,110 +70,132 @@ public class TtPoiPlanController extends BaseController { return ttCouponGoodsService.poiPlanList(getTenantInfo(),couponId,pageNum,pageSize); } + @ApiOperation("定向计划分页列表接口") + @GetMapping("orientedList") + @ApiImplicitParams({}) + @SystemControllerLog(description = "列表") + public ResultData orientedList(Long couponId,Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] TtPoiPlanController::orientedList"); + if(couponId == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + if(pageNum == null){ + pageNum = 1; + } + if(pageSize == null){ + pageSize = 100; + } + return ttCouponGoodsService.poiOrientedPlanList(getTenantInfo(),couponId,pageNum,pageSize); + } + @ApiOperation("发布修改通用佣金计划") @PostMapping("save") @SystemControllerLog(description = "更新") - public ResultData save(@RequestBody Map param) { + public ResultData save(@RequestBody TtPoiTakeRate record) { logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::save"); - Integer commissionRate = (Integer) param.get("commissionRate"); - if(commissionRate == null){ + if(record.getTakeRate() == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"商品的抽佣率为空"); } - if(commissionRate.intValue() < 100 || commissionRate.intValue() > 2900){ + if(record.getTakeRate() < 100 || record.getTakeRate() > 2900){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"商品的抽佣率需在万分位100-2900之间"); } - Integer contentType = (Integer) param.get("contentType"); - if(contentType == null){ + + if(record.getContentType() == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"带货场景为空"); } - if(contentType.intValue() < 1 || contentType.intValue() > 3){ - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"带货场景不合法"); - } - String planIdStr = (String) param.get("planId"); - Long planId = null; - if(StringUtils.isNotBlank(planIdStr)){ - planId = Long.parseLong(planIdStr); + if(record.getCouponId() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"商品Id为空"); } + record.updateTenantInfo(getTenantInfo()); + return ttCouponGoodsService.poiPlanSave(record); + } - String couponIdStr = (String) param.get("couponId"); - if(StringUtils.isBlank(couponIdStr)){ + @ApiOperation("发布修改定向佣金计划") + @PostMapping("saveOrientedPlan") + @SystemControllerLog(description = "更新") + public ResultData saveOrientedPlan(@RequestBody TtPoiTakeRate record) { + logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::saveOrientedPlan"); + if(StringUtils.isBlank(record.getName())){//不可修改 + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"计划名称为空"); + } + if(StringUtils.isBlank(record.getMerchantPhone())){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"计划联系人为空"); + } + if(record.getDouyinIdList() == null || record.getDouyinIdList().isEmpty()){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"定向达人抖音号为空"); + } + if(record.getCouponId() == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"商品Id为空"); } - Long couponId = Long.parseLong(couponIdStr); - - return ttCouponGoodsService.poiPlanSave(getTenantInfo(),couponId,planId,contentType,commissionRate); + if(record.getContentType() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"带货场景为空"); + } + EnumCpsPlanContentType planType = EnumCpsPlanContentType.getEnum(record.getContentType()); + if(planType == null || (!planType.equals(EnumCpsPlanContentType.VIDEO) && !planType.equals(EnumCpsPlanContentType.LIVE))){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"带货场景错误"); + } + if(planType.equals(EnumCpsPlanContentType.VIDEO)){ + if(record.getStartTime() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"计划开始时间为空"); + } + if(record.getEndTime() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"计划结束时间为空"); + } + if(record.getCommissionDuration() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"佣金有效期为空"); + } + } + if(record.getTakeRate() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"商品的抽佣率为空"); + } + if(record.getTakeRate() <= 0 || record.getTakeRate() > 2900){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"商品的抽佣率需在万分位0-2900之间"); + } + record.updateTenantInfo(getTenantInfo()); + return ttCouponGoodsService.saveOrientedPlan(record); } @ApiOperation("修改通用佣金计划状态") @PostMapping("updateStatus") @SystemControllerLog(description = "更新") - public ResultData updateStatus(@RequestBody Map param) { + public ResultData updateStatus(@RequestBody TtPoiTakeRate record) { logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::updateStatus"); - String planIdStr = (String) param.get("planId"); - if(StringUtils.isBlank(planIdStr)){ + if(record.getId() == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"计划ID为空"); } - Long planId = Long.parseLong(planIdStr); - Integer status = (Integer) param.get("status"); - if(status == null){ + if(record.getStatus() == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"状态值为空"); } - if(status.intValue() < 1 || status.intValue() > 3){ + EnumCpsPlanStatus planStatus = EnumCpsPlanStatus.getEnum(record.getStatus()); + if(planStatus == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"状态不合法"); } - - return ttCouponGoodsService.poiPlanUpdateStatus(getTenantInfo(),planId,status); - } - - @ApiOperation("分页列表接口") - @GetMapping("takeRateList") - @ApiImplicitParams({ - @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), - @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) - @SystemControllerLog(description = "列表") - public ResultData takeRateList(@ModelAttribute TtPoiTakeRate record, Integer pageNum, Integer pageSize) { - logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::list"); - if (null == record) record = new TtPoiTakeRate(); record.updateTenantInfo(getTenantInfo()); - record.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); - final PageInfo page = ttCouponGoodsService.takeRateListAsPage(record, pageNum, pageSize); - return new ResultData(page); + + return ttCouponGoodsService.poiPlanUpdateStatus(record); } - @ApiOperation("商品达人分佣配置") - @PostMapping("takeRate") + @ApiOperation("修改定向佣金计划状态") + @PostMapping("updateOrientedStatus") @SystemControllerLog(description = "更新") - public ResultData takeRate(@RequestBody Map param) { - logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::takeRate"); - Integer status = (Integer) param.get("status"); - if(status == null){ - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"状态为空"); - } - if(status.intValue() != 1 && status.intValue() != 2){ - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"状态不规范"); - } - Integer takeRate = (Integer) param.get("takeRate"); - - if(takeRate == null){ - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"抽佣率为空"); + public ResultData updateOrientedStatus(@RequestBody TtPoiTakeRate record) { + logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::updateOrientedStatus"); + if(record.getId() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"计划ID为空"); } -// if(takeRate.intValue() < 100 || takeRate.intValue() > 2900){ -// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"抽佣率需在万分位100-2900之间"); -// } - String douyinId = (String) param.get("douyinId"); - - if(StringUtils.isBlank(douyinId)){ - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"抖音号为空"); + if(record.getStatus() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"状态值为空"); } - String couponIdStr = (String) param.get("couponId"); - if(StringUtils.isBlank(couponIdStr)){ - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"商品Id为空"); + EnumCpsPlanStatus planStatus = EnumCpsPlanStatus.getEnum(record.getStatus()); + if(!EnumCpsPlanStatus.OFF.equals(planStatus)){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"状态不合法"); } - Long couponId = Long.parseLong(couponIdStr); + record.updateTenantInfo(getTenantInfo()); - return ttCouponGoodsService.poiTakeRate(getTenantInfo(),couponId,douyinId,takeRate,status); + return ttCouponGoodsService.poiOrientedPlanUpdateStatus(record); } + @ApiOperation("获取佣金范围") @PostMapping("getRateScope") @SystemControllerLog(description = "获取") diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022101700001__add_tt_poi_take_rate.sql b/mallinkAdmin/src/main/resources/db/migration/V2022101700001__add_tt_poi_take_rate.sql new file mode 100644 index 000000000..6e2af7229 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022101700001__add_tt_poi_take_rate.sql @@ -0,0 +1,803 @@ +UPDATE `tt_poi_take_rate_0` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_1` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_2` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_3` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_4` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_5` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_6` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_7` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_8` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_9` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_10` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_11` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_12` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_13` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_14` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_15` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_16` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_17` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_18` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_19` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_20` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_21` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_22` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_23` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_24` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_25` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_26` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_27` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_28` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_29` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_30` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_31` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_32` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_33` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_34` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_35` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_36` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_37` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_38` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_39` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_40` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_41` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_42` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_43` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_44` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_45` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_46` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_47` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_48` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_49` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_50` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_51` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_52` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_53` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_54` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_55` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_56` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_57` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_58` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_59` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_60` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_61` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_62` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_63` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_64` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_65` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_66` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_67` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_68` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_69` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_70` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_71` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_72` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_73` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_74` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_75` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_76` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_77` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_78` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_79` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_80` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_81` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_82` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_83` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_84` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_85` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_86` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_87` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_88` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_89` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_90` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_91` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_92` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_93` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_94` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_95` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_96` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_97` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_98` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; +UPDATE `tt_poi_take_rate_99` SET `douyin_id` = CONCAT('["',douyin_id,'"]') WHERE `douyin_id` is not null; + + + +ALTER TABLE `mallink`.`tt_poi_take_rate_0` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_1` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_2` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_3` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_4` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_5` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_6` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_7` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_8` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_9` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_10` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_11` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_12` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_13` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_14` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_15` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_16` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_17` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_18` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_19` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_20` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_21` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_22` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_23` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_24` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_25` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_26` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_27` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_28` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_29` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_30` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_31` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_32` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_33` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_34` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_35` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_36` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_37` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_38` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_39` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_40` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_41` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_42` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_43` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_44` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_45` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_46` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_47` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_48` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_49` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_50` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_51` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_52` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_53` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_54` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_55` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_56` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_57` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_58` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_59` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_60` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_61` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_62` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_63` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_64` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_65` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_66` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_67` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_68` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_69` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_70` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_71` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_72` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_73` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_74` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_75` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_76` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_77` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_78` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_79` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_80` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_81` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_82` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_83` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_84` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_85` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_86` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_87` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_88` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_89` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_90` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_91` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_92` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_93` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_94` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_95` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_96` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_97` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_98` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; +ALTER TABLE `mallink`.`tt_poi_take_rate_99` +ADD COLUMN `merchant_phone` varchar(20) COMMENT '计划联系人手机号' AFTER `name`, +MODIFY COLUMN `douyin_id` json COMMENT '抖音号' AFTER `content_type`, +ADD COLUMN `douyin_id_status` json COMMENT '达人履约状态' AFTER `douyin_id`, +ADD COLUMN `commission_duration` bigint(20) COMMENT '佣金有效期,单位是秒' AFTER `end_time`, +DROP INDEX `tcd_unique`, +ADD INDEX `tcd_unique`(`tenant_id`, `coupon_id`) USING BTREE; \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/TtPoiTakeRate.java b/mallinkService/src/main/java/com/iformall/domain/po/TtPoiTakeRate.java index c1f26127e..62a6dfb1f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/TtPoiTakeRate.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/TtPoiTakeRate.java @@ -1,5 +1,6 @@ package com.iformall.domain.po; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.TenantEntity; import lombok.Data; @@ -7,6 +8,7 @@ import lombok.EqualsAndHashCode; import lombok.ToString; import java.util.Date; +import java.util.List; @TableName(value = "tt_poi_take_rate") @Data @@ -25,12 +27,18 @@ public class TtPoiTakeRate extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="",name="name") private String name; + @io.swagger.annotations.ApiModelProperty(value="计划联系人手机号",name="merchantPhone") + private String merchantPhone; + @io.swagger.annotations.ApiModelProperty(value="EnumCpsPlanContentType 场景",name="contentType") private Integer contentType; @io.swagger.annotations.ApiModelProperty(value="抖音ID",name="douyinId") private String douyinId; + @io.swagger.annotations.ApiModelProperty(value="达人履约状态",name="douyinIdStatus") + private String douyinIdStatus; + @io.swagger.annotations.ApiModelProperty(value="分佣率",name="takeRate") private Integer takeRate; @@ -39,10 +47,15 @@ public class TtPoiTakeRate extends TenantEntity { private Date startTime; private Date endTime; + @io.swagger.annotations.ApiModelProperty(value="佣金有效期,单位是秒",name="commissionDuration") + private Long commissionDuration; @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") private Date createDate; @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") private Date updateDate; + @TableField(exist = false) + private List douyinIdList; + } diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebPoiPlanService.java b/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebPoiPlanService.java index 88ddfdd1e..10306b853 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebPoiPlanService.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebPoiPlanService.java @@ -43,8 +43,39 @@ public interface TtWebPoiPlanService { String POI_COMMON_PLAN_TALENT_MEDIA_LIST = "https://open.douyin.com/poi/common/plan/talent/media/list/"; + /** + * 发布/修改直播间定向佣金计划 + */ + String POI_ORIENTED_PLAN_LIVE_SAVE = "https://open.douyin.com/poi/oriented/plan/live/save/"; + /** + * 发布/修改短视频定向佣金计划 + */ + String POI_ORIENTED_PLAN_VIDEO_SAVE = "https://open.douyin.com/poi/oriented/plan/video/save/"; + /** + * 修改定向计划状态 + */ + String POI_ORIENTED_PLAN_UPDATE_STATUS = "https://open.douyin.com/poi/oriented/plan/update/status/"; + /** + * 取消定向佣金计划指定的达人 + */ + String POI_ORIENTED_PLAN_DELETE_TALENT = "https://open.douyin.com/poi/oriented/plan/delete/talent/"; + /** + * 查询达人的定向佣金计划带货数据 + */ + String POI_ORIENTED_PLAN_TALENT_DETAIL = "https://open.douyin.com/poi/oriented/plan/talent/detail/"; + /** + * 通过商品 ID 查询定向佣金计划 + */ + String POI_ORIENTED_PLAN_LIST = "https://open.douyin.com/poi/oriented/plan/list/"; + /** + * 查询定向佣金计划带货汇总数据 + */ + String POI_ORIENTED_PLAN_DETAIL = "https://open.douyin.com/poi/oriented/plan/detail/"; + + /** * 商品达人分佣配置 + * 淘汰 */ String POI_TAKE_RATE = "https://open.douyin.com/poi/v2/spu/take_rate/sync/"; @@ -53,11 +84,26 @@ public interface TtWebPoiPlanService { */ PoiPlanPage poiPlanList(Long spuId,Integer pageNo,Integer pageSize) throws WxErrorException; + /** + * 通过商品 ID 查询定向佣金计划 + */ + PoiOrientedPlanPage poiOrientedPlanList(Long spuId,Integer pageNo,Integer pageSize) throws WxErrorException; + /** * 发布/修改通用佣金计划 */ Long poiPlanSave(PoiPlan poiPlan) throws WxErrorException ; + /** + * 发布/修改直播间定向佣金计划 + */ + Long poiOrientedPlanLiveSave(PoiOrientedPlan poiPlan) throws WxErrorException ; + + /** + * 发布/修改短视频定向佣金计划 + */ + Long poiOrientedPlanVideoSave(PoiOrientedPlan poiPlan) throws WxErrorException ; + /** * 修改通用佣金计划状态 * status @@ -67,8 +113,25 @@ public interface TtWebPoiPlanService { */ boolean poiPlanUpdateStatus(Long planId,Integer status) throws WxErrorException ; + /** + * 修改定向佣金计划状态 + * status + * 1:设置为进行中 + * 2:设置为暂停中 + * 3:设置为已关闭 + */ + boolean poiOrientedPlanUpdateStatus(Long planId,Integer status) throws WxErrorException ; + + /** + * 取消定向佣金计划指定的达人ORIENTED_PLAN_DELETE_TALENT + */ + boolean poiOrientedPlanDeleteTalent(Long planId,String douyinId) throws WxErrorException ; + + + /** * 商品达人分佣配置(定向分佣) + * 淘汰 */ String poiTakeRate(PoiTakeRate poiTakeRate) throws WxErrorException ; @@ -77,6 +140,11 @@ public interface TtWebPoiPlanService { */ PoiPlanDetail poiPlanDetail(List plan_id_list) throws WxErrorException ; + /** + * 查询定向佣金计划带货汇总数据 + */ + PoiOrientedPlanDetail poiOrientedPlanDetail(List plan_id_list) throws WxErrorException ; + /** * 通用佣金计划查询带货达人列表 */ @@ -87,6 +155,11 @@ public interface TtWebPoiPlanService { */ PoiPlanTalentDetail poiPlanTalentDetail(Long plan_id,List douyin_id_list) throws WxErrorException ; + /** + * 查询达人的定向佣金计划带货数据 + */ + PoiOrientedPlanTalentDetail poiOrientedPlanTalentDetail(Long plan_id,List douyin_id_list) throws WxErrorException ; + /** * 通用佣金计划查询达人带货详情 * diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebPoiPlanServiceImpl.java b/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebPoiPlanServiceImpl.java index c8ee458a5..a7e43298e 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebPoiPlanServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebPoiPlanServiceImpl.java @@ -35,6 +35,17 @@ public class TtWebPoiPlanServiceImpl implements TtWebPoiPlanService { return GSON.fromJson(result, PoiPlanPage.class); } + @Override + public PoiOrientedPlanPage poiOrientedPlanList(Long spuId, Integer pageNo, Integer pageSize) throws WxErrorException { + final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); + Map map = new HashMap<>(); + List spu_id_list = new ArrayList<>(); + spu_id_list.add(spuId); + map.put("spu_id_list",spu_id_list); + String result = this.service.execute(executor, this.POI_ORIENTED_PLAN_LIST, GSON.toJson(map)); + return GSON.fromJson(result, PoiOrientedPlanPage.class); + } + @Override public Long poiPlanSave(PoiPlan poiPlan) throws WxErrorException { final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); @@ -43,6 +54,22 @@ public class TtWebPoiPlanServiceImpl implements TtWebPoiPlanService { return jsonObject.getLong("plan_id"); } + @Override + public Long poiOrientedPlanLiveSave(PoiOrientedPlan poiPlan) throws WxErrorException { + final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); + String result = this.service.execute(executor, this.POI_ORIENTED_PLAN_LIVE_SAVE, GSON.toJson(poiPlan)); + JSONObject jsonObject = JSONObject.parseObject(result); + return jsonObject.getLong("plan_id"); + } + + @Override + public Long poiOrientedPlanVideoSave(PoiOrientedPlan poiPlan) throws WxErrorException { + final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); + String result = this.service.execute(executor, this.POI_ORIENTED_PLAN_VIDEO_SAVE, GSON.toJson(poiPlan)); + JSONObject jsonObject = JSONObject.parseObject(result); + return jsonObject.getLong("plan_id"); + } + @Override public boolean poiPlanUpdateStatus(Long planId, Integer status) throws WxErrorException { final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); @@ -62,6 +89,35 @@ public class TtWebPoiPlanServiceImpl implements TtWebPoiPlanService { return true; } + @Override + public boolean poiOrientedPlanUpdateStatus(Long planId, Integer status) throws WxErrorException { + final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); + Map map = new HashMap<>(); + List> updateList = new ArrayList<>(); + Map updateMap = new HashMap<>(); + updateMap.put("plan_id",planId); + updateMap.put("status",status); + updateList.add(updateMap); + map.put("plan_update_list",updateList); + String result = this.service.execute(executor, this.POI_ORIENTED_PLAN_UPDATE_STATUS, GSON.toJson(map)); + JSONObject jsonObject = JSONObject.parseObject(result); + JSONArray fail_plan_id_list = jsonObject.getJSONArray("fail_plan_id_list"); + if(fail_plan_id_list != null && fail_plan_id_list.size() > 0){ + return false; + } + return true; + } + + @Override + public boolean poiOrientedPlanDeleteTalent(Long planId, String douyinId) throws WxErrorException { + final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); + Map map = new HashMap<>(); + map.put("plan_id",planId); + map.put("douyin_id",douyinId); + String result = this.service.execute(executor, this.POI_ORIENTED_PLAN_DELETE_TALENT, GSON.toJson(map)); + return true; + } + @Override public String poiTakeRate(PoiTakeRate poiTakeRate) throws WxErrorException { final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); @@ -79,6 +135,15 @@ public class TtWebPoiPlanServiceImpl implements TtWebPoiPlanService { return GSON.fromJson(result, PoiPlanDetail.class); } + @Override + public PoiOrientedPlanDetail poiOrientedPlanDetail(List plan_id_list) throws WxErrorException { + final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); + Map map = new HashMap<>(); + map.put("plan_id_list",plan_id_list); + String result = this.service.execute(executor, this.POI_ORIENTED_PLAN_DETAIL, GSON.toJson(map)); + return GSON.fromJson(result, PoiOrientedPlanDetail.class); + } + @Override public PoiPlanTalentPage poiPlanTalentList(Long plan_id, Integer pageNo, Integer pageSize) throws WxErrorException { final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); @@ -100,6 +165,16 @@ public class TtWebPoiPlanServiceImpl implements TtWebPoiPlanService { return GSON.fromJson(result, PoiPlanTalentDetail.class); } + @Override + public PoiOrientedPlanTalentDetail poiOrientedPlanTalentDetail(Long plan_id, List douyin_id_list) throws WxErrorException { + final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); + Map map = new HashMap<>(); + map.put("plan_id",plan_id); + map.put("douyin_id_list",douyin_id_list); + String result = this.service.execute(executor, this.POI_ORIENTED_PLAN_TALENT_DETAIL, GSON.toJson(map)); + return GSON.fromJson(result, PoiOrientedPlanTalentDetail.class); + } + @Override public PoiPlanTalentMediaPage poiPlanTalentMediaList(Long plan_id, Integer pageNo, Integer pageSize, String douyin_id, Integer content_type) throws WxErrorException { final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp()); diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlan.java b/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlan.java new file mode 100644 index 000000000..af2332bd5 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlan.java @@ -0,0 +1,128 @@ +package com.iformall.douyin.web.bean; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + * 计划. + * + * @author thinsstar + */ +@Data +@NoArgsConstructor +public class PoiOrientedPlan implements Serializable { + + private static final long serialVersionUID = -1L; + + /** + * 计划ID + */ + @SerializedName(value = "plan_id") + private Long planId; + + /** + * 计划名称 + */ + @SerializedName(value = "plan_name") + private String planName; + + /** + * 计划开始时间,直播间场景下的计划此字段为0 + * 秒级时间戳 + */ + @SerializedName(value = "start_time") + private Long startTime; + + /** + * 计划结束时间,直播间场景下的计划此字段为0 + * 秒级时间戳 + */ + @SerializedName(value = "end_time") + private Long endTime; + + /** + * 佣金有效期,直播间场景下的计划此字段为0 + */ + @SerializedName(value = "commission_duration") + private Long commissionDuration; + + /** + * 联系电话 + */ + @SerializedName(value = "merchant_phone") + private String merchantPhone; + + /** + * 可选值: + * 1:进行中 + * 2:已完成 + * 3:已取消 + */ + @SerializedName(value = "status") + private Integer status; + + /** + * 达人抖音号列表 + */ + @SerializedName(value = "douyin_id_list") + private List douyinIdList; + + /** + * 达人履约状态: + * 1:进行中 + * 2:已完成 + * 3:已取消 + */ + @SerializedName(value = "talent_status_map") + private Map talentStatusMap; + + /** + * 计划指定的商品配置列表 + */ + @SerializedName(value = "product_list") + private List productList; + + /** + * 计划创建时间 + */ + @SerializedName(value = "create_time") + private String createTime; + + /** + * 计划创建时间 + */ + @SerializedName(value = "update_time") + private String updateTime; + + /** + * 计划支持的带货场景,可选以下的值: + * + * 1:仅短视频 + * 2:仅直播间 + */ + @SerializedName(value = "content_type") + private Integer contentType; + + @Data + @NoArgsConstructor + public static class ProductRate implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 商品ID + */ + @SerializedName(value = "product_id") + private Long productId; + /** + * 商品定向分佣比例,万分位 + */ + @SerializedName(value = "commission_rate") + private Integer commissionRate; + + } + +} diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanDetail.java b/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanDetail.java new file mode 100644 index 000000000..98565fed8 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanDetail.java @@ -0,0 +1,61 @@ +package com.iformall.douyin.web.bean; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Map; + +/** + * 商品. + * + * @author thinsstar + */ +@Data +@NoArgsConstructor +public class PoiOrientedPlanDetail implements Serializable { + + private static final long serialVersionUID = -1L; + + /** + * 数据产出日期 + */ + @SerializedName(value = "date") + private String date; + + /** + * 计划带货信息详情,以计划ID为key,带货数据为value + */ + @SerializedName(value = "data") + private Map data; + + @Data + @NoArgsConstructor + public static class OrientedPlanGMV implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 带货GMV + */ + @SerializedName(value = "gmv") + private Integer gmv; + /** + * 计划关联的短视频播放量和直播间观看人数总和 + */ + @SerializedName(value = "media_cnt") + private Integer mediaCnt; + /** + * 已核销GMV + */ + @SerializedName(value = "used_gmv") + private Integer usedGmv; + + /** + * 计划信息 + */ + @SerializedName(value = "plan_info") + private PoiOrientedPlan planInfo; + + } + +} diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanPage.java b/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanPage.java new file mode 100644 index 000000000..61f81e8f0 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanPage.java @@ -0,0 +1,39 @@ +package com.iformall.douyin.web.bean; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * + * + * @author thinsstar + */ +@Data +@NoArgsConstructor +public class PoiOrientedPlanPage implements Serializable { + + private static final long serialVersionUID = -1L; + + /** + * 总页数 + */ + @SerializedName(value = "page_count") + private Integer pageCount; + + /** + * 总计划数 + */ + @SerializedName(value = "total") + private Integer total; + + /** + * 计划 + */ + @SerializedName(value = "data") + private List data; + +} diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanTalentDetail.java b/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanTalentDetail.java new file mode 100644 index 000000000..ce59c86be --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanTalentDetail.java @@ -0,0 +1,101 @@ +package com.iformall.douyin.web.bean; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + * + * + * @author thinsstar + */ +@Data +@NoArgsConstructor +public class PoiOrientedPlanTalentDetail implements Serializable { + + private static final long serialVersionUID = -1L; + + /** + * 数据产出日期 + */ + @SerializedName(value = "date") + private String date; + + /** + * 达人带货数据,以达人抖音号为key,带货数据为value + */ + @SerializedName(value = "data") + private Map data; + + @Data + @NoArgsConstructor + public static class PlanGMVDatail implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 达人所有短视频&直播间的总带货GMV + */ + @SerializedName(value = "gmv") + private Integer gmv; + /** + * 达人所有短视频&直播间的总播放量&观看量 + */ + @SerializedName(value = "play_cnt") + private Integer playCnt; + /** + * + * 达人所有短视频&直播间的总带货佣金 + */ + @SerializedName(value = "talent_commission") + private Integer talentCommission; + /** + * 达人所有短视频&直播间的已核销GMV + */ + @SerializedName(value = "used_gmv") + private Integer usedGmv; + + /** + * 每个短视频/直播间的带货数据列表 + */ + @SerializedName(value = "media_sell_info") + private List mediaSellInfo; + + } + + @Data + @NoArgsConstructor + public static class MediaSellInfo implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 该直播间/短视频的唯一标识 + */ + @SerializedName(value = "content_open_id") + private String contentOpenId; + /** + * 达人该直播间/短视频的带货GMV + */ + @SerializedName(value = "gmv") + private Integer gmv; + /** + * 达人该直播间/短视频的观看人数/播放量 + */ + @SerializedName(value = "play_cnt") + private Integer playCnt; + /** + * + * 达人该直播间/短视频的带货佣金 + */ + @SerializedName(value = "talent_commission") + private Integer talentCommission; + /** + * 达人该直播间/短视频的已核销GMV + */ + @SerializedName(value = "used_gmv") + private Integer usedGmv; + + } + +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCpsPlanStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumCpsPlanStatus.java index 7c7cfcf78..bcf07da4d 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCpsPlanStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCpsPlanStatus.java @@ -7,9 +7,9 @@ public enum EnumCpsPlanStatus { // - ING(1, "进行中/在线"), - SUSPEND(2, "暂停/下线"), - OFF(3, "关闭"), + ING(1, "进行中"), + SUSPEND(2, "暂停中/已完成"), + OFF(3, "已关闭"), ; public static EnumCpsPlanStatus getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/TtPoiTakeRateMapper.java b/mallinkService/src/main/java/com/iformall/mapper/TtPoiTakeRateMapper.java index 60eb93469..2687f84f3 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/TtPoiTakeRateMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/TtPoiTakeRateMapper.java @@ -10,7 +10,7 @@ import java.util.List; public interface TtPoiTakeRateMapper extends CommonMapper { TtPoiTakeRate selectByCoupon(@Param("tenantId")String tenantId,@Param("couponId")Long couponId, - @Param("type") Integer type,@Param("douyinId")String douyinId); + @Param("type") Integer type); List findList(TtPoiTakeRate takeRate); diff --git a/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java b/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java index d41904ea2..13db8b924 100644 --- a/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java +++ b/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java @@ -30,21 +30,26 @@ public interface TtCouponGoodsService { ResultData productFreeAudit(TenantEntity tenantInfo, Long id); + //cps 佣金 + PageInfo takeRateListAsPage(TtPoiTakeRate record, Integer pageNum, Integer pageSize); + //根据商品id查询线上通用佣金情况 ResultData poiPlanList(TenantEntity tenantInfo,Long couponId, Integer pageNum, Integer pageSize); + //根据商品id查询线上定向佣金情况 + ResultData poiOrientedPlanList(TenantEntity tenantInfo,Long couponId, Integer pageNum, Integer pageSize); - ResultData poiPlanSave(TenantEntity tenantInfo, Long couponId, Long planId, Integer contentType, Integer commissionRate); + ResultData poiPlanSave(TtPoiTakeRate record); - ResultData poiPlanUpdateStatus(TenantEntity tenantInfo, Long planId, Integer status); + ResultData saveOrientedPlan(TtPoiTakeRate record); - ResultData poiTakeRate(TenantEntity tenantInfo, Long couponId, String douyinId, Integer takeRate, Integer status); + ResultData poiPlanUpdateStatus(TtPoiTakeRate record); - PageInfo takeRateListAsPage(TtPoiTakeRate record, Integer pageNum, Integer pageSize); + ResultData poiOrientedPlanUpdateStatus(TtPoiTakeRate record); ResultData setUpAll(TenantEntity tenantInfo, Long couponId, Integer mallRate); - TtPoiTakeRate selectByCoupon(TenantEntity tenantInfo, Long couponId, Integer planType, String douyinId); + TtPoiTakeRate selectByCoupon(TenantEntity tenantInfo, Long couponId, Integer planType); ResultData getAll(TenantEntity tenantInfo, Long couponId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index 96d62641a..dee4699a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -1,6 +1,7 @@ package com.iformall.service.impl; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -11,11 +12,9 @@ import com.iformall.domain.po.*; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.*; +import com.iformall.douyin.web.api.TtWebPoiPlanService; import com.iformall.douyin.web.api.TtWebService; -import com.iformall.douyin.web.bean.PoiPlan; -import com.iformall.douyin.web.bean.PoiPlanPage; -import com.iformall.douyin.web.bean.PoiTakeRate; -import com.iformall.douyin.web.bean.Product; +import com.iformall.douyin.web.bean.*; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; @@ -430,6 +429,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } } + private void syncCouponChannelPoi(WxCoupon coupon,Long couponChannelId,String productId){ WxCoupon updC = new WxCoupon(); updC.setId(coupon.getId()); @@ -492,6 +492,14 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } + + + @Override + public PageInfo takeRateListAsPage(TtPoiTakeRate record, Integer pageNum, Integer pageSize) { + return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> ttPoiTakeRateMapper.findList(record)); + } + + @Override public ResultData poiPlanList(TenantEntity tenantInfo,Long couponId, Integer pageNum, Integer pageSize) { TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(tenantInfo.getTenantId(),couponId); @@ -509,45 +517,60 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } @Override - public ResultData poiPlanSave(TenantEntity tenantInfo, Long couponId, Long planId, Integer contentType, Integer commissionRate) { - WxCoupon wxCoupon = wxCouponMapper.selectById(couponId, tenantInfo.getTenantId()); + public ResultData poiOrientedPlanList(TenantEntity tenantInfo,Long couponId, Integer pageNum, Integer pageSize) { + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(tenantInfo.getTenantId(),couponId); + if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); + } + try { + Long spu_id = Long.parseLong(ttCouponChannelPoi.getSpuId()); + PoiOrientedPlanPage poiOrientedPlanPage = ttMerchantPoiService.getTtWebService(tenantInfo).getPoiPlanService().poiOrientedPlanList(spu_id, pageNum, pageSize); + return new ResultData(poiOrientedPlanPage); + } catch (WxErrorException e) { + e.printStackTrace(); + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); + } + } + + @Override + public ResultData poiPlanSave(TtPoiTakeRate record) { + WxCoupon wxCoupon = wxCouponMapper.selectById(record.getCouponId(), record.getTenantId()); if(wxCoupon == null){ return new ResultData(ErrorCode.COUPON_IS_EMPTY.getCode(),"未找到该券"); } - if(wxCoupon.getSalePrice() == 0 || wxCoupon.checkIsCard()){ + if(!EnumCouponType.COUPON_DOUYIN.getCode().equals(wxCoupon.getType())){ return new ResultData(ErrorCode.COUPON_ORDER_TYPE_NOT_SUPPORTED); } - TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(tenantInfo.getTenantId(),couponId); + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(wxCoupon.getTenantId(),wxCoupon.getId()); if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } try { int rateMin = getRateMin(); - if(commissionRate.intValue() < rateMin){ + if(record.getTakeRate() < rateMin){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"分佣率低于最小值("+rateMin+")"); } int rateMax = getRateMax(wxCoupon); - if(commissionRate.intValue() > rateMax){ + if(record.getTakeRate() > rateMax){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"分佣率超过最大值("+rateMax+")"); } Long spu_id = Long.parseLong(ttCouponChannelPoi.getSpuId()); PoiPlan poiPlan = new PoiPlan(); - poiPlan.setPlanId(planId); + if(record.getId() != null){ + poiPlan.setPlanId(record.getId()); + } poiPlan.setSpuId(spu_id); - poiPlan.setContentType(contentType); - poiPlan.setCommissionRate(commissionRate); + poiPlan.setContentType(record.getContentType()); + poiPlan.setCommissionRate(record.getTakeRate()); - Long returnPlanId = ttMerchantPoiService.getTtWebService(tenantInfo).getPoiPlanService().poiPlanSave(poiPlan); + Long returnPlanId = ttMerchantPoiService.getTtWebService(record).getPoiPlanService().poiPlanSave(poiPlan); if(returnPlanId != null){ - TtPoiTakeRate ttPoiTakeRate = new TtPoiTakeRate(); - ttPoiTakeRate.setId(returnPlanId); - ttPoiTakeRate.updateTenantInfo(tenantInfo); - ttPoiTakeRate.setCouponId(couponId); - ttPoiTakeRate.setType(EnumCpsPlanType.COMMON.getCode()); - ttPoiTakeRate.setContentType(contentType); - ttPoiTakeRate.setTakeRate(commissionRate); - this.saveorupdate(ttPoiTakeRate); + if(record.getId() == null){ + record.setId(returnPlanId); + } + record.setType(EnumCpsPlanType.COMMON.getCode()); + this.saveorupdate(record); return new ResultData(returnPlanId); }else{ return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"未获取到计划ID"); @@ -561,68 +584,149 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } @Override - public ResultData poiPlanUpdateStatus(TenantEntity tenantInfo, Long planId, Integer status) { - try { - boolean b = ttMerchantPoiService.getTtWebService(tenantInfo).getPoiPlanService().poiPlanUpdateStatus(planId, status); - if(b){ - TtPoiTakeRate ttPoiTakeRate = new TtPoiTakeRate(); - ttPoiTakeRate.setId(planId); - ttPoiTakeRate.updateTenantInfo(tenantInfo); - ttPoiTakeRate.setType(EnumCpsPlanType.COMMON.getCode()); - ttPoiTakeRate.setStatus(status); - this.saveorupdate(ttPoiTakeRate); - return new ResultData(); - }else{ - return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"false"); - } - } catch (WxErrorException e) { - e.printStackTrace(); - return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); - } - } - - @Override - public ResultData poiTakeRate(TenantEntity tenantInfo, Long couponId, String douyinId, Integer takeRate, Integer status) { - WxCoupon wxCoupon = wxCouponMapper.selectById(couponId, tenantInfo.getTenantId()); + public ResultData saveOrientedPlan(TtPoiTakeRate record) { + WxCoupon wxCoupon = wxCouponMapper.selectById(record.getCouponId(), record.getTenantId()); if(wxCoupon == null){ return new ResultData(ErrorCode.COUPON_IS_EMPTY.getCode(),"未找到该券"); } - if(wxCoupon.getSalePrice() == 0 || wxCoupon.checkIsCard()){ + if(!EnumCouponType.COUPON_DOUYIN.getCode().equals(wxCoupon.getType())){ return new ResultData(ErrorCode.COUPON_ORDER_TYPE_NOT_SUPPORTED); } - TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(tenantInfo.getTenantId(),couponId); + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(wxCoupon.getTenantId(),wxCoupon.getId()); if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } try { int rateMin = getRateMin(); - if(takeRate.intValue() < rateMin){ + if(record.getTakeRate() < rateMin){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"分佣率低于最小值("+rateMin+")"); } int rateMax = getRateMax(wxCoupon); - if(takeRate.intValue() > rateMax){ + if(record.getTakeRate() > rateMax){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"分佣率超过最大值("+rateMax+")"); } + TtWebService ttWebService = ttMerchantPoiService.getTtWebService(record); + Long returnPlanId = null; + PoiOrientedPlan poiPlan = new PoiOrientedPlan(); + if(record.getId() != null){ + poiPlan.setPlanId(record.getId()); + this.poiOrientedPlanDeleteTalent(ttWebService,record); + }else{ + poiPlan.setPlanName(record.getName()); + } + poiPlan.setMerchantPhone(record.getMerchantPhone()); + if(record.getDouyinIdList() != null && !record.getDouyinIdList().isEmpty()){ + poiPlan.setDouyinIdList(record.getDouyinIdList()); + } + List productList = new ArrayList<>(); + PoiOrientedPlan.ProductRate product = new PoiOrientedPlan.ProductRate(); + product.setProductId(record.getCouponId()); + product.setCommissionRate(record.getTakeRate()); + productList.add(product); + poiPlan.setProductList(productList); + + if(EnumCpsPlanContentType.LIVE.getCode().equals(record.getContentType())){ + returnPlanId = ttWebService.getPoiPlanService().poiOrientedPlanLiveSave(poiPlan); + }else if(EnumCpsPlanContentType.VIDEO.getCode().equals(record.getContentType())){ + poiPlan.setStartTime(record.getStartTime().getTime()/1000); + poiPlan.setEndTime(record.getEndTime().getTime()/1000); + if(poiPlan.getPlanId() == null){ + poiPlan.setCommissionDuration(record.getCommissionDuration()); + } + returnPlanId = ttWebService.getPoiPlanService().poiOrientedPlanLiveSave(poiPlan); + }else{ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"带货场景错误"); + } + if(returnPlanId != null){ + if(record.getId() == null){ + record.setId(returnPlanId); + }else{ + record.setName(null); + record.setCommissionDuration(null); + } + record.setType(EnumCpsPlanType.DIRECTIONAL.getCode()); + this.saveorupdate(record); + return new ResultData(returnPlanId); + }else{ + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"未获取到计划ID"); + } + + } catch (WxErrorException e) { + e.printStackTrace(); + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); + } + } + + /** + * 删除定向计划里的达人,并处理达人数据 + * 只能一个个删除,有可能删除失败 + * @param ttWebService + * @param takeRate + * @return + */ + private void poiOrientedPlanDeleteTalent(TtWebService ttWebService,TtPoiTakeRate takeRate){ + if(takeRate == null || takeRate.getId() == null + || takeRate.getDouyinIdList() == null || takeRate.getDouyinIdList().isEmpty()){ + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR); + } + TtPoiTakeRate oldTakeRate = ttPoiTakeRateMapper.selectById(takeRate.getId(), takeRate.getTenantId()); + if(oldTakeRate == null || StringUtils.isBlank(oldTakeRate.getDouyinId())){ + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR); + } + List oldDouyinIdList = JSONObject.parseArray(oldTakeRate.getDouyinId(), String.class); + List newDouyinIdList = takeRate.getDouyinIdList(); + + List addDouyinIdList = new ArrayList<>(); + for (String douyinId:newDouyinIdList) { + if(!oldDouyinIdList.contains(douyinId)){ + addDouyinIdList.add(douyinId); + } + } + List delDouyinIdList = new ArrayList<>(); + for (String douyinId:oldDouyinIdList) { + if(!newDouyinIdList.contains(douyinId)){ + try { + boolean b = ttWebService.getPoiPlanService().poiOrientedPlanDeleteTalent(oldTakeRate.getId(), douyinId); + delDouyinIdList.add(douyinId); + } catch (WxErrorException e) { + e.printStackTrace(); + logger.error("定向计划删除达人失败"+oldTakeRate.getId()+"del--"+douyinId); + } + } + } + if(!delDouyinIdList.isEmpty()){ + oldDouyinIdList.removeAll(delDouyinIdList); + } + TtPoiTakeRate updTakeRate = new TtPoiTakeRate(); + updTakeRate.updateTenantInfo(oldTakeRate); + updTakeRate.setId(oldTakeRate.getId()); + updTakeRate.setDouyinId(JSON.toJSONString(oldDouyinIdList)); + ttPoiTakeRateMapper.updateById(updTakeRate); + + if(!addDouyinIdList.isEmpty()){ + oldDouyinIdList.addAll(addDouyinIdList); + takeRate.setDouyinId(JSON.toJSONString(oldDouyinIdList)); + takeRate.setDouyinIdList(addDouyinIdList); + }else{ + takeRate.setDouyinIdList(null); + } + } - PoiTakeRate poiTakeRate = new PoiTakeRate(); - poiTakeRate.setSpuExtId(couponId.toString()); - poiTakeRate.setDouyinId(douyinId); - poiTakeRate.setTakeRate(takeRate); - poiTakeRate.setStatus(status); - - String spu_id = ttMerchantPoiService.getTtWebService(tenantInfo).getPoiPlanService().poiTakeRate(poiTakeRate); - if(StringUtils.isNotBlank(spu_id) && spu_id.equals(ttCouponChannelPoi.getSpuId())){ - TtPoiTakeRate ttPoiTakeRate = new TtPoiTakeRate(); - ttPoiTakeRate.updateTenantInfo(tenantInfo); - ttPoiTakeRate.setCouponId(couponId); - ttPoiTakeRate.setType(EnumCpsPlanType.DIRECTIONAL.getCode()); - ttPoiTakeRate.setDouyinId(douyinId); - ttPoiTakeRate.setTakeRate(takeRate); - ttPoiTakeRate.setStatus(status); - this.saveorupdate(ttPoiTakeRate); + @Override + public ResultData poiPlanUpdateStatus(TtPoiTakeRate record) { + try { + boolean b = ttMerchantPoiService.getTtWebService(record).getPoiPlanService().poiPlanUpdateStatus(record.getId(), record.getStatus()); + if(b){ + TtPoiTakeRate updTakeRate = new TtPoiTakeRate(); + updTakeRate.setId(record.getId()); + updTakeRate.updateTenantInfo(record); + updTakeRate.setType(EnumCpsPlanType.COMMON.getCode()); + updTakeRate.setStatus(record.getStatus()); + updTakeRate.setUpdateDate(new Date()); + ttPoiTakeRateMapper.updateById(updTakeRate); return new ResultData(); }else{ - return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"设置达人分佣错误"); + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"false"); } } catch (WxErrorException e) { e.printStackTrace(); @@ -631,8 +735,24 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } @Override - public PageInfo takeRateListAsPage(TtPoiTakeRate record, Integer pageNum, Integer pageSize) { - return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> ttPoiTakeRateMapper.findList(record)); + public ResultData poiOrientedPlanUpdateStatus(TtPoiTakeRate record) { + try { + boolean b = ttMerchantPoiService.getTtWebService(record).getPoiPlanService().poiOrientedPlanUpdateStatus(record.getId(), record.getStatus()); + if(b){ + TtPoiTakeRate updTakeRate = new TtPoiTakeRate(); + updTakeRate.setId(record.getId()); + updTakeRate.updateTenantInfo(record); + updTakeRate.setStatus(record.getStatus()); + updTakeRate.setUpdateDate(new Date()); + ttPoiTakeRateMapper.updateById(updTakeRate); + return new ResultData(); + }else{ + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"false"); + } + } catch (WxErrorException e) { + e.printStackTrace(); + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); + } } @Override @@ -662,9 +782,8 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } @Override - public TtPoiTakeRate selectByCoupon(TenantEntity tenantInfo, Long couponId,Integer planType, String douyinId) { - return ttPoiTakeRateMapper.selectByCoupon(tenantInfo.getTenantId(), couponId, - planType,douyinId); + public TtPoiTakeRate selectByCoupon(TenantEntity tenantInfo, Long couponId,Integer planType) { + return ttPoiTakeRateMapper.selectByCoupon(tenantInfo.getTenantId(), couponId, planType); } /** @@ -683,7 +802,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { return new ResultData(ErrorCode.COUPON_ORDER_TYPE_NOT_SUPPORTED); } - TtPoiTakeRate ttPoiTakeRate = ttPoiTakeRateMapper.selectByCoupon(tenantInfo.getTenantId(), couponId,EnumCpsPlanType.ALL.getCode(),null); + TtPoiTakeRate ttPoiTakeRate = ttPoiTakeRateMapper.selectByCoupon(tenantInfo.getTenantId(), couponId,EnumCpsPlanType.ALL.getCode()); Map map = new HashMap<>(); if(ttPoiTakeRate != null){ map.put("mallRate",ttPoiTakeRate.getTakeRate()); @@ -752,7 +871,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { if(wxCoupon.getSalePrice() == 0 || wxCoupon.checkIsCard()){ throw new MallinkException(ErrorCode.COUPON_ORDER_TYPE_NOT_SUPPORTED); } - TtPoiTakeRate ttPoiTakeRate = ttPoiTakeRateMapper.selectByCoupon(wxCoupon.getTenantId(), wxCoupon.getId(),EnumCpsPlanType.ALL.getCode(),null); + TtPoiTakeRate ttPoiTakeRate = ttPoiTakeRateMapper.selectByCoupon(wxCoupon.getTenantId(), wxCoupon.getId(),EnumCpsPlanType.ALL.getCode()); Integer takeRate = null; if(ttPoiTakeRate != null){ takeRate = ttPoiTakeRate.getTakeRate(); @@ -829,17 +948,13 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { private int saveorupdate(TtPoiTakeRate takeRate){ TtPoiTakeRate ttPoiTakeRate = null; - if(EnumCpsPlanType.DIRECTIONAL.getCode().equals(takeRate.getType())){ - ttPoiTakeRate = ttPoiTakeRateMapper.selectByCoupon(takeRate.getTenantId(), takeRate.getCouponId(), - takeRate.getType(),takeRate.getDouyinId()); - }else if(EnumCpsPlanType.COMMON.getCode().equals(takeRate.getType())){ + if(EnumCpsPlanType.COMMON.getCode().equals(takeRate.getType()) || EnumCpsPlanType.DIRECTIONAL.getCode().equals(takeRate.getType())){ ttPoiTakeRate = ttPoiTakeRateMapper.selectById(takeRate.getId(), takeRate.getTenantId()); if(ttPoiTakeRate == null){ takeRate.setStatus(EnumCpsPlanStatus.ING.getCode()); } }else if(EnumCpsPlanType.ALL.getCode().equals(takeRate.getType())){ - ttPoiTakeRate = ttPoiTakeRateMapper.selectByCoupon(takeRate.getTenantId(), takeRate.getCouponId(), - takeRate.getType(),null); + ttPoiTakeRate = ttPoiTakeRateMapper.selectByCoupon(takeRate.getTenantId(), takeRate.getCouponId(), takeRate.getType()); if(ttPoiTakeRate == null){ takeRate.setStatus(EnumCpsPlanStatus.ING.getCode()); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java index db34ebfb0..0c2172123 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -169,7 +169,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ return 0; } Long couponId = wxCouponChannelMapper.findCouponIdById(o.getCouponChannelId(), o.getTenantId()); - TtPoiTakeRate ttPoiTakeRate = ttPoiTakeRateMapper.selectByCoupon(tenantEntity.getTenantId(), couponId, EnumCpsPlanType.ALL.getCode(), null); + TtPoiTakeRate ttPoiTakeRate = ttPoiTakeRateMapper.selectByCoupon(tenantEntity.getTenantId(), couponId, EnumCpsPlanType.ALL.getCode()); if(ttPoiTakeRate != null){ return ttPoiTakeRate.getTakeRate(); }else{ diff --git a/mallinkService/src/main/resources/mapper/TtPoiTakeRateMapper.xml b/mallinkService/src/main/resources/mapper/TtPoiTakeRateMapper.xml index 41e7980a5..462909682 100644 --- a/mallinkService/src/main/resources/mapper/TtPoiTakeRateMapper.xml +++ b/mallinkService/src/main/resources/mapper/TtPoiTakeRateMapper.xml @@ -8,21 +8,24 @@ + + + `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`, - `type`,`name`,`content_type`, - `douyin_id`,`take_rate`,`status`, - `start_time`,`end_time`,`create_date`,`update_date` + `type`,`name`,`merchant_phone`,`content_type`, + `douyin_id`,`douyin_id_status`,`take_rate`,`status`, + `start_time`,`end_time`,`commission_duration`,`create_date`,`update_date` @@ -78,9 +81,6 @@ where tenant_id = #{tenantId} and `coupon_id` = #{couponId} and `type` = #{type} - - and `douyin_id` = #{douyinId} -