From 7d22ca5a1c9416e84430a3997664e17861a2951e Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 11 四月 2025 21:04:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0
---
cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java | 151 ++++++++++++++++++++++++++++++++++++++------------
1 files changed, 115 insertions(+), 36 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..2115a99 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);
@@ -129,7 +132,6 @@
case 2:
// 年内卡
Date date1 = new Date();
-
date1.setMonth(11);
date1.setDate(31);
date1.setHours(23);
@@ -145,13 +147,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) {
@@ -160,6 +166,7 @@
}
return ResultUtil.success();
}
+
/**
* 查看惠民卡详情
@@ -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"));
@@ -398,6 +435,15 @@
return ResultUtil.success(new ArrayList<>());
}
}
+
+ public static void main(String[] args) {
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ LocalDateTime localDateTime = LocalDateTime.now().plusDays(365);
+ // 将LocalDateTime转换为Date类型
+ Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
+ String format = simpleDateFormat.format(date);
+ System.err.println(format);
+ }
/**
* 个人中心-我的惠民卡-查看详情
*/
@@ -420,11 +466,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 +491,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