diff --git a/ruoyi-front/ruoyi-manager/pom.xml b/ruoyi-front/ruoyi-manager/pom.xml index 603402bc4..f3821866a 100644 --- a/ruoyi-front/ruoyi-manager/pom.xml +++ b/ruoyi-front/ruoyi-manager/pom.xml @@ -115,5 +115,15 @@ 5.3.1 compile + + org.dromara + ruoyi-goods + 5.3.1 + compile + + + org.dromara + ruoyi-order + diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/BrandController.java b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/BrandController.java similarity index 98% rename from ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/BrandController.java rename to ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/BrandController.java index dce0653b1..ce0023e3c 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/BrandController.java +++ b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/BrandController.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.goods.controller; +package com.wzj.soopin.manager.goods.controller; import com.wzj.soopin.goods.convert.BrandConvert; @@ -11,13 +11,13 @@ import io.swagger.annotations.ApiOperation; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; -import org.springframework.beans.factory.annotation.Autowired; import org.dromara.common.web.core.BaseController; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; import java.util.List; /** diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductCategoryController.java b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/ProductCategoryController.java similarity index 98% rename from ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductCategoryController.java rename to ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/ProductCategoryController.java index 0bc751ab1..5883d57ac 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductCategoryController.java +++ b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/ProductCategoryController.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.goods.controller; +package com.wzj.soopin.manager.goods.controller; import com.wzj.soopin.goods.convert.ProductCategoryConvert; import com.wzj.soopin.goods.domain.entity.ProductCategory; diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductController.java b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/ProductController.java similarity index 98% rename from ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductController.java rename to ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/ProductController.java index a76e0e470..631f90388 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductController.java +++ b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/ProductController.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.goods.controller; +package com.wzj.soopin.manager.goods.controller; import com.wzj.soopin.goods.convert.ProductConvert; diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/SkuController.java b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/SkuController.java similarity index 98% rename from ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/SkuController.java rename to ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/SkuController.java index 1f2bfbac8..5f0055521 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/SkuController.java +++ b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/goods/controller/SkuController.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.goods.controller; +package com.wzj.soopin.manager.goods.controller; import com.wzj.soopin.goods.convert.SkuConvert; import com.wzj.soopin.goods.domain.entity.Sku; @@ -8,15 +8,15 @@ import com.wzj.soopin.goods.service.SkuService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.web.core.BaseController; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import org.dromara.common.log.annotation.Log; -import org.dromara.common.log.enums.BusinessType; -import org.dromara.common.web.core.BaseController; -import org.springframework.beans.factory.annotation.Autowired; import java.util.List; /** diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/AftersaleController.java b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/AftersaleController.java similarity index 97% rename from ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/AftersaleController.java rename to ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/AftersaleController.java index 44b5126fd..e90544dd9 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/AftersaleController.java +++ b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/AftersaleController.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.order.controller; +package com.wzj.soopin.manager.order.controller; import com.wzj.soopin.order.convert.AftersaleConvert; @@ -10,20 +10,21 @@ import com.wzj.soopin.order.domain.vo.ManagerRefundOrderDetailVO; import com.wzj.soopin.order.domain.vo.ManagerRefundOrderVO; import com.wzj.soopin.order.domain.vo.OrderOperateHistoryVO; import com.wzj.soopin.order.service.AftersaleService; +import com.wzj.soopin.order.utils.SecurityUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.Pageable; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.redis.redis.RedisService; import org.dromara.common.web.core.BaseController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; import java.util.List; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/AftersaleItemController.java b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/AftersaleItemController.java similarity index 98% rename from ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/AftersaleItemController.java rename to ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/AftersaleItemController.java index db0112440..0582538c8 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/AftersaleItemController.java +++ b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/AftersaleItemController.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.order.controller; +package com.wzj.soopin.manager.order.controller; import com.wzj.soopin.order.convert.AftersaleItemConvert; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderController.java similarity index 98% rename from ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java rename to ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderController.java index 5d9b5be0a..2e4744901 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java +++ b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderController.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.order.controller; +package com.wzj.soopin.manager.order.controller; import com.wzj.soopin.order.convert.OrderConvert; import com.wzj.soopin.order.domain.entity.Order; @@ -9,6 +9,7 @@ import com.wzj.soopin.order.domain.vo.ManagerOrderDetailVO; import com.wzj.soopin.order.domain.vo.ManagerOrderVO; import com.wzj.soopin.order.domain.vo.OrderOperateHistoryVO; import com.wzj.soopin.order.service.OrderService; +import com.wzj.soopin.order.utils.SecurityUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderDeliveryHistoryController.java b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderDeliveryHistoryController.java similarity index 98% rename from ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderDeliveryHistoryController.java rename to ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderDeliveryHistoryController.java index 74bb2af0b..42de75830 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderDeliveryHistoryController.java +++ b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderDeliveryHistoryController.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.order.controller; +package com.wzj.soopin.manager.order.controller; import com.wzj.soopin.order.convert.OrderDeliveryHistoryConvert; import com.wzj.soopin.order.domain.entity.OrderDeliveryHistory; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderItemController.java b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderItemController.java similarity index 98% rename from ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderItemController.java rename to ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderItemController.java index 880ac4947..b6d6f6776 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderItemController.java +++ b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderItemController.java @@ -1,13 +1,10 @@ -package com.wzj.soopin.order.controller; +package com.wzj.soopin.manager.order.controller; import com.wzj.soopin.order.convert.OrderItemConvert; import com.wzj.soopin.order.domain.entity.OrderItem; import com.wzj.soopin.order.domain.query.OrderItemQuery; import com.wzj.soopin.order.domain.vo.OrderItemVO; import com.wzj.soopin.order.service.OrderItemService; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.Pageable; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.dromara.common.excel.utils.ExcelUtil; @@ -15,6 +12,9 @@ import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.web.core.BaseController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderOperateHistoryController.java b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderOperateHistoryController.java similarity index 98% rename from ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderOperateHistoryController.java rename to ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderOperateHistoryController.java index cb439a393..04c523c71 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderOperateHistoryController.java +++ b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/OrderOperateHistoryController.java @@ -1,14 +1,10 @@ -package com.wzj.soopin.order.controller; +package com.wzj.soopin.manager.order.controller; import com.wzj.soopin.order.convert.OrderOperateHistoryConvert; import com.wzj.soopin.order.domain.entity.OrderOperateHistory; import com.wzj.soopin.order.domain.query.OrderOperateHistoryQuery; import com.wzj.soopin.order.domain.vo.OrderOperateHistoryVO; import com.wzj.soopin.order.service.OrderOperateHistoryService; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.Pageable; -import org.springframework.http.ResponseEntity; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.dromara.common.excel.utils.ExcelUtil; @@ -16,6 +12,10 @@ import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.web.core.BaseController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/WechatPaymentHistoryController.java b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/WechatPaymentHistoryController.java similarity index 98% rename from ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/WechatPaymentHistoryController.java rename to ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/WechatPaymentHistoryController.java index 72797cf20..9b6b5d051 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/WechatPaymentHistoryController.java +++ b/ruoyi-front/ruoyi-manager/src/main/java/com/wzj/soopin/manager/order/controller/WechatPaymentHistoryController.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.order.controller; +package com.wzj.soopin.manager.order.controller; import com.wzj.soopin.order.convert.WechatPaymentHistoryConvert; import com.wzj.soopin.order.domain.entity.WechatPaymentHistory; diff --git a/ruoyi-modules/ruoyi-order/pom.xml b/ruoyi-modules/ruoyi-order/pom.xml index 3775c734d..45b148a50 100644 --- a/ruoyi-modules/ruoyi-order/pom.xml +++ b/ruoyi-modules/ruoyi-order/pom.xml @@ -125,6 +125,25 @@ com.alibaba fastjson + + org.springframework.security + spring-security-crypto + + + com.google.api.grpc + proto-google-common-protos + 2.41.0 + compile + + + org.springframework.security + spring-security-core + + + com.github.wechatpay-apiv3 + wechatpay-java + 0.2.9 + diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/AftersaleService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/AftersaleService.java index 80a3fdf1b..a66b7921e 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/AftersaleService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/AftersaleService.java @@ -22,6 +22,7 @@ import com.wzj.soopin.order.domain.form.DealWithAftersaleForm; import com.wzj.soopin.order.domain.form.ManagerAftersaleOrderForm; import com.wzj.soopin.order.domain.vo.*; import com.wzj.soopin.order.mapper.*; +import com.wzj.soopin.order.wechat.WechatPayService; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.event.Constants; import org.dromara.common.core.enums.AftersaleStatus; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java index 9d93c796a..5219412f5 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderService.java @@ -25,6 +25,8 @@ import com.wzj.soopin.order.mapper.OrderDeliveryHistoryMapper; import com.wzj.soopin.order.mapper.OrderItemMapper; import com.wzj.soopin.order.mapper.OrderMapper; import com.wzj.soopin.order.mapper.OrderOperateHistoryMapper; +import com.wzj.soopin.order.utils.AesCryptoUtils; +import com.wzj.soopin.order.utils.SecurityUtils; import org.apache.commons.lang3.StringUtils; import org.dromara.common.core.domain.event.Constants; import org.dromara.common.core.utils.PhoneUtils; @@ -392,7 +394,7 @@ public class OrderService { .set("receiver_district",order.getReceiverDistrict()) .set("receiver_province",order.getReceiverProvince()) .set("receiver_detail_address",order.getReceiverDetailAddress()) - .set("receiver_phone_encrypted",AesCryptoUtils.encrypt(aesKey, order.getReceiverPhone())) + .set("receiver_phone_encrypted", AesCryptoUtils.encrypt(aesKey, order.getReceiverPhone())) .set("update_time",LocalDateTime.now()); updateWrapper.eq("id",order.getId()); int update = orderMapper.update(null, updateWrapper); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/utils/AesCryptoUtils.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/utils/AesCryptoUtils.java new file mode 100644 index 000000000..1f3529366 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/utils/AesCryptoUtils.java @@ -0,0 +1,31 @@ +package com.wzj.soopin.order.utils; + +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.crypto.SecureUtil; +import cn.hutool.crypto.symmetric.AES; +import org.dromara.common.core.utils.StringUtils; + +/** + * aes加密工具 + */ +public class AesCryptoUtils { + + public static String encrypt(String key, String content){ + SecureUtil.disableBouncyCastle(); + if (StringUtils.isBlank(key) || StringUtils.isBlank(content)){ + throw new RuntimeException("错误"); + } + AES aes = SecureUtil.aes(key.getBytes()); + byte[] encrypt = aes.encrypt(content); + return aes.encryptHex(content); + } + + public static String decrypt(String key, String content){ + SecureUtil.disableBouncyCastle(); + if (StringUtils.isBlank(key) || StringUtils.isBlank(content)){ + throw new RuntimeException("错误"); + } + AES aes = SecureUtil.aes(key.getBytes()); + return aes.decryptStr(content, CharsetUtil.CHARSET_UTF_8); + } +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/utils/SecurityUtils.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/utils/SecurityUtils.java new file mode 100644 index 000000000..291e18a46 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/utils/SecurityUtils.java @@ -0,0 +1,119 @@ +package com.wzj.soopin.order.utils; + +import org.dromara.common.core.constant.HttpStatus; +import org.dromara.common.core.domain.model.LoginUser; +import org.dromara.common.core.exception.ServiceException; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + +/** + * 安全服务工具类 + * + * @author ruoyi + */ +public class SecurityUtils +{ + private static BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + /** + * 用户ID + **/ + public static Long getUserId() + { + try + { + return getLoginUser().getUserId(); + } + catch (Exception e) + { + throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED); + } + } + + /** + * 获取部门ID + **/ + public static Long getDeptId() + { + try + { + return getLoginUser().getDeptId(); + } + catch (Exception e) + { + throw new ServiceException("获取部门ID异常", HttpStatus.UNAUTHORIZED); + } + } + + /** + * 获取用户账户 + **/ + public static String getUsername() + { + try + { + return getLoginUser().getUsername(); + } + catch (Exception e) + { + throw new ServiceException("获取用户账户异常", HttpStatus.UNAUTHORIZED); + } + } + + /** + * 获取用户 + **/ + public static LoginUser getLoginUser() + { + try + { + return (LoginUser) getAuthentication().getPrincipal(); + } + catch (Exception e) + { + throw new ServiceException("获取用户信息异常", HttpStatus.UNAUTHORIZED); + } + } + + /** + * 获取Authentication + */ + public static Authentication getAuthentication() + { + return SecurityContextHolder.getContext().getAuthentication(); + } + + /** + * 生成BCryptPasswordEncoder密码 + * + * @param password 密码 + * @return 加密字符串 + */ + public static String encryptPassword(String password) { + return passwordEncoder.encode(password); + } + + /** + * 判断密码是否相同 + * + * @param rawPassword 真实密码 + * @param encodedPassword 加密后字符 + * @return 结果 + */ + public static boolean matchesPassword(String rawPassword, String encodedPassword) + { + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + return passwordEncoder.matches(rawPassword, encodedPassword); + } + + /** + * 是否为管理员 + * + * @param userId 用户ID + * @return 结果 + */ + public static boolean isAdmin(Long userId) + { + return userId != null && 1L == userId; + } +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/wechat/WechatPayData.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/wechat/WechatPayData.java new file mode 100644 index 000000000..069b4fb65 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/wechat/WechatPayData.java @@ -0,0 +1,62 @@ +package com.wzj.soopin.order.wechat; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@ConfigurationProperties(prefix = "wechat") +@Component("WechatPayData") +public class WechatPayData { + + /** 商户号 */ + public static String appId; + public static String secret; + public static String merchantId; + /** 商户API私钥路径 */ + public static String privateKeyPath; + /** 商户证书序列号 */ + public static String merchantSerialNumber; + /** 商户APIV3密钥 */ + public static String apiV3key; + public static String notifyUrl; + + public static String miniProgramAppId; + public static String miniProgramSecret; + + public void setAppId(String appId) { + WechatPayData.appId = appId; + } + + public void setSecret(String secret) { + WechatPayData.secret = secret; + } + + public void setMerchantId(String merchantId) { + WechatPayData.merchantId = merchantId; + } + + public void setPrivateKeyPath(String privateKeyPath) { + WechatPayData.privateKeyPath = privateKeyPath; + } + + public void setMerchantSerialNumber(String merchantSerialNumber) { + WechatPayData.merchantSerialNumber = merchantSerialNumber; + } + + public void setApiV3key(String apiV3key) { + WechatPayData.apiV3key = apiV3key; + } + + public void setNotifyUrl(String notifyUrl) { + WechatPayData.notifyUrl = notifyUrl; + } + + public void setMiniProgramAppId(String miniProgramAppId) { + WechatPayData.miniProgramAppId = miniProgramAppId; + } + + public void setMiniProgramSecret(String miniProgramSecret) { + WechatPayData.miniProgramSecret = miniProgramSecret; + } +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/wechat/WechatPayService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/wechat/WechatPayService.java new file mode 100644 index 000000000..064265b63 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/wechat/WechatPayService.java @@ -0,0 +1,75 @@ +package com.wzj.soopin.order.wechat; + +import com.wechat.pay.java.service.payments.jsapi.JsapiService; +import com.wechat.pay.java.service.payments.jsapi.model.Amount; +import com.wechat.pay.java.service.payments.jsapi.model.Payer; +import com.wechat.pay.java.service.payments.jsapi.model.PrepayRequest; +import com.wechat.pay.java.service.payments.jsapi.model.PrepayResponse; +import com.wechat.pay.java.service.refund.RefundService; +import com.wechat.pay.java.service.refund.model.AmountReq; +import com.wechat.pay.java.service.refund.model.CreateRequest; +import com.wechat.pay.java.service.refund.model.Refund; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.stereotype.Service; + + +@Service +@Slf4j +@ConditionalOnProperty(prefix = "wechat", name = "enabled", havingValue = "true") +public class WechatPayService { + + @Autowired + private JsapiService service; + + @Autowired + private RefundService refundService; + + /** + * jsapi下单 + * @param orderNo 订单号 + * @param desc 订单描述 + * @param totalAmount 总金额,单位:分 + * @param openId 用户openid + * @return prepay_id + */ + public String jsapiPay(String orderNo,String desc,Integer totalAmount,String openId, Long memberId,String appId){ + PrepayRequest prepayRequest = new PrepayRequest(); + prepayRequest.setAppid(appId); + prepayRequest.setMchid(WechatPayData.merchantId); + prepayRequest.setDescription(desc); + prepayRequest.setOutTradeNo(orderNo); + prepayRequest.setAttach(String.valueOf(memberId)); + prepayRequest.setNotifyUrl(WechatPayData.notifyUrl); + Amount amount = new Amount(); + amount.setTotal(totalAmount); + prepayRequest.setAmount(amount); + Payer payer = new Payer(); + payer.setOpenid(openId); + prepayRequest.setPayer(payer); + PrepayResponse response = service.prepay(prepayRequest); + return response.getPrepayId(); + } + + public Refund refundPay(String refundId, String payId, String notifyUrl, Long refundAmount, Long totalAmount, String reason) { + //请求参数 + CreateRequest request = new CreateRequest(); + request.setReason(reason); + //设置退款金额 根据自己的实际业务自行填写 + AmountReq amountReq = new AmountReq(); + amountReq.setRefund(refundAmount); + amountReq.setTotal(totalAmount); + amountReq.setCurrency("CNY"); + request.setAmount(amountReq); + //支付成功后回调回来的transactionId 按照实际情况填写 + request.setOutTradeNo(payId); + //支付成功后回调回来的transactionId 按照实际情况填写 + request.setOutRefundNo(refundId); + //退款成功的回调地址 + request.setNotifyUrl(notifyUrl); + //发起请求,申请退款 + return refundService.create(request); + } +}