B2C功能提交

This commit is contained in:
chc
2024-10-21 22:34:23 +08:00
parent 9d3ed4a4a7
commit dfb98c107e
13 changed files with 351 additions and 92 deletions

View File

@@ -0,0 +1,65 @@
package cn.lili.controller.goods;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.OperationalJudgment;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.goods.entity.dos.DraftGoods;
import cn.lili.modules.goods.entity.dto.DraftGoodsDTO;
import cn.lili.modules.goods.entity.dto.DraftGoodsSearchParams;
import cn.lili.modules.goods.entity.vos.DraftGoodsVO;
import cn.lili.modules.goods.service.DraftGoodsService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Objects;
/**
* 管理端,草稿商品接口
*
* @author paulG
* @since 2021/2/20 2:26 下午
*/
@RestController
@Api(tags = "管理端,草稿商品接口")
@RequestMapping("/manager/goods/draftGoods")
public class DraftGoodsManagerController {
@Autowired
private DraftGoodsService draftGoodsService;
@ApiOperation(value = "分页获取草稿商品列表")
@GetMapping(value = "/page")
public ResultMessage<IPage<DraftGoods>> getDraftGoodsByPage(DraftGoodsSearchParams searchParams) {
searchParams.setStoreId("-1");
return ResultUtil.data(draftGoodsService.getDraftGoods(searchParams));
}
@ApiOperation(value = "获取草稿商品")
@GetMapping(value = "/{id}")
public ResultMessage<DraftGoodsVO> getDraftGoods(@PathVariable String id) {
DraftGoodsVO draftGoods = OperationalJudgment.judgment(draftGoodsService.getDraftGoods(id));
return ResultUtil.data(draftGoods);
}
@ApiOperation(value = "保存草稿商品")
@PostMapping(value = "/save", consumes = "application/json", produces = "application/json")
public ResultMessage<String> saveDraftGoods(@RequestBody DraftGoodsDTO draftGoodsVO) {
draftGoodsVO.setStoreId("-1");
draftGoodsService.saveGoodsDraft(draftGoodsVO);
return ResultUtil.success();
}
@ApiOperation(value = "删除草稿商品")
@DeleteMapping(value = "/{id}")
public ResultMessage<String> deleteDraftGoods(@PathVariable String id) {
draftGoodsService.deleteGoodsDraft(id);
return ResultUtil.success();
}
}

View File

@@ -5,16 +5,19 @@ import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.goods.entity.dos.Goods;
import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.dto.GoodsOperationDTO;
import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
import cn.lili.modules.goods.entity.dto.GoodsSkuStockDTO;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
import cn.lili.modules.goods.entity.vos.GoodsVO;
import cn.lili.modules.goods.service.GoodsService;
import cn.lili.modules.goods.service.GoodsSkuService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -27,6 +30,8 @@ import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 管理端,商品管理接口
@@ -135,4 +140,38 @@ public class GoodsManagerController {
return ResultUtil.success();
}
@ApiOperation(value = "修改商品库存")
@PutMapping(value = "/update/stocks", consumes = "application/json")
public ResultMessage<Object> updateStocks(@RequestBody List<GoodsSkuStockDTO> updateStockList) {
// 获取商品skuId集合
List<String> goodsSkuIds = updateStockList.stream().map(GoodsSkuStockDTO::getSkuId).collect(Collectors.toList());
// 根据skuId集合查询商品信息
List<GoodsSku> goodsSkuList = goodsSkuService.list(new LambdaQueryWrapper<GoodsSku>().in(GoodsSku::getId, goodsSkuIds));
// 过滤不符合当前店铺的商品
List<String> filterGoodsSkuIds = goodsSkuList.stream().map(GoodsSku::getId).collect(Collectors.toList());
List<GoodsSkuStockDTO> collect = updateStockList.stream().filter(i -> filterGoodsSkuIds.contains(i.getSkuId())).collect(Collectors.toList());
goodsSkuService.updateStocks(collect);
return ResultUtil.success();
}
@DemoSite
@ApiOperation(value = "删除商品")
@PutMapping(value = "/delete")
@ApiImplicitParam(name = "goodsId", value = "商品ID", required = true, paramType = "query", allowMultiple = true)
public ResultMessage<Object> deleteGoods(@RequestParam List<String> goodsId) {
goodsService.deleteGoods(goodsId);
return ResultUtil.success();
}
@ApiOperation(value = "设置商品运费模板")
@PutMapping(value = "/freight")
@ApiImplicitParams({
@ApiImplicitParam(name = "goodsId", value = "商品ID", required = true, paramType = "query", allowMultiple = true),
@ApiImplicitParam(name = "templateId", value = "运费模板ID", required = true, paramType = "query")
})
public ResultMessage<Object> freight(@RequestParam List<String> goodsId, @RequestParam String templateId) {
goodsService.freight(goodsId, templateId);
return ResultUtil.success();
}
}

View File

@@ -99,4 +99,19 @@ public class AfterSaleManagerController {
public ResultMessage<StoreAfterSaleAddressDTO> getStoreAfterSaleAddress(@NotNull(message = "售后单号") @PathVariable("sn") String sn) {
return ResultUtil.data(afterSaleService.getStoreAfterSaleAddressDTO(sn));
}
@PreventDuplicateSubmissions
@ApiOperation(value = "卖家确认收货")
@ApiImplicitParams({
@ApiImplicitParam(name = "afterSaleSn", value = "售后sn", required = true, paramType = "path"),
@ApiImplicitParam(name = "serviceStatus", value = "PASS审核通过REFUSE审核未通过", required = true, paramType = "query"),
@ApiImplicitParam(name = "remark", value = "备注", paramType = "query")
})
@PutMapping(value = "/confirm/{afterSaleSn}")
public ResultMessage<AfterSale> confirm(@NotNull(message = "请选择售后单") @PathVariable String afterSaleSn,
@NotNull(message = "请审核") String serviceStatus,
String remark) {
return ResultUtil.data(afterSaleService.storeConfirm(afterSaleSn, serviceStatus, remark));
}
}

View File

@@ -1,9 +1,9 @@
package cn.lili.controller.other;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.system.entity.dos.Logistics;
import cn.lili.modules.system.entity.dto.LogisticsSearchParams;
import cn.lili.modules.system.service.LogisticsService;
import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -37,8 +37,8 @@ public class LogisticsManagerController {
@ApiOperation(value = "分页获取物流公司")
@GetMapping(value = "/getByPage")
public ResultMessage<IPage<Logistics>> getByPage(PageVO page) {
return ResultUtil.data(logisticsService.page(PageUtil.initPage(page)));
public ResultMessage<IPage<Logistics>> getByPage(LogisticsSearchParams page) {
return ResultUtil.data(logisticsService.page(PageUtil.initPage(page),page.queryWrapper()));
}
@ApiOperation(value = "编辑物流公司")

View File

@@ -73,6 +73,19 @@ public class FullDiscountManagerController {
return ResultUtil.data(fullDiscountVO);
}
@ApiOperation(value = "修改满优惠活动")
@PutMapping(consumes = "application/json", produces = "application/json")
public ResultMessage<String> editFullDiscount(@RequestBody FullDiscountVO fullDiscountVO) {
OperationalJudgment.judgment(fullDiscountService.getFullDiscount(fullDiscountVO.getId()));
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
fullDiscountVO.setStoreId(currentUser.getStoreId());
fullDiscountVO.setStoreName(currentUser.getStoreName());
if (!fullDiscountService.updatePromotions(fullDiscountVO)) {
return ResultUtil.error(ResultCode.PINTUAN_EDIT_ERROR);
}
return ResultUtil.success(ResultCode.FULL_DISCOUNT_EDIT_SUCCESS);
}
@ApiOperation(value = "删除满优惠活动")
@DeleteMapping("/{id}")
public ResultMessage<String> deleteFullDiscount(@PathVariable String id) {