package com.doumee.api.business; import com.doumee.api.BaseController; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.DouyinProduct; import com.doumee.service.business.DouyinProductService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * 抖音商品(团购) * * @author rk * @date 2026/06/22 */ @Api(tags = "抖音商品") @RestController @RequestMapping("/business/douyinProduct") public class DouyinProductController extends BaseController { @Autowired private DouyinProductService douyinProductService; @PreventRepeat @ApiOperation("从抖音同步商品(全量)") @PostMapping("/sync") @RequiresPermissions("business:douyinProduct:sync") public ApiResponse sync() { return ApiResponse.success(douyinProductService.syncFromDouyin()); } @ApiOperation("分页查询") @PostMapping("/page") @RequiresPermissions("business:douyinProduct:query") public ApiResponse> findPage(@RequestBody PageWrap pageWrap) { return ApiResponse.success(douyinProductService.findPage(pageWrap)); } @ApiOperation("根据ID查询(含SKU)") @GetMapping("/{id}") @RequiresPermissions("business:douyinProduct:query") public ApiResponse findById(@PathVariable String id) { return ApiResponse.success(douyinProductService.findById(id)); } @PreventRepeat @ApiOperation("绑定/解绑本地套餐(outId 关联 discount.id;discountId 为空即解绑)") @PostMapping("/bindDiscount") public ApiResponse bindDiscount(@RequestParam String id, @RequestParam(required = false) String discountId) { douyinProductService.bindDiscount(id, discountId); return ApiResponse.success(null); } }