From 8c55ab2701c99cec16eff92a26fefdf77fcdd28f Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期一, 25 九月 2023 16:17:44 +0800
Subject: [PATCH] app接口修改

---
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java |  112 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 90 insertions(+), 22 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 d482fbb..5bcce9e 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
@@ -1,5 +1,6 @@
 package com.dsh.other.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -11,11 +12,15 @@
 import com.dsh.other.feignclient.activity.CouponClient;
 import com.dsh.other.feignclient.activity.UserCouponClient;
 import com.dsh.other.feignclient.activity.model.Coupon;
+import com.dsh.other.feignclient.activity.model.QueryUserCouponByIdAndUserId;
 import com.dsh.other.feignclient.activity.model.UserCoupon;
+import com.dsh.other.feignclient.model.SiteChangeStateVO;
 import com.dsh.other.mapper.SiteMapper;
 import com.dsh.other.model.*;
 import com.dsh.other.service.*;
 import com.dsh.other.util.*;
+import io.swagger.models.auth.In;
+import org.aspectj.weaver.ast.Var;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -55,6 +60,8 @@
 
     @Autowired
     private PayMoneyUtil payMoneyUtil;
+    @Autowired
+    private SiteMapper siteMapper;
 
 
 
@@ -103,7 +110,29 @@
         querySiteInfoVo.setStoreLon(store.getLon());
         querySiteInfoVo.setStoreLat(store.getLat());
         querySiteInfoVo.setStorePhone(store.getPhone());
+        querySiteInfoVo.setImgs(site.getImgs());
         querySiteInfoVo.setDistance(0D);
+        querySiteInfoVo.setCashPriceOne(site.getCashPriceOne());
+        if(site.getPlayPaiCoinOne()!=null){
+            querySiteInfoVo.setPlayPaiCoinOne(site.getPlayPaiCoinOne().intValue());
+        }
+
+        querySiteInfoVo.setIntroduce(site.getIntroduce());
+        ArrayList<String> nextName = new ArrayList<>();
+        ArrayList<String> halfName = new ArrayList<>();
+        String nextName1 = site.getNextName();
+        String halfName1 = site.getHalfName();
+        querySiteInfoVo.setIshalf(site.getIshalf());
+        String[] split = nextName1.split(",");
+        for (String s : split) {
+            nextName.add(s);
+        }
+        String[] split1 = halfName1.split(",");
+        for (String s : split1) {
+            halfName.add(s);
+        }
+        querySiteInfoVo.setHalfName(halfName);
+        querySiteInfoVo.setNextName(nextName);
         if(ToolUtil.isNotEmpty(lon) && ToolUtil.isNotEmpty(lat)){
             Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat());
             double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
@@ -132,19 +161,29 @@
         e.setTime(sdf.parse(day + " " + site.getAppointmentEndTime()));
 
         int hour = e.get(Calendar.HOUR_OF_DAY);
+
         int minute = e.get(Calendar.MINUTE);
+
         List<QuerySiteTimes> list = new ArrayList<>();
+
         SimpleDateFormat sdfs = new SimpleDateFormat("HH:mm");
+
         while (true){
+
             String start = sdfs.format(s.getTime());
 
             s.set(Calendar.MINUTE, s.get(Calendar.MINUTE) + 30);
+
             int e_hour = s.get(Calendar.HOUR_OF_DAY);
+
             int e_minute = s.get(Calendar.MINUTE);
+
             String end = sdfs.format(s.getTime());
 
             QuerySiteTimes querySiteTimes = new QuerySiteTimes();
+
             querySiteTimes.setTime(start + "-" + end);
+
             querySiteTimes.setSelectable(1);
 
             SiteBooking siteBooking = siteBookingService.getOne(new QueryWrapper<SiteBooking>().eq("siteId", id).eq("state", 1)
@@ -210,7 +249,7 @@
         //校验优惠券
         Long couponId = reservationSite.getCouponId();
         if(null != couponId && reservationSite.getPayType() != 3){
-            UserCoupon userCoupon = userCouponClient.queryUserCouponById(couponId);
+            UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(reservationSite.getCouponId(),uid));
             if(userCoupon.getStatus() == 2){
                 return ResultUtil.error("优惠券已被核销");
             }
@@ -220,9 +259,10 @@
                 return ResultUtil.error("优惠券已过期");
             }
             if(coupon.getType() == 1){//满减
+//                {"conditionalAmount":50,"deductionAmount":10,"experienceName":""}
                 JSONObject jsonObject = JSON.parseObject(coupon.getContent());
-                Double num1 = jsonObject.getDouble("num1");
-                Double num2 = jsonObject.getDouble("num2");
+                Double num1 = jsonObject.getDouble("conditionalAmount");
+                Double num2 = jsonObject.getDouble("deductionAmount");
                 if(payMoney.compareTo(num1) <= 0){
                     return ResultUtil.error("该优惠券无法使用");
                 }
@@ -231,7 +271,7 @@
             }
             if(coupon.getType() == 2){//代金券
                 JSONObject jsonObject = JSON.parseObject(coupon.getContent());
-                Double num1 = jsonObject.getDouble("num1");
+                Double num1 = jsonObject.getDouble("conditionalAmount");
                 if(payMoney.compareTo(num1) <= 0){
                     return ResultUtil.error("该优惠券无法使用");
                 }
@@ -262,6 +302,11 @@
         siteBooking.setStatus(0);
         siteBooking.setState(1);
         siteBooking.setInsertTime(new Date());
+
+        // 2.0
+        siteBooking.setNextName(reservationSite.getNextName());
+        siteBooking.setIsHalf(reservationSite.getIsHalf());
+        siteBooking.setHalfName(reservationSite.getHalfName());
         siteBookingService.save(siteBooking);
 
         if(reservationSite.getPayType() == 1){//微信支付
@@ -276,11 +321,7 @@
         return ResultUtil.success();
     }
 
-    public static void main(String[] args) {
-        String a ="2023-07-28 10:30-15:30";
-        String substring = a.substring(0,a.lastIndexOf("-"));
-        System.out.println(substring);
-    }
+
     /**
      * 课程微信支付
      * @param paymentPrice
@@ -436,7 +477,17 @@
     @Override
     public List<QueryMySiteVo> queryMySite(Integer uid, Integer status, Integer pageNo, Integer pageSize) throws Exception {
         pageNo = (pageNo - 1) * pageSize;
-        return this.baseMapper.queryMySite(uid, status, pageNo, pageSize);
+        List<QueryMySiteVo> queryMySiteVos = this.baseMapper.queryMySite(uid, status, pageNo, pageSize);
+        for (QueryMySiteVo queryMySiteVo : queryMySiteVos) {
+            SiteBooking siteBooking = siteBookingService.getById(queryMySiteVo.getId());
+            Site site = this.getById(siteBooking.getSiteId());
+            String[] split = siteBooking.getTimes().split(";");
+            if(site!=null){
+
+                queryMySiteVo.setPlayPaiCoin(site.getPlayPaiCoin() * split.length);
+            }
+        }
+        return queryMySiteVos;
     }
 
 
@@ -449,6 +500,12 @@
     @Override
     public ResultUtil cancelMySite(Integer uid, Integer id) throws Exception {
         SiteBooking siteBooking = siteBookingService.getById(id);
+
+        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
+        Date startTime = siteBooking.getStartTime();
+        if(format.format(new Date()).equals(format.format(startTime))){
+            return ResultUtil.error("预约当天,不能取消");
+        }
         if(siteBooking.getStatus() == 0){
             return ResultUtil.error("请先进行支付");
         }
@@ -483,7 +540,7 @@
             siteBooking.setRefundOrderNo(trade_no);
             siteBookingService.updateById(siteBooking);
             if(null != siteBooking.getUserCouponId()){
-                UserCoupon userCoupon = userCouponClient.queryUserCouponById(siteBooking.getUserCouponId());
+                UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(siteBooking.getUserCouponId(),siteBooking.getAppUserId()));
                 userCoupon.setStatus(1);
                 userCouponClient.updateUserCoupon(userCoupon);
             }
@@ -499,7 +556,7 @@
             siteBooking.setCancelTime(new Date());
             siteBookingService.updateById(siteBooking);
             if(null != siteBooking.getUserCouponId()){
-                UserCoupon userCoupon = userCouponClient.queryUserCouponById(siteBooking.getUserCouponId());
+                UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(siteBooking.getUserCouponId(),appUser.getId()));
                 userCoupon.setStatus(1);
                 userCouponClient.updateUserCoupon(userCoupon);
             }
@@ -527,7 +584,7 @@
         String[] split = siteBooking.getTimes().split(";");
         Double payMoney = 0D;
         if(payType == 3){
-            payMoney = new BigDecimal(site.getCashPrice()).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();
             if(appUser.getPlayPaiCoins().compareTo(payMoney.intValue()) < 0){
                 return ResultUtil.error("玩湃币不足");
             }
@@ -538,24 +595,25 @@
         //校验优惠券
         Long couponId = siteBooking.getUserCouponId();
         if(null != couponId && payType != 3){
-            UserCoupon userCoupon = userCouponClient.queryUserCouponById(couponId);
+            UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(siteBooking.getUserCouponId(),appUser.getId()));
             Coupon coupon = couponClient.queryCouponById(userCoupon.getCouponId());
             if(coupon.getType() == 1){//满减
+//                {"conditionalAmount":50,"deductionAmount":10,"experienceName":""}
                 JSONObject jsonObject = JSON.parseObject(coupon.getContent());
-                Double num1 = jsonObject.getDouble("num1");
-                Double num2 = jsonObject.getDouble("num2");
+                Double num1 = jsonObject.getDouble("conditionalAmount");
+                Double num2 = jsonObject.getDouble("deductionAmount");
                 payMoney = new BigDecimal(payMoney).subtract(new BigDecimal(num2)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
             }
             if(coupon.getType() == 2){//代金券
                 JSONObject jsonObject = JSON.parseObject(coupon.getContent());
-                Double num1 = jsonObject.getDouble("num1");
+                Double num1 = jsonObject.getDouble("conditionalAmount");
                 payMoney = new BigDecimal(payMoney).subtract(new BigDecimal(num1)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
             }
             userCoupon.setStatus(2);
             userCouponClient.updateUserCoupon(userCoupon);
         }
         if(null != couponId && payType == 3){
-            UserCoupon userCoupon = userCouponClient.queryUserCouponById(couponId);
+            UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(siteBooking.getUserCouponId(),appUser.getId()));
             userCoupon.setStatus(1);
             userCouponClient.updateUserCoupon(userCoupon);
         }
@@ -603,21 +661,31 @@
         //校验优惠券
         Long couponId = siteBooking.getUserCouponId();
         if(null != couponId){
-            UserCoupon userCoupon = userCouponClient.queryUserCouponById(couponId);
+            UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(siteBooking.getUserCouponId(),siteBooking.getAppUserId()));
             Coupon coupon = couponClient.queryCouponById(userCoupon.getCouponId());
             if(coupon.getType() == 1){//满减
+//                {"conditionalAmount":50,"deductionAmount":10,"experienceName":""}
                 JSONObject jsonObject = JSON.parseObject(coupon.getContent());
-                Double num1 = jsonObject.getDouble("num1");
-                Double num2 = jsonObject.getDouble("num2");
+                Double num1 = jsonObject.getDouble("conditionalAmount");
+                Double num2 = jsonObject.getDouble("deductionAmount");
                 payMoney = new BigDecimal(payMoney).subtract(new BigDecimal(num2)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
             }
             if(coupon.getType() == 2){//代金券
                 JSONObject jsonObject = JSON.parseObject(coupon.getContent());
-                Double num1 = jsonObject.getDouble("num1");
+                Double num1 = jsonObject.getDouble("conditionalAmount");
                 payMoney = new BigDecimal(payMoney).subtract(new BigDecimal(num1)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
             }
         }
         map.put("cash", payMoney);
         return ResultUtil.success(map);
     }
+
+    @Override
+    public Object changeState(SiteChangeStateVO vo) {
+
+        List<Integer> siteIds = vo.getSiteIds();
+        Integer type = vo.getType();
+        return siteMapper.changeState(siteIds,type);
+
+    }
 }

--
Gitblit v1.7.1