From 85a21fdb54fa06f2fa6e25e763ec5337e85295e7 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 16 八月 2024 16:55:34 +0800 Subject: [PATCH] 小程序登录 token失效全局异常 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 122 ++++ ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports | 3 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyExchangeOrder.java | 17 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java | 2 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java | 43 + ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java | 19 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysRoleClient.java | 3 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java | 54 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java | 107 +++ ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java | 41 + ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TExchangeOrderService.java | 22 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java | 4 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 12 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java | 26 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java | 29 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderInfo.java | 59 ++ ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml | 18 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserIntegralChangeFallbackFactory.java | 32 + ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserIntegralChangeClient.java | 24 ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java | 26 ruoyi-service/ruoyi-order/pom.xml | 7 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java | 15 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java | 2 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java | 5 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 8 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java | 34 + ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java | 10 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderAccountingStrategyClient.java | 5 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java | 1 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 7 ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java | 2 ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports | 4 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java | 2 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java | 23 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java | 6 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java | 28 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java | 18 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/OrderEvaluateVo.java | 23 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java | 15 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java | 34 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java | 122 ++++ ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java | 2 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java | 12 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserAppletException.java | 48 + ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java | 11 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 3 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ExchangeOrderGoodsInfo.java | 54 ++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderList.java | 32 + ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserAddressClient.java | 26 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java | 22 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java | 34 + ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java | 2 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java | 5 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 15 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyChargingOrderList.java | 17 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java | 32 + ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java | 7 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 37 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderAccountingStrategyController.java | 4 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java | 4 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/IntegralRuleClient.java | 24 ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports | 5 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java | 2 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java | 3 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyExchangeOrderList.java | 30 + ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserAddressFallbackFactory.java | 33 + ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java | 17 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java | 18 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TCouponMapper.xml | 2 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 4 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/GoodsClient.java | 25 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java | 5 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java | 12 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java | 15 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java | 4 83 files changed, 1,490 insertions(+), 126 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserAddressFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserAddressFallbackFactory.java new file mode 100644 index 0000000..7e36950 --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserAddressFallbackFactory.java @@ -0,0 +1,33 @@ +package com.ruoyi.account.api.factory; + +import com.ruoyi.account.api.feignClient.AppUserAddressClient; +import com.ruoyi.account.api.model.TAppUserAddress; +import com.ruoyi.account.api.model.TAppUserIntegralChange; +import com.ruoyi.common.core.domain.R; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * @author zhibing.pu + * @Date 2024/8/16 11:02 + */ +@Component +public class AppUserAddressFallbackFactory implements FallbackFactory<AppUserAddressClient> { + + private static final Logger log = LoggerFactory.getLogger(AppUserAddressFallbackFactory.class); + + + @Override + public AppUserAddressClient create(Throwable throwable) { + log.error("用户地址调用失败:{}", throwable.getMessage()); + return new AppUserAddressClient(){ + + @Override + public R<TAppUserAddress> getAppUserAddressById(Long id) { + return R.fail("根据id获取用户地址信息失败:" + throwable.getMessage()); + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java index 7a5d7e1..7c406e4 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java @@ -28,7 +28,7 @@ return new AppUserCarClient() { @Override - public R<List<TAppUserCar>> getCarByIds(List<Integer> carIds) { + public R<List<TAppUserCar>> getCarByIds(List<Long> carIds) { return R.fail("根据用户车辆id查询车辆信息失败:"+throwable.getMessage()); } }; diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java index ca9289e..e89e3b6 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java @@ -36,6 +36,11 @@ } @Override + public R updateAppUser(TAppUser appUser) { + return R.fail("修改用户失败:"+throwable.getMessage()); + } + + @Override public R<List<TAppUser>> getUserByIds(List<Long> appUserIds) { return R.fail("根据用户id查询用户信息失败:"+throwable.getMessage()); } diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserIntegralChangeFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserIntegralChangeFallbackFactory.java new file mode 100644 index 0000000..da91d05 --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserIntegralChangeFallbackFactory.java @@ -0,0 +1,32 @@ +package com.ruoyi.account.api.factory; + +import com.ruoyi.account.api.feignClient.AppUserIntegralChangeClient; +import com.ruoyi.account.api.model.TAppUserIntegralChange; +import com.ruoyi.common.core.domain.R; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * @author zhibing.pu + * @Date 2024/8/16 11:02 + */ +@Component +public class AppUserIntegralChangeFallbackFactory implements FallbackFactory<AppUserIntegralChangeClient> { + + private static final Logger log = LoggerFactory.getLogger(AppUserIntegralChangeFallbackFactory.class); + + + @Override + public AppUserIntegralChangeClient create(Throwable throwable) { + log.error("账户积分变动调用失败:{}", throwable.getMessage()); + return new AppUserIntegralChangeClient(){ + + @Override + public R addAppUserIntegralChange(TAppUserIntegralChange appUserIntegralChange) { + return R.fail("添加积分变动记录失败:" + throwable.getMessage()); + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserAddressClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserAddressClient.java new file mode 100644 index 0000000..b284de8 --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserAddressClient.java @@ -0,0 +1,26 @@ +package com.ruoyi.account.api.feignClient; + +import com.ruoyi.account.api.factory.AppUserAddressFallbackFactory; +import com.ruoyi.account.api.model.TAppUserAddress; +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * @author zhibing.pu + * @Date 2024/8/16 14:47 + */ +@FeignClient(contextId = "AppUserAddressClient", value = ServiceNameConstants.ACCOUNT_SERVICE, fallbackFactory = AppUserAddressFallbackFactory.class) +public interface AppUserAddressClient { + + + /** + * 根据id获取用户地址信息 + * @param id + * @return + */ + @PostMapping("/t-app-user-address/getAppUserAddressById") + R<TAppUserAddress> getAppUserAddressById(Long id); +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java index 82bb2c5..27f3229 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java @@ -27,5 +27,5 @@ * @return */ @PostMapping(value = "/t-app-user-car/getCarByIds") - public R<List<TAppUserCar>> getCarByIds(@RequestBody List<Integer> carIds); + public R<List<TAppUserCar>> getCarByIds(@RequestBody List<Long> carIds); } diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java index 931d00a..9812ddd 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java @@ -37,6 +37,11 @@ * @param id * @return */ - @GetMapping(value = "/user/getUserById") + @PostMapping(value = "/t-app-user/user/getUserById") R<TAppUser> getUserById(Long id); + + + + @PostMapping("/t-app-user/") + R updateAppUser(TAppUser appUser); } diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserIntegralChangeClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserIntegralChangeClient.java new file mode 100644 index 0000000..2c86199 --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserIntegralChangeClient.java @@ -0,0 +1,24 @@ +package com.ruoyi.account.api.feignClient; + +import com.ruoyi.account.api.factory.AppUserIntegralChangeFallbackFactory; +import com.ruoyi.account.api.model.TAppUserIntegralChange; +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * @author zhibing.pu + * @Date 2024/8/16 11:01 + */ +@FeignClient(contextId = "AppUserIntegralChangeClient", value = ServiceNameConstants.ACCOUNT_SERVICE, fallbackFactory = AppUserIntegralChangeFallbackFactory.class) +public interface AppUserIntegralChangeClient { + + /** + * 添加积分变动记录 + * @param appUserIntegralChange + * @return + */ + @PostMapping("/t-app-user-integral-change/addAppUserIntegralChange") + R addAppUserIntegralChange(TAppUserIntegralChange appUserIntegralChange); +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 3c87b41..40f7d82 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,3 +1,5 @@ com.ruoyi.account.api.factory.AppUserFallbackFactory com.ruoyi.account.api.factory.AppCouponFallbackFactory -com.ruoyi.account.api.factory.AppUserCarFallbackFactory \ No newline at end of file +com.ruoyi.account.api.factory.AppUserCarFallbackFactory +com.ruoyi.account.api.factory.AppUserIntegralChangeFallbackFactory +com.ruoyi.account.api.factory.AppUserAddressFallbackFactory \ No newline at end of file diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java new file mode 100644 index 0000000..ee67b6f --- /dev/null +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java @@ -0,0 +1,41 @@ +package com.ruoyi.chargingPile.api.factory; + +import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; +import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; +import com.ruoyi.chargingPile.api.model.TChargingGun; +import com.ruoyi.chargingPile.api.model.TChargingPile; +import com.ruoyi.common.core.domain.R; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 充电桩服务降级处理 + * + * @author ruoyi + */ +@Component +public class ChargingGunFallbackFactory implements FallbackFactory<ChargingGunClient> +{ + private static final Logger log = LoggerFactory.getLogger(ChargingGunFallbackFactory.class); + + @Override + public ChargingGunClient create(Throwable throwable) { + log.error("充电枪调用失败:{}", throwable.getMessage()); + return new ChargingGunClient() { + + @Override + public R<String> getAllName(Integer id) { + return R.fail("根据id获取充电枪完整名称失败:" + throwable.getMessage()); + } + + @Override + public R<TChargingGun> getChargingGunById(Integer id) { + return R.fail("根据id获取充电枪失败:" + throwable.getMessage()); + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java new file mode 100644 index 0000000..015c04b --- /dev/null +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java @@ -0,0 +1,34 @@ +package com.ruoyi.chargingPile.api.feignClient; + +import com.ruoyi.chargingPile.api.factory.ChargingGunFallbackFactory; +import com.ruoyi.chargingPile.api.model.TChargingGun; +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * @author zhibing.pu + * @Date 2024/8/15 19:36 + */ +@FeignClient(contextId = "ChargingGunClient", value = ServiceNameConstants.CHARGINGPILE_SERVICE, fallbackFactory = ChargingGunFallbackFactory.class) +public interface ChargingGunClient { + + /** + * 根据id获取充电枪完整名称 + * @param id + * @return + */ + @PostMapping("/t-charging-gun/getAllName") + R<String> getAllName(Integer id); + + + /** + * 根据id获取充电枪 + * @param id + * @return + */ + @PostMapping("/t-charging-gun/getChargingGunById") + R<TChargingGun> getChargingGunById(Integer id); +} diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java index 0312dd8..b6f8169 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java @@ -23,7 +23,7 @@ /** * 通过站点id查询停车场信息 */ - @GetMapping(value = "/t-parking-lot/getLotBySiteId") + @PostMapping(value = "/t-parking-lot/getLotBySiteId") public R<TParkingLot> getLotBySiteId(@RequestParam("siteId") Integer siteId); } diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java new file mode 100644 index 0000000..39fae79 --- /dev/null +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java @@ -0,0 +1,23 @@ +package com.ruoyi.chargingPile.api.vo; + +import com.ruoyi.chargingPile.api.model.Site; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel(value = "SiteVO对象", description = "小程序扫一扫-详情页面") +public class SiteInfoVO { + @ApiModelProperty(value = "电站名称") + private String name; + @ApiModelProperty(value = "桩编号") + private String number; + @ApiModelProperty(value = "普通电价") + private BigDecimal electrovalence; + @ApiModelProperty(value = "会员电价") + private BigDecimal vipElectrovalence; + @ApiModelProperty(value = "超时占位费说明") + private String spaceChargeExplain; +} diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 2a1a113..e5e3ae5 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,3 +1,4 @@ com.ruoyi.chargingPile.api.factory.ChargingPileFallbackFactory com.ruoyi.chargingPile.api.factory.SiteFallbackFactory -com.ruoyi.chargingPile.api.factory.ParkingLotFallbackFactory \ No newline at end of file +com.ruoyi.chargingPile.api.factory.ParkingLotFallbackFactory +com.ruoyi.chargingPile.api.factory.ChargingGunFallbackFactory \ No newline at end of file diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java index 4abfb5e..7af99c0 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.Map; +import java.util.Set; /** * 充电订单服务降级处理 @@ -26,15 +27,15 @@ public ChargingOrderAccountingStrategyClient create(Throwable throwable) { log.error("充电订单调用失败:{}", throwable.getMessage()); return new ChargingOrderAccountingStrategyClient() { - - + + @Override - public R<List<List<Map<String, Object>>>> getTotalElectricQuantity(Integer days) { + public R<List<List<Map<String, Object>>>> getTotalElectricQuantity(Integer days, Set<Integer> siteIds) { return R.fail("获取给定天数每天的充电量统计数据失败:" + throwable.getMessage()); } - + @Override - public R<List<Double>> getDailyChargingDegree(Integer days) { + public R<List<Double>> getDailyChargingDegree(Integer days, Set<Integer> siteIds) { return R.fail("获取给定天数每天的充电度数失败:" + throwable.getMessage()); } }; diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java index f29864d..c398faf 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java @@ -39,6 +39,11 @@ public R<Integer> getChargingCount(TChargingCountQuery req) { return R.fail("根据会员id和有效期查询有效期内享受充电折扣次数:" + throwable.getMessage()); } + + @Override + public R<TChargingOrder> getOrderDetailByGunId(Integer chargingGunId) { + return R.fail("根据充电枪获取正在充电的订单:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderAccountingStrategyClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderAccountingStrategyClient.java index c09794d..c9ede24 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderAccountingStrategyClient.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderAccountingStrategyClient.java @@ -6,6 +6,7 @@ import com.ruoyi.order.api.factory.ChargingOrderFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -25,7 +26,7 @@ * @param days 天数 * @return */ - @GetMapping("/t-charging-order-accounting-strategy/getTotalElectricQuantity") + @PostMapping("/t-charging-order-accounting-strategy/getTotalElectricQuantity") R<List<List<Map<String, Object>>>> getTotalElectricQuantity(Integer days, @RequestParam("siteIds") Set<Integer> siteIds); @@ -34,6 +35,6 @@ * @param days * @return */ - @GetMapping("/t-charging-order-getDailyChargingDegree-strategy/getUtilizationTrend") + @PostMapping("/t-charging-order-getDailyChargingDegree-strategy/getUtilizationTrend") R<List<Double>> getDailyChargingDegree(Integer days, @RequestParam("siteIds") Set<Integer> siteIds); } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java index 2ac0181..b7402f2 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java @@ -37,6 +37,6 @@ * @param chargingGunId 充电枪id * @return */ - @GetMapping(value = "/t-charging-order/getOrderDetailByGunId") + @PostMapping(value = "/t-charging-order/getOrderDetailByGunId") R<TChargingOrder> getOrderDetailByGunId(@RequestParam("chargingGunId") Integer chargingGunId); } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java index 9f1178f..286e4e4 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java @@ -89,6 +89,10 @@ @ApiModelProperty(value = "状态(0=未知,1=等待中,2=启动中,3=充电中,4=停止中,5=已结束)") @TableField("status") private Integer status; + + @ApiModelProperty(value = "结束方式(0=异常终止,1=主动终止,2=满电终止,3=费用不足终止)") + @TableField("end_mode") + private Integer endMode; @ApiModelProperty(value = "充值金额") @TableField("recharge_amount") diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java index 77bbbe7..7b4f546 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java @@ -28,7 +28,7 @@ private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键") - @TableId(value = "id", type = IdType.AUTO) + @TableId(value = "id", type = IdType.NONE) private Long id; @ApiModelProperty(value = "订单类型(1=充电订单,2=购物订单,3=兑换订单,4=会员订单)") diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java index c44dd0e..4ebe265 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java @@ -45,7 +45,7 @@ @ApiModelProperty(value = "充电车辆 id") @TableField("app_user_car_id") - private Integer appUserCarId; + private Long appUserCarId; @ApiModelProperty(value = "评分") @TableField("mark") diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java index 8073eef..87a0230 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java @@ -38,7 +38,15 @@ @ApiModelProperty(value = "优惠券名称") @TableField("name") private String name; - + + @ApiModelProperty(value = "封面图") + @TableField("cover_picture") + private String coverPicture; + + @ApiModelProperty(value = "详情图片") + @TableField("details_picture") + private String detailsPicture; + @ApiModelProperty(value = "优惠方式(1=满减,2=抵扣)") @TableField("preferential_mode") private Integer preferentialMode; @@ -98,13 +106,6 @@ @ApiModelProperty(value = "优惠券说明") @TableField("explain") private String explain; - - @ApiModelProperty(value = "封面图") - @TableField("cover_picture") - private String coverPicture; - @ApiModelProperty(value = "详情图片") - @TableField("details_picture") - private String detailsPicture; @ApiModelProperty(value = "说明") @TableField("remark") diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java new file mode 100644 index 0000000..f5821e7 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java @@ -0,0 +1,34 @@ +package com.ruoyi.other.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.domain.TCoupon; +import com.ruoyi.other.api.domain.TGoods; +import com.ruoyi.other.api.feignClient.CouponClient; +import com.ruoyi.other.api.feignClient.GoodsClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * @author zhibing.pu + * @Date 2024/8/16 13:48 + */ +@Component +public class CouponFallbackFactory implements FallbackFactory<CouponClient> { + + private static final Logger log = LoggerFactory.getLogger(CouponFallbackFactory.class); + + @Override + public CouponClient create(Throwable throwable) { + log.error("优惠券调用失败:{}", throwable.getMessage()); + return new CouponClient() { + + @Override + public R<TCoupon> getCouponById(Integer id) { + return R.fail("根据id获取优惠券信息失败:" + throwable.getMessage()); + } + }; + } + +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java new file mode 100644 index 0000000..2f57fab --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java @@ -0,0 +1,32 @@ +package com.ruoyi.other.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.domain.TGoods; +import com.ruoyi.other.api.feignClient.GoodsClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * @author zhibing.pu + * @Date 2024/8/16 13:48 + */ +@Component +public class GoodsFallbackFactory implements FallbackFactory<GoodsClient> { + + private static final Logger log = LoggerFactory.getLogger(GoodsFallbackFactory.class); + + @Override + public GoodsClient create(Throwable throwable) { + log.error("商品调用失败:{}", throwable.getMessage()); + return new GoodsClient() { + + @Override + public R<TGoods> getGoodsById(Integer id) { + return R.fail("根据id获取商品信息失败:" + throwable.getMessage()); + } + }; + } + +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java new file mode 100644 index 0000000..a1f7ab5 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java @@ -0,0 +1,43 @@ +package com.ruoyi.other.api.factory; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.account.api.dto.TagListQueryDto; +import com.ruoyi.account.api.dto.UnitListQueryDto; +import com.ruoyi.account.api.vo.CouponListVOVO; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.domain.TCompany; +import com.ruoyi.other.api.domain.TIntegralRule; +import com.ruoyi.other.api.domain.TUserTag; +import com.ruoyi.other.api.feignClient.IntegralRuleClient; +import com.ruoyi.other.api.feignClient.OtherClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * 商品服务降级处理 + * + * @author ruoyi + */ +@Component +public class IntegralRuleFallbackFactory implements FallbackFactory<IntegralRuleClient> +{ + private static final Logger log = LoggerFactory.getLogger(IntegralRuleFallbackFactory.class); + + @Override + public IntegralRuleClient create(Throwable throwable) { + log.error("积分规则调用失败:{}", throwable.getMessage()); + return new IntegralRuleClient() { + + + @Override + public R<TIntegralRule> getSet() { + return R.fail("获取积分设置失败:" + throwable.getMessage()); + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java new file mode 100644 index 0000000..f2f6fd6 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java @@ -0,0 +1,26 @@ +package com.ruoyi.other.api.feignClient; + +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.domain.TCoupon; +import com.ruoyi.other.api.factory.CouponFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * @author zhibing.pu + * @Date 2024/8/16 14:00 + */ +@FeignClient(contextId = "CouponClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = CouponFallbackFactory.class) +public interface CouponClient { + + + /** + * 根据id获取优惠券信息 + * @param id + * @return + */ + @PostMapping("/t-coupon/getCouponById") + R<TCoupon> getCouponById(Integer id); +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/GoodsClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/GoodsClient.java new file mode 100644 index 0000000..05c44ec --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/GoodsClient.java @@ -0,0 +1,25 @@ +package com.ruoyi.other.api.feignClient; + +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.domain.TGoods; +import com.ruoyi.other.api.factory.GoodsFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * @author zhibing.pu + * @Date 2024/8/16 13:47 + */ +@FeignClient(contextId = "GoodsClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = GoodsFallbackFactory.class) +public interface GoodsClient { + + /** + * 根据id获取商品信息 + * @param id + * @return + */ + @PostMapping("/t-goods/getGoodsById") + R<TGoods> getGoodsById(Integer id); +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/IntegralRuleClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/IntegralRuleClient.java new file mode 100644 index 0000000..9659c83 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/IntegralRuleClient.java @@ -0,0 +1,24 @@ +package com.ruoyi.other.api.feignClient; + +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.domain.TIntegralRule; +import com.ruoyi.other.api.factory.IntegralRuleFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * @author zhibing.pu + * @Date 2024/8/16 10:54 + */ +@FeignClient(contextId = "IntegralRuleClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = IntegralRuleFallbackFactory.class) +public interface IntegralRuleClient { + + /** + * 获取积分设置 + * @return + */ + @PostMapping("/integral/getSet") + R<TIntegralRule> getSet(); +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java index e4dc369..7dd2db2 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java @@ -26,7 +26,7 @@ * @param roleId * @return */ - @GetMapping("/t-role-site/getSiteIds") + @PostMapping("/t-role-site/getSiteIds") R<List<Integer>> getSiteIds(Long roleId); diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java index 4d7e87a..ea305af 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java @@ -33,6 +33,6 @@ * @param tagIds * @return */ - @GetMapping("/t-evaluation-tag/getListByIds") + @PostMapping("/t-evaluation-tag/getListByIds") R<List<TEvaluationTag>> getListByIds(List<Integer> tagIds); } diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java index 4cd3910..68d0746 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java @@ -26,7 +26,7 @@ * @param userId * @return */ - @GetMapping("/t-user-site/getSiteIds") + @PostMapping("/t-user-site/getSiteIds") R<List<Integer>> getSiteIds(Long userId); diff --git a/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index bbbaed4..8ca6c74 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -2,4 +2,7 @@ com.ruoyi.other.api.factory.UserSiteFallbackFactory com.ruoyi.other.api.factory.RoleSiteFallbackFactory com.ruoyi.other.api.factory.TEvaluationTagFallbackFactory -com.ruoyi.other.api.factory.VipFallbackFactory \ No newline at end of file +com.ruoyi.other.api.factory.VipFallbackFactory +com.ruoyi.other.api.factory.IntegralRuleFallbackFactory +com.ruoyi.other.api.factory.GoodsFallbackFactory +com.ruoyi.other.api.factory.CouponFallbackFactory \ No newline at end of file diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysRoleClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysRoleClient.java index 10edd4c..16472fa 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysRoleClient.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysRoleClient.java @@ -7,6 +7,7 @@ import com.ruoyi.system.api.model.GetSysRoleByIds; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @@ -17,7 +18,7 @@ @FeignClient(contextId = "SysRoleClient", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = SysRoleFallbackFactory.class) public interface SysRoleClient { - @GetMapping("/role/getSysRoleByIds") + @PostMapping("/role/getSysRoleByIds") public R<List<SysRole>> getSysRoleByIds(GetSysRoleByIds ids); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java index 4dff3cc..d0f2eb4 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java @@ -51,7 +51,7 @@ * @param userId * @return */ - @GetMapping("/user/queryRoleByUserId/{userId}") + @PostMapping("/user/queryRoleByUserId/{userId}") R<SysRole> queryRoleByUserId(@PathVariable("userId") Long userId); @@ -60,7 +60,7 @@ * @param roleId * @return */ - @GetMapping("/user/queryRoleByRoleId/{roleId}") + @PostMapping("/user/queryRoleByRoleId/{roleId}") R<SysRole> queryRoleByRoleId(@PathVariable("roleId") Long roleId); /** diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java index 2f01d93..33e9d2a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java @@ -45,7 +45,4 @@ * 登录IP地址 */ private String ipaddr; - - - } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java index ccab699..41c1531 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java @@ -53,11 +53,11 @@ HashMap<String, Object> map = new HashMap<>(); map.put("token",tokenService.createToken(userInfo)); List<SysRole> roles = userInfo.getSysUser().getRoles(); - if(CollectionUtils.isEmpty(roles)){ - return R.fail("请关联角色!"); - } +// if(CollectionUtils.isEmpty(roles)){ +// return R.fail("请关联角色!"); +// } - map.put("roleName",roles.get(0).getRoleName()); +// map.put("roleName",roles.get(0).getRoleName()); map.put("info",userInfo); // 修改用户最后登录时间 SysUser sysUser = new SysUser(); diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java index a6d2b55..2f32d25 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java @@ -25,7 +25,7 @@ /** * 参数签名 */ - public static final String SING = "sing"; + public static final String SIGN = "sign"; /** * 参数随机字符串 diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserAppletException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserAppletException.java new file mode 100644 index 0000000..b8da2e9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserAppletException.java @@ -0,0 +1,48 @@ +package com.ruoyi.common.core.exception.user; + +/** + * 学生端登录异常信息 + * + * @author HJL + * @version 1.0 + * @since 2024-05-24 11:35 + */ +public class UserAppletException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + /** + * 错误提示 + */ + private String message; + + /** + * 错误码 + */ + private int code; + + public UserAppletException() { + } + + public UserAppletException(String message, Integer code) { + this.message = message; + this.code = code; + } + + @Override + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } +} diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java index a9cb1b7..262a05f 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java @@ -3,6 +3,8 @@ import javax.naming.SizeLimitExceededException; import javax.servlet.http.HttpServletRequest; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.exception.user.UserAppletException; import org.apache.commons.fileupload.FileUploadBase; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -151,4 +153,12 @@ log.error("上传文件异常 => : {}", e.getMessage()); return AjaxResult.error("文件识别大小超出限制,允许的大小在" + maxFileSize); } + + /** + * 学生端单点登录-异常信息 + */ + @ExceptionHandler(UserAppletException.class) + public AjaxResult<String> studyLoginExceptionHandler(UserAppletException e) { + return AjaxResult.error(e.getCode(), e.getMessage()); + } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java index 2d7cae5..d2bff49 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java @@ -5,6 +5,7 @@ import java.util.concurrent.TimeUnit; import javax.servlet.http.HttpServletRequest; +import com.ruoyi.common.core.exception.user.UserAppletException; import com.ruoyi.system.api.model.LoginUserApplet; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -88,7 +89,11 @@ return rspMap; } public LoginUserApplet getLoginUserApplet() { - return getLoginUserAppletToken(ServletUtils.getRequest()); + LoginUserApplet loginUserAppletToken = getLoginUserAppletToken(ServletUtils.getRequest()); + if (loginUserAppletToken == null){ + throw new UserAppletException("登录失效,请重新登录!", 401); + } + return loginUserAppletToken; } public LoginUserApplet getLoginUserAppletToken(HttpServletRequest request) { // 获取请求携带的令牌 diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java index ccc99f7..6c20c07 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java @@ -31,7 +31,7 @@ /** * 这里为支持的请求头,如果有自定义的header字段请自己添加 */ - private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, request-origion"; + private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, request-origion, sign, nonce_str"; private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD"; private static final String ALLOWED_ORIGIN = "*"; private static final String ALLOWED_EXPOSE = "*"; diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java index c8b573a..0fe0de6 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java @@ -67,16 +67,16 @@ if(method != HttpMethod.POST){ return chain.filter(exchange.mutate().request(mutate.build()).build()); } - String sing = request.getHeaders().getFirst(TokenConstants.SING); + String sign = request.getHeaders().getFirst(TokenConstants.SIGN); String nonce_str = request.getHeaders().getFirst(TokenConstants.NONCE_STR); -// if (parameter_signature && StringUtils.isEmpty(sing)) { -// return unauthorizedResponse(exchange, "签名不能为空!"); -// } -// if (parameter_signature && StringUtils.isEmpty(nonce_str)) { -// return unauthorizedResponse(exchange, "签名不能为空!"); -// } + if (parameter_signature && StringUtils.isEmpty(sign)) { + return unauthorizedResponse(exchange, "签名不能为空!"); + } + if (parameter_signature && StringUtils.isEmpty(nonce_str)) { + return unauthorizedResponse(exchange, "签名不能为空!"); + } if(parameter_signature){ - return authSign(exchange, chain, sing, nonce_str); + return authSign(exchange, chain, sign, nonce_str); } return chain.filter(exchange.mutate().request(mutate.build()).build()); } @@ -93,14 +93,14 @@ * 校验签名 * @return */ - private Mono<Void> authSign(ServerWebExchange exchange, GatewayFilterChain chain, String sing, String nonce_str){ + private Mono<Void> authSign(ServerWebExchange exchange, GatewayFilterChain chain, String sign, String nonce_str){ return DataBufferUtils.join(exchange.getRequest().getBody()) .flatMap(dataBuffer -> { byte[] bytes = new byte[dataBuffer.readableByteCount()]; dataBuffer.read(bytes); String bodyString = new String(bytes, StandardCharsets.UTF_8); log.info("请求参数:{}", bodyString); - if(!authSign(JSON.parseObject(bodyString), sing, nonce_str)){ + if(!authSign(JSON.parseObject(bodyString), sign, nonce_str)){ return unauthorizedResponse(exchange, "签名验证失败!"); } DataBufferUtils.release(dataBuffer); @@ -129,11 +129,12 @@ private boolean authSign(JSONObject jsonStr, String sign, String nonce_str) { String signUrlEncode = localSignUrl(jsonStr, nonce_str); signUrlEncode = signUrlEncode.replaceAll("& #40;", "\\(") - .replaceAll("& #41;", "\\)") - .replaceAll("\\+", " "); + .replaceAll("& #41;", "\\)"); if(sign.equals(signUrlEncode)){ return true; } + + System.err.println("签名值:" + signUrlEncode); return false; } @@ -161,6 +162,7 @@ } } String signUrl = sb.substring(0, sb.length() - 1); + System.err.println("签名串:" + signUrl); return signUrlEncode(signUrl, key); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java index b22299a..1ab7ca1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java @@ -314,7 +314,7 @@ * @return */ @ResponseBody - @GetMapping(value = "/getSysRoleByIds") + @PostMapping(value = "/getSysRoleByIds") public R<List<SysRole>> getSysRoleByIds(@RequestBody GetSysRoleByIds ids){ List<SysRole> sysRoleByIds = roleService.getSysRoleByIds(ids.getIds()); return R.ok(sysRoleByIds); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index 20f1847..bc9e7b5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -595,7 +595,7 @@ * @param userId * @return */ - @GetMapping("/queryRoleByUserId/{userId}") + @PostMapping("/queryRoleByUserId/{userId}") public R<SysRole> queryRoleByUserId(@PathVariable("userId") Long userId){ SysUserRole one = sysUserRoleService.getOne(Wrappers.lambdaQuery(SysUserRole.class) .eq(SysUserRole::getUserId, userId) @@ -611,7 +611,7 @@ } - @GetMapping("/queryRoleByRoleId/{roleId}") + @PostMapping("/queryRoleByRoleId/{roleId}") public R<SysRole> queryRoleByRoleId(@PathVariable("roleId") Long roleId){ return R.ok( roleService.getOne(Wrappers.lambdaQuery(SysRole.class) .eq(SysRole::getRoleId, roleId) diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml index a22d9b5..f28abf0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -8,10 +8,7 @@ <id property="roleId" column="role_id" /> <result property="roleName" column="role_name" /> <result property="roleKey" column="role_key" /> - <result property="roleSort" column="role_sort" /> <result property="dataScope" column="data_scope" /> - <result property="menuCheckStrictly" column="menu_check_strictly" /> - <result property="deptCheckStrictly" column="dept_check_strictly" /> <result property="status" column="status" /> <result property="delFlag" column="del_flag" /> <result property="createBy" column="create_by" /> @@ -22,8 +19,8 @@ </resultMap> <sql id="selectRoleVo"> - select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly, - r.status, r.del_flag, r.create_time, r.remark ,r.carDataAuth,r.carTrainOperAuth,r.contractDataAuth + select distinct r.role_id, r.role_name, r.role_key, r.data_scope, + r.status, r.del_flag, r.create_time, r.remark from sys_role r left join sys_user_role ur on ur.role_id = r.role_id left join sys_user u on u.user_id = ur.user_id @@ -53,7 +50,6 @@ </if> <!-- 数据范围过滤 --> ${params.dataScope} - order by r.role_sort </select> <select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult"> @@ -167,9 +163,11 @@ <select id="getSysRoleByIds" resultMap="SysRoleResult"> <include refid="selectRoleVo"/> - where id in - <foreach collection="ids" item="item" index="index" separator="," open="(" close=")"> - #{item} - </foreach> + <if test="null != ids and ids.size() > 0"> + where r.id in + <foreach collection="ids" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </if> </select> </mapper> \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 2b11d94..4446573 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -43,7 +43,6 @@ <id property="roleId" column="role_id" /> <result property="roleName" column="role_name" /> <result property="roleKey" column="role_key" /> - <result property="roleSort" column="role_sort" /> <result property="dataScope" column="data_scope" /> <result property="status" column="role_status" /> </resultMap> @@ -51,7 +50,7 @@ <sql id="selectUserVo"> select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, - r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status ,u.roleType as roleType,u.objectId AS objectId + r.role_id, r.role_name, r.role_key, r.data_scope, r.status as role_status ,u.roleType as roleType,u.objectId AS objectId from sys_user u left join sys_dept d on u.dept_id = d.dept_id left join sys_user_role ur on u.user_id = ur.user_id diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java index a85603f..2bf8d35 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java @@ -16,6 +16,7 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.security.service.TokenService; import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.feignClient.OtherClient; import io.swagger.annotations.ApiModelProperty; @@ -48,6 +49,8 @@ @Autowired private TAppUserCarService appUserCarService; + @Autowired + private TokenService tokenService; /** * 查询用户可用优惠券数量 * @param dto @@ -68,7 +71,7 @@ public AjaxResult<List<TAppUserCar>> carList() { // todo 用户id List<TAppUserCar> appUserId = appUserCarService.list(new QueryWrapper<TAppUserCar>() - .eq("app_user_id", 11)); + .eq("app_user_id",tokenService.getLoginUserApplet().getUserid() )); return AjaxResult.ok(appUserId); } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java index f1bb29d..277bfdd 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.account.api.model.TAppUserAddress; import com.ruoyi.account.service.TAppUserAddressService; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -72,6 +73,18 @@ public AjaxResult<Boolean> deleteById(@RequestParam("id") Integer id) { return AjaxResult.ok(appUserAddressService.removeById(id)); } - + + + /** + * 根据id获取地址信息 + * @param id + * @return + */ + @PostMapping(value = "/getAppUserAddressById/{id}") + public R<TAppUserAddress> getAppUserAddressById(@PathVariable Long id){ + TAppUserAddress userAddress = appUserAddressService.getById(id); + return R.ok(userAddress); + } + } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java index 7a4479f..d438eb7 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java @@ -34,7 +34,7 @@ * @return */ @PostMapping(value = "/t-app-user-car/getCarByIds") - public R<List<TAppUserCar>> getCarByIds(@RequestBody List<Integer> carIds){ + public R<List<TAppUserCar>> getCarByIds(@RequestBody List<Long> carIds){ return R.ok(appUserCarService.list(Wrappers.lambdaQuery(TAppUserCar.class).in(TAppUserCar::getId,carIds))); } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java index 839c64a..f8237ff 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java @@ -355,10 +355,23 @@ * @param id * @return */ - @GetMapping(value = "/user/getUserById/{id}") + @PostMapping(value = "/user/getUserById/{id}") public R<TAppUser> getUserById(@PathVariable Long id){ TAppUser appUser = appUserService.getById(id); return R.ok(appUser); } + + + /** + * 修改用户信息 + * @param appUser + * @return + */ + @ResponseBody + @PostMapping("/user/updateAppUser") + public R updateAppUser(@RequestBody TAppUser appUser){ + appUserService.updateById(appUser); + return R.ok(); + } } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java index acea96c..b721c52 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java @@ -1,8 +1,15 @@ package com.ruoyi.account.controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.account.api.model.TAppUserIntegralChange; +import com.ruoyi.account.service.TAppUserIntegralChangeService; +import com.ruoyi.common.core.domain.R; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; /** * <p> @@ -16,5 +23,22 @@ @RequestMapping("/t-app-user-integral-change") public class TAppUserIntegralChangeController { + @Resource + private TAppUserIntegralChangeService appUserIntegralChangeService; + + + /** + * 添加积分变动记录 + * @param appUserIntegralChange + * @return + */ + @ResponseBody + @PostMapping("/addAppUserIntegralChange") + public R addAppUserIntegralChange(@RequestBody TAppUserIntegralChange appUserIntegralChange){ + String code = Math.random() * 1000 + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); + appUserIntegralChange.setCode(code); + appUserIntegralChangeService.save(appUserIntegralChange); + return R.ok(); + } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java index 6ef7c88..e9f4b05 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java @@ -3,9 +3,12 @@ import com.ruoyi.chargingPile.api.dto.TChargingGunDTO; import com.ruoyi.chargingPile.api.model.TChargingGun; +import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.chargingPile.api.query.TChargingGunQuery; import com.ruoyi.chargingPile.api.vo.TChargingGunVO; import com.ruoyi.chargingPile.service.TChargingGunService; +import com.ruoyi.chargingPile.service.TChargingPileService; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.log.annotation.Log; @@ -16,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -33,6 +37,9 @@ public class TChargingGunController { private final TChargingGunService chargingGunService; + + @Resource + private TChargingPileService chargingPileService; @Autowired public TChargingGunController(TChargingGunService chargingGunService) { @@ -118,5 +125,32 @@ public void downloadQRCode(@PathVariable Integer id, HttpServletResponse response){ // todo 待完善 } + + + /** + * 根据id获取充电枪完整名称 + * @param id + * @return + */ + @ResponseBody + @PostMapping(value = "/getAllName/{id}") + public R<String> getAllName(@PathVariable Integer id){ + TChargingGun chargingGun = chargingGunService.getById(id); + TChargingPile chargingPile = chargingPileService.getById(chargingGun.getChargingPileId()); + return R.ok(chargingPile.getName() + chargingGun.getName()); + } + + + /** + * 根据id获取充电枪详情 + * @param id + * @return + */ + @ResponseBody + @PostMapping(value = "/getChargingGunById/{id}") + public R<TChargingGun> getChargingGunById(@PathVariable Integer id){ + TChargingGun chargingGun = chargingGunService.getById(id); + return R.ok(chargingGun); + } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java index 8be1229..11b8807 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java @@ -80,7 +80,6 @@ } - @ResponseBody @GetMapping("/pageChargingPileList") @ApiOperation(value = "获取充电桩列表数据", tags = {"管理后台-充电桩信息"}) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java index 3ad4a91..aca8121 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java @@ -130,7 +130,7 @@ /** * 通过站点id查询停车场信息 */ - @GetMapping(value = "/getLotBySiteId") + @PostMapping(value = "/getLotBySiteId") public R<TParkingLot> getLotBySiteId(@RequestParam("siteId") Integer siteId){ return R.ok(parkingLotService.getOne(Wrappers.lambdaQuery(TParkingLot.class) .eq(TParkingLot::getSiteId, siteId))); diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java index 212b792..fda8e8f 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java @@ -420,7 +420,7 @@ Integer id = gunMonitoring.getId(); //根据订单数据查询车牌号 TChargingOrder chargingOrder = chargingOrderClient.getOrderDetailByGunId(id).getData(); - Integer appUserCarId = chargingOrder.getAppUserCarId(); + Long appUserCarId = chargingOrder.getAppUserCarId(); if(null != appUserCarId){ TAppUserCar tAppUserCar = appUserCarClient.getCarByIds(Arrays.asList(appUserCarId)).getData().get(0); gunMonitoring.setLicensePlate(tAppUserCar.getLicensePlate()); diff --git a/ruoyi-service/ruoyi-order/pom.xml b/ruoyi-service/ruoyi-order/pom.xml index 3488348..193649c 100644 --- a/ruoyi-service/ruoyi-order/pom.xml +++ b/ruoyi-service/ruoyi-order/pom.xml @@ -60,7 +60,12 @@ <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> - + + <dependency> + <groupId>com.alibaba.cloud</groupId> + <artifactId>spring-cloud-starter-alibaba-seata</artifactId> + </dependency> + <!-- SpringBoot Actuator --> <dependency> <groupId>org.springframework.boot</groupId> diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderAccountingStrategyController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderAccountingStrategyController.java index eb4fe5b..b24aa02 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderAccountingStrategyController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderAccountingStrategyController.java @@ -34,7 +34,7 @@ * @return */ @ResponseBody - @GetMapping("/getTotalElectricQuantity/{days}") + @PostMapping("/getTotalElectricQuantity/{days}") public R<List<List<Map<String, Object>>>> getTotalElectricQuantity(@PathVariable Integer days, @RequestParam("siteIds") Set<Integer> siteIds){ List<List<Map<String, Object>>> list = chargingOrderAccountingStrategyService.getTotalElectricQuantity(days, siteIds); return R.ok(list); @@ -47,7 +47,7 @@ * @return */ @ResponseBody - @GetMapping("/getDailyChargingDegree/{days}") + @PostMapping("/getDailyChargingDegree/{days}") public R<List<Double>> getDailyChargingDegree(@PathVariable Integer days, @RequestParam("siteIds") Set<Integer> siteIds){ List<Double> list = chargingOrderAccountingStrategyService.getDailyChargingDegree(days, siteIds); return R.ok(list); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java index 075ac4a..9b405c1 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java @@ -3,13 +3,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.BasePage; +import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.query.TChargingCountQuery; +import com.ruoyi.order.dto.GetMyChargingOrderList; +import com.ruoyi.order.dto.MyChargingOrderInfo; import com.ruoyi.order.service.TChargingOrderService; import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; +import java.util.Map; import java.util.List; /** @@ -27,6 +37,8 @@ @Resource private TChargingOrderService chargingOrderService; + @Autowired + private TokenService tokenService; /** * 查询用户最近一次充电记录使用的车辆 * @param @@ -34,9 +46,8 @@ */ @PostMapping(value = "/getCar") public R<Long> getCar() { - // todo 获取用户id List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>() - .eq(TChargingOrder::getAppUserId, 11) + .eq(TChargingOrder::getAppUserId, tokenService.getLoginUserApplet().getUserid()) .isNotNull(TChargingOrder::getAppUserCarId)); if (!list.isEmpty()){ // 最近使用的车辆id @@ -78,11 +89,31 @@ * @param chargingGunId 充电枪id * @return */ - @GetMapping(value = "/getOrderDetailByGunId") + @PostMapping(value = "/getOrderDetailByGunId") public R<TChargingOrder> getOrderDetailByGunId(@RequestParam("chargingGunId") Integer chargingGunId){ TChargingOrder one = chargingOrderService.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getChargingGunId, chargingGunId) .eq(TChargingOrder::getDelFlag, 0).eq(TChargingOrder::getStatus, 3)); return R.ok(one); } + + + + + @ResponseBody + @GetMapping(value = "/getMyChargingOrderList") + @ApiOperation(value = "获取充电记录列表", tags = {"小程序-充电记录"}) + public AjaxResult<Map<String, Object>> getMyChargingOrderList(GetMyChargingOrderList query){ + Map<String, Object> orderList = chargingOrderService.getMyChargingOrderList(query); + return AjaxResult.success(orderList); + } + + + @ResponseBody + @GetMapping(value = "/getMyChargingOrderInfo") + @ApiOperation(value = "获取充电记订单明细", tags = {"小程序-充电记录"}) + public AjaxResult<MyChargingOrderInfo> getMyChargingOrderInfo(String id){ + MyChargingOrderInfo myChargingOrderInfo = chargingOrderService.getMyChargingOrderInfo(id); + return AjaxResult.success(myChargingOrderInfo); + } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java index 0208eb3..d5dc5e8 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java @@ -6,26 +6,25 @@ import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.web.page.PageInfo; -import com.ruoyi.order.api.model.TChargingOrder; +import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.order.api.model.TExchangeOrder; import com.ruoyi.order.api.model.TShoppingOrder; import com.ruoyi.order.api.query.TActivityStatisticsQuery; -import com.ruoyi.order.api.vo.TActivityStatisticslVO; import com.ruoyi.order.api.vo.TActivityVO; +import com.ruoyi.order.dto.ExchangeOrderGoodsInfo; +import com.ruoyi.order.dto.GetMyExchangeOrder; +import com.ruoyi.order.dto.MyExchangeOrderList; import com.ruoyi.order.service.TChargingOrderService; import com.ruoyi.order.service.TExchangeOrderService; import com.ruoyi.order.service.TShoppingOrderService; import com.ruoyi.order.service.TVipOrderService; -import com.ruoyi.order.service.impl.TChargingOrderServiceImpl; import io.swagger.annotations.Api; -import io.swagger.models.auth.In; -import org.springframework.beans.factory.annotation.Autowired; +import io.swagger.annotations.ApiOperation; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -41,17 +40,14 @@ @RestController @RequestMapping("/t-exchange-order") public class TExchangeOrderController { - @Autowired + @Resource private TShoppingOrderService tShoppingOrderService; - @Autowired + @Resource private TExchangeOrderService exchangeOrderService; - @Autowired - private TChargingOrderService chargingOrderService; - @Autowired - private TVipOrderService vipOrderService; - @Autowired + + @Resource private AppUserClient appUserClient; - @Autowired + @Resource private ChargingPileClient chargingPileClient; /** * 管理后台 活动费用统计 @@ -148,11 +144,27 @@ return R.ok(strings); } - /** - * 管理后台 根据t_app_coupon订单ids查询积分兑换优惠券的订单编号 - * @param goodsIds 订单号-商品类型 - * @return - */ - + + + + + + + @GetMapping("/getMyExchangeOrder") + @ApiOperation(value = "获取兑换记录列表", tags = {"小程序-兑换记录"}) + public AjaxResult<List<MyExchangeOrderList>> getMyExchangeOrder(GetMyExchangeOrder query){ + List<MyExchangeOrderList> list = exchangeOrderService.getMyExchangeOrder(query); + return AjaxResult.success(list); + } + + + + @GetMapping("/getGoodsExchangeOrder/{id}") + @ApiOperation(value = "获取兑换订单详情", tags = {"小程序-兑换记录"}) + public AjaxResult<ExchangeOrderGoodsInfo> getGoodsExchangeOrder(@PathVariable String id){ + ExchangeOrderGoodsInfo goodsExchangeOrder = exchangeOrderService.getGoodsExchangeOrder(id); + return AjaxResult.success(goodsExchangeOrder); + } + } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java index d1615ae..9188660 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java @@ -4,6 +4,8 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.order.api.model.TOrderAppeal; import com.ruoyi.order.api.query.TOrderAppealQuery; import com.ruoyi.order.api.vo.TOrderAppealVO; import com.ruoyi.order.service.TOrderAppealService; @@ -53,8 +55,18 @@ public AjaxResult<TOrderAppealVO> getDetailById(@RequestParam("id") Integer id) { return AjaxResult.ok(orderAppealService.getDetailById(id)); } - - - + + + + @ResponseBody + @GetMapping(value = "/addOrderAppeal") + @ApiOperation(value = "申诉订单", tags = {"小程序-充电记录(个人中心)"}) + public AjaxResult addOrderAppeal(@RequestBody TOrderAppeal orderAppeal){ + Long appUserId = tokenService.getLoginUser().getUserid(); + orderAppeal.setAppUserId(appUserId); + orderAppeal.setStatus(1); + orderAppealService.save(orderAppeal); + return AjaxResult.success(); + } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java index 844f56e..977579c 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java @@ -9,11 +9,10 @@ import com.ruoyi.order.api.vo.TOrderEvaluateVO; import com.ruoyi.order.dto.GetOrderEvaluatePageList; import com.ruoyi.order.dto.GetOrderEvaluatePageListDTO; +import com.ruoyi.order.dto.OrderEvaluateVo; import com.ruoyi.order.service.TOrderEvaluateService; import com.ruoyi.other.api.vo.TEvaluationTagVO; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -111,6 +110,28 @@ public AjaxResult<SiteDetailEvaluateVO> getSiteDetailEveList(@RequestParam(value = "siteId")@ApiParam(value = "站点id")Integer siteId) { return AjaxResult.ok(orderEvaluateService.getSiteDetailEveList(siteId)); } - + + + + + @PostMapping(value = "/addOrderEvaluate") + @ApiOperation(value = "添加评价记录", tags = {"小程序-充电记录"}) + public AjaxResult addOrderEvaluate(@RequestBody OrderEvaluateVo query){ + return orderEvaluateService.addOrderEvaluate(query); + } + + + @GetMapping(value = "/getOrderEvaluate") + @ApiOperation(value = "获取订单评价详情", tags = {"小程序-充电记录"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true), + @ApiImplicitParam(value = "订单类型(1=充电订单,2=购物订单,3=兑换订单,4=会员订单)", name = "orderType", required = true), + }) + public AjaxResult<OrderEvaluateVo> getOrderEvaluate(@PathVariable Integer orderId, Integer orderType){ + OrderEvaluateVo orderEvaluate = orderEvaluateService.getOrderEvaluate(orderId, orderType); + return AjaxResult.success(orderEvaluate); + } + + } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ExchangeOrderGoodsInfo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ExchangeOrderGoodsInfo.java new file mode 100644 index 0000000..bb080b4 --- /dev/null +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ExchangeOrderGoodsInfo.java @@ -0,0 +1,54 @@ +package com.ruoyi.order.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2024/8/16 14:07 + */ +@Data +@ApiModel +public class ExchangeOrderGoodsInfo { + @ApiModelProperty("订单id") + private String id; + @ApiModelProperty("状态(1=待发货,2=待收货,3=已完成,4=已取消)") + private Integer status; + @ApiModelProperty("收货人姓名") + private String consignee; + @ApiModelProperty("电话") + private String phone; + @ApiModelProperty("地址") + private String address; + @ApiModelProperty("快递公司") + private String expressCompany; + @ApiModelProperty("快递单号") + private String expressNumber; + @ApiModelProperty("商品名称") + private String name; + @ApiModelProperty("商品图片") + private String imgUrl; + @ApiModelProperty("兑换数量") + private Integer purchaseQuantity; + @ApiModelProperty("兑换积分单价") + private Integer unitPoints; + @ApiModelProperty("订单编号") + private String code; + @ApiModelProperty("下单时间") + private String createTime; + @ApiModelProperty("兑换总积分") + private Integer points; + @ApiModelProperty("备注") + private String remark; + @ApiModelProperty("发货时间") + private String deliveryTime; + @ApiModelProperty("完成时间") + private String finishTime; + @ApiModelProperty("优惠券类型(1=充电优惠券,2=购物优惠券)") + private Integer couponType; + @ApiModelProperty("优惠券有效天数") + private Integer days; + @ApiModelProperty("有效期截止时间") + private String endTime; +} diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyChargingOrderList.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyChargingOrderList.java new file mode 100644 index 0000000..5e8e9eb --- /dev/null +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyChargingOrderList.java @@ -0,0 +1,17 @@ +package com.ruoyi.order.dto; + +import com.ruoyi.common.core.web.page.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2024/8/15 19:11 + */ +@Data +@ApiModel +public class GetMyChargingOrderList extends BasePage { + @ApiModelProperty("0=全部,1=待评价") + private Integer type; +} diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyExchangeOrder.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyExchangeOrder.java new file mode 100644 index 0000000..64520c0 --- /dev/null +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyExchangeOrder.java @@ -0,0 +1,17 @@ +package com.ruoyi.order.dto; + +import com.ruoyi.common.core.web.page.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2024/8/16 13:34 + */ +@Data +@ApiModel +public class GetMyExchangeOrder extends BasePage { + @ApiModelProperty("状态(0=全部,1=待发货,2=待收货,3=已完成)") + private Integer status; +} diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderInfo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderInfo.java new file mode 100644 index 0000000..65d4294 --- /dev/null +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderInfo.java @@ -0,0 +1,59 @@ +package com.ruoyi.order.dto; + +import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +/** + * @author zhibing.pu + * @Date 2024/8/16 9:08 + */ +@Data +@ApiModel +public class MyChargingOrderInfo { + @ApiModelProperty("订单id") + private String id; + @ApiModelProperty("订单编号") + private String code; + @ApiModelProperty("订单时间") + private String createTime; + @ApiModelProperty("订单状态(0=未知,1=等待中,2=启动中,3=充电中,4=停止中,5=已结束)") + private Integer status; + @ApiModelProperty("订单标题") + private String title; + @ApiModelProperty("充电模式(1=超级快充,2=快充,3=慢充)") + private Integer chargeMode; + @ApiModelProperty("充电枪名称") + private String name; + @ApiModelProperty("车牌号") + private String licensePlate; + @ApiModelProperty("充电开始时间") + private Long startTime; + @ApiModelProperty("充电结束时间") + private Long endTime; + @ApiModelProperty("充电费") + private BigDecimal orderAmount; + @ApiModelProperty("实际消费") + private BigDecimal paymentAmount;; + @ApiModelProperty("充值金额") + private BigDecimal rechargeAmount; + @ApiModelProperty("优惠券抵扣") + private BigDecimal couponDiscountAmount; + @ApiModelProperty("会员抵扣") + private BigDecimal vipDiscountAmount; + @ApiModelProperty("退回金额") + private BigDecimal refundAmount; + @ApiModelProperty("阶段费用明细") + private List<TChargingOrderAccountingStrategy> stageCost; + @ApiModelProperty("电流电压曲线") + private Map<String, Object> currentAndVoltage; + @ApiModelProperty("功率曲线") + private Map<String, Object> power; + @ApiModelProperty("是否可申诉(0=否,1=是)") + private Integer actionable; +} diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderList.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderList.java new file mode 100644 index 0000000..e38ea6e --- /dev/null +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderList.java @@ -0,0 +1,32 @@ +package com.ruoyi.order.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author zhibing.pu + * @Date 2024/8/15 18:59 + */ +@Data +@ApiModel +public class MyChargingOrderList { + @ApiModelProperty("订单id") + private String id; + @ApiModelProperty("订单状态(0=未知,1=等待中,2=启动中,3=充电中,4=停止中,5=已结束)") + private Integer status; + @ApiModelProperty("标题") + private String title; + @ApiModelProperty("充电度数") + private BigDecimal chargingDegree; + @ApiModelProperty("充电桩枪名称") + private String name; + @ApiModelProperty("结束方式(0=异常终止,1=主动终止,2=满电终止,3=费用不足终止)") + private Integer endMode; + @ApiModelProperty("支付金额") + private BigDecimal payMoney; + @ApiModelProperty("订单时间") + private String createTime; +} diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyExchangeOrderList.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyExchangeOrderList.java new file mode 100644 index 0000000..6f4c588 --- /dev/null +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyExchangeOrderList.java @@ -0,0 +1,30 @@ +package com.ruoyi.order.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2024/8/16 13:36 + */ +@Data +@ApiModel +public class MyExchangeOrderList { + @ApiModelProperty("订单id") + private String id; + @ApiModelProperty("兑换积分单价") + private Integer unitPoints; + @ApiModelProperty("兑换总积分") + private Integer points; + @ApiModelProperty("兑换数量") + private Integer purchaseQuantity; + @ApiModelProperty("订单类型(1=商品,2=优惠券)") + private Integer orderType; + @ApiModelProperty("状态(1=待发货,2=待收货,3=已完成,4=已取消)") + private Integer status; + @ApiModelProperty("名称") + private String name; + @ApiModelProperty("图片") + private String imgUrl; +} diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/OrderEvaluateVo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/OrderEvaluateVo.java new file mode 100644 index 0000000..bcbd782 --- /dev/null +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/OrderEvaluateVo.java @@ -0,0 +1,23 @@ +package com.ruoyi.order.dto; + +import com.ruoyi.order.api.model.TOrderEvaluate; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2024/8/16 10:25 + */ +@Data +@ApiModel +public class OrderEvaluateVo extends TOrderEvaluate { + @ApiModelProperty("评价标签id") + private List<Integer> tagIds; + + @ApiModelProperty("评价标签名称") + private List<String> tagName; + +} diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java index 2d6a017..1b186da 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java @@ -4,6 +4,9 @@ import com.ruoyi.order.api.model.TChargingOrder; import org.apache.ibatis.annotations.Mapper; +import java.util.List; +import java.util.Map; + /** * <p> * Mapper 接口 @@ -14,5 +17,15 @@ */ @Mapper public interface TChargingOrderMapper extends BaseMapper<TChargingOrder> { - + + + /** + * 获取小程序充电记录列表数据 + * @param appUserId + * @param type + * @param pageCurr + * @param pageSize + * @return + */ + List<TChargingOrder> getMyChargingOrderList(Long appUserId, Integer type, Integer pageCurr, Integer pageSize); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java index 5650b83..d5e9755 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java @@ -1,7 +1,12 @@ package com.ruoyi.order.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.order.api.model.TChargingOrder; +import com.ruoyi.order.dto.GetMyChargingOrderList; +import com.ruoyi.order.dto.MyChargingOrderInfo; + +import java.util.Map; /** * <p> @@ -12,5 +17,20 @@ * @since 2024-08-07 */ public interface TChargingOrderService extends IService<TChargingOrder> { - + + + /** + * 获取小程序充电记录列表数据 + * @param query + * @return + */ + Map<String, Object> getMyChargingOrderList(GetMyChargingOrderList query); + + + /** + * 获取小程序充电记录明细 + * @param id + * @return + */ + MyChargingOrderInfo getMyChargingOrderInfo(String id); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TExchangeOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TExchangeOrderService.java index 9246415..baf7452 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TExchangeOrderService.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TExchangeOrderService.java @@ -2,6 +2,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.order.api.model.TExchangeOrder; +import com.ruoyi.order.dto.ExchangeOrderGoodsInfo; +import com.ruoyi.order.dto.GetMyExchangeOrder; +import com.ruoyi.order.dto.MyExchangeOrderList; + +import java.util.List; /** * <p> @@ -12,5 +17,20 @@ * @since 2024-08-07 */ public interface TExchangeOrderService extends IService<TExchangeOrder> { - + + + /** + * 获取小程序兑换记录 + * @param query + * @return + */ + List<MyExchangeOrderList> getMyExchangeOrder(GetMyExchangeOrder query); + + + /** + * 获取兑换订单详情 + * @param id + * @return + */ + ExchangeOrderGoodsInfo getGoodsExchangeOrder(String id); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java index 534d681..3098ba9 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java @@ -1,6 +1,7 @@ package com.ruoyi.order.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.order.api.model.TOrderEvaluate; import com.ruoyi.order.api.query.TOrderEvaluateQuery; @@ -8,7 +9,9 @@ import com.ruoyi.order.api.vo.TOrderEvaluateVO; import com.ruoyi.order.dto.GetOrderEvaluatePageList; import com.ruoyi.order.dto.GetOrderEvaluatePageListDTO; +import com.ruoyi.order.dto.OrderEvaluateVo; import com.ruoyi.other.api.vo.TEvaluationTagVO; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -50,4 +53,20 @@ * @return */ PageInfo<GetOrderEvaluatePageListDTO> getPageList(GetOrderEvaluatePageList pageList); + + + /** + * 评价订单 + * @param query + * @return + */ + AjaxResult addOrderEvaluate(OrderEvaluateVo query); + + + /** + * 根据订单id获取 + * @param orderId + * @return + */ + OrderEvaluateVo getOrderEvaluate(Integer orderId, Integer orderType); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index de40f2c..f189465 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -1,10 +1,33 @@ package com.ruoyi.order.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.account.api.feignClient.AppUserCarClient; +import com.ruoyi.account.api.model.TAppUserCar; +import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; +import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; +import com.ruoyi.chargingPile.api.feignClient.SiteClient; +import com.ruoyi.chargingPile.api.model.Site; +import com.ruoyi.chargingPile.api.model.TChargingGun; +import com.ruoyi.common.core.web.page.BasePage; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.api.model.TChargingOrder; +import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy; +import com.ruoyi.order.dto.GetMyChargingOrderList; +import com.ruoyi.order.dto.MyChargingOrderInfo; +import com.ruoyi.order.dto.MyChargingOrderList; import com.ruoyi.order.mapper.TChargingOrderMapper; +import com.ruoyi.order.service.TChargingOrderAccountingStrategyService; import com.ruoyi.order.service.TChargingOrderService; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.*; /** * <p> @@ -16,5 +39,102 @@ */ @Service public class TChargingOrderServiceImpl extends ServiceImpl<TChargingOrderMapper, TChargingOrder> implements TChargingOrderService { - + + @Resource + private ChargingGunClient chargingGunClient; + + @Resource + private SiteClient siteClient; + + @Resource + private AppUserCarClient appUserCarClient; + + @Resource + private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService; + + @Resource + private TokenService tokenService; + + + + + /** + * 获取小程序充电记录列表数据 + * @param query + * @return + */ + @Override + public Map<String, Object> getMyChargingOrderList(GetMyChargingOrderList query) { + Long appUserId = tokenService.getLoginUser().getUserid(); + Map<String, Object> map = new HashMap<>(); + int size = this.baseMapper.getMyChargingOrderList(appUserId, 1, null, null).size(); + map.put("number", size); + List<TChargingOrder> list = this.baseMapper.getMyChargingOrderList(appUserId, query.getType(), query.getPageCurr(), query.getPageSize()); + List<MyChargingOrderList> orderLists = new ArrayList<>(); + for (TChargingOrder tChargingOrder : list) { + MyChargingOrderList myChargingOrderList = new MyChargingOrderList(); + myChargingOrderList.setId(tChargingOrder.getId().toString()); + myChargingOrderList.setStatus(tChargingOrder.getStatus()); + Site site = siteClient.getSiteByIds(Arrays.asList(tChargingOrder.getSiteId())).getData().get(0); + myChargingOrderList.setTitle(site.getName()); + myChargingOrderList.setChargingDegree(tChargingOrder.getChargingCapacity()); + String name = chargingGunClient.getAllName(tChargingOrder.getChargingGunId()).getData(); + myChargingOrderList.setName(name); + myChargingOrderList.setEndMode(tChargingOrder.getEndMode()); + BigDecimal payMoney = tChargingOrder.getStatus() < 4 ? tChargingOrder.getRechargeAmount() : tChargingOrder.getPaymentAmount(); + myChargingOrderList.setPayMoney(payMoney); + myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + orderLists.add(myChargingOrderList); + } + map.put("list", orderLists); + return map; + } + + + /** + * 获取充电订单明细 + * @param id 订单id + * @return + */ + @Override + public MyChargingOrderInfo getMyChargingOrderInfo(String id) { + TChargingOrder chargingOrder = this.getById(id); + MyChargingOrderInfo myChargingOrderInfo = new MyChargingOrderInfo(); + myChargingOrderInfo.setId(id); + myChargingOrderInfo.setCode(chargingOrder.getCode()); + myChargingOrderInfo.setCreateTime(chargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + myChargingOrderInfo.setStatus(chargingOrder.getStatus()); + Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0); + myChargingOrderInfo.setTitle(site.getName()); + TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); + myChargingOrderInfo.setChargeMode(chargingGun.getChargeMode()); + String name = chargingGunClient.getAllName(chargingOrder.getChargingGunId()).getData(); + myChargingOrderInfo.setName(name); + if(null != chargingOrder.getAppUserCarId()){ + TAppUserCar tAppUserCar = appUserCarClient.getCarByIds(Arrays.asList(chargingOrder.getAppUserCarId())).getData().get(0); + myChargingOrderInfo.setLicensePlate(tAppUserCar.getLicensePlate()); + }else{ + myChargingOrderInfo.setLicensePlate("无"); + } + myChargingOrderInfo.setStartTime(chargingOrder.getStartTime().toInstant(ZoneOffset.of("+8")).toEpochMilli()); + myChargingOrderInfo.setEndTime(chargingOrder.getEndTime().toInstant(ZoneOffset.of("+8")).toEpochMilli()); + myChargingOrderInfo.setOrderAmount(chargingOrder.getOrderAmount()); + myChargingOrderInfo.setPaymentAmount(chargingOrder.getPaymentAmount()); + myChargingOrderInfo.setRechargeAmount(chargingOrder.getRechargeAmount()); + myChargingOrderInfo.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount()); + myChargingOrderInfo.setVipDiscountAmount(chargingOrder.getVipDiscountAmount()); + myChargingOrderInfo.setRefundAmount(chargingOrder.getRefundAmount()); + List<TChargingOrderAccountingStrategy> stageCost = chargingOrderAccountingStrategyService.list( + new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, id) + .orderByAsc(TChargingOrderAccountingStrategy::getStartTime) + ); + myChargingOrderInfo.setStageCost(stageCost); + // todo 待完善 + //再MongoDB中获取数据 + myChargingOrderInfo.setCurrentAndVoltage(null); + //再MongoDB中获取数据 + myChargingOrderInfo.setPower(null); + myChargingOrderInfo.setActionable(myChargingOrderInfo.getEndTime() + 604800000L > System.currentTimeMillis() ? 0 : 1); + return myChargingOrderInfo; + } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java index 84f4764..341d6b7 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java @@ -1,10 +1,27 @@ package com.ruoyi.order.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.account.api.feignClient.AppUserAddressClient; +import com.ruoyi.account.api.model.TAppUserAddress; +import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.api.model.TExchangeOrder; +import com.ruoyi.order.dto.ExchangeOrderGoodsInfo; +import com.ruoyi.order.dto.GetMyExchangeOrder; +import com.ruoyi.order.dto.MyExchangeOrderList; import com.ruoyi.order.mapper.TExchangeOrderMapper; import com.ruoyi.order.service.TExchangeOrderService; +import com.ruoyi.other.api.domain.TCoupon; +import com.ruoyi.other.api.domain.TGoods; +import com.ruoyi.other.api.feignClient.CouponClient; +import com.ruoyi.other.api.feignClient.GoodsClient; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; /** * <p> @@ -16,5 +33,108 @@ */ @Service public class TExchangeOrderServiceImpl extends ServiceImpl<TExchangeOrderMapper, TExchangeOrder> implements TExchangeOrderService { - + + @Resource + private TokenService tokenService; + + @Resource + private GoodsClient goodsClient; + + @Resource + private CouponClient couponClient; + + @Resource + private AppUserAddressClient appUserAddressClient; + + + + + + + /** + * 获取小程序兑换记录 + * @param query + * @return + */ + @Override + public List<MyExchangeOrderList> getMyExchangeOrder(GetMyExchangeOrder query) { + Long userid = tokenService.getLoginUser().getUserid(); + LambdaQueryWrapper<TExchangeOrder> wrapper = new LambdaQueryWrapper<TExchangeOrder>().eq(TExchangeOrder::getDelFlag, 0).eq(TExchangeOrder::getAppUserId, userid); + if(query.getStatus() == 0){ + wrapper.ne(TExchangeOrder::getStatus, 4); + }else{ + wrapper.eq(TExchangeOrder::getStatus, query.getStatus()); + } + List<TExchangeOrder> list = this.list(wrapper.orderByDesc(TExchangeOrder::getCreateTime).last(" limit " + query.getPageCurr() + "," + query.getPageSize())); + List<MyExchangeOrderList> pageList = new ArrayList<>(); + for (TExchangeOrder tExchangeOrder : list) { + MyExchangeOrderList exchangeOrderList = new MyExchangeOrderList(); + exchangeOrderList.setId(tExchangeOrder.getId().toString()); + exchangeOrderList.setUnitPoints(tExchangeOrder.getPoints() / tExchangeOrder.getPurchaseQuantity()); + exchangeOrderList.setPoints(tExchangeOrder.getPoints()); + exchangeOrderList.setPurchaseQuantity(tExchangeOrder.getPurchaseQuantity()); + exchangeOrderList.setOrderType(tExchangeOrder.getOrderType()); + exchangeOrderList.setStatus(tExchangeOrder.getStatus()); + String name = ""; + String imgUrl = ""; + if(tExchangeOrder.getOrderType() == 1){ + TGoods goods = goodsClient.getGoodsById(tExchangeOrder.getGoodsId()).getData(); + name = goods.getName(); + imgUrl = goods.getCoverPicture(); + }else{ + TCoupon coupon = couponClient.getCouponById(tExchangeOrder.getGoodsId()).getData(); + name = coupon.getName(); + imgUrl = coupon.getCoverPicture(); + } + exchangeOrderList.setName(name); + exchangeOrderList.setImgUrl(imgUrl); + pageList.add(exchangeOrderList); + } + return pageList; + } + + + /** + * 获取兑换订单详情 + * @param id + * @return + */ + @Override + public ExchangeOrderGoodsInfo getGoodsExchangeOrder(String id) { + TExchangeOrder exchangeOrder = this.getById(id); + ExchangeOrderGoodsInfo info = new ExchangeOrderGoodsInfo(); + info.setId(id); + info.setStatus(exchangeOrder.getStatus()); + TAppUserAddress userAddress = appUserAddressClient.getAppUserAddressById(exchangeOrder.getAppUserAddressId()).getData(); + info.setConsignee(userAddress.getName()); + info.setPhone(userAddress.getPhone()); + info.setAddress(userAddress.getAddress()); + info.setExpressCompany(exchangeOrder.getExpressCompany()); + info.setExpressNumber(exchangeOrder.getExpressNumber()); + String name = ""; + String imgUrl = ""; + if(exchangeOrder.getOrderType() == 1){ + TGoods goods = goodsClient.getGoodsById(exchangeOrder.getGoodsId()).getData(); + name = goods.getName(); + imgUrl = goods.getCoverPicture(); + }else{ + TCoupon coupon = couponClient.getCouponById(exchangeOrder.getGoodsId()).getData(); + info.setCouponType(coupon.getType()); + info.setDays(coupon.getDays()); + info.setEndTime(coupon.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + name = coupon.getName(); + imgUrl = coupon.getCoverPicture(); + } + info.setName(name); + info.setImgUrl(imgUrl); + info.setPurchaseQuantity(exchangeOrder.getPurchaseQuantity()); + info.setUnitPoints(exchangeOrder.getPoints() / exchangeOrder.getPurchaseQuantity()); + info.setCode(exchangeOrder.getCode()); + info.setCreateTime(exchangeOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + info.setPoints(exchangeOrder.getPoints()); + info.setRemark(exchangeOrder.getRemark()); + info.setDeliveryTime(exchangeOrder.getConsignerTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + info.setFinishTime(exchangeOrder.getReceivingTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + return info; + } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java index 6916f8a..e0f76a8 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java @@ -1,19 +1,26 @@ package com.ruoyi.order.service.impl; +import cn.hutool.db.DaoTemplate; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.feignClient.AppUserCarClient; import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.feignClient.AppUserIntegralChangeClient; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.account.api.model.TAppUserCar; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.TAppUser; +import com.ruoyi.account.api.model.TAppUserIntegralChange; import com.ruoyi.chargingPile.api.feignClient.SiteClient; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TOrderEvaluate; import com.ruoyi.order.api.model.TOrderEvaluateTag; @@ -22,19 +29,26 @@ import com.ruoyi.order.api.vo.TOrderEvaluateVO; import com.ruoyi.order.dto.GetOrderEvaluatePageList; import com.ruoyi.order.dto.GetOrderEvaluatePageListDTO; +import com.ruoyi.order.dto.OrderEvaluateVo; import com.ruoyi.order.mapper.TChargingOrderMapper; import com.ruoyi.order.mapper.TOrderEvaluateMapper; import com.ruoyi.order.mapper.TOrderEvaluateTagMapper; +import com.ruoyi.order.service.TChargingOrderService; import com.ruoyi.order.service.TOrderEvaluateService; import com.ruoyi.other.api.domain.TEvaluationTag; +import com.ruoyi.other.api.domain.TIntegralRule; +import com.ruoyi.other.api.feignClient.IntegralRuleClient; import com.ruoyi.other.api.feignClient.TEvaluationTagClient; import com.ruoyi.other.api.vo.TEvaluationTagVO; +import io.seata.spring.annotation.GlobalTransactional; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.Arrays; import java.util.Comparator; import java.util.List; @@ -66,6 +80,19 @@ @Resource private SiteClient siteClient; + + @Resource + private TokenService tokenService; + + @Resource + private TChargingOrderService chargingOrderService; + + @Resource + private IntegralRuleClient integralRuleClient; + + @Resource + private AppUserIntegralChangeClient appUserIntegralChangeClient; + @@ -202,4 +229,84 @@ } return pageInfo.setRecords(list); } + + + /** + * 评价订单 + * @param query + * @return + */ + @Override + @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 + public AjaxResult addOrderEvaluate(OrderEvaluateVo query) { + TOrderEvaluate orderEvaluate = this.getOne(new LambdaQueryWrapper<TOrderEvaluate>().eq(TOrderEvaluate::getOrderId, query.getOrderId()) + .eq(TOrderEvaluate::getOrderType, query.getOrderType()).eq(TOrderEvaluate::getDelFlag, 0)); + if(null != orderEvaluate){ + return AjaxResult.error("不能重复评价"); + } + orderEvaluate = new TOrderEvaluate(); + BeanUtils.copyProperties(query, orderEvaluate); + Long userid = tokenService.getLoginUser().getUserid(); + orderEvaluate.setAppUserId(userid); + if(query.getOrderType() == 1){ + TChargingOrder chargingOrder = chargingOrderService.getById(query.getOrderId()); + orderEvaluate.setAppUserCarId(chargingOrder.getAppUserCarId()); + } + this.save(orderEvaluate); + + List<Integer> tagIds = query.getTagIds(); + for (Integer tagId : tagIds) { + TOrderEvaluateTag orderEvaluateTag = new TOrderEvaluateTag(); + orderEvaluateTag.setOrderEvaluateId(orderEvaluate.getId()); + orderEvaluateTag.setEvaluationTagId(tagId); + orderEvaluateTagMapper.insert(orderEvaluateTag); + } + + //判断发放积分 文字+图片+5星好评 + if(StringUtils.isNotEmpty(query.getContent()) && StringUtils.isNotEmpty(query.getImgUrl()) && 5 == query.getMark()){ + TIntegralRule data = integralRuleClient.getSet().getData(); + String credit = data.getCredit(); + //积分 + Integer num1 = JSON.parseObject(credit).getInteger("num1"); + if(null != num1 && 0 < num1){ + TAppUser appUser = appUserClient.getUserById(userid).getData(); + Integer points = appUser.getPoints(); + appUser.setPoints(appUser.getPoints() + num1); + appUserClient.updateAppUser(appUser); + + //积分变动明细 + TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange(); + appUserIntegralChange.setAppUserId(appUser.getId()); + appUserIntegralChange.setChangeType(3); + appUserIntegralChange.setHistoricalIntegral(points); + appUserIntegralChange.setCurrentIntegral(points + num1); + appUserIntegralChange.setCreateTime(LocalDateTime.now()); + appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); + } + } + return AjaxResult.success(); + } + + + /** + * 获取订单评价 + * @param orderId 订单id + * @param orderType 订单类型 + * @return + */ + @Override + public OrderEvaluateVo getOrderEvaluate(Integer orderId, Integer orderType) { + TOrderEvaluate orderEvaluate = this.getOne(new LambdaQueryWrapper<TOrderEvaluate>().eq(TOrderEvaluate::getOrderId, orderId).eq(TOrderEvaluate::getOrderType, orderType)); + if(null != orderEvaluate){ + OrderEvaluateVo orderEvaluateVo = new OrderEvaluateVo(); + BeanUtils.copyProperties(orderEvaluate, orderEvaluateVo); + List<TOrderEvaluateTag> tOrderEvaluateTags = orderEvaluateTagMapper.selectList(new LambdaQueryWrapper<TOrderEvaluateTag>().eq(TOrderEvaluateTag::getOrderEvaluateId, orderEvaluate.getId())); + List<Integer> tagId = tOrderEvaluateTags.stream().map(TOrderEvaluateTag::getEvaluationTagId).collect(Collectors.toList()); + List<TEvaluationTag> data = evaluationTagClient.getListByIds(tagId).getData(); + List<String> collect = data.stream().map(TEvaluationTag::getName).collect(Collectors.toList()); + orderEvaluateVo.setTagName(collect); + return orderEvaluateVo; + } + return null; + } } diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml index f41d4d6..418f126 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml @@ -19,6 +19,7 @@ <result column="start_time" property="startTime" /> <result column="end_time" property="endTime" /> <result column="status" property="status" /> + <result column="end_mode" property="endMode"/> <result column="recharge_amount" property="rechargeAmount" /> <result column="recharge_payment_type" property="rechargePaymentType" /> <result column="recharge_payment_status" property="rechargePaymentStatus" /> @@ -43,4 +44,15 @@ id, code, order_type, order_classification, app_user_id, app_user_car_id,site_id, parking_lot_id, charging_pile_id, charging_gun_id, start_time, end_time, status, recharge_amount, recharge_payment_type, recharge_payment_status, recharge_serial_number, order_amount, app_coupon_id, coupon_discount_amount, vip_discount, vip_discount_amount, payment_amount, refund_code, refund_amount, refund_status, refund_serial_number, refund_time, create_time, del_flag </sql> + + <select id="getMyChargingOrderList" resultMap="BaseResultMap"> + select * from t_charging_order where del_flag = 0 and app_user_id = #{appUserId} + <if test="1 == type"> + and id not in (select order_id from t_order_evaluate where order_type = 1 and app_user_id = #{appUserId} and del_flag = 0) + </if> + order by create_time desc + <if test="null != pageCurr and null != pageSize"> + limit #{pageCurr}, #{pageSize} + </if> + </select> </mapper> diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java index bc579b9..f36cca6 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java @@ -129,5 +129,17 @@ } return R.ok(list); } + + + /** + * 根据id获取优惠券信息 + * @param id + * @return + */ + @PostMapping(value = "/getCouponById/{id}") + public R<TCoupon> getCouponById(@PathVariable Integer id){ + TCoupon coupon = tCouponService.getById(id); + return R.ok(coupon); + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java index 6b55808..9a49776 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java @@ -1,6 +1,7 @@ package com.ruoyi.other.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.BasePage; @@ -96,10 +97,20 @@ * @param tagIds * @return */ - @GetMapping("/getListByIds") - public R<List<TEvaluationTag>> getListByIds(List<Integer> tagIds){ + @PostMapping("/getListByIds") + public R<List<TEvaluationTag>> getListByIds(@RequestBody List<Integer> tagIds){ List<TEvaluationTag> tEvaluationTags = evaluationTagService.listByIds(tagIds); return R.ok(tEvaluationTags); } + + + + @ResponseBody + @GetMapping("/getRandomEvaluationTag") + @ApiOperation(value = "获取随机的4个评价标签", tags = {"小程序-充电记录"}) + public AjaxResult<List<TEvaluationTag>> getRandomEvaluationTag(){ + List<TEvaluationTag> list = evaluationTagService.list(new LambdaQueryWrapper<TEvaluationTag>().last(" order by RAND() limit 0, 4")); + return AjaxResult.success(list); + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java index f714570..bea875b 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java @@ -1,6 +1,7 @@ package com.ruoyi.other.controller; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.other.api.domain.TActivity; @@ -57,5 +58,16 @@ public AjaxResult<PageInfo<TGoods>> pageList(@RequestBody GoodsDTO dto) { return AjaxResult.ok(goodsService.pageList(dto)); } + + /** + * 根据id获取商品信息 + * @param id + * @return + */ + @PostMapping("/getGoodsById/{id}") + public R<TGoods> getGoodsById(@PathVariable Integer id){ + TGoods goods = goodsService.getById(id); + return R.ok(goods); + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java index 772d11a..4c80295 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java @@ -1,14 +1,12 @@ package com.ruoyi.other.controller; import java.time.LocalDateTime; -import java.util.Date; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.other.api.domain.THtml; import com.ruoyi.other.api.domain.TIntegralRule; -import com.ruoyi.other.api.dto.SaveIntegralDTO; import com.ruoyi.other.service.THtmlService; import com.ruoyi.other.service.TIntegralRuleService; import io.swagger.annotations.ApiImplicitParam; @@ -32,12 +30,18 @@ private THtmlService htmlService; @Autowired private TIntegralRuleService integralRuleService; + + + @GetMapping("/getSet") @ApiOperation(tags = {"管理后台-积分管理"},value = "获取积分设置") public R<TIntegralRule> getSet() { TIntegralRule res = integralRuleService.getOne(new QueryWrapper<>()); return R.ok(res); } + + + @PostMapping("/saveSet") @ApiOperation(tags = {"管理后台-积分管理"},value = "保存积分设置") public R saveSet(@RequestBody TIntegralRule dto) { @@ -94,5 +98,13 @@ } return R.ok(); } + + + @GetMapping("/getIntegralRule") + @ApiOperation(tags = {"小程序-充电记录"},value = "获取积分规则设置") + public AjaxResult<String> getIntegralRule(){ + TIntegralRule one = integralRuleService.getOne(null); + return AjaxResult.success(one); + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java index 043a2cd..089747c 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java @@ -32,8 +32,8 @@ * @return */ @ResponseBody - @GetMapping("/getSiteIds") - public R<List<Integer>> getSiteIds(Long roleId){ + @PostMapping("/getSiteIds/{roleId}") + public R<List<Integer>> getSiteIds(@PathVariable Long roleId){ List<TRoleSite> list = roleSiteService.list(new LambdaQueryWrapper<TRoleSite>().eq(TRoleSite::getRoleId, roleId)); List<Integer> collect = list.stream().map(TRoleSite::getSiteId).collect(Collectors.toList()); return R.ok(collect); @@ -45,7 +45,7 @@ * @return */ @ResponseBody - @PostMapping("/getSiteIds") + @PostMapping("/addRoleSite") public R addRoleSite(@RequestBody List<TRoleSite> roleSites){ roleSiteService.saveBatch(roleSites); return R.ok(); diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java index 686f3b9..8b5327c 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java @@ -33,8 +33,8 @@ * @return */ @ResponseBody - @GetMapping("/getSiteIds") - public R<List<Integer>> getSiteIds(Long userId){ + @PostMapping("/getSiteIds/{userId}") + public R<List<Integer>> getSiteIds(@PathVariable Long userId){ List<TUserSite> list = userSiteService.list(new LambdaQueryWrapper<TUserSite>().eq(TUserSite::getUserId, userId)); List<Integer> collect = list.stream().map(TUserSite::getSiteId).collect(Collectors.toList()); return R.ok(collect); diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TCouponMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TCouponMapper.xml index 517753e..ae8d93a 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TCouponMapper.xml +++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TCouponMapper.xml @@ -7,6 +7,8 @@ <id column="id" property="id" /> <result column="type" property="type" /> <result column="name" property="name" /> + <result column="cover_picture" property="coverPicture"/> + <result column="details_picture" property="detailsPicture"/> <result column="preferential_mode" property="preferentialMode" /> <result column="discount_amount" property="discountAmount" /> <result column="meet_the_conditions" property="meetTheConditions" /> -- Gitblit v1.7.1