package cn.iocoder.yudao.module.trade.controller.admin.delivery; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import cn.iocoder.yudao.module.trade.controller.admin.base.system.user.UserSimpleBaseVO; import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.*; import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert; import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; import cn.iocoder.yudao.module.trade.service.delivery.DeliveryPickUpStoreService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Collection; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 自提门店") @RestController @RequestMapping("/trade/delivery/pick-up-store") @Validated public class DeliveryPickUpStoreController { @Resource private DeliveryPickUpStoreService deliveryPickUpStoreService; @Resource private AdminUserApi adminUserApi; @PostMapping("/create") @Operation(summary = "创建自提门店") @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:create')") public CommonResult createDeliveryPickUpStore(@Valid @RequestBody DeliveryPickUpStoreCreateReqVO createReqVO) { return success(deliveryPickUpStoreService.createDeliveryPickUpStore(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新自提门店") @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:update')") public CommonResult updateDeliveryPickUpStore(@Valid @RequestBody DeliveryPickUpStoreUpdateReqVO updateReqVO) { deliveryPickUpStoreService.updateDeliveryPickUpStore(updateReqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "删除自提门店") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:delete')") public CommonResult deleteDeliveryPickUpStore(@RequestParam("id") Long id) { deliveryPickUpStoreService.deleteDeliveryPickUpStore(id); return success(true); } @GetMapping("/get") @Operation(summary = "获得自提门店") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:query')") public CommonResult getDeliveryPickUpStore(@RequestParam("id") Long id) { DeliveryPickUpStoreDO deliveryPickUpStore = deliveryPickUpStoreService.getDeliveryPickUpStore(id); if (deliveryPickUpStore == null) { return success(null); } List verifyUsers = CollUtil.isNotEmpty(deliveryPickUpStore.getVerifyUserIds()) ? adminUserApi.getUserList(deliveryPickUpStore.getVerifyUserIds()) : null; return success(BeanUtils.toBean(deliveryPickUpStore, DeliveryPickUpStoreRespVO.class) .setVerifyUsers(BeanUtils.toBean(verifyUsers, UserSimpleBaseVO.class))); } @GetMapping("/simple-list") @Operation(summary = "获得自提门店精简信息列表") public CommonResult> getSimpleDeliveryPickUpStoreList() { List list = deliveryPickUpStoreService.getDeliveryPickUpStoreListByStatus( CommonStatusEnum.ENABLE.getStatus()); return success(DeliveryPickUpStoreConvert.INSTANCE.convertList1(list)); } @GetMapping("/list") @Operation(summary = "获得自提门店列表") @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:query')") public CommonResult> getDeliveryPickUpStoreList(@RequestParam("ids") Collection ids) { List list = deliveryPickUpStoreService.getDeliveryPickUpStoreList(ids); return success(DeliveryPickUpStoreConvert.INSTANCE.convertList(list)); } @GetMapping("/page") @Operation(summary = "获得自提门店分页") @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:query')") public CommonResult> getDeliveryPickUpStorePage(@Valid DeliveryPickUpStorePageReqVO pageVO) { PageResult pageResult = deliveryPickUpStoreService.getDeliveryPickUpStorePage(pageVO); return success(DeliveryPickUpStoreConvert.INSTANCE.convertPage(pageResult)); } @PostMapping("/bind") @Operation(summary = "绑定自提店员") @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:create')") public CommonResult bindDeliveryPickUpStore(@Valid @RequestBody DeliveryPickUpBindReqVO bindReqVO) { deliveryPickUpStoreService.bindDeliveryPickUpStore(bindReqVO); return success(true); } }