package cn.lili.controller.store; import cn.lili.common.aop.annotation.DemoSite; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.ResultMessage; import cn.lili.modules.store.entity.dos.Store; import cn.lili.modules.store.entity.dto.AdminStoreApplyDTO; import cn.lili.modules.store.entity.dto.StoreEditDTO; import cn.lili.modules.store.entity.vos.StoreDetailVO; import cn.lili.modules.store.entity.vos.StoreManagementCategoryVO; import cn.lili.modules.store.entity.vos.StoreSearchParams; import cn.lili.modules.store.entity.vos.StoreVO; import cn.lili.modules.store.service.StoreDetailService; import cn.lili.modules.store.service.StoreService; 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.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; /** * 管理端,店铺管理接口 * * @author Bulbasaur * @since 2020/12/6 16:09 */ @Api(tags = "管理端,店铺管理接口") @RestController @RequestMapping("/manager/store/store") public class StoreManagerController { /** * 店铺 */ @Autowired private StoreService storeService; /** * 店铺详情 */ @Autowired private StoreDetailService storeDetailService; @ApiOperation(value = "获取店铺分页列表") @GetMapping("/all") public ResultMessage> getAll() { return ResultUtil.data(storeService.list(new QueryWrapper().eq("store_disable", "OPEN"))); } @ApiOperation(value = "获取店铺分页列表") @GetMapping public ResultMessage> getByPage(StoreSearchParams entity, PageVO page) { return ResultUtil.data(storeService.findByConditionPage(entity, page)); } @ApiOperation(value = "获取店铺详情") @ApiImplicitParam(name = "storeId", value = "店铺ID", required = true, paramType = "path", dataType = "String") @GetMapping(value = "/get/detail/{storeId}") public ResultMessage detail(@PathVariable String storeId) { // todo 对于刚提交审核的信息需要等待缓存失效后才能操作,否则缓存信息还在 return ResultUtil.data(storeDetailService.getStoreDetailVO(storeId)); } @ApiOperation(value = "添加店铺") @PostMapping(value = "/add") public ResultMessage add(@Valid AdminStoreApplyDTO adminStoreApplyDTO) { return ResultUtil.data(storeService.add(adminStoreApplyDTO)); } @ApiOperation(value = "编辑店铺") @ApiImplicitParam(name = "storeId", value = "店铺ID", required = true, paramType = "path", dataType = "String") @PutMapping(value = "/edit/{id}") public ResultMessage edit(@PathVariable String id, @Valid StoreEditDTO storeEditDTO) { storeEditDTO.setStoreId(id); return ResultUtil.data(storeService.edit(storeEditDTO)); } @ApiOperation(value = "审核店铺申请") @ApiImplicitParams({ @ApiImplicitParam(name = "passed", value = "是否通过审核 0 通过 1 拒绝 编辑操作则不需传递", paramType = "query", dataType = "int"), @ApiImplicitParam(name = "id", value = "店铺id", required = true, paramType = "path", dataType = "String") }) @PutMapping(value = "/audit/{id}/{passed}") public ResultMessage audit(@PathVariable String id, @PathVariable Integer passed) { storeService.audit(id, passed); return ResultUtil.success(); } @DemoSite @ApiOperation(value = "关闭店铺") @ApiImplicitParam(name = "id", value = "店铺id", required = true, dataType = "String", paramType = "path") @PutMapping(value = "/disable/{id}") public ResultMessage disable(@PathVariable String id) { storeService.disable(id); return ResultUtil.success(); } @ApiOperation(value = "开启店铺") @ApiImplicitParam(name = "id", value = "店铺id", required = true, dataType = "String", paramType = "path") @PutMapping(value = "/enable/{id}") public ResultMessage enable(@PathVariable String id) { storeService.enable(id); return ResultUtil.success(); } @ApiOperation(value = "查询一级分类列表") @ApiImplicitParam(name = "storeId", value = "店铺id", required = true, dataType = "String", paramType = "path") @GetMapping(value = "/managementCategory/{storeId}") public ResultMessage> firstCategory(@PathVariable String storeId) { return ResultUtil.data(this.storeDetailService.goodsManagementCategory(storeId)); } @ApiOperation(value = "根据会员id查询店铺信息") @GetMapping("/{memberId}/member") public ResultMessage getByMemberId(@Valid @PathVariable String memberId) { List list = storeService.list(new QueryWrapper().eq("member_id", memberId)); if (list.size() > 0) { return ResultUtil.data(list.get(0)); } return ResultUtil.data(null); } @ApiOperation(value = "将所有店铺导入店员表") @PostMapping("store/to/clerk") public ResultMessage storeToClerk(){ this.storeService.storeToClerk(); return ResultUtil.success(); } }