无关风月
2025-04-28 e7e7a3a2e5cd9aefa3e71dd05bbc5f6f4b88a1c0
cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java
@@ -1,5 +1,6 @@
package com.dsh.activity.controller;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -37,8 +38,11 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.TextStyle;
import java.util.*;
import java.util.stream.Collectors;
@@ -119,7 +123,9 @@
                }
            }
            TPayHuimin tPayHuimin = new TPayHuimin();
            tPayHuimin.setSalesMoney(huiminCard.getSalesMoney());
            String[] split = studentIds.split(",");
            tPayHuimin.setSalesMoney(huiminCard.getSalesMoney().multiply(new BigDecimal(split.length)).setScale(2));
            tPayHuimin.setAppUserId(uid);
            tPayHuimin.setStudentId(studentIds);
            switch (huiminCard.getHuiMinType()){
@@ -153,10 +159,10 @@
            BigDecimal bigDecimal = new BigDecimal(studentIds.split(",").length);
            switch (payType){
                case 1:
                    return payMoneyUtil.weixinpay("购买惠民卡"+"-"+0, "", tPayHuimin.getCode(), tPayHuimin.getSalesMoney().multiply(bigDecimal).toString(),
                    return payMoneyUtil.weixinpay("购买惠民卡" + "-" + 0, "", tPayHuimin.getCode(), tPayHuimin.getSalesMoney().toString(),
                            "/base/huimin/callBack/weixinPayHuiminCallback", "APP", "");
                case 2:
                    String string = tPayHuimin.getSalesMoney().multiply(bigDecimal).setScale(2).toString();
                    String string = tPayHuimin.getSalesMoney().toString();
                    return payMoneyUtil.alipay(smid,"购买惠民卡", "购买惠民卡", "", tPayHuimin.getCode(), string,
                            "/base/huimin/callBack/aliPayHuiminCallback");
            }
@@ -244,6 +250,7 @@
            return ResultUtil.success();
        }
    }
    /**
     * 惠民卡富文本内容-惠民卡列表
     */
@@ -262,9 +269,10 @@
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            pageNo = (pageNo - 1) * pageSize;
            HuiminAgreementVO huiminAgreementVO = new HuiminAgreementVO();
            List<THuiminCard> cardList = huiminCardService.getHuiminAgreementAndList(pageNo,pageSize,storeId);
            List<THuiminCard> list = huiminCardService.list();
            List<THuiminCard> cardListNolimit = huiminCardService.getHuiminAgreementAndListNolimit(storeId);
            if (cardListNolimit.isEmpty()){
                // 没有配置惠民卡 展示富文本内容
@@ -298,8 +306,95 @@
            List<TPayHuimin> payHuimins = payHuiminService.list(new LambdaQueryWrapper<TPayHuimin>()
                    .eq(TPayHuimin::getAppUserId, uid)
                    .ge(TPayHuimin::getEndTime,new Date())
                    .in(TPayHuimin::getStatus, Arrays.asList(2,3)));
                    .eq(TPayHuimin::getStatus, 2));
            List<HuiminCardVO> huiminCardVOS = new ArrayList<>();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            List<TStudent> tStudents = studentClient.queryStudentList(uid);
            List<Integer> integers = new ArrayList<>();
            for (TPayHuimin payHuimin : payHuimins) {
                if (integers.contains(payHuimin.getCardId())){
                    continue;
                }
                THuiminCard huiminCard = list.stream().filter(e -> e.getId().equals(payHuimin.getCardId())).findFirst().orElse(null);
                if (huiminCard == null) continue;
                HuiminCardVO huiminCardVO1 = new HuiminCardVO();
                huiminCardVO1.setId(huiminCard.getId());
                huiminCardVO1.setHuiminName(huiminCard.getHuiMinName());
                huiminCardVO1.setCover(huiminCard.getBuyCover());
                huiminCardVO1.setIsBuy(1);
                String siteIds = "";
                if (huiminCard.getUseScope() == 2) {
                    siteIds = huiminCard.getUseIds();
                } else {
                    siteIds = siteClient.querySiteByStoreIds(huiminCard.getStoreIds())
                            .stream()
                            .map(Site::getId)
                            .map(String::valueOf)
                            .collect(Collectors.joining(","));
                }
                String storeIds = huiminCard.getStoreIds();
                if (storeIds.contains("2024")) {
                    siteIds = siteIds + ",32";
                }
                if (storeIds.contains("1001")) {
                    siteIds = siteIds + ",3";
                }
                // 门店ids
                JSONArray sid = JSONArray.parseArray(Arrays.toString(storeIds.split(",")));
                // 场地ids
                JSONArray rid = JSONArray.parseArray(Arrays.toString(siteIds.split(",")));
                // 可用时间
                LocalDate today = LocalDate.now();
                int week = today.getDayOfWeek().getValue();
                JSONArray time = JSONArray.parseArray(huiminCard.getUseWeeks());
                JSONArray jsonArray = new JSONArray();
                String string = LocalDate.now().toString();
                Date date = new Date();
                if (date.before(huiminCard.getEndTime()) && date.after(huiminCard.getStartTime())) {
                    for (Object o : time) {
                        JSONObject jsonObject = (JSONObject) o;
                        for (Object days : jsonObject.getJSONArray("days")) {
                            JSONObject jsonObject1 = (JSONObject) days;
                            if (jsonObject1.getString("value").equals(String.valueOf(week)) && jsonObject1.getBoolean("checked")) {
                                JSONObject jsonObject2 = new JSONObject();
                                String s1 = string + " " + jsonObject.getString("startTime") + ":00";
                                String e1 = string + " " + jsonObject.getString("endTime") + ":00";
                                // 转化为Date类型
                                Date start = DateUtil.parse(s1, "yyyy-MM-dd HH:mm:ss");
                                Date end = DateUtil.parse(e1, "yyyy-MM-dd HH:mm:ss");
                                if (new Date().after(start) && new Date().before(end)) {
//                                    jsonObject2.put("start_time", start.getTime() / 1000);
                                    Date date1 = new Date();
                                    jsonObject2.put("start_time", date1.getTime() / 1000);
                                    date1.setTime(date1.getTime() + 30 * 1000);
                                    if (start.before(end)) {
                                        jsonObject2.put("end_time", date1.getTime() / 1000);
                                        jsonArray.add(jsonObject2);
                                    }
                                }
                            }
                        }
                    }
                }
                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 = "{\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + payHuimin.getStudentId().split(",")[0] + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
                    huiminCardVO1.setQrCode(temp);
                    huiminCardVOS.add(huiminCardVO1);
                    integers.add(payHuimin.getCardId());
                }
            }
            for (THuiminCard huiminCardVO : cardList) {
                HuiminCardVO huiminCardVO1 = new HuiminCardVO();
                huiminCardVO1.setId(huiminCardVO.getId());
@@ -309,7 +404,6 @@
                        if (tPayHuimin.getStatus().equals(2)){
                            huiminCardVO1.setCover(huiminCardVO.getBuyCover());
                            huiminCardVO1.setIsBuy(1);
                            break;
                        }else{
                            huiminCardVO1.setCover(huiminCardVO.getUnBuyCover());
                            huiminCardVO1.setIsBuy(0);
@@ -321,13 +415,244 @@
                }
                huiminCardVOS.add(huiminCardVO1);
            }
            huiminAgreementVO.setCardList(huiminCardVOS);
            // 手动对huiminCardVOS进行分页
            if (pageNo < 1) {
                pageNo = 1;
            }
            if (pageSize < 1) {
                pageSize = 10; // 默认每页10条
            }
            int startIndex = (pageNo - 1) * pageSize;
            int endIndex = Math.min(startIndex + pageSize, huiminCardVOS.size());
// 防止 startIndex 超过 huiminCardVOS.size()
            if (startIndex > huiminCardVOS.size()) {
                startIndex = huiminCardVOS.size();
            }
            List<HuiminCardVO> paginatedHuiminCardVOS = huiminCardVOS.subList(startIndex, endIndex);
// 将分页后的数据设置到 huiminAgreementVO 中
            huiminAgreementVO.setCardList(paginatedHuiminCardVOS);
// 将分页后的数据设置到 huiminAgreementVO 中
            huiminAgreementVO.setCardList(paginatedHuiminCardVOS);
//            huiminAgreementVO.setCardList(huiminCardVOS);
            return ResultUtil.success(huiminAgreementVO);
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.success(new HuiminAgreementVO());
        }
    }
    /**
     * 惠民卡列表-根据惠民卡获取已购买绑定惠民卡的学员列表
     */
    @ResponseBody
    @PostMapping("/getStudentListByCarId")
    @ApiOperation(value = "惠民卡列表-根据惠民卡获取已购买绑定惠民卡的学员列表")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "惠民卡id", name = "id", dataType = "int", required = true),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<TStudent>> getStudentListByCarId(Integer id) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            List<TPayHuimin> payHuimins = payHuiminService.list(new LambdaQueryWrapper<TPayHuimin>()
                    .eq(TPayHuimin::getAppUserId, uid)
                    .eq(TPayHuimin::getCardId, id)
                    .ge(TPayHuimin::getEndTime, new Date())
                    .eq(TPayHuimin::getStatus, 2));
            List<THuiminCard> huiminCards = huiminCardService.list();
            List<Integer> studentIds = new ArrayList<>();
            for (TPayHuimin payHuimin : payHuimins) {
                THuiminCard huiminCard = huiminCards.stream().filter(e -> e.getId().equals(payHuimin.getCardId())).findFirst().orElse(null);
                if (huiminCard != null) {
                    String siteIds = "";
                    if (huiminCard.getUseScope() == 2) {
                        siteIds = huiminCard.getUseIds();
                    } else {
                        siteIds = siteClient.querySiteByStoreIds(huiminCard.getStoreIds())
                                .stream()
                                .map(Site::getId)
                                .map(String::valueOf)
                                .collect(Collectors.joining(","));
                    }
                    String storeIds = huiminCard.getStoreIds();
                    if (storeIds.contains("2024")) {
                        siteIds = siteIds + ",32";
                    }
                    if (storeIds.contains("1001")) {
                        siteIds = siteIds + ",3";
                    }
                    // 门店ids
                    JSONArray sid = JSONArray.parseArray(Arrays.toString(storeIds.split(",")));
                    // 场地ids
                    JSONArray rid = JSONArray.parseArray(Arrays.toString(siteIds.split(",")));
                    // 可用时间
                    LocalDate today = LocalDate.now();
                    int week = today.getDayOfWeek().getValue();
                    JSONArray time = JSONArray.parseArray(huiminCard.getUseWeeks());
                    JSONArray jsonArray = new JSONArray();
                    String string = LocalDate.now().toString();
                    Date date = new Date();
                    if (date.before(huiminCard.getEndTime()) && date.after(huiminCard.getStartTime())) {
                        for (Object o : time) {
                            JSONObject jsonObject = (JSONObject) o;
                            for (Object days : jsonObject.getJSONArray("days")) {
                                JSONObject jsonObject1 = (JSONObject) days;
                                if (jsonObject1.getString("value").equals(String.valueOf(week)) && jsonObject1.getBoolean("checked")) {
                                    JSONObject jsonObject2 = new JSONObject();
                                    String s1 = string + " " + jsonObject.getString("startTime") + ":00";
                                    String e1 = string + " " + jsonObject.getString("endTime") + ":00";
                                    // 转化为Date类型
                                    Date start = DateUtil.parse(s1, "yyyy-MM-dd HH:mm:ss");
                                    Date end = DateUtil.parse(e1, "yyyy-MM-dd HH:mm:ss");
                                    if (new Date().after(start) && new Date().before(end)) {
//                                    jsonObject2.put("start_time", start.getTime() / 1000);
                                        Date date1 = new Date();
                                        jsonObject2.put("start_time", date1.getTime() / 1000);
                                        date1.setTime(date1.getTime() + 30 * 1000);
                                        if (start.before(end)) {
                                            jsonObject2.put("end_time", date1.getTime() / 1000);
                                            jsonArray.add(jsonObject2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (!jsonArray.isEmpty()) {
                        // 将学员加入
                        String[] split = payHuimin.getStudentId().split(",");
                        for (String s : split) {
                            studentIds.add(Integer.valueOf(s));
                        }
                    }
                }
            }
            String collect = studentIds.stream().map(String::valueOf).collect(Collectors.joining(","));
            List<TStudent> studentByIds = studentClient.getStudentByIds(collect);
            return ResultUtil.success(studentByIds);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * 惠民卡列表-选择学员后返回对应的二维码生成规则和有效期结束时间
     */
    @ResponseBody
    @PostMapping("/getQrCodeByStudentId")
    @ApiOperation(value = "惠民卡列表-选择学员后返回对应的二维码生成规则和有效期结束时间")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "惠民卡id", name = "cardId", dataType = "int", required = true),
            @ApiImplicitParam(value = "学员id", name = "studentId", dataType = "int", required = true),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<HuiminCardStudentVO> getQrCodeByStudentId(Integer cardId, Integer studentId) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            List<TStudent> tStudents = studentClient.queryStudentList(uid);
            List<TPayHuimin> payHuimins = payHuiminService.list(new LambdaQueryWrapper<TPayHuimin>()
                            .apply("FIND_IN_SET(" + studentId + ", studentId) > 0")
//                    .eq(TPayHuimin::getStudentId, studentId)
                    .eq(TPayHuimin::getCardId, cardId)
                    .ge(TPayHuimin::getEndTime, new Date())
                    .eq(TPayHuimin::getStatus, 2)
                    .orderByDesc(TPayHuimin::getEndTime));
            HuiminCardStudentVO huiminCardStudentVO = new HuiminCardStudentVO();
            if (!payHuimins.isEmpty()) {
                TPayHuimin tPayHuimin = payHuimins.get(0);
                THuiminCard huiminCard = huiminCardService.getById(cardId);
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                huiminCardStudentVO.setEndTime(simpleDateFormat.format(tPayHuimin.getEndTime()));
                String siteIds = "";
                if (huiminCard.getUseScope() == 2) {
                    siteIds = huiminCard.getUseIds();
                } else {
                    siteIds = siteClient.querySiteByStoreIds(huiminCard.getStoreIds())
                            .stream()
                            .map(Site::getId)
                            .map(String::valueOf)
                            .collect(Collectors.joining(","));
                }
                String storeIds = huiminCard.getStoreIds();
                if (storeIds.contains("2024")) {
                    siteIds = siteIds + ",32";
                }
                if (storeIds.contains("1001")) {
                    siteIds = siteIds + ",3";
                }
                // 门店ids
                JSONArray sid = JSONArray.parseArray(Arrays.toString(storeIds.split(",")));
                // 场地ids
                JSONArray rid = JSONArray.parseArray(Arrays.toString(siteIds.split(",")));
                // 可用时间
                LocalDate today = LocalDate.now();
                int week = today.getDayOfWeek().getValue();
                JSONArray time = JSONArray.parseArray(huiminCard.getUseWeeks());
                JSONArray jsonArray = new JSONArray();
                String string = LocalDate.now().toString();
                Date date = new Date();
                if (date.before(huiminCard.getEndTime()) && date.after(huiminCard.getStartTime())) {
                    for (Object o : time) {
                        JSONObject jsonObject = (JSONObject) o;
                        for (Object days : jsonObject.getJSONArray("days")) {
                            JSONObject jsonObject1 = (JSONObject) days;
                            if (jsonObject1.getString("value").equals(String.valueOf(week)) && jsonObject1.getBoolean("checked")) {
                                JSONObject jsonObject2 = new JSONObject();
                                String s1 = string + " " + jsonObject.getString("startTime") + ":00";
                                String e1 = string + " " + jsonObject.getString("endTime") + ":00";
                                // 转化为Date类型
                                Date start = DateUtil.parse(s1, "yyyy-MM-dd HH:mm:ss");
                                Date end = DateUtil.parse(e1, "yyyy-MM-dd HH:mm:ss");
                                jsonObject2.put("start_time", start.getTime() / 1000);
                                start.setTime(start.getTime() + 30 * 1000);
                                if (new Date().after(start) && new Date().before(end)) {
//                                    jsonObject2.put("start_time", start.getTime() / 1000);
                                    Date date1 = new Date();
                                    jsonObject2.put("start_time", date1.getTime() / 1000);
                                    date1.setTime(date1.getTime() + 30 * 1000);
                                    if (start.before(end)) {
                                        jsonObject2.put("end_time", date1.getTime() / 1000);
                                        jsonArray.add(jsonObject2);
                                    }
                                }
                            }
                        }
                    }
                }
                String temp = "{\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + studentId + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
                huiminCardStudentVO.setQrCode(temp);
                TStudent tStudent = tStudents.stream().filter(e -> e.getId().equals(studentId)).findFirst().orElse(null);
                if (tStudent!=null){
                    huiminCardStudentVO.setStudentName(tStudent.getName());
                }
            }
            return ResultUtil.success(huiminCardStudentVO);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * 惠民卡富文本内容-惠民卡列表
     */
@@ -351,9 +676,7 @@
            for (MyHuiminCardVO myHuiminCardVO : cardList) {
                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日不管有没有使用记录都不能退款
@@ -388,6 +711,7 @@
            return ResultUtil.success(new ArrayList<>());
        }
    }
    /**
     * 个人中心-我的惠民卡-退款
     */
@@ -462,10 +786,61 @@
//        String format = simpleDateFormat.format(date);
//        System.err.println(format);
        String storeIds = "1001,1002";
        JSONArray jsonArray = JSONArray.parseArray(Arrays.toString(storeIds.split(",")));
        System.err.println(jsonArray);
//        String storeIds = "1001,1002";
//        JSONArray jsonArray = JSONArray.parseArray(Arrays.toString(storeIds.split(",")));
//        System.err.println(jsonArray);
//
//        // 获取当前日期
//        LocalDate today = LocalDate.now();
//
//        // 获取当前日期是周几
//        DayOfWeek dayOfWeek = today.getDayOfWeek();
//
//        // 输出当前是周几,使用中文显示
//        System.out.println("今天是: " + dayOfWeek.getValue());
        Date start = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.err.println(simpleDateFormat.format(start));
        start.setTime(start.getTime() + 30 * 1000);
        System.err.println(simpleDateFormat.format(start));
//        String temp = "[{\"days\":[{\"value\":\"1\",\"label\":\"星期一\",\"checked\":true},{\"value\":\"2\",\"label\":\"星期二\",\"checked\":true},{\"value\":\"3\",\"label\":\"星期三\",\"checked\":true},{\"value\":\"4\",\"label\":\"星期四\",\"checked\":true},{\"value\":\"5\",\"label\":\"星期五\",\"checked\":true},{\"value\":\"6\",\"label\":\"星期六\",\"checked\":false},{\"value\":\"7\",\"label\":\"星期日\",\"checked\":false}],\"startTime\":\"00:00\",\"endTime\":\"23:59\"}]";
//        // 可用时间
//        LocalDate today = LocalDate.now();
//
//        int week = today.getDayOfWeek().getValue();
//
//        JSONArray time = JSONArray.parseArray(temp);
//        int i = 0;
//        JSONArray jsonArray = new JSONArray();
//
//        StringBuilder startTime = new StringBuilder();
//        StringBuilder endTime = new StringBuilder();
//
//        String string = LocalDate.now().toString();
//
//        for (Object o : time) {
//            JSONObject jsonObject = (JSONObject) o;
//            for (Object days : jsonObject.getJSONArray("days")) {
//                JSONObject jsonObject1 = (JSONObject) days;
//                if (jsonObject1.getString("value").equals(String.valueOf(week))&&jsonObject1.getBoolean("checked")){
//                    JSONObject jsonObject2 = new JSONObject();
//                    String s1 = string+" "+jsonObject.getString("startTime")+":00";
//                    String e1 = string+" "+jsonObject.getString("endTime")+":00";
//                    // 转化为Date类型
//                    Date start = DateUtil.parse(s1,"yyyy-MM-dd HH:mm:ss");
//                    Date end = DateUtil.parse(e1,"yyyy-MM-dd HH:mm:ss");
//                    jsonObject2.put("startTime",start.getTime());
//                    jsonObject2.put("endTime",end.getTime());
//                    jsonArray.add(jsonObject2);
//                }
//
//
//            }
//            i++;
//        }
//        System.err.println(jsonArray);
    }
    /**
     * 个人中心-我的惠民卡-查看详情
     */
@@ -488,6 +863,10 @@
            }
            THuiminCard byId = huiminCardService.getById(tPayHuimin.getCardId());
            MyHuiminCardDetailVO myHuiminCardDetailVO = new MyHuiminCardDetailVO();
            List<TStudent> studentByIds1 = studentClient.getStudentByIds(tPayHuimin.getStudentId());
            if (CollUtil.isNotEmpty(studentByIds1)) {
                myHuiminCardDetailVO.setStudentName(studentByIds1.get(0).getName());
            }
            String siteIds = "";
            if (byId.getUseScope()==2){
                siteIds = byId.getUseIds();
@@ -499,8 +878,57 @@
                        .collect(Collectors.joining(","));
            }
            String storeIds = byId.getStoreIds();
            JSONArray jsonArray = JSONArray.parseArray(Arrays.toString(storeIds.split(",")));
            String temp ="{\"sid\":\"" +siteIds+"\","+"\"useTimes:\"\""+byId.getUseWeeks()+"\","+"\"unUseTimes:\""+byId.getUnUseTimes()+"\"}";
            if (storeIds.contains("2024")) {
                siteIds = siteIds + ",32";
            }
            if (storeIds.contains("1001")) {
                siteIds = siteIds + ",3";
            }
            // 门店ids
            JSONArray sid = JSONArray.parseArray(Arrays.toString(storeIds.split(",")));
            // 场地ids
            JSONArray rid = JSONArray.parseArray(Arrays.toString(siteIds.split(",")));
            // 可用时间
            LocalDate today = LocalDate.now();
            int week = today.getDayOfWeek().getValue();
            JSONArray time = JSONArray.parseArray(byId.getUseWeeks());
            JSONArray jsonArray = new JSONArray();
            String string = LocalDate.now().toString();
            Date date = new Date();
            if (date.before(byId.getEndTime()) && date.after(byId.getStartTime())) {
                for (Object o : time) {
                    JSONObject jsonObject = (JSONObject) o;
                    for (Object days : jsonObject.getJSONArray("days")) {
                        JSONObject jsonObject1 = (JSONObject) days;
                        if (jsonObject1.getString("value").equals(String.valueOf(week)) && jsonObject1.getBoolean("checked")) {
                            JSONObject jsonObject2 = new JSONObject();
                            String s1 = string + " " + jsonObject.getString("startTime") + ":00";
                            String e1 = string + " " + jsonObject.getString("endTime") + ":00";
                            // 转化为Date类型
                            Date start = DateUtil.parse(s1, "yyyy-MM-dd HH:mm:ss");
                            Date end = DateUtil.parse(e1, "yyyy-MM-dd HH:mm:ss");
                            jsonObject2.put("start_time", start.getTime() / 1000);
                            start.setTime(start.getTime() + 30 * 1000);
                            if (new Date().after(start) && new Date().before(end)) {
//                                    jsonObject2.put("start_time", start.getTime() / 1000);
                                Date date1 = new Date();
                                jsonObject2.put("start_time", date1.getTime() / 1000);
                                date1.setTime(date1.getTime() + 30 * 1000);
                                if (start.before(end)) {
                                    jsonObject2.put("end_time", date1.getTime() / 1000);
                                    jsonArray.add(jsonObject2);
                                }
                            }
                        }
                    }
                }
            }
            String temp = "{\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tPayHuimin.getStudentId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
            myHuiminCardDetailVO.setQrCode(temp);
            myHuiminCardDetailVO.setCardId(tPayHuimin.getCardId());
            myHuiminCardDetailVO.setHuiminCard(byId);
@@ -515,6 +943,7 @@
            return ResultUtil.success(new MyHuiminCardDetailVO());
        }
    }
    /**
     * 获取添加人员、选择人员说明文案
     */