From 2fed5b176458a3776be9ea39ae9bc52c461ca815 Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期六, 28 十月 2023 14:33:59 +0800 Subject: [PATCH] 10.28。1 --- cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java | 58 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 40 insertions(+), 18 deletions(-) diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java index 819ad25..b0a16b3 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java +++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.alipay.api.response.AlipayTradeQueryResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -177,6 +178,8 @@ // List<SiteBooking> siteBookings = siteClient.listBooks(id); List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).eq("nextName",siteName).like("times",day)); + + if (siteName==null|| siteName.equals("")){ siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).like("times",day)); } @@ -320,17 +323,18 @@ */ @Override public ResultUtil reservationSite(Integer uid, ReservationSite reservationSite) throws Exception { + Site site = this.getById(reservationSite.getId()); AppUser appUser = appUserClient.queryAppUser(uid); String[] split = reservationSite.getTimes().split(";"); - for (String s : split) { String day = s.split(" ")[0]; String time = s.split(" ")[1]; List<QuerySiteTimes> querySiteTimes = querySiteTimes(reservationSite.getId(), day,reservationSite.getHalfName(),reservationSite.getNextName()); for (QuerySiteTimes querySiteTime : querySiteTimes) { if(querySiteTime.getTime().equals(time) && querySiteTime.getSelectable() == 0){ - return ResultUtil.error("【" + s + "】时间段已被使用"); + return ResultUtil.error("【" + s + "】" + + "时间段已被使用"); } } } @@ -345,16 +349,21 @@ Double payMoney = 0D; if(reservationSite.getPayType() == 3){ if(reservationSite.getIsHalf()==2){ - payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() ; }else { - payMoney = new BigDecimal(site.getPlayPaiCoinOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + payMoney = new BigDecimal(site.getPlayPaiCoinOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() /2; } if(appUser.getPlayPaiCoins().compareTo(payMoney.intValue()) < 0){ return new ResultUtil(3,"玩湃币不足"); } }else{ - payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + if(reservationSite.getIsHalf()==2){ + payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() ; + }else { + payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() / 2; + + } } //校验优惠券 @@ -365,7 +374,7 @@ UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(reservationSite.getCouponId(),uid)); - if(userCoupon.getStatus() == 2){ + if(userCoupon!=null && userCoupon.getStatus() == 2){ return ResultUtil.error("优惠券已被核销"); } Coupon coupon = couponClient.queryCouponById(userCoupon.getCouponId()); @@ -373,7 +382,7 @@ if(System.currentTimeMillis() >= time){ return ResultUtil.error("优惠券已过期"); } - if(coupon.getType() == 1){//满减 + if(userCoupon!=null && coupon.getType() == 1){//满减 // {"conditionalAmount":50,"deductionAmount":10,"experienceName":""} JSONObject jsonObject = JSON.parseObject(coupon.getContent()); Double num1 = jsonObject.getDouble("conditionalAmount"); @@ -384,7 +393,7 @@ payMoney = new BigDecimal(payMoney).subtract(new BigDecimal(num2)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); } - if(coupon.getType() == 2){//代金券 + if(userCoupon!=null && coupon.getType() == 2){//代金券 JSONObject jsonObject = JSON.parseObject(coupon.getContent()); Double num1 = jsonObject.getDouble("conditionalAmount"); if(payMoney.compareTo(num1) <= 0){ @@ -425,8 +434,13 @@ siteBooking.setHalfName(reservationSite.getHalfName()); siteBookingService.save(siteBooking); + + + if(reservationSite.getPayType() == 1){//微信支付 - return weChatPaymentSite(payMoney, siteBooking); + ResultUtil resultUtil = weChatPaymentSite(payMoney, siteBooking); + + return resultUtil; } if(reservationSite.getPayType() == 2){//支付宝支付 return aliPaymentSite(payMoney, siteBooking); @@ -451,7 +465,7 @@ public ResultUtil weChatPaymentSite(Double paymentPrice, SiteBooking siteBooking) throws Exception{ String code = siteBooking.getOrderNo(); Integer id = siteBooking.getId(); - ResultUtil weixinpay = payMoneyUtil.weixinpay("预约场地", "", code, paymentPrice.toString(), "/base/site/weChatPaymentSiteCallback", "APP", ""); + ResultUtil weixinpay = payMoneyUtil.weixinpay("预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/weChatPaymentSiteCallback", "APP", ""); if(weixinpay.getCode() == 200){ new Thread(new Runnable() { @Override @@ -515,7 +529,7 @@ public ResultUtil aliPaymentSite(Double paymentPrice, SiteBooking siteBooking) throws Exception{ String code = siteBooking.getOrderNo(); Integer id = siteBooking.getId(); - ResultUtil alipay = payMoneyUtil.alipay("预约场地", "预约场地", "", code, paymentPrice.toString(), "/base/site/aliPaymentSiteCallback"); + ResultUtil alipay = payMoneyUtil.alipay("预约场地", "预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/aliPaymentSiteCallback"); if(alipay.getCode() == 200){ new Thread(new Runnable() { @Override @@ -531,17 +545,18 @@ if(siteBooking.getStatus() != 0){ break; } - ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code); - if(resultUtil.getCode() == 200 && siteBooking.getStatus() == 0){ + AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code); + if(resultUtil.getCode().equals("10000") && siteBooking.getStatus() == 0){ /** * WAIT_BUYER_PAY(交易创建,等待买家付款)、 * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 * TRADE_SUCCESS(交易支付成功)、 * TRADE_FINISHED(交易结束,不可退款) */ - Map<String, String> data1 = resultUtil.getData(); - String s = data1.get("tradeStatus"); - String tradeNo = data1.get("tradeNo"); +// Map<String, String> data1 = resultUtil.getData(); +// String s = data1.get("tradeStatus"); + String tradeNo = resultUtil.getTradeNo(); + String s = resultUtil.getTradeStatus(); if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){ break; } @@ -550,6 +565,7 @@ siteBooking.setStatus(1); siteBooking.setPayOrderNo(tradeNo); siteBookingService.updateById(siteBooking); + System.err.println("======完成支付"); break; } if("WAIT_BUYER_PAY".equals(s)){ @@ -581,7 +597,9 @@ siteBooking.setPayTime(new Date()); siteBooking.setStatus(1); siteBookingService.updateById(siteBooking); - return ResultUtil.success(); + HashMap<String, String> map = new HashMap<>(); + map.put("siteBooking",siteBooking.getId().toString()); + return ResultUtil.success(map); } @@ -723,7 +741,11 @@ return ResultUtil.error("玩湃币不足"); } }else{ - payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + if(siteBooking.getIsHalf()==2){ + payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + }else { + payMoney = new BigDecimal(site.getCashPriceOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + } } //校验优惠券 -- Gitblit v1.7.1