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 | 140 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 105 insertions(+), 35 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 663def8..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; @@ -83,18 +80,7 @@ private TokenUtil tokenUtil; private String smid = "2088330203191220";//平台支付宝商户号 - public static void main(String[] args) { - Date date = new Date(); - date.setMonth(11); - date.setDate(31); - date.setHours(23); - date.setMinutes(59); - date.setSeconds(59); - System.err.println(date); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - System.err.println(simpleDateFormat.format(date)); - } /** * 查看惠民卡详情 */ @@ -114,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); @@ -145,13 +148,17 @@ tPayHuimin.setCardId(huiminCard.getId()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); 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(), - "/huimin/callBack/weixinPayHuiminCallback", "APP", ""); + 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(), - "/huimin/callBack/aliPayHuiminCallback"); + String string = tPayHuimin.getSalesMoney().multiply(bigDecimal).setScale(2).toString(); + return payMoneyUtil.alipay(smid,"购买惠民卡", "购买惠民卡", "", tPayHuimin.getCode(), string, + "/base/huimin/callBack/aliPayHuiminCallback"); } } catch (Exception e) { @@ -248,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{ @@ -272,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); @@ -315,12 +331,11 @@ List<MyHuiminCardVO> cardList = huiminCardService.getMyHuiminCardList(pageNo,pageSize,uid); List<THuiminCard> list = huiminCardService.list(); for (MyHuiminCardVO myHuiminCardVO : cardList) { - if (myHuiminCardVO.getEndTime().before(new Date())){ - // 已过期 - myHuiminCardVO.setIsExpire(1); - }else{ - myHuiminCardVO.setIsExpire(0); - } + TPayHuimin byId = payHuiminService.getById(myHuiminCardVO.getId()); + myHuiminCardVO.setEndTime(byId.getEndTime()); + + myHuiminCardVO.setSalesMoney(byId.getSalesMoney()); + int count = huiminRecordService.count(new LambdaQueryWrapper<THuiminRecord>() .eq(THuiminRecord::getHuiminCardId, myHuiminCardVO.getCardId())); // 购卡7日内没有使用记录可退款。超过7日不管有没有使用记录都不能退款 @@ -335,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()); @@ -368,11 +392,24 @@ } 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(), - tPayHuimin.getSalesMoney().toString(), tPayHuimin.getSalesMoney().toString(), "/base/worldCup/wxRefundWorldCupCallback"); + tPayHuimin.getSalesMoney().toString(), tPayHuimin.getSalesMoney().toString(), "/base/huimin/callBack/wxRefundHuiminCallback"); if(!"SUCCESS".equals(map.get("return_code"))){ System.err.println("-------------微信退款失败---------"); System.err.println(map.get("return_msg")); @@ -420,11 +457,21 @@ } THuiminCard byId = huiminCardService.getById(tPayHuimin.getCardId()); MyHuiminCardDetailVO myHuiminCardDetailVO = new MyHuiminCardDetailVO(); -// myHuiminCardDetailVO.setQrCode(); - myHuiminCardDetailVO.setCardId(tPayHuimin.getCardId()); - if (byId!=null){ - myHuiminCardDetailVO.setIntroduce(byId.getIntroduce()); + 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); + myHuiminCardDetailVO.setIntroduce(byId.getIntroduce()); myHuiminCardDetailVO.setEndTime(tPayHuimin.getEndTime()); // 查询绑定人员列表 List<TStudent> studentByIds = studentClient.getStudentByIds(tPayHuimin.getStudentId()); @@ -435,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