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(); } + + + + + }