diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaMenusServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaMenusServiceImpl.java
index ecf7558d..f1e9b8ec 100644
--- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaMenusServiceImpl.java
+++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaMenusServiceImpl.java
@@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.mdd.admin.service.IChannelOaMenusService;
import com.mdd.common.exception.OperateException;
+import com.mdd.common.plugin.wechat.WxMnpDriver;
import com.mdd.common.util.*;
import me.chanjar.weixin.common.bean.menu.WxMenu;
import me.chanjar.weixin.common.bean.menu.WxMenuButton;
@@ -112,7 +113,7 @@ public class ChannelOaMenusServiceImpl implements IChannelOaMenusService {
WxMenu wxMenu = new WxMenu();
wxMenu.setButtons(menuButtons);
- WxMpService wxMpService = WeChatUtils.official();
+ WxMpService wxMpService = WxMnpDriver.oa();
WxMpMenuService wxMpMenuService = new WxMpMenuServiceImpl(wxMpService);
wxMpMenuService.menuCreate(wxMenu);
} catch (WxErrorException e) {
diff --git a/server/like-common/pom.xml b/server/like-common/pom.xml
index f341b8bb..a6698199 100644
--- a/server/like-common/pom.xml
+++ b/server/like-common/pom.xml
@@ -208,7 +208,6 @@
com.github.binarywang
weixin-java-pay
- 4.4.0
diff --git a/server/like-common/src/main/java/com/mdd/common/plugin/wechat/WxPayDriver.java b/server/like-common/src/main/java/com/mdd/common/plugin/wechat/WxPayDriver.java
index 3e25c2d3..9c252071 100644
--- a/server/like-common/src/main/java/com/mdd/common/plugin/wechat/WxPayDriver.java
+++ b/server/like-common/src/main/java/com/mdd/common/plugin/wechat/WxPayDriver.java
@@ -24,11 +24,17 @@ public class WxPayDriver {
private static WxPayService wxPayService;
+ /**
+ * 注入支付配置依赖
+ */
@Resource
public void setDevPayConfigMapper(DevPayConfigMapper devPayConfigMapper) {
WxPayDriver.devPayConfigMapper = devPayConfigMapper;
}
+ /**
+ * 注入微信支付依赖
+ */
@Resource
public void setWxPayService(WxPayService wxPayService) {
WxPayDriver.wxPayService = wxPayService;
diff --git a/server/like-common/src/main/java/com/mdd/common/util/AmountUtil.java b/server/like-common/src/main/java/com/mdd/common/util/AmountUtil.java
new file mode 100644
index 00000000..1d9ca05f
--- /dev/null
+++ b/server/like-common/src/main/java/com/mdd/common/util/AmountUtil.java
@@ -0,0 +1,61 @@
+package com.mdd.common.util;
+
+import com.baomidou.mybatisplus.core.toolkit.Assert;
+
+import java.math.BigDecimal;
+
+/**
+ * 金额处理工具
+ */
+public class AmountUtil {
+
+ private AmountUtil() {}
+
+ /**
+ * 将单位为元的金额转换为单位为分
+ *
+ * @param yuan 单位为元的字符型值
+ * @return int
+ */
+ public static int yuan2Fen(String yuan) {
+ int value;
+
+ try {
+ BigDecimal var1 = new BigDecimal(yuan);
+ BigDecimal var2 = new BigDecimal(100);
+ BigDecimal var3 = var1.multiply(var2);
+ value = Integer.parseInt(var3.stripTrailingZeros().toPlainString());
+ } catch (Exception e) {
+ throw new IllegalArgumentException(String.format("非法金额[%s]", yuan));
+ }
+
+ Assert.isTrue(value >= 0, String.format("非法金额[%s]", yuan));
+ return value;
+ }
+
+ /**
+ * 将单位为分的金额转换为单位为元
+ *
+ * @param fen 单位为分的字符型值
+ * @return String
+ */
+ public static String fen2Yuan(int fen) {
+ BigDecimal var1 = new BigDecimal(fen);
+ BigDecimal var2 = new BigDecimal(100);
+ BigDecimal var3 = var1.divide(var2, 3);
+ return var3.stripTrailingZeros().toPlainString();
+ }
+
+ /**
+ * 将单位为分的金额转换为单位为元
+ *
+ * @param fen 单位为分的字符型值
+ * @return BigDecimal
+ */
+ public static BigDecimal fen2YuanDecimal(int fen) {
+ BigDecimal var1 = new BigDecimal(fen);
+ BigDecimal var2 = new BigDecimal(100);
+ return var1.divide(var2, 3);
+ }
+
+}
diff --git a/server/like-front/src/main/java/com/mdd/front/controller/PayController.java b/server/like-front/src/main/java/com/mdd/front/controller/PayController.java
index a6c7523d..2f24d194 100644
--- a/server/like-front/src/main/java/com/mdd/front/controller/PayController.java
+++ b/server/like-front/src/main/java/com/mdd/front/controller/PayController.java
@@ -1,25 +1,36 @@
package com.mdd.front.controller;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderV3Result;
import com.mdd.common.aop.NotLogin;
import com.mdd.common.core.AjaxResult;
+import com.mdd.common.entity.RechargeOrder;
+import com.mdd.common.exception.OperateException;
+import com.mdd.common.mapper.RechargeOrderMapper;
import com.mdd.front.LikeFrontThreadLocal;
import com.mdd.front.service.IPayService;
-import com.mdd.front.validate.PayPrepayValidate;
+import com.mdd.front.validate.PaymentValidate;
+import com.mdd.front.validate.users.UserUpdateValidate;
import io.swagger.annotations.Api;
-import io.swagger.models.auth.In;
-import io.swagger.v3.oas.annotations.parameters.RequestBody;
+import org.springframework.util.Assert;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
+import java.util.LinkedHashMap;
+import java.util.Map;
@RestController
@RequestMapping("/api/pay")
@Api(tags = "支付管理")
public class PayController {
+ @Resource
+ RechargeOrderMapper rechargeOrderMapper;
+
@Resource
IPayService iPayService;
@@ -28,14 +39,57 @@ public class PayController {
*
* @return AjaxResult