diff --git a/ruoyi-catdog/pom.xml b/ruoyi-catdog/pom.xml
index 2db25e3..7e21e9d 100644
--- a/ruoyi-catdog/pom.xml
+++ b/ruoyi-catdog/pom.xml
@@ -79,6 +79,12 @@
0.0.20131108.vaadin1
compile
+
+ com.ruoyi
+ ruoyi-mall
+ 3.7.0
+ compile
+
diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletAmountController.java b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletAmountController.java
index aa218de..b2db9f9 100644
--- a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletAmountController.java
+++ b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletAmountController.java
@@ -1,14 +1,21 @@
package com.ruoyi.applet.contoller;
import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.model.domain.AppUsers;
import com.ruoyi.model.domain.AppletAmountLog;
import com.ruoyi.model.domain.AppletConfig;
+import com.ruoyi.model.service.IAppUsersService;
import com.ruoyi.model.service.IAppletAmountLogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
import java.util.List;
@Api(description = "小程序-金额相关接口")
@@ -18,6 +25,10 @@ public class ApiAppletAmountController {
//金额流水信息
@Autowired
private IAppletAmountLogService appletAmountLogService;
+ @Autowired
+ private IAppUsersService appUsersService;
+
+
@ApiOperation("小程序-金额流水信息列表数据查询")
@GetMapping("/amountLogList")
@@ -34,8 +45,42 @@ public class ApiAppletAmountController {
@ApiOperation("小程序-提现")
@PostMapping("/cashOut")
- public AjaxResult cashOut(AppletAmountLog appletAmountLog){
- return AjaxResult.success("提现接口暂未处理");
+ @Transactional // 简单事务管理
+ public AjaxResult cashOut(@RequestBody AppletAmountLog appletAmountLog) {
+ // 基础校验
+ if (appletAmountLog.getUserId() == null) {
+ return AjaxResult.error("用户ID不能为空");
+ }
+ if (appletAmountLog.getAmount() == null ||
+ appletAmountLog.getAmount().compareTo(BigDecimal.ZERO) <= 0) {
+ return AjaxResult.error("提现金额必须大于0");
+ }
+
+ // 查询用户余额
+ AppUsers user = appUsersService.selectAppUsersByUserId(appletAmountLog.getUserId());
+ if (user == null) {
+ return AjaxResult.error("用户不存在");
+ }
+
+ // 检查余额是否足够
+ if (user.getPrice().compareTo(appletAmountLog.getAmount()) < 0) {
+ return AjaxResult.error("余额不足");
+ }
+
+ try {
+ // 扣减余额(直接更新)
+ user.setPrice(user.getPrice().subtract(appletAmountLog.getAmount()));
+ appUsersService.updateAppUsers(user);
+
+ // 记录日志
+ appletAmountLog.setUserId(user.getUserId());
+// appletAmountLog.setCreateTime(LocalDateTime.now());
+ appletAmountLogService.insertAppletAmountLog(appletAmountLog);
+
+ return AjaxResult.success("提现成功");
+ } catch (Exception e) {
+ return AjaxResult.error("提现处理失败");
+ }
}
}
diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java
index 62cd884..f188905 100644
--- a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java
+++ b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java
@@ -1,6 +1,7 @@
package com.ruoyi.applet.contoller;
+import com.ruoyi.applet.pojo.vo.PetDate;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.model.domain.AppletOrder;
@@ -13,7 +14,9 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import static cn.hutool.poi.excel.sax.ElementName.v;
@@ -53,8 +56,24 @@ public class ApiAppletOrderController {
return AjaxResult.error("订单标识不能为空");
}
AppletOrder appletOrder1 = appletOrderService.selectAppletOrderById(appletOrder.getId());
- appletOrder1.setAppletPetList(appletPetService.selectAppletPetListByOrderId(appletOrder1.getId()));
- return AjaxResult.success("接单大厅查看详情",appletOrder1);
+ List appletPets = appletPetService.selectAppletPetListByOrderId(appletOrder1.getId());
+ PetDate petDate = new PetDate();
+ petDate.setDate("12-12");
+ petDate.setTitle("上门喂养");
+ petDate.setNum(10);
+
+ //比例
+ Map map = new HashMap<>();
+ map.put("order",appletOrder1);
+ map.put("petList",appletPets);
+ map.put("petDate",petDate);
+// map.put("");
+
+
+
+
+
+ return AjaxResult.success("接单大厅查看详情",map);
}
diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletUserTeacherController.java b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletUserTeacherController.java
index ad53c1b..13920f9 100644
--- a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletUserTeacherController.java
+++ b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletUserTeacherController.java
@@ -1,18 +1,29 @@
package com.ruoyi.applet.contoller;
+import com.alibaba.fastjson.JSONObject;
+import com.cyl.h5.pojo.request.OrderPayRequest;
+import com.cyl.h5.pojo.response.OrderPayResponse;
+import com.cyl.manager.ums.domain.Member;
+import com.cyl.wechat.WechatPayService;
+import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.redis.RedisService;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.config.LocalDataUtil;
import com.ruoyi.model.domain.AppUsers;
import com.ruoyi.model.domain.AppletUsersTeacher;
import com.ruoyi.model.service.IAppUsersService;
import com.ruoyi.model.service.IAppletUsersTeacherService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
+@Slf4j
@Api(description = "伴宠师-伴宠师认证")
@RestController
@RequestMapping("/applet/UserTeacher")
@@ -21,6 +32,10 @@ public class ApiAppletUserTeacherController {
private IAppUsersService appUsersService;
@Autowired
private IAppletUsersTeacherService appletUsersTeacherService;
+ @Autowired
+ private WechatPayService wechatPayService;
+ @Autowired
+ private RedisService redisService;
@ApiOperation("伴宠师工作台-伴宠师列表数据查询")
@@ -40,6 +55,8 @@ public class ApiAppletUserTeacherController {
+
+
@ApiOperation("伴宠师工作台-伴宠师基本信息添加")
@PostMapping("/insertUser")
public AjaxResult insertUser(@RequestBody AppletUsersTeacher usersTeacher){
@@ -69,6 +86,50 @@ public class ApiAppletUserTeacherController {
return toAjax(appletUsersTeacherService.deleteAppletUsersTeacherById(id));
}
+
+
+
+ //保证金缴纳
+ @ApiOperation("伴宠师工作台-伴宠师基本信息删除")
+ @PostMapping("/payPrice")
+ public ResponseEntity orderPay(@RequestBody OrderPayRequest req){
+ log.info("订单支付","提交的数据:"+ JSONObject.toJSONString(req));
+ String redisKey = "h5_oms_bcs_pay_"+req.getPayId();
+ String redisValue = req.getPayId()+"_"+System.currentTimeMillis();
+ try {
+ redisService.lock(redisKey, redisValue, 60);
+ AppUsers member = appUsersService.selectAppUsersByUserId(req.getMemberId());
+ String orderNo = "";
+ String desc = "";
+ Integer totalAmount = 1;
+ String openId =member.getOpenid();
+ Long memberId = member.getUserId();
+ String appId = "";
+ String s = wechatPayService.jsapiPayForBCHSHI(
+ orderNo,
+ desc,
+ totalAmount,
+ openId,
+ memberId,
+ appId
+ );
+ return null;
+ }catch (Exception e){
+ log.error("支付方法异常", e);
+ throw new RuntimeException(e.getMessage());
+ }finally {
+ try{
+ redisService.unLock(redisKey,redisValue);
+ }catch (Exception e){
+ log.error("",e);
+ }
+ }
+ }
+
+
+
+
+
protected AjaxResult toAjax(int rows) {
return rows > 0 ? AjaxResult.success() : AjaxResult.error();
}
diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/applet/pojo/vo/PetDate.java b/ruoyi-catdog/src/main/java/com/ruoyi/applet/pojo/vo/PetDate.java
new file mode 100644
index 0000000..d44ff32
--- /dev/null
+++ b/ruoyi-catdog/src/main/java/com/ruoyi/applet/pojo/vo/PetDate.java
@@ -0,0 +1,16 @@
+package com.ruoyi.applet.pojo.vo;
+
+import lombok.Data;
+
+@Data
+public class PetDate {
+
+
+ private String date;
+
+ private String title;
+
+ private Integer num;
+
+
+}
diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayService.java b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayService.java
index 2880fef..4d07c1f 100644
--- a/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayService.java
+++ b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayService.java
@@ -76,4 +76,9 @@ public class WechatPayService {
log.info("【支付】开始调用jsapiPay支付请求结果:", response);
return response.getPrepayId();
}
+
+
+
+
+
}