Просмотр исходного кода

//支付

release_toaliyun_real
xhxu 3 лет назад
Родитель
Сommit
d4660575e1
15 измененных файлов: 1616 добавлений и 164 удалений
  1. +108
    -69
      mallinkAdmin/src/main/java/com/iformall/controller/basic/TtPoiPlanController.java
  2. +803
    -0
      mallinkAdmin/src/main/resources/db/migration/V2022101700001__add_tt_poi_take_rate.sql
  3. +13
    -0
      mallinkService/src/main/java/com/iformall/domain/po/TtPoiTakeRate.java
  4. +73
    -0
      mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebPoiPlanService.java
  5. +75
    -0
      mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebPoiPlanServiceImpl.java
  6. +128
    -0
      mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlan.java
  7. +61
    -0
      mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanDetail.java
  8. +39
    -0
      mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanPage.java
  9. +101
    -0
      mallinkService/src/main/java/com/iformall/douyin/web/bean/PoiOrientedPlanTalentDetail.java
  10. +3
    -3
      mallinkService/src/main/java/com/iformall/enums/EnumCpsPlanStatus.java
  11. +1
    -1
      mallinkService/src/main/java/com/iformall/mapper/TtPoiTakeRateMapper.java
  12. +10
    -5
      mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java
  13. +194
    -79
      mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java
  14. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java
  15. +6
    -6
      mallinkService/src/main/resources/mapper/TtPoiTakeRateMapper.xml

+ 108
- 69
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<TtPoiTakeRate> 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<String, Object> 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<String, Object> 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<TtPoiTakeRate> 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<String, Object> 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 = "获取")


+ 803
- 0
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;

+ 13
- 0
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<String> douyinIdList;

}

+ 73
- 0
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<Long> plan_id_list) throws WxErrorException ;

/**
* 查询定向佣金计划带货汇总数据
*/
PoiOrientedPlanDetail poiOrientedPlanDetail(List<Long> plan_id_list) throws WxErrorException ;

/**
* 通用佣金计划查询带货达人列表
*/
@@ -87,6 +155,11 @@ public interface TtWebPoiPlanService {
*/
PoiPlanTalentDetail poiPlanTalentDetail(Long plan_id,List<String> douyin_id_list) throws WxErrorException ;

/**
* 查询达人的定向佣金计划带货数据
*/
PoiOrientedPlanTalentDetail poiOrientedPlanTalentDetail(Long plan_id,List<String> douyin_id_list) throws WxErrorException ;

/**
* 通用佣金计划查询达人带货详情
*


+ 75
- 0
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<String,Object> map = new HashMap<>();
List<Long> 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<String,Object> map = new HashMap<>();
List<Map<String,Object>> updateList = new ArrayList<>();
Map<String,Object> 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<String,Object> 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<Long> plan_id_list) throws WxErrorException {
final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp());
Map<String,Object> 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<String> douyin_id_list) throws WxErrorException {
final TtWebPostRequestExecutor executor = new TtWebPostRequestExecutor(this.service.getRequestHttp());
Map<String,Object> 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());


+ 128
- 0
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<String> douyinIdList;

/**
* 达人履约状态:
* 1:进行中
* 2:已完成
* 3:已取消
*/
@SerializedName(value = "talent_status_map")
private Map<String,Integer> talentStatusMap;

/**
* 计划指定的商品配置列表
*/
@SerializedName(value = "product_list")
private List<ProductRate> 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;

}

}

+ 61
- 0
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<String,OrientedPlanGMV> 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;

}

}

+ 39
- 0
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<PoiOrientedPlan> data;

}

+ 101
- 0
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<String,PlanGMVDatail> 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> 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;

}

}

+ 3
- 3
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) {


+ 1
- 1
mallinkService/src/main/java/com/iformall/mapper/TtPoiTakeRateMapper.java Просмотреть файл

@@ -10,7 +10,7 @@ import java.util.List;
public interface TtPoiTakeRateMapper extends CommonMapper<TtPoiTakeRate, Long> {

TtPoiTakeRate selectByCoupon(@Param("tenantId")String tenantId,@Param("couponId")Long couponId,
@Param("type") Integer type,@Param("douyinId")String douyinId);
@Param("type") Integer type);
List<TtPoiTakeRate> findList(TtPoiTakeRate takeRate);



+ 10
- 5
mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java Просмотреть файл

@@ -30,21 +30,26 @@ public interface TtCouponGoodsService {

ResultData productFreeAudit(TenantEntity tenantInfo, Long id);


//cps 佣金
PageInfo<TtPoiTakeRate> 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<TtPoiTakeRate> 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);



+ 194
- 79
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<TtPoiTakeRate> 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<PoiOrientedPlan.ProductRate> 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<String> oldDouyinIdList = JSONObject.parseArray(oldTakeRate.getDouyinId(), String.class);
List<String> newDouyinIdList = takeRate.getDouyinIdList();

List<String> addDouyinIdList = new ArrayList<>();
for (String douyinId:newDouyinIdList) {
if(!oldDouyinIdList.contains(douyinId)){
addDouyinIdList.add(douyinId);
}
}
List<String> 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<TtPoiTakeRate> 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<String,Object> 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());
}


+ 1
- 1
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{


+ 6
- 6
mallinkService/src/main/resources/mapper/TtPoiTakeRateMapper.xml Просмотреть файл

@@ -8,21 +8,24 @@
<result column="coupon_id" jdbcType="BIGINT" property="couponId"/>
<result column="type" jdbcType="INTEGER" property="type"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
<result column="merchant_phone" jdbcType="VARCHAR" property="merchantPhone"/>
<result column="content_type" jdbcType="INTEGER" property="contentType"/>
<result column="douyin_id" jdbcType="VARCHAR" property="douyinId" />
<result column="douyin_id_status" jdbcType="VARCHAR" property="douyinIdStatus" />
<result column="take_rate" jdbcType="INTEGER" property="takeRate"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="start_time" jdbcType="TIMESTAMP" property="startTime"/>
<result column="end_time" jdbcType="TIMESTAMP" property="endTime"/>
<result column="commission_duration" jdbcType="BIGINT" property="commissionDuration"/>
<result column="create_date" jdbcType="TIMESTAMP" property="createDate"/>
<result column="update_date" jdbcType="TIMESTAMP" property="updateDate"/>
</resultMap>

<sql id="allColumns">
`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`
</sql>

<sql id="dynamicWhereConditions">
@@ -78,9 +81,6 @@
where tenant_id = #{tenantId}
and `coupon_id` = #{couponId}
and `type` = #{type}
<if test=" null != douyinId ">
and `douyin_id` = #{douyinId}
</if>
</select>

<select id="findList" parameterType="com.iformall.domain.po.TtPoiTakeRate" resultMap="BaseResultMap">


Загрузка…
Отмена
Сохранить