From 9a62995fd1873b3e2515dfde4226719555e70739 Mon Sep 17 00:00:00 2001 From: zhangli <123879394@qq.com> Date: Sun, 13 Jul 2025 14:10:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9F=A5=E8=AF=A2=E9=97=A8?= =?UTF-8?q?=E5=BA=97=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=8D=E5=8A=A1=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sczx/store/aspect/FacadeAspect.java | 55 +++++++++++++++++++ .../controller/StoreClientController.java | 2 +- .../store/controller/StorePubController.java | 36 ++++++++++++ .../com/sczx/store/convert/StoreConvert.java | 13 +++++ .../com/sczx/store/service/StoreService.java | 8 +++ .../store/service/impl/StoreServiceImpl.java | 14 ++++- src/main/resources/application.yml | 2 +- 7 files changed, 125 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/sczx/store/aspect/FacadeAspect.java create mode 100644 src/main/java/com/sczx/store/controller/StorePubController.java create mode 100644 src/main/java/com/sczx/store/convert/StoreConvert.java diff --git a/src/main/java/com/sczx/store/aspect/FacadeAspect.java b/src/main/java/com/sczx/store/aspect/FacadeAspect.java new file mode 100644 index 0000000..29105e6 --- /dev/null +++ b/src/main/java/com/sczx/store/aspect/FacadeAspect.java @@ -0,0 +1,55 @@ +package com.sczx.store.aspect; + +import com.alibaba.fastjson.JSON; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.*; +import org.springframework.stereotype.Component; + +/** + * @Author Huang Kai + * @Date 2023/1/18 17:01 + * @Version 1.0 + */ +@Aspect +@Component +@Slf4j +public class FacadeAspect { + + + + /** 以 controller 包下定义的所有请求为切入点 */ + @Pointcut("execution(public * com..facade.*.*(..))") + public void facadeLog() {} + + /** + * 在切点之前织入 + * @param joinPoint + */ + @Before("facadeLog()") + public void doBefore(JoinPoint joinPoint) { + // 打印请求相关参数 + log.info("=========================remote Start ========================="); + // 打印 Http method + //log.info("HTTP Method : {}", request.getMethod()); + // 打印调用 controller 的全路径以及执行方法 + log.info("Class Method:{}.{}", joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName()); + // 打印请求的 IP + //log.info("IP : {}", request.getRemoteAddr()); + // 打印请求入参 + log.info("facadeAspect_Request:{}", JSON.toJSONString(joinPoint.getArgs())); + } + + @Around("facadeLog()") + public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { + long startTime = System.currentTimeMillis(); + Object result = proceedingJoinPoint.proceed(); + // 打印出参 + log.info("facadeAspect_Response:{}", JSON.toJSONString(result)); + // 执行耗时 + log.info("Time-Consuming : {} ms", System.currentTimeMillis() - startTime); + log.info("=========================remote End ========================="); + return result; + } +} \ No newline at end of file diff --git a/src/main/java/com/sczx/store/controller/StoreClientController.java b/src/main/java/com/sczx/store/controller/StoreClientController.java index 5ad5b27..3163266 100644 --- a/src/main/java/com/sczx/store/controller/StoreClientController.java +++ b/src/main/java/com/sczx/store/controller/StoreClientController.java @@ -33,7 +33,7 @@ public class StoreClientController { // @ApiImplicitParam(name = "Accept-Language", value = "语言标识,如 zh-CN", required = false, dataType = "string", paramType = "header") // }) @PostMapping("/listStoresByBBoxWithDistance") - Result> listStoresByBBoxWithDistance(@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize, @RequestBody StoreDistanceReq storeDistanceReq){ + public Result> listStoresByBBoxWithDistance(@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize, @RequestBody StoreDistanceReq storeDistanceReq){ return Result.ok(storeService.listStoresByBBoxWithDistance(storeDistanceReq, pageNo, pageSize)); } } diff --git a/src/main/java/com/sczx/store/controller/StorePubController.java b/src/main/java/com/sczx/store/controller/StorePubController.java new file mode 100644 index 0000000..4a863fa --- /dev/null +++ b/src/main/java/com/sczx/store/controller/StorePubController.java @@ -0,0 +1,36 @@ +package com.sczx.store.controller; + + +import com.sczx.store.common.Result; +import com.sczx.store.dto.CompanyStoreDTO; +import com.sczx.store.service.StoreService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 门店 前端控制器 + *

+ * + * @author zhangli + * @since 2025-07-08 21:16:36 + */ +@Api(value = "门店公共接口", tags = "公共接口") +@RestController +@RequestMapping("/pub") +public class StorePubController { + + @Autowired + private StoreService storeService; + + @ApiOperation(value = "根据门店id查询门店信息") + @GetMapping("/getStoreById") + public Result getStoreById(@RequestParam(name = "storeId") Integer storeId){ + return Result.ok(storeService.getStoreById(storeId)); + } +} diff --git a/src/main/java/com/sczx/store/convert/StoreConvert.java b/src/main/java/com/sczx/store/convert/StoreConvert.java new file mode 100644 index 0000000..c65b588 --- /dev/null +++ b/src/main/java/com/sczx/store/convert/StoreConvert.java @@ -0,0 +1,13 @@ +package com.sczx.store.convert; + +import com.sczx.store.dto.CompanyStoreDTO; +import com.sczx.store.po.CompanyStorePO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface StoreConvert { + StoreConvert INSTANCE = Mappers.getMapper(StoreConvert.class); + CompanyStorePO dtoToPO(CompanyStoreDTO dto); + CompanyStoreDTO poToDTO(CompanyStorePO po); +} diff --git a/src/main/java/com/sczx/store/service/StoreService.java b/src/main/java/com/sczx/store/service/StoreService.java index 32dc237..2613bdc 100644 --- a/src/main/java/com/sczx/store/service/StoreService.java +++ b/src/main/java/com/sczx/store/service/StoreService.java @@ -13,4 +13,12 @@ public interface StoreService { * @return */ IPage listStoresByBBoxWithDistance(StoreDistanceReq storeDistanceReq, Integer pageNo, Integer pageSize); + + /** + * 根据id获取门店信息 + * + * @param id + * @return + */ + CompanyStoreDTO getStoreById(Integer id); } diff --git a/src/main/java/com/sczx/store/service/impl/StoreServiceImpl.java b/src/main/java/com/sczx/store/service/impl/StoreServiceImpl.java index fd31b4d..75bb0e5 100644 --- a/src/main/java/com/sczx/store/service/impl/StoreServiceImpl.java +++ b/src/main/java/com/sczx/store/service/impl/StoreServiceImpl.java @@ -1,16 +1,15 @@ package com.sczx.store.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.sczx.store.convert.StoreConvert; import com.sczx.store.dto.CompanyStoreDTO; import com.sczx.store.dto.req.StoreDistanceReq; +import com.sczx.store.po.CompanyStorePO; import com.sczx.store.repository.CompanyStoreRepo; import com.sczx.store.service.StoreService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.Collections; -import java.util.List; - @Service public class StoreServiceImpl implements StoreService { @@ -20,4 +19,13 @@ public class StoreServiceImpl implements StoreService { public IPage listStoresByBBoxWithDistance(StoreDistanceReq storeDistanceReq, Integer pageNo, Integer pageSize) { return companyStoreRepo.listStoresByBBoxWithDistance(storeDistanceReq,pageNo, pageSize); } + + @Override + public CompanyStoreDTO getStoreById(Integer id) { +// LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(CompanyStorePO.class); +// wrapper.eq(CompanyStorePO::getId, id).orderByDesc(CompanyStorePO::getCreateTime).last("limit 1"); + CompanyStorePO companyStorePO = companyStoreRepo.getById(id); + + return StoreConvert.INSTANCE.poToDTO(companyStorePO); + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 4b7c123..e2d1b7a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,7 +4,7 @@ server: spring: application: - name: sczx_store # 微服务名称 + name: sczx-store # 微服务名称 http: encoding: charset: UTF-8