From b74277583bf9b2b89247061bf08c17a03b71c76e Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 10 四月 2025 14:16:43 +0800 Subject: [PATCH] 惠民卡代码 --- cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java | 79 ++++++++++++++++++++++++++++++++++----- 1 files changed, 69 insertions(+), 10 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 f6ae5b0..588136b 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,20 @@ return ResultUtil.tokenErr(); } THuiminCard huiminCard = huiminCardService.getById(id); + 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 +147,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 +252,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{ @@ -369,7 +383,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(), @@ -421,8 +448,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); @@ -437,5 +473,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