package cn.lili.controller.distribution; import cn.lili.common.enums.ResultUtil; import cn.lili.common.security.OperationalJudgment; import cn.lili.common.security.context.UserContext; import cn.lili.common.vo.ResultMessage; import cn.lili.modules.distribution.entity.dos.DistributionGoods; import cn.lili.modules.distribution.entity.dos.DistributionSelectedGoods; import cn.lili.modules.distribution.entity.dto.DistributionGoodsSearchParams; import cn.lili.modules.distribution.entity.vos.DistributionGoodsVO; import cn.lili.modules.distribution.service.DistributionGoodsService; import cn.lili.modules.distribution.service.DistributionSelectedGoodsService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotNull; import java.util.Objects; /** * 店铺端,分销商品接口 * * @author Bulbasaur * @since 2020/11/16 10:06 下午 */ @RestController @Api(tags = "店铺端,分销商品接口") @RequestMapping("/store/distribution/goods") public class DistributionGoodsStoreController { /** * 分销商品 */ @Autowired private DistributionGoodsService distributionGoodsService; /** * 已选择分销商品 */ @Autowired private DistributionSelectedGoodsService distributionSelectedGoodsService; @ApiOperation(value = "获取分销商商品列表") @GetMapping public ResultMessage> distributionGoods(DistributionGoodsSearchParams distributionGoodsSearchParams) { return ResultUtil.data(distributionGoodsService.goodsPage(distributionGoodsSearchParams)); } @ApiOperation(value = "选择商品参与分销") @ApiImplicitParam(name = "skuId", value = "规格ID", required = true, dataType = "String", paramType = "path") @PutMapping(value = "/checked/{skuId}") public ResultMessage distributionCheckGoods(@NotNull(message = "规格ID不能为空") @PathVariable String skuId, @NotNull(message = "佣金金额不能为空") @RequestParam Double commission) { String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId(); return ResultUtil.data(distributionGoodsService.checked(skuId, commission, storeId)); } @ApiOperation(value = "取消分销商品") @ApiImplicitParam(name = "id", value = "分销商商品ID", required = true, paramType = "path") @DeleteMapping(value = "/cancel/{id}") public ResultMessage cancel(@NotNull @PathVariable String id) { OperationalJudgment.judgment(distributionGoodsService.getById(id)); //清除分销商已选择分销商品 distributionSelectedGoodsService.remove(new QueryWrapper().eq("distribution_goods_id", id)); //清除分销商品 distributionGoodsService.removeById(id); return ResultUtil.success(); } }