From 1d9f7b0cf4251f3058badb07dd7a2bc06b6bc09a Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 11 四月 2025 10:05:32 +0800 Subject: [PATCH] bug修改 --- cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java | 114 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 95 insertions(+), 19 deletions(-) diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java index 13f5e8c..e48fc69 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java @@ -17,10 +17,7 @@ import com.dsh.activity.feignclient.other.RegionClient; import com.dsh.activity.feignclient.other.SiteClient; import com.dsh.activity.feignclient.other.StoreClient; -import com.dsh.activity.feignclient.other.model.CityDataAndProvinceDataVo; -import com.dsh.activity.feignclient.other.model.Store; -import com.dsh.activity.feignclient.other.model.StoreInfoDto; -import com.dsh.activity.feignclient.other.model.TOperatorCity; +import com.dsh.activity.feignclient.other.model.*; import com.dsh.activity.model.CouponListVo; import com.dsh.activity.model.CouponRecordQuery; import com.dsh.activity.model.request.CommodityRequest; @@ -103,6 +100,23 @@ return ResultUtil.tokenErr(); } THuiminCard huiminCard = huiminCardService.getById(id); + if (huiminCard.getEndTime()!=null && huiminCard.getEndTime().before(new Date())){ + return ResultUtil.error("该惠民卡已过期"); + } + if (huiminCard.getGrantCount()!=null){ + if (huiminCard.getGrantCount()<=payHuiminService.lambdaQuery().eq(TPayHuimin::getCardId, huiminCard.getId()) + .eq(TPayHuimin::getStatus,2).count()){ + return ResultUtil.error("该惠民卡已售完"); + } + } + if (huiminCard.getLimitCount()!=null){ + if (huiminCard.getLimitCount()<=payHuiminService.lambdaQuery().eq(TPayHuimin::getCardId, huiminCard.getId()) + .eq(TPayHuimin::getStatus,2) + .eq(TPayHuimin::getAppUserId, uid) + .count()){ + return ResultUtil.error("该惠民卡购买次数已达上限"); + } + } TPayHuimin tPayHuimin = new TPayHuimin(); tPayHuimin.setSalesMoney(huiminCard.getSalesMoney()); tPayHuimin.setAppUserId(uid); @@ -136,12 +150,14 @@ tPayHuimin.setCode(sdf.format(new Date()) + UUIDUtil.getNumberRandom(5)); System.err.println("支付数据"+tPayHuimin); payHuiminService.save(tPayHuimin); + BigDecimal bigDecimal = new BigDecimal(studentIds.split(",").length); switch (payType){ case 1: - return payMoneyUtil.weixinpay("购买惠民卡"+"-"+0, "", tPayHuimin.getCode(), tPayHuimin.getSalesMoney().toString(), + return payMoneyUtil.weixinpay("购买惠民卡"+"-"+0, "", tPayHuimin.getCode(), tPayHuimin.getSalesMoney().multiply(bigDecimal).toString(), "/base/huimin/callBack/weixinPayHuiminCallback", "APP", ""); case 2: - return payMoneyUtil.alipay(smid,"购买惠民卡", "购买惠民卡", "", tPayHuimin.getCode(), tPayHuimin.getSalesMoney().toString(), + String string = tPayHuimin.getSalesMoney().multiply(bigDecimal).setScale(2).toString(); + return payMoneyUtil.alipay(smid,"购买惠民卡", "购买惠民卡", "", tPayHuimin.getCode(), string, "/base/huimin/callBack/aliPayHuiminCallback"); } @@ -239,7 +255,8 @@ pageNo = (pageNo - 1) * pageSize; HuiminAgreementVO huiminAgreementVO = new HuiminAgreementVO(); List<THuiminCard> cardList = huiminCardService.getHuiminAgreementAndList(pageNo,pageSize,storeId); - if (cardList.isEmpty()){ + List<THuiminCard> cardListNolimit = huiminCardService.getHuiminAgreementAndListNolimit(storeId); + if (cardListNolimit.isEmpty()){ // 没有配置惠民卡 展示富文本内容 huiminAgreementVO.setShowType(1); }else{ @@ -263,15 +280,23 @@ List<TPayHuimin> payHuimins = payHuiminService.list(new LambdaQueryWrapper<TPayHuimin>() .eq(TPayHuimin::getAppUserId, uid) .ge(TPayHuimin::getEndTime,new Date()) - .eq(TPayHuimin::getStatus, 1)); + .in(TPayHuimin::getStatus, Arrays.asList(2,3))); List<HuiminCardVO> huiminCardVOS = new ArrayList<>(); for (THuiminCard huiminCardVO : cardList) { HuiminCardVO huiminCardVO1 = new HuiminCardVO(); huiminCardVO1.setId(huiminCardVO.getId()); List<TPayHuimin> collect = payHuimins.stream().filter(e -> e.getCardId().equals(huiminCardVO.getId())).collect(Collectors.toList()); if (!collect.isEmpty()){ - huiminCardVO1.setCover(huiminCardVO.getBuyCover()); - huiminCardVO1.setIsBuy(1); + for (TPayHuimin tPayHuimin : collect) { + if (tPayHuimin.getStatus().equals(2)){ + huiminCardVO1.setCover(huiminCardVO.getBuyCover()); + huiminCardVO1.setIsBuy(1); + break; + }else{ + huiminCardVO1.setCover(huiminCardVO.getUnBuyCover()); + huiminCardVO1.setIsBuy(0); + } + } }else{ huiminCardVO1.setCover(huiminCardVO.getUnBuyCover()); huiminCardVO1.setIsBuy(0); @@ -307,13 +332,10 @@ List<THuiminCard> list = huiminCardService.list(); for (MyHuiminCardVO myHuiminCardVO : cardList) { TPayHuimin byId = payHuiminService.getById(myHuiminCardVO.getId()); + myHuiminCardVO.setEndTime(byId.getEndTime()); + myHuiminCardVO.setSalesMoney(byId.getSalesMoney()); - if (myHuiminCardVO.getEndTime().before(new Date())){ - // 已过期 - myHuiminCardVO.setIsExpire(1); - }else{ - myHuiminCardVO.setIsExpire(0); - } + int count = huiminRecordService.count(new LambdaQueryWrapper<THuiminRecord>() .eq(THuiminRecord::getHuiminCardId, myHuiminCardVO.getCardId())); // 购卡7日内没有使用记录可退款。超过7日不管有没有使用记录都不能退款 @@ -328,6 +350,15 @@ THuiminCard huiminCard = list.stream().filter(e -> e.getId().equals(myHuiminCardVO.getCardId())).findFirst().orElse(null); if (null!=huiminCard){ myHuiminCardVO.setCover(huiminCard.getBuyCover()); + } + if (myHuiminCardVO.getEndTime().before(new Date())){ + // 已过期 + myHuiminCardVO.setIsExpire(1); + if (null!=huiminCard){ + myHuiminCardVO.setCover(huiminCard.getUnBuyCover()); + } + }else{ + myHuiminCardVO.setIsExpire(0); } // 查询绑定人员列表 List<TStudent> studentByIds = studentClient.getStudentByIds(myHuiminCardVO.getStudentId()); @@ -361,7 +392,20 @@ } if (tPayHuimin.getStatus()==3 && tPayHuimin.getRefundStatus()!=1){ return ResultUtil.error("不可重复退款"); - + } + if (tPayHuimin.getEndTime().before(new Date())){ + // 已过期 + return ResultUtil.error("惠民卡已过期,不可退款"); + } + int count = huiminRecordService.count(new LambdaQueryWrapper<THuiminRecord>() + .eq(THuiminRecord::getHuiminCardId, tPayHuimin.getCardId())); + // 购卡7日内没有使用记录可退款。超过7日不管有没有使用记录都不能退款 + if (new Date().after(DateUtil.addDay(tPayHuimin.getPaymentTime(),7))){ + // 超过七天不可退款 + return ResultUtil.error("惠民卡购买超过七天,不可退款"); + }else if (count>=7){ + // 使用记录大于等于7次不可退款 + return ResultUtil.error("惠民卡使用记录大于等于7次,不可退款"); } if (tPayHuimin.getPaymentType()==1){ Map<String, String> map = payMoneyUtil.wxRefund(tPayHuimin.getOrderNumber(), tPayHuimin.getCode(), @@ -413,8 +457,17 @@ } THuiminCard byId = huiminCardService.getById(tPayHuimin.getCardId()); MyHuiminCardDetailVO myHuiminCardDetailVO = new MyHuiminCardDetailVO(); - String storeIds = byId.getStoreIds(); - String temp ="{\"storeIds\":\"" +storeIds+"\","+"\"useWeeks:\"\""+byId.getUseWeeks()+"\","+"\"useTimes:\""+byId.getUseTimes()+"\","+"\"unUseTimes:\""+byId.getUnUseTimes()+"\"}"; + String siteIds = ""; + if (byId.getUseScope()==2){ + siteIds = byId.getUseIds(); + }else{ + siteIds = siteClient.querySiteByStoreIds(byId.getStoreIds()) + .stream() + .map(Site::getId) + .map(String::valueOf) + .collect(Collectors.joining(",")); + } + String temp ="{\"siteIds\":\"" +siteIds+"\","+"\"useTimes:\"\""+byId.getUseWeeks()+"\","+"\"unUseTimes:\""+byId.getUnUseTimes()+"\"}"; myHuiminCardDetailVO.setQrCode(temp); myHuiminCardDetailVO.setCardId(tPayHuimin.getCardId()); myHuiminCardDetailVO.setHuiminCard(byId); @@ -429,5 +482,28 @@ return ResultUtil.success(new MyHuiminCardDetailVO()); } } + /** + * 获取添加人员、选择人员说明文案 + */ + @ResponseBody + @PostMapping("/getContentForStudent") + @ApiOperation(value = "获取添加人员、选择人员说明文案") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<THuiminAgreement> getContentForStudent() { + try { + Integer uid = tokenUtil.getUserIdFormRedis(); + if (null == uid) { + return ResultUtil.tokenErr(); + } + THuiminAgreement one = huiminAgreementService.lambdaQuery() + .isNull(THuiminAgreement::getOperatorId).last("limit 1").one(); + return ResultUtil.success(one); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.success(new THuiminAgreement()); + } + } } -- Gitblit v1.7.1