package com.doumee.api.web; import com.doumee.core.annotation.LoginRequired; import com.doumee.core.annotation.LoginShopRequired; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.Member; import com.doumee.dao.dto.ShopApplyDTO; import com.doumee.dao.dto.ShopDetailQueryDTO; import com.doumee.dao.dto.ShopInfoMaintainDTO; import com.doumee.dao.dto.ShopNearbyDTO; import com.doumee.dao.vo.ShopDetailVO; import com.doumee.dao.vo.ShopNearbyVO; import com.doumee.dao.vo.ShopWebDetailVO; import com.doumee.service.business.ShopInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; /** * 门店入驻(小程序端) * @author rk * @date 2026/04/10 */ @Api(tags = "门店入驻") @RestController @RequestMapping("/web/shopInfo") public class ShopInfoApi extends ApiController { @Autowired private ShopInfoService shopInfoService; @LoginRequired @ApiOperation("门店入驻申请/修改") @PostMapping("/apply") public ApiResponse apply(@RequestBody @Validated ShopApplyDTO request) { Member member = this.getMemberResponse(); shopInfoService.applyShop(request, member); return ApiResponse.success("操作成功"); } @LoginRequired @ApiOperation("查询我的门店信息") @GetMapping("/myShop") public ApiResponse myShop() { return ApiResponse.success(shopInfoService.getMyShop(this.getMemberId())); } @ApiOperation("附近门店分页列表") @PostMapping("/nearby") public ApiResponse> nearby(@RequestBody @Validated PageWrap pageWrap) { return ApiResponse.success(shopInfoService.findNearbyShops(pageWrap)); } @ApiOperation("门店详情") @PostMapping("/detail") public ApiResponse detail(@RequestBody @Validated ShopDetailQueryDTO dto) { return ApiResponse.success(shopInfoService.getShopWebDetail(dto)); } @LoginShopRequired @ApiOperation("维护门店信息(支付押金后)") @PostMapping("/maintain") public ApiResponse maintain(@RequestBody ShopInfoMaintainDTO dto) { shopInfoService.maintainShopInfo(this.getMemberId(), dto); return ApiResponse.success("操作成功"); } @LoginShopRequired @ApiOperation("查询门店维护信息") @PostMapping("/maintainInfo") public ApiResponse maintainInfo() { return ApiResponse.success(shopInfoService.getShopMaintainInfo(this.getMemberId())); } }