cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ExchangeDetailsResponse.java
@@ -9,6 +9,10 @@ @Data public class ExchangeDetailsResponse { @ApiModelProperty(value = "2.0新增字段二维码类型 1订场 2散客 3门票 4惠民卡") private Integer codeType; @ApiModelProperty(value = "2.0新增字段数据id") private Integer dataId; @ApiModelProperty(value = "记录id") private Long detailsId; @@ -25,6 +29,7 @@ @ApiModelProperty(value = "兑换方式(1=积分,2=积分+现金 3=现金 4=会员赠送 当该字段为4时切goodType=3门票时 展示的二维码内容增加一个vipDetail:当前数据id)") private Integer exchangeType; @ApiModelProperty(value = "有效期开始时间") private String startTime; cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java
@@ -398,7 +398,9 @@ jsonArray.add(jsonObject2); } } }else{ } } if (jsonArray.isEmpty()){ // 返回过期的二维码 保证开门失败即可 JSONObject jsonObject3 = new JSONObject(); Date date1 = new Date(); @@ -407,11 +409,11 @@ jsonObject3.put("start_time", simpleDateFormat1.format( date1)); jsonArray.add(jsonObject3); } } } } else{ if (jsonArray.isEmpty()){ // 返回过期的二维码 保证开门失败即可 JSONObject jsonObject3 = new JSONObject(); Date date1 = new Date(); @@ -420,19 +422,20 @@ jsonObject3.put("start_time", simpleDateFormat1.format( date1)); jsonArray.add(jsonObject3); } } if (!jsonArray.isEmpty()) { huiminCardVO1.setEndTime(simpleDateFormat.format(payHuimin.getEndTime())); TStudent tStudent = tStudents.stream().filter(e -> e.getId().equals(Integer.valueOf(payHuimin.getStudentId().split(",")[0]))).findFirst().orElse(null); if (tStudent!=null){ huiminCardVO1.setStudentName(tStudent.getName()); String temp = "{\"id\":"+payHuimin.getId() + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}"; String temp = "{\"id\":"+payHuimin.getId() + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+payHuimin.getId()+"}"; huiminCardVO1.setQrCode(temp); }else{ huiminCardVO1.setStudentName(""); String temp = "{\"id\":"+payHuimin.getId() + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}"; String temp = "{\"id\":"+payHuimin.getId() + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+payHuimin.getId()+"}"; huiminCardVO1.setQrCode(temp); } huiminCardVOS.add(huiminCardVO1); @@ -568,7 +571,9 @@ jsonArray.add(jsonObject2); } } }else{ } } if (jsonArray.isEmpty()){ // 返回过期的二维码 保证开门失败即可 JSONObject jsonObject3 = new JSONObject(); Date date1 = new Date(); @@ -579,16 +584,17 @@ jsonArray.add(jsonObject3); } } } }else{ if (jsonArray.isEmpty()){ // 返回过期的二维码 保证开门失败即可 JSONObject jsonObject = new JSONObject(); JSONObject jsonObject3 = new JSONObject(); Date date1 = new Date(); date1.setTime(date1.getTime() - 300 * 1000); jsonObject.put("end_time", simpleDateFormat1.format( date1)); jsonObject.put("start_time", simpleDateFormat1.format( date1)); jsonObject3.put("end_time", simpleDateFormat1.format( date1)); jsonObject3.put("start_time", simpleDateFormat1.format( date1)); jsonArray.add(jsonObject); jsonArray.add(jsonObject3); } } if (!jsonArray.isEmpty()) { // 将学员加入 @@ -698,7 +704,9 @@ jsonArray.add(jsonObject2); } } }else{ } } if (jsonArray.isEmpty()){ // 返回过期的二维码 保证开门失败即可 JSONObject jsonObject3 = new JSONObject(); Date date1 = new Date(); @@ -709,25 +717,26 @@ jsonArray.add(jsonObject3); } } } }else{ if (jsonArray.isEmpty()){ // 返回过期的二维码 保证开门失败即可 JSONObject jsonObject = new JSONObject(); JSONObject jsonObject3 = new JSONObject(); Date date1 = new Date(); date1.setTime(date1.getTime() - 300 * 1000); jsonObject.put("end_time", simpleDateFormat1.format( date1)); jsonObject.put("start_time", simpleDateFormat1.format( date1)); jsonObject3.put("end_time", simpleDateFormat1.format( date1)); jsonObject3.put("start_time", simpleDateFormat1.format( date1)); jsonArray.add(jsonObject); jsonArray.add(jsonObject3); } } TStudent tStudent = tStudents.stream().filter(e -> e.getId().equals(studentId)).findFirst().orElse(null); if (tStudent!=null){ huiminCardStudentVO.setStudentName(tStudent.getName()); String temp = "{\"id\":"+tPayHuimin.getId() + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}"; String temp = "{\"id\":"+tPayHuimin.getId() + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+tPayHuimin.getId()+"}"; huiminCardStudentVO.setQrCode(temp); }else{ huiminCardStudentVO.setStudentName(""); String temp = "{\"id\":"+tPayHuimin.getId() + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}"; String temp = "{\"id\":"+tPayHuimin.getId() + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+tPayHuimin.getId()+"}"; huiminCardStudentVO.setQrCode(temp); } @@ -963,7 +972,9 @@ jsonArray.add(jsonObject2); } } }else{ } } if (jsonArray.isEmpty()){ // 返回过期的二维码 保证开门失败即可 JSONObject jsonObject3 = new JSONObject(); Date date1 = new Date(); @@ -974,19 +985,20 @@ jsonArray.add(jsonObject3); } } } }else{ if (jsonArray.isEmpty()){ // 返回过期的二维码 保证开门失败即可 JSONObject jsonObject = new JSONObject(); JSONObject jsonObject3 = new JSONObject(); Date date1 = new Date(); date1.setTime(date1.getTime() - 300 * 1000); jsonObject.put("end_time", simpleDateFormat1.format( date1)); jsonObject.put("start_time", simpleDateFormat1.format( date1)); jsonObject3.put("end_time", simpleDateFormat1.format( date1)); jsonObject3.put("start_time", simpleDateFormat1.format( date1)); jsonArray.add(jsonObject); jsonArray.add(jsonObject3); } } String temp = "{\"id\":"+tPayHuimin.getId() + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tPayHuimin.getStudentId().split(",")[0] + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}"; String temp = "{\"id\":"+tPayHuimin.getId() + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tPayHuimin.getStudentId().split(",")[0] + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+tPayHuimin.getId()+"}"; myHuiminCardDetailVO.setQrCode(temp); myHuiminCardDetailVO.setCardId(tPayHuimin.getCardId()); myHuiminCardDetailVO.setHuiminCard(byId); cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -95,11 +95,13 @@ public void changeState(@RequestBody CoachChangeStateVO dto) { pmdsService.changeState(dto); } @ResponseBody @PostMapping("/base/pointMerchars/goodsList") public List<PointsMerchandise> goodsList() { return pmdsService.list(); } /** * 根据id查询 */ @@ -396,13 +398,13 @@ @PostMapping("/base/pointMerchars/getCommoditys") public PointMerchandiseVo getVicinityGoods(@RequestBody CommodityRequest request) { PointMerchandiseVo pointMerchandiseVo = new PointMerchandiseVo(); List<PointsMerchandise> list = new ArrayList<>(); String provinceCode = ""; String cityCode = ""; if (ToolUtil.isEmpty(request.getLon()) && ToolUtil.isEmpty(request.getLat())) { return pointMerchandiseVo; } }else{ try { Map<String, String> geocode = gdMapGeocodingUtil.geocode(request.getLon(), request.getLat()); provinceCode = geocode.get("provinceCode"); @@ -410,6 +412,8 @@ } catch (Exception e) { e.printStackTrace(); } } list = pmdsService.list(new QueryWrapper<PointsMerchandise>() .eq("state", 1) @@ -418,6 +422,27 @@ .ge("endTime", new Date()) .eq("status", 1) ); if (request.getShopId()!=null){ List<Integer> storeId = new ArrayList<>(); storeId.add(request.getShopId()); List<Store> stores = storeClient.queryStoreByIds(storeId); Store store = stores.get(0); provinceCode = store.getProvinceCode(); cityCode = store.getCityCode(); List<Integer> pointsMerchandiseIds = pmdstoService.lambdaQuery().eq(PointsMerchandiseStore::getStoreId, request.getShopId()).list() .stream().map(PointsMerchandiseStore::getPointsMerchandiseId) .collect(Collectors.toList()); if (pointsMerchandiseIds.isEmpty()){ pointMerchandiseVo.setMerchandises(list); return pointMerchandiseVo; }else{ List<PointsMerchandise> pointsMerchandiseList = pmdsService.lambdaQuery().in(PointsMerchandise::getId, pointsMerchandiseIds).list(); list.addAll(pointsMerchandiseList); List<PointsMerchandise> listAll = list.stream().distinct().collect(Collectors.toList()); list = listAll; } } if (list.size() > 0) { Iterator<PointsMerchandise> iterator = list.iterator(); while (iterator.hasNext()) { @@ -834,7 +859,6 @@ private ICouponService couponService; @ResponseBody @PostMapping("/base/pointMerchars/getDetailsOfExchange") public ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId) throws ParseException { @@ -885,6 +909,8 @@ detailsResponse.setUseStatus(pointsMerchandise.getStatus() == 1 ? 2 : 1); detailsResponse.setGoodType(merchandise.getType()); if (merchandise.getType() == 3) { detailsResponse.setCodeType(3); detailsResponse.setDataId(pointsMerchandise.getPointsMerchandiseId()); detailsResponse.setCardType(merchandise.getCardType()); List<Integer> sids = new ArrayList<>(); detailsResponse.setUserId(appUserId); @@ -1078,6 +1104,7 @@ detailsResponse.setEndTime(simpleDateFormat.format(vipDetail.getEndTime())); detailsResponse.setUseStatus(vipDetail.getStatus()==1?2:1); detailsResponse.setGoodType(3); detailsResponse.setCardType(3); // 表明是会员赠送的门票 detailsResponse.setExchangeType(4); // 全国通用 @@ -1510,6 +1537,7 @@ upmseService.save(merchandise); return merchandise.getId(); } @PostMapping("/base/pointMerchars/saveDetailsUserPointMercaseList") public Boolean saveDetailsUserPointMercaseList(@RequestBody List<UserPointsMerchandise> merchandises) { for (UserPointsMerchandise merchandise : merchandises) { @@ -1910,7 +1938,6 @@ } return storeVos; } @ResponseBody cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ExchangeDetailsResponse.java
@@ -10,6 +10,10 @@ @Data public class ExchangeDetailsResponse { @ApiModelProperty(value = "2.0新增字段二维码类型 1订场 2散客 3门票 4惠民卡") private Integer codeType; @ApiModelProperty(value = "2.0新增字段数据id") private Integer dataId; @ApiModelProperty(value = "记录id") private Long detailsId; @@ -25,6 +29,8 @@ @ApiModelProperty(value = "兑换方式(1=积分,2=积分+现金 3=现金 4=会员赠送 当该字段为4时 展示的二维码内容增加一个vipDetail:当前数据id)") private Integer exchangeType; @ApiModelProperty(value = "有效期开始时间") private String startTime; cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OssUploadUtil.java
@@ -11,10 +11,14 @@ import java.util.UUID; public class OssUploadUtil { // LTAI5tKLeAE1B5n2mvTZ5yy6 // zradDLTBGdzq26tYz9RUCUh0sPmfhh //OSS图片访问域名 public static String oss_domain = "https://we-park-life.oss-cn-beijing.aliyuncs.com/"; public static String accessKeyId = "LTAI47eyqWWhBPXM"; public static String accessKeySecret = "orsYX78NvgXS9KbN7wCwRja1wkUwPc"; // public static String accessKeyId = "LTAI5tE3ownRhJ7eXsuW7Vn7"; // public static String accessKeySecret = "Crgi0OhtDRuJafIeyT3JQL9v0P4EgH"; public static String accessKeyId = "LTAI5tKLeAE1B5n2mvTZ5yy6"; public static String accessKeySecret = "zradDLTBGdzq26tYz9RUCUh0sPmfhh"; public static String bucketName="we-park-life"; public static String endpoint = "oss-cn-beijing.aliyuncs.com"; cloud-server-other/src/main/java/com/dsh/other/controller/CodeCallBackController.java
@@ -21,18 +21,20 @@ @RestController @RequestMapping("/base/code") public class CodeCallBackController { // 进场二维码新增参数codeType 1=订场 2=散客,3=门票,玩湃惠民卡codeType=4 /** * 硬件开门后回调 是否可进场检查接口 sid门店id rid场地id */ @PostMapping("/verify") public ResultUtil verify(Integer codeType, Integer rid, Integer sid) { public ResultUtil verify(Integer codeType,Integer dataId, Integer rid, Integer sid) { System.err.println("硬件开门后回调 校验是否可入场"); System.err.println("codeType:"+codeType); System.err.println("dataId:"+dataId); System.err.println("rid:"+rid); System.err.println("sid:"+sid); Date date = new Date(); // codeType二维码类型 1=订场 2=散客 散客需要校验能否进场 // codeType二维码类型1=订场 2=散客,3=门票,玩湃惠民卡codeType=4 234需要校验能否进场 if (codeType==1){ return ResultUtil.success(true); } cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -363,10 +363,12 @@ }) public ResultUtil reservationSite(ReservationSite reservationSite) { try { Integer uid = tokenUtil.getUserIdFormRedis(); if (null == uid) { return ResultUtil.tokenErr(); } // Integer uid = tokenUtil.getUserIdFormRedis(); // if (null == uid) { // return ResultUtil.tokenErr(); // } Integer uid = 201; return siteService.reservationSite(uid, reservationSite); } catch (Exception e) { e.printStackTrace(); @@ -634,6 +636,7 @@ HashMap<String, Object> map = new HashMap<>(); System.err.println("预约id"+id); SiteBooking siteBooking = siteBookingService.getById(id); Integer targetAudience = siteBooking.getTargetAudience(); System.err.println("预约"+siteBooking); Integer storeId = siteBooking.getStoreId(); Store byId1 = service.getById(storeId); @@ -644,6 +647,10 @@ map.put("siteType", siteType.getName()); map.put("shopName", byId1.getName()); map.put("shopAddress", byId1.getAddress()); // 进场二维码新增参数codeType 1=订场 2=散客,3=门票,玩湃惠民卡codeType=4 map.put("codeType", targetAudience); map.put("dataId", siteBooking.getId()); System.err.println("订场类型:"+targetAudience); map.put("name", site.getName()); cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -90,6 +90,7 @@ private ISiteService siteService; /** * 获取场地列表 * @@ -137,7 +138,6 @@ querySiteInfoVo.setTargetAudience(3); } querySiteInfoVo.setTargetAudience(3); querySiteInfoVo.setId(site.getId()); querySiteInfoVo.setTypeName(site.getTypeName()); querySiteInfoVo.setName(site.getName()); @@ -817,17 +817,39 @@ 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) { if (queryMySiteVo.getIsHalf() == 1) { queryMySiteVo.setPlayPaiCoin((int) (site.getPlayPaiCoinOne() * split.length)); // 所选时间段 所需总计金额 BigDecimal money = BigDecimal.ZERO; BigDecimal playCoin = BigDecimal.ZERO; for (String s : split) { } else { queryMySiteVo.setPlayPaiCoin(site.getPlayPaiCoin() * split.length); String day = s.split(" ")[0]; String time = s.split(" ")[1]; String bookingStart = day + " " + time.split("-")[0]; String bookingEnd = day + " " + time.split("-")[1]; List<QuerySiteTimes> querySiteTimes = querySiteTimes(siteBooking.getId(), day, siteBooking.getHalfName(), siteBooking.getNextName(), siteBooking.getTargetAudience()); for (QuerySiteTimes querySiteTime : querySiteTimes) { String timePriceStart = day + " " + querySiteTime.getTime().split("-")[0]; String timePriceEnd = day + " " + querySiteTime.getTime().split("-")[1]; // if (!isTimePeriodsIntersect(timePriceStart, timePriceEnd, bookingStart, bookingEnd)) { // // 时间不相交 // } else if (querySiteTime.getSelectable() == 0) { // if (querySiteTime.getIsReserve() == 1) { // return ResultUtil.error("【" + s + "】" + // "时间段已被使用"); // } else { // return ResultUtil.error("【" + s + "】" + // "时间段散客人数已满"); // } // } if (querySiteTime.getTime().equals(time)) { money = money.add(querySiteTime.getCashPrice()); playCoin = playCoin.add(querySiteTime.getCoinPrice()); break; } } } queryMySiteVo.setPlayPaiCoin(playCoin.setScale(0, RoundingMode.DOWN).intValue()); } return queryMySiteVos; } @@ -967,23 +989,34 @@ Site site = this.getById(siteBooking.getSiteId()); AppUser appUser = appUserClient.queryAppUser(uid); String[] split = siteBooking.getTimes().split(";"); Double payMoney = 0D; if (payType == 3) { // 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("玩湃币不足"); // 所选时间段 所需总计金额 BigDecimal money = BigDecimal.ZERO; BigDecimal playCoin = BigDecimal.ZERO; for (String s : split) { String day = s.split(" ")[0]; String time = s.split(" ")[1]; String bookingStart = day + " " + time.split("-")[0]; String bookingEnd = day + " " + time.split("-")[1]; List<QuerySiteTimes> querySiteTimes = querySiteTimes(siteBooking.getId(), day, siteBooking.getHalfName(), siteBooking.getNextName(), siteBooking.getTargetAudience()); for (QuerySiteTimes querySiteTime : querySiteTimes) { String timePriceStart = day + " " + querySiteTime.getTime().split("-")[0]; String timePriceEnd = day + " " + querySiteTime.getTime().split("-")[1]; if (!isTimePeriodsIntersect(timePriceStart, timePriceEnd, bookingStart, bookingEnd)) { // 时间不相交 } else if (querySiteTime.getSelectable() == 0) { if (querySiteTime.getIsReserve() == 1) { return ResultUtil.error("【" + s + "】" + "时间段已被使用"); } else { return ResultUtil.error("【" + s + "】" + "时间段散客人数已满"); } if (siteBooking.getIsHalf() == 2) { 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(); } } else { 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(); if (querySiteTime.getTime().equals(time)) { money = money.add(querySiteTime.getCashPrice()); playCoin = playCoin.add(querySiteTime.getCoinPrice()); break; } } } @@ -997,12 +1030,12 @@ JSONObject jsonObject = JSON.parseObject(coupon.getContent()); Double num1 = jsonObject.getDouble("conditionalAmount"); Double num2 = jsonObject.getDouble("deductionAmount"); payMoney = new BigDecimal(payMoney).subtract(new BigDecimal(num2)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); money = money.subtract(new BigDecimal(num2)).setScale(2, RoundingMode.HALF_EVEN); } if (coupon.getType() == 2) {//代金券 JSONObject jsonObject = JSON.parseObject(coupon.getContent()); Double num1 = jsonObject.getDouble("conditionalAmount"); payMoney = new BigDecimal(payMoney).subtract(new BigDecimal(num1)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); money = money.subtract(new BigDecimal(num1)).setScale(2, RoundingMode.HALF_EVEN); } userCoupon.setStatus(2); userCouponClient.updateUserCoupon(userCoupon); @@ -1016,19 +1049,19 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); siteBooking.setOrderNo(sdf.format(new Date()) + UUIDUtil.getNumberRandom(3)); siteBooking.setPayType(payType); siteBooking.setPayMoney(payMoney); siteBooking.setPayMoney(money.doubleValue()); if (payType == 3) { siteBooking.setUserCouponId(null); } siteBookingService.updateById(siteBooking); if (payType == 1) {//微信支付 return weChatPaymentSite(payMoney, siteBooking); return weChatPaymentSite(money.doubleValue(), siteBooking); } if (payType == 2) {//支付宝支付 return aliPaymentSite(payMoney, siteBooking); return aliPaymentSite(money.doubleValue(), siteBooking); } if (payType == 3) {//玩湃币支付 return playPaiCoinPaymentSite(appUser, payMoney, siteBooking); return playPaiCoinPaymentSite(appUser, playCoin.doubleValue(), siteBooking); } return ResultUtil.success(); } @@ -1050,22 +1083,35 @@ Site site = this.getById(siteBooking.getSiteId()); String[] split = siteBooking.getTimes().split(";"); Map<String, Double> map = new HashMap<>(); Double payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); if (siteBooking.getIsHalf() == 2) { payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); // 所选时间段 所需总计金额 BigDecimal money = BigDecimal.ZERO; BigDecimal playCoin = BigDecimal.ZERO; for (String s : split) { String day = s.split(" ")[0]; String time = s.split(" ")[1]; String bookingStart = day + " " + time.split("-")[0]; String bookingEnd = day + " " + time.split("-")[1]; List<QuerySiteTimes> querySiteTimes = querySiteTimes(siteBooking.getId(), day, siteBooking.getHalfName(), siteBooking.getNextName(), siteBooking.getTargetAudience()); for (QuerySiteTimes querySiteTime : querySiteTimes) { String timePriceStart = day + " " + querySiteTime.getTime().split("-")[0]; String timePriceEnd = day + " " + querySiteTime.getTime().split("-")[1]; if (!isTimePeriodsIntersect(timePriceStart, timePriceEnd, bookingStart, bookingEnd)) { // 时间不相交 } else if (querySiteTime.getSelectable() == 0) { if (querySiteTime.getIsReserve() == 1) { return ResultUtil.error("【" + s + "】" + "时间段已被使用"); } else { payMoney = new BigDecimal(site.getPlayPaiCoinOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); return ResultUtil.error("【" + s + "】" + "时间段散客人数已满"); } map.put("playPaiCoin", payMoney); 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(); } if (querySiteTime.getTime().equals(time)) { money = money.add(querySiteTime.getCashPrice()); playCoin = playCoin.add(querySiteTime.getCoinPrice()); break; } } } //校验优惠券 @@ -1078,15 +1124,24 @@ JSONObject jsonObject = JSON.parseObject(coupon.getContent()); Double num1 = jsonObject.getDouble("conditionalAmount"); Double num2 = jsonObject.getDouble("deductionAmount"); payMoney = new BigDecimal(payMoney).subtract(new BigDecimal(num2)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); money = money.subtract(new BigDecimal(num2)).setScale(2, RoundingMode.HALF_EVEN); } if (coupon.getType() == 2) {//代金券 JSONObject jsonObject = JSON.parseObject(coupon.getContent()); Double num1 = jsonObject.getDouble("conditionalAmount"); payMoney = new BigDecimal(payMoney).subtract(new BigDecimal(num1)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); money = money.subtract(new BigDecimal(num1)).setScale(2, RoundingMode.HALF_EVEN); } } map.put("cash", payMoney); switch (siteBooking.getPayType()){ case 1: map.put("cash", money.doubleValue()); break; case 2: map.put("cash", money.doubleValue()); break; case 3: map.put("cash", playCoin.doubleValue()); } return ResultUtil.success(map); }