New file |
| | |
| | | package com.oying.modules.pc.store.rest; |
| | | |
| | | import cn.hutool.core.collection.ListUtil; |
| | | import com.oying.utils.R; |
| | | import com.oying.modules.pc.store.domain.Store; |
| | | import com.oying.modules.pc.store.domain.dto.StoreCreateRequest; |
| | | import com.oying.modules.pc.store.domain.dto.StoreFieldUpdateRequest; |
| | | import com.oying.modules.pc.store.domain.dto.StoreQueryCriteria; |
| | | import com.oying.modules.pc.store.service.StoreCreateService; |
| | | import com.oying.modules.pc.store.service.StoreService; |
| | | import com.oying.modules.pc.store.view.StoreMerchantView; |
| | | import com.oying.modules.pc.store.view.StoreSimpleView; |
| | | import com.oying.utils.SecurityUtils; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.http.HttpStatus; |
| | | import org.springframework.http.ResponseEntity; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 店铺 |
| | | * |
| | | * @author lzp |
| | | * @date 2025-04-22 |
| | | */ |
| | | @Api(tags = "店铺(商户端)") |
| | | @RestController |
| | | @RequiredArgsConstructor |
| | | @RequestMapping("/api/pc/merchant/store") |
| | | public class StoreMerchantController { |
| | | |
| | | private final StoreService storeService; |
| | | private final StoreCreateService storeCreateService; |
| | | |
| | | @GetMapping(value = "/list") |
| | | @ApiOperation("查询所有店铺") |
| | | //@PreAuthorize("@el.check('merchant:store:list')") |
| | | public ResponseEntity<?> getList() { |
| | | StoreQueryCriteria criteria = new StoreQueryCriteria(); |
| | | criteria.setMerchantId(SecurityUtils.getCurrentUserId()); |
| | | //criteria.setStatus(); |
| | | List<Store> storeList = Optional.ofNullable(storeService.queryAll(criteria)).orElse(ListUtil.empty()); |
| | | List<StoreSimpleView> storeViewList = storeList.stream().map(s -> { |
| | | StoreSimpleView view = new StoreSimpleView(); |
| | | view.setId(s.getStoreId()); |
| | | view.setName(s.getStoreName()); |
| | | view.setLogoUrl(""); |
| | | view.setStatus(s.getStatus()); |
| | | return view; |
| | | }).collect(Collectors.toList()); |
| | | return ResponseEntity.ok(R.success(storeViewList)); |
| | | } |
| | | |
| | | @GetMapping(value = "/{storeId}") |
| | | @ApiOperation("查询店铺") |
| | | //@PreAuthorize("@el.check('merchant:store:getById')" + |
| | | // " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> getById(@PathVariable Long storeId) { |
| | | Store store = storeService.getById(storeId); |
| | | StoreMerchantView view = new StoreMerchantView(); |
| | | BeanUtils.copyProperties(store, view); |
| | | view.setLogoUrl(""); |
| | | return ResponseEntity.ok(R.success(view)); |
| | | } |
| | | |
| | | @PostMapping |
| | | @ApiOperation("创建店铺") |
| | | //@PreAuthorize("@el.check('merchant:store:create')") |
| | | public ResponseEntity<?> create(@RequestBody StoreCreateRequest request) { |
| | | storeCreateService.create(request); |
| | | return ResponseEntity.status(HttpStatus.CREATED).build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改店铺信息 |
| | | */ |
| | | @PostMapping(value = "/{storeId}") |
| | | @ApiOperation("修改店铺") |
| | | //@PreAuthorize("@el.check('merchant:store:update')" + |
| | | // " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> update(@PathVariable("storeId") Long storeId, |
| | | @RequestBody Store store) { |
| | | store.setStoreId(storeId); |
| | | storeService.updateById(store); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改店铺LOGO |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/logo") |
| | | @ApiOperation("修改店铺LOGO") |
| | | //@PreAuthorize("@el.check('merchant:store:list')" + |
| | | // " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> updateLogo(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStoreLogoImageGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updateLogo(storeId, request.getLogoImageUploadId()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改店铺名称 |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/name") |
| | | @ApiOperation("修改店铺名称") |
| | | //@PreAuthorize("@el.check('merchant:store:name')" + |
| | | // " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> updateName(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStoreNameGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updateName(storeId, request.getStoreName()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改店铺简介 |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/description") |
| | | @ApiOperation("修改店铺简介") |
| | | //@PreAuthorize("@el.check('merchant:store:description')" + |
| | | // " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> updateDescription(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStoreDescriptionGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updateDescription(storeId, request.getDescription()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改店铺联系电话 |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/contactPhone") |
| | | @ApiOperation("修改店铺联系电话") |
| | | @PreAuthorize("@el.check('merchant:store:list')" + |
| | | " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> updateContactPhone(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStoreContactPhoneGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updateContactPhone(storeId, request.getContactPhone()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改店铺地址 |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/address") |
| | | @ApiOperation("修改店铺地址") |
| | | @PreAuthorize("@el.check('merchant:store:address')" + |
| | | " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> updateAddress(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStoreAddressGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updateAddress(storeId, request.getAddress()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改店铺坐标 |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/location") |
| | | @ApiOperation("修改店铺坐标") |
| | | @PreAuthorize("@el.check('merchant:store:location')" + |
| | | " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> updateLocation(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStoreLocationGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updateLocation(storeId, request.getLongitude(), request.getLatitude()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改店铺配送范围 |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/radius") |
| | | @ApiOperation("修改店铺配送范围") |
| | | @PreAuthorize("@el.check('merchant:store:radius')" + |
| | | " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> updateRadius(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStoreRadiusGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updateRadius(storeId, request.getRadius()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改店铺绑定的经营类目 |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/platformCategory") |
| | | @ApiOperation("修改店铺绑定的经营类目") |
| | | @PreAuthorize("@el.check('merchant:store:platformCategory')" + |
| | | " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> updatePlatformCategory(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStorePlatformCategoryGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updatePlatformCategory(storeId, request.getPlatformCategoryId()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改店铺营业时间 |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/businessHours") |
| | | @ApiOperation("修改店铺营业时间") |
| | | @PreAuthorize("@el.check('merchant:store:businessHours')" + |
| | | " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> updateBusinessHours(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStoreBusinessHoursGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updateBusinessHours(storeId, request.getOpenTime(), request.getCloseTime()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改起送金额 |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/deliveryMinimum") |
| | | @ApiOperation("修改起送金额") |
| | | @PreAuthorize("@el.check('merchant:store:deliveryMinimum')" + |
| | | " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> updateDeliveryMinimum(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStoreDeliveryMinimumGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updateDeliveryMinimum(storeId, request.getDeliveryMinimum()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改配送费用 |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/deliveryFee") |
| | | @ApiOperation("修改配送费用") |
| | | @PreAuthorize("@el.check('merchant:store:deliveryFee')" + |
| | | " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> updateDeliveryFee(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStoreDeliveryFeeGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updateDeliveryFee(storeId, request.getDeliveryFee()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | /** |
| | | * 修改状态 |
| | | */ |
| | | @PatchMapping(value = "/{storeId}/businessStatus") |
| | | @ApiOperation("修改状态") |
| | | @PreAuthorize("@el.check('merchant:store:businessStatus')" + |
| | | " and @storeMerchantOwnershipService.check(#storeId)") |
| | | public ResponseEntity<?> businessStatus(@PathVariable("storeId") Long storeId, |
| | | @Validated(value = StoreFieldUpdateRequest.UpdateStoreBusinessStatusGroup.class) |
| | | @RequestBody StoreFieldUpdateRequest request) { |
| | | storeService.updateStatus(storeId, request.getBusinessStatus()); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | } |