huanghongfa
2021-08-26 3adb33652e097365ced4bdb58c31fce476b244fb
预约登记后台接口开发
26个文件已添加
27个文件已修改
3274 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ReserveRecordStatusEnum.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/AddReserveAdminDTO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/CancelReserveRecordDTO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveMakeStatisticsDTO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveRegisterStatisticsDTO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditComActReserveInfoDTO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditComActReserveStatusDTO.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditReserveAdminDTO.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/MakeHandleAdminDTO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveAdminDTO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeAdminDTO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeHandleAdminDTO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoRewardVO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailAdminVO.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveListAdminVO.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailAdminVO.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailedExcelAdminVO.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleExcelAdminVO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleListAdminVO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeLeftStatisticsAdminVO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeListAdminVO.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeOperationAdminVO.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightExcelAdminVO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightStatisticsAdminVO.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeStatisticsAdminVO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterExcelAdminVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterStatisticsAdminVO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java 579 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveMapper.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveOperationRecordMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveRecordMapper.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveSubMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveDO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveOperationRecordDO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveRecordDO.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubDO.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubSelectionDO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveAnswerContentService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveRecordService.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveService.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java 365 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveMapper.xml 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveOperationRecordMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveRecordMapper.xml 237 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ReserveRecordStatusEnum.java
New file
@@ -0,0 +1,41 @@
package com.panzhihua.common.enums;
import lombok.Getter;
/**
 * 预约登记记录状态枚举
 *
 * @author lyq
 */
@Getter
public enum ReserveRecordStatusEnum {
    dcl(1, "待处理"), yycg(2, "预约成功"), yysb(3, "预约失败"), yqx(4, "已取消"), wz(5, "未知");
    private final Integer code;
    private final String name;
    ReserveRecordStatusEnum(Integer code, String name) {
        this.code = code;
        this.name = name;
    }
    public static int getCodeByName(String name) {
        for (ReserveRecordStatusEnum item : ReserveRecordStatusEnum.values()) {
            if (item.name.equals(name)) {
                return item.getCode();
            }
        }
        return wz.code;
    }
    public static String getCnDescByName(Integer code) {
        for (ReserveRecordStatusEnum item : ReserveRecordStatusEnum.values()) {
            if (item.code.equals(code)) {
                return item.getName();
            }
        }
        return wz.name;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/AddReserveAdminDTO.java
New file
@@ -0,0 +1,49 @@
package com.panzhihua.common.model.dtos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("新增预约登记请求参数")
public class AddReserveAdminDTO {
    @ApiModelProperty(value = "类型(1.预约 2.登记)")
    private Integer type;
    @ApiModelProperty(value = "主题")
    private String title;
    @ApiModelProperty(value = "数量上限数量(如果不限制数量,这里传0)")
    private Integer joinAllCount;
    @ApiModelProperty(value = "图标类型(1.预设1 2.预设2 3.预设3 4.预设4 5.用户自定义图片)")
    private Integer imgType;
    @ApiModelProperty(value = "图标url(当img_type为5时,此字段的值为图标url地址)")
    private String imgUrl;
    @ApiModelProperty("广告顶部(1.是   2.否)")
    private Integer adverPositionTop;
    @ApiModelProperty("广告应用(1.是   2.否)")
    private Integer adverPositionApplication;
    @ApiModelProperty(value = "社区id",hidden = true)
    private Long communityId;
    @ApiModelProperty(value = "用户id",hidden = true)
    private Long userId;
    @ApiModelProperty("是否可重复提交(1.是 2.否)")
    private Integer isRepeat;
    @ApiModelProperty("组件json数据")
    private String jsonObject;
    @ApiModelProperty("是否发布(1.是 2.否)")
    private Integer isPublish;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/CancelReserveRecordDTO.java
New file
@@ -0,0 +1,21 @@
package com.panzhihua.common.model.dtos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("取消预约登记请求参数")
public class CancelReserveRecordDTO {
    @ApiModelProperty(value = "需要取消的预约记录id集合")
    private List<Long> ids;
    @ApiModelProperty(value = "取消原因")
    private String remark;
    @ApiModelProperty(value = "用户id",hidden = true)
    private Long userId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveMakeStatisticsDTO.java
New file
@@ -0,0 +1,19 @@
package com.panzhihua.common.model.dtos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("查询预约统计汇总数据请求参数")
public class ComActReserveMakeStatisticsDTO {
    @ApiModelProperty(value = "开始时间查询")
    private String startTime;
    @ApiModelProperty(value = "结束时间查询")
    private String endTime;
    @ApiModelProperty(value = "社区id",hidden = true)
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveRegisterStatisticsDTO.java
New file
@@ -0,0 +1,25 @@
package com.panzhihua.common.model.dtos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("查询登记统计汇总数据请求参数")
public class ComActReserveRegisterStatisticsDTO {
    @ApiModelProperty(value = "开始时间查询")
    private String startTime;
    @ApiModelProperty(value = "结束时间查询")
    private String endTime;
    @ApiModelProperty(value = "社区id",hidden = true)
    private Long communityId;
    @ApiModelProperty(value = "分页-当前页数",example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数",example = "10")
    private Long pageSize = 10L;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditComActReserveInfoDTO.java
New file
@@ -0,0 +1,49 @@
package com.panzhihua.common.model.dtos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 继续预约登记请求参数
 */
@Data
@ApiModel("继续预约登记请求参数")
public class EditComActReserveInfoDTO {
    @ApiModelProperty(value = "预约登记id")
    private Long id;
    @ApiModelProperty(value = "用户id",hidden = true)
    private Long userId;
    @ApiModelProperty(value = "主题")
    private String title;
    @ApiModelProperty(value = "数量上限数量(如果不限制数量,这里传0)")
    private Integer joinAllCount;
    @ApiModelProperty(value = "图标类型(1.预设1 2.预设2 3.预设3 4.预设4 5.用户自定义图片)")
    private Integer imgType;
    @ApiModelProperty(value = "图标url(当img_type为5时,此字段的值为图标url地址)")
    private String imgUrl;
    @ApiModelProperty("广告顶部(1.是   2.否)")
    private Integer adverPositionTop;
    @ApiModelProperty("广告应用(1.是   2.否)")
    private Integer adverPositionApplication;
    @ApiModelProperty("是否可重复提交(1.是 2.否)")
    private Integer isRepeat;
    @ApiModelProperty("是否发布(1.是 2.否)")
    private Integer isPublish;
    /**
     * 类型(1.继续 2.停止 3.发布)
     */
    public interface type{
        int jx = 1;
        int tz = 2;
        int fb = 3;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditComActReserveStatusDTO.java
New file
@@ -0,0 +1,27 @@
package com.panzhihua.common.model.dtos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 修改预约登记状态请求参数
 */
@Data
@ApiModel("修改预约登记状态请求参数")
public class EditComActReserveStatusDTO {
    @ApiModelProperty(value = "预约登记id")
    private Long id;
    @ApiModelProperty(value = "类型(1.停止 2.发布)")
    private Integer type;
    @ApiModelProperty(value = "用户id",hidden = true)
    private Long userId;
    /**
     * 类型(1.停止 2.发布)
     */
    public interface type{
        int tz = 1;
        int fb = 2;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditReserveAdminDTO.java
New file
@@ -0,0 +1,50 @@
package com.panzhihua.common.model.dtos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("编辑预约登记请求参数")
public class EditReserveAdminDTO {
    @ApiModelProperty(value = "预约登记id")
    private Long id;
    @ApiModelProperty(value = "类型(1.预约 2.登记)")
    private Integer type;
    @ApiModelProperty(value = "主题")
    private String title;
    @ApiModelProperty(value = "数量上限数量(如果不限制数量,这里传0)")
    private Integer joinAllCount;
    @ApiModelProperty(value = "图标类型(1.预设1 2.预设2 3.预设3 4.预设4 5.用户自定义图片)")
    private Integer imgType;
    @ApiModelProperty(value = "图标url(当img_type为5时,此字段的值为图标url地址)")
    private String imgUrl;
    @ApiModelProperty("广告顶部(1.是   2.否)")
    private Integer adverPositionTop;
    @ApiModelProperty("广告应用(1.是   2.否)")
    private Integer adverPositionApplication;
    @ApiModelProperty(value = "社区id",hidden = true)
    private Long communityId;
    @ApiModelProperty(value = "用户id",hidden = true)
    private Long userId;
    @ApiModelProperty("是否可重复提交(1.是 2.否)")
    private Integer isRepeat;
    @ApiModelProperty("组件json数据")
    private String jsonObject;
    @ApiModelProperty("是否发布(1.是 2.否)")
    private Integer isPublish;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/MakeHandleAdminDTO.java
New file
@@ -0,0 +1,35 @@
package com.panzhihua.common.model.dtos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("处理预约记录请求参数")
public class MakeHandleAdminDTO {
    @ApiModelProperty(value = "批量处理id集合")
    private List<Long> ids;
    @ApiModelProperty(value = "预约成功时间(格式:yyyy-MM-dd HH:mm:ss)")
    private String makeTime;
    @ApiModelProperty(value = "预约状态(1.同意 2.拒绝)")
    private Integer isOk;
    @ApiModelProperty(value = "处理备注")
    private String remark;
    @ApiModelProperty(value = "用户id",hidden = true)
    private Long userId;
    /**
     * 预约状态(1.同意 2.拒绝)
     */
    public interface isOk{
        int yes = 1;
        int no = 2;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveAdminDTO.java
New file
@@ -0,0 +1,39 @@
package com.panzhihua.common.model.dtos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("分页查询预约登记列表请求参数")
public class PageReserveAdminDTO {
    @ApiModelProperty(value = "分页-当前页数",example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数",example = "10")
    private Long pageSize = 10L;
    @ApiModelProperty(value = "类型(1.预约 2.登记)")
    private List<Integer> type;
    @ApiModelProperty(value = "状态(1.进行中 2.已停止 3.待发布)")
    private Integer status;
    @ApiModelProperty(value = "广告位置(1.无 2.首页顶部 3.首页应用)")
    private Integer advertType;
    @ApiModelProperty(value = "开始时间查询")
    private String startTime;
    @ApiModelProperty(value = "结束时间查询")
    private String endTime;
    @ApiModelProperty(value = "关键词")
    private String keyWord;
    @ApiModelProperty(value = "社区id",hidden = true)
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeAdminDTO.java
New file
@@ -0,0 +1,30 @@
package com.panzhihua.common.model.dtos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("分页查询预约登记列表请求参数")
public class PageReserveMakeAdminDTO {
    @ApiModelProperty(value = "分页-当前页数",example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数",example = "10")
    private Long pageSize = 10L;
    @ApiModelProperty(value = "预约登记id")
    private Long reserveId;
    @ApiModelProperty(value = "开始时间查询")
    private String startTime;
    @ApiModelProperty(value = "结束时间查询")
    private String endTime;
    @ApiModelProperty(value = "需要导出id集合")
    private List<Long> ids;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeHandleAdminDTO.java
New file
@@ -0,0 +1,39 @@
package com.panzhihua.common.model.dtos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("分页查询预约登记列表请求参数")
public class PageReserveMakeHandleAdminDTO {
    @ApiModelProperty(value = "分页-当前页数",example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数",example = "10")
    private Long pageSize = 10L;
    @ApiModelProperty(value = "关键词")
    private String keyWord;
    @ApiModelProperty(value = "开始时间查询")
    private String startTime;
    @ApiModelProperty(value = "结束时间查询")
    private String endTime;
    @ApiModelProperty(value = "状态集合")
    private List<Integer> status;
    @ApiModelProperty(value = "预约登记id")
    private Long reserveId;
    @ApiModelProperty(value = "社区id",hidden = true)
    private Long communityId;
    @ApiModelProperty(value = "需要导出的id集合")
    private List<Long> ids;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoRewardVO.java
@@ -29,4 +29,5 @@
    @ApiModelProperty("应用位置问卷调查列表")
    private List<ComActQuestnaireAppVO> applicationQuestnaireList;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubVO.java
@@ -17,7 +17,7 @@
    private int sort;
    @ApiModelProperty(value = "题目内容")
    private String label;
    @ApiModelProperty(value = "类型 0单选1多选2问答题", example = "0")
    @ApiModelProperty(value = "类型 0 单选  1 多选 2 输入框 2姓名输入框 3 手机号 4 身份证 5 文字描述 6 日期选择", example = "0")
    private Integer type;
    @ApiModelProperty(value = "问卷题目选项")
    private List<QuestnaiteSubSelectionVO> options;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailAdminVO.java
New file
@@ -0,0 +1,64 @@
package com.panzhihua.common.model.vos.community.reserve;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("预约登记返回参数")
public class ComActReserveDetailAdminVO {
    @ApiModelProperty("预约登记id")
    private Long id;
    @ApiModelProperty("社区id")
    private Long communityId;
    @ApiModelProperty("类型(1.预约 2.登记)")
    private Integer type;
    @ApiModelProperty("主题")
    private String title;
    @ApiModelProperty("浏览量")
    private Integer viewNum;
    @ApiModelProperty("限定参加人总数")
    private Integer joinAllCount;
    @ApiModelProperty("参加人数")
    private Integer joinCount;
    @ApiModelProperty("广告位置")
    private String advertPosition;
    @ApiModelProperty("状态(1.待发布 2.进行中 3.已停止)")
    private Integer status;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("发布时间")
    private Date publishTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("创建时间")
    private Date createAt;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("结束时间")
    private Date endTime;
    @ApiModelProperty("是否是首页顶部(1.是 2.否)")
    private Integer adverPositionTop;
    @ApiModelProperty("是否是首页应用(1.是 2.否)")
    private Integer adverPositionApplication;
    @ApiModelProperty("组件json数据")
    private String jsonObject;
    @ApiModelProperty("是否可重复提交(1.是 2.否)")
    private Integer isRepeat;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveListAdminVO.java
New file
@@ -0,0 +1,58 @@
package com.panzhihua.common.model.vos.community.reserve;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("预约登记返回参数")
public class ComActReserveListAdminVO {
    @ApiModelProperty("预约登记id")
    private Long id;
    @ApiModelProperty("社区id")
    private Long communityId;
    @ApiModelProperty("类型(1.预约 2.登记)")
    private Integer type;
    @ApiModelProperty("主题")
    private String title;
    @ApiModelProperty("浏览量")
    private Integer viewNum;
    @ApiModelProperty("限定参加人总数")
    private Integer joinAllCount;
    @ApiModelProperty("参加人数")
    private Integer joinCount;
    @ApiModelProperty("广告位置")
    private String advertPosition;
    @ApiModelProperty("状态(1.待发布 2.进行中 3.已停止)")
    private Integer status;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("发布时间")
    private Date publishTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("创建时间")
    private Date createAt;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("结束时间")
    private Date endTime;
    @ApiModelProperty("是否是首页顶部(1.是 2.否)")
    private Integer adverPositionTop;
    @ApiModelProperty("是否是首页应用(1.是 2.否)")
    private Integer adverPositionApplication;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailAdminVO.java
New file
@@ -0,0 +1,44 @@
package com.panzhihua.common.model.vos.community.reserve;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
@ApiModel("预约明细列表返回参数")
public class ComActReserveMakeDetailAdminVO {
    @ApiModelProperty("用户昵称")
    private String nickName;
    @ApiModelProperty("预约人")
    private String name;
    @ApiModelProperty("联系电话")
    private String phone;
    @ApiModelProperty("预约时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date reserveTime;
    @ApiModelProperty("预约内容")
    private String content;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("社区备注")
    private String actRemark;
    @ApiModelProperty("提交时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    @ApiModelProperty("操作记录")
    private List<ComActReserveMakeOperationAdminVO> operationList;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailedExcelAdminVO.java
New file
@@ -0,0 +1,37 @@
package com.panzhihua.common.model.vos.community.reserve;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * 预约明细导出返回对象
 */
@Data
public class ComActReserveMakeDetailedExcelAdminVO {
    @ExcelProperty(value = "用户昵称" ,index = 0)
    private String nickName;
    @ExcelProperty(value = "预约人" ,index = 1)
    private String name;
    @ExcelProperty(value = "联系电话" ,index = 2)
    private String phone;
    @ExcelProperty(value = "预约时间" ,index = 3)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date reserveTime;
    @ExcelProperty(value = "预约内容" ,index = 4)
    private String content;
    @ExcelProperty(value = "备注" ,index = 5)
    private String remark;
    @ExcelProperty(value = "社区备注" ,index = 6)
    private String actRemark;
    @ExcelProperty(value = "提交时间" ,index = 7)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleExcelAdminVO.java
New file
@@ -0,0 +1,49 @@
package com.panzhihua.common.model.vos.community.reserve;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("预约明细列表返回参数")
public class ComActReserveMakeHandleExcelAdminVO {
    @ExcelProperty(value = "用户昵称" ,index = 0)
    private String nickName;
    @ExcelProperty(value = "预约登记主题" ,index = 1)
    private String title;
    @ExcelProperty(value = "预约人" ,index = 2)
    private String name;
    @ExcelProperty(value = "联系电话" ,index = 3)
    private String phone;
    @ExcelProperty(value = "预约时间" ,index = 4)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date reserveTime;
    @ExcelProperty(value = "预约内容" ,index = 5)
    private String content;
    @ExcelProperty(value = "备注" ,index = 6)
    private String remark;
    @ExcelProperty(value = "社区备注" ,index = 7)
    private String actRemark;
    @ExcelProperty(value = "提交时间" ,index = 8)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    @ExcelProperty(value = "状态" ,index = 9)
    private String status;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleListAdminVO.java
New file
@@ -0,0 +1,49 @@
package com.panzhihua.common.model.vos.community.reserve;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("预约明细列表返回参数")
public class ComActReserveMakeHandleListAdminVO {
    @ApiModelProperty("预约记录id")
    private Long id;
    @ApiModelProperty("用户昵称")
    private String nickName;
    @ApiModelProperty("预约人")
    private String name;
    @ApiModelProperty("联系电话")
    private String phone;
    @ApiModelProperty("预约时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date reserveTime;
    @ApiModelProperty("预约内容")
    private String content;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("社区备注")
    private String actRemark;
    @ApiModelProperty("提交时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    @ApiModelProperty("状态(1.待处理 2.预约成功 3.预约失败 4.已取消)")
    private Integer status;
    @ApiModelProperty("预约登记主题")
    private String title;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeLeftStatisticsAdminVO.java
New file
@@ -0,0 +1,17 @@
package com.panzhihua.common.model.vos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("预约统计左边返回参数")
public class ComActReserveMakeLeftStatisticsAdminVO {
    @ApiModelProperty("预约日期(格式:yyyy-MM-dd)")
    private String reserveTime;
    @ApiModelProperty("预约数量")
    private Integer count;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeListAdminVO.java
New file
@@ -0,0 +1,43 @@
package com.panzhihua.common.model.vos.community.reserve;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("预约明细列表返回参数")
public class ComActReserveMakeListAdminVO {
    @ApiModelProperty("预约记录id")
    private Long id;
    @ApiModelProperty("用户昵称")
    private String nickName;
    @ApiModelProperty("预约人")
    private String name;
    @ApiModelProperty("联系电话")
    private String phone;
    @ApiModelProperty("预约时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date reserveTime;
    @ApiModelProperty("预约内容")
    private String content;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("社区备注")
    private String actRemark;
    @ApiModelProperty("提交时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeOperationAdminVO.java
New file
@@ -0,0 +1,50 @@
package com.panzhihua.common.model.vos.community.reserve;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
@ApiModel("预约明细操作记录返回参数")
public class ComActReserveMakeOperationAdminVO {
    @ApiModelProperty("预约登记id")
    private Long reserveId;
    @ApiModelProperty("预约登记记录id")
    private Long reserveRecordId;
    @ApiModelProperty("用户id")
    private Long userId;
    @ApiModelProperty("类型(1.本人操作 2.社区操作)")
    private Integer type;
    @ApiModelProperty("预约人手机号")
    private String phone;
    @ApiModelProperty("操作内容")
    private String reserveContent;
    @ApiModelProperty("操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date reserveTime;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("状态(1.提交 2.预约成功 3.预约失败 4.取消)")
    private Integer status;
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    @ApiModelProperty("操作人")
    private String createByName;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightExcelAdminVO.java
New file
@@ -0,0 +1,25 @@
package com.panzhihua.common.model.vos.community.reserve;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * 预约统计汇总导出返回对象
 */
@Data
public class ComActReserveMakeRightExcelAdminVO {
    @ExcelProperty(value = "日期" ,index = 0)
    private String reserveTime;
    @ExcelProperty(value = "预约主题" ,index = 1)
    private String title;
    @ExcelProperty(value = "所占百分比" ,index = 2)
    private BigDecimal tag;
    @ExcelProperty(value = "预约量" ,index = 3)
    private Integer count;
    @ExcelProperty(value = "合计" ,index = 4)
    private Integer allCount;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightStatisticsAdminVO.java
New file
@@ -0,0 +1,28 @@
package com.panzhihua.common.model.vos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel("预约统计右边返回参数")
public class ComActReserveMakeRightStatisticsAdminVO {
    @ApiModelProperty("日期(格式:yyyy-MM-dd)")
    private String reserveTime;
    @ApiModelProperty("预约主题")
    private String title;
    @ApiModelProperty("所占百分比")
    private BigDecimal tag;
    @ApiModelProperty("预约数量")
    private Integer count;
    @ApiModelProperty("预约量合计")
    private Integer allCount;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeStatisticsAdminVO.java
New file
@@ -0,0 +1,18 @@
package com.panzhihua.common.model.vos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("预约登记返回参数")
public class ComActReserveMakeStatisticsAdminVO {
    @ApiModelProperty("预约日期数量统计数据")
    private List<ComActReserveMakeLeftStatisticsAdminVO> leftStatisticsList;
    @ApiModelProperty("预约统计汇总-右边统计数据")
    private List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterExcelAdminVO.java
New file
@@ -0,0 +1,23 @@
package com.panzhihua.common.model.vos.community.reserve;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * 登记统计汇总导出返回对象
 */
@Data
public class ComActReserveRegisterExcelAdminVO {
    @ExcelProperty(value = "登记主题" ,index = 0)
    private String title;
    @ExcelProperty(value = "所占百分比" ,index = 1)
    private BigDecimal tag;
    @ExcelProperty(value = "登记量" ,index = 2)
    private Integer count;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterStatisticsAdminVO.java
New file
@@ -0,0 +1,25 @@
package com.panzhihua.common.model.vos.community.reserve;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
@ApiModel("登记统计汇总返回参数")
public class ComActReserveRegisterStatisticsAdminVO {
    @ApiModelProperty("登记主题")
    private String title;
    @ApiModelProperty("所占百分比")
    private BigDecimal tag;
    @ApiModelProperty("登记量")
    private Integer count;
    @ApiModelProperty("登记总量")
    private Integer allCount;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -17,6 +17,7 @@
import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralRuleDTO;
import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralTradeDTO;
import com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO;
import com.panzhihua.common.model.dtos.community.reserve.*;
import com.panzhihua.common.model.dtos.community.switchs.SearchCommunityDTO;
import com.panzhihua.common.model.dtos.community.wallet.*;
import com.panzhihua.common.model.dtos.elders.ComEldersAuthGetResultDTO;
@@ -4348,4 +4349,164 @@
     */
    @GetMapping("/easyphoto/noHandle/list")
    R easyPhotoNoHandleList(@RequestParam("communityId") Long communityId);
    /**
     * 社区后台-分页查询预约登记列表
     * @param pageReserveDTO    请求参数
     * @return  预约登记列表
     */
    @PostMapping("/reserve/admin/page")
    R pageReserveAdmin(@RequestBody PageReserveAdminDTO pageReserveDTO);
    /**
     * 社区后台-新增预约登记信息
     * @param addReserveDTO 请求参数
     * @return  新增结果
     */
    @PostMapping("/reserve/admin/add")
    R addReserveAdmin(@RequestBody AddReserveAdminDTO addReserveDTO);
    /**
     * 社区后台-编辑预约登记信息
     * @param editReserveDTO 请求参数
     * @return  新增结果
     */
    @PostMapping("/reserve/admin/edit")
    R editReserveAdmin(@RequestBody EditReserveAdminDTO editReserveDTO);
    /**
     * 社区后台-修改预约登记状态
     * @param editReserveDTO    请求参数
     * @return  修改结果
     */
    @PostMapping("/reserve/admin/edit/status")
    R editReserveStatusAdmin(@RequestBody EditComActReserveStatusDTO editReserveDTO);
    /**
     * 社区后台-继续预约登记
     * @param editReserveDTO    请求参数
     * @return  修改结果
     */
    @PostMapping("/reserve/admin/edit/info")
    R editReserveInfoAdmin(@RequestBody EditComActReserveInfoDTO editReserveDTO);
    /**
     * 社区后台-根据预约登记id查询详情
     * @param reserveId 预约登记id
     * @return  预约登记详情
     */
    @GetMapping("/reserve/admin/detail")
    R detailReserveAdmin(@RequestParam("reserveId") Long reserveId);
    /**
     * 社区后台-根据社区id统计预约类数据
     * @param makeStatisticsDTO   请求参数
     * @return  统计预约类数据
     */
    @PostMapping("/reserve/admin/make/statistics")
    R makeStatisticsAdmin(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO);
    /**
     * 社区后台-查询导出预约统计汇总数据
     * @param makeStatisticsDTO   请求参数
     * @return  统计预约类数据
     */
    @PostMapping("/reserve/admin/make/statistics/export")
    R makeStatisticsExportAdmin(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO);
    /**
     * 社区后台-根据预约id查询预约明细
     * @param pageMakeDTO   请求参数
     * @return  预约明细
     */
    @PostMapping("/reserve/admin/make/page")
    R pageMakeAdmin(@RequestBody PageReserveMakeAdminDTO pageMakeDTO);
    /**
     * 根据预约记录id查询预约明细操作记录
     * @param reserveRecordId   预约记录id
     * @return  预约明细操作记录
     */
    @GetMapping("/reserve/admin/make/detail")
    R detailMakeAdmin(@RequestParam("reserveRecordId") Long reserveRecordId);
    /**
     * 批量取消预约记录
     * @param reserveRecordDTO   请求参数
     * @return  取消结果
     */
    @PostMapping("/reserve/admin/make/cancel")
    R makeCancelAdmin(@RequestBody CancelReserveRecordDTO reserveRecordDTO);
    /**
     * 预约明细导出数据查询
     * @param pageMakeDTO   请求参数
     * @return  预约明细数据
     */
    @PostMapping("/reserve/admin/make/list/export")
    R exportMakeAdmin(@RequestBody PageReserveMakeAdminDTO pageMakeDTO);
    /**
     * 分页查询登记统计汇总
     * @param registerStatisticsDTO 请求参数
     * @return  登记统计汇总
     */
    @PostMapping("/reserve/admin/register/page")
    R registerStatisticsAdmin(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
    /**
     * 导出登记统计汇总
     * @param registerStatisticsDTO 请求参数
     * @return  登记统计汇总
     */
    @PostMapping("/reserve/admin/register/export")
    R registerStatisticsExportAdmin(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
    /**
     * 分页查询预约处理列表
     * @param pageMakeHandleDTO 请求参数
     * @return  预约处理列表
     */
    @PostMapping("/reserve/admin/make/handle/page")
    R pageMakeHandleAdmin(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
    /**
     * 批量处理预约记录
     * @param makeHandleDTO 请求参数
     * @return  处理结果
     */
    @PostMapping("/reserve/admin/make/handle")
    R makeHandleAdmin(@RequestBody MakeHandleAdminDTO makeHandleDTO);
    /**
     * 导出预约处理列表数据查询
     * @param pageMakeHandleDTO 请求参数
     * @return  预约处理列表
     */
    @PostMapping("/reserve/admin/make/handle/export")
    R exportMakeHandleAdmin(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
    /**
     * 删除预约登记信息
     * @param reserveId 预约登记id
     * @return  删除结果
     */
    @GetMapping("/reserve/admin/delete")
    R deleteReserveAdmin(@RequestParam("reserveId") Long reserveId);
    /**
     * 查询社区所有预约信息列表
     * @param communityId   社区id
     * @return  预约信息列表
     */
    @GetMapping("/reserve/admin/make/list")
    R listReserveAdmin(@RequestParam("communityId") Long communityId);
    /**
     * 导出登记明细数据
     * @param reserveId 登记id
     * @return  登记明细数据
     */
    @GetMapping("/reserve/admin/register/list/export")
    R exportRegisterAdmin(@RequestParam("reserveId") Long reserveId);
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java
@@ -1,12 +1,42 @@
package com.panzhihua.community_backstage.api;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.enums.ReserveRecordStatusEnum;
import com.panzhihua.common.model.dtos.community.QuestnaireAnswersDTO;
import com.panzhihua.common.model.dtos.community.reserve.*;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
import com.panzhihua.common.model.vos.community.ComCvtBusinessVO;
import com.panzhihua.common.model.vos.community.ComMngPopulationExcelVo;
import com.panzhihua.common.model.vos.community.questnaire.QuestnaireStatisticsSummaryExcelAdminVO;
import com.panzhihua.common.model.vos.community.reserve.*;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.SFTPUtil;
import com.panzhihua.community_backstage.config.SFTPConfig;
import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * @description: 预约登记接口
@@ -21,6 +51,555 @@
    @Resource
    private CommunityService communityService;
    @Resource
    private UserService userService;
    @Resource
    private SFTPConfig sftpConfig;
    @ApiOperation(value = "分页查询预约登记列表", response = ComActReserveListAdminVO.class)
    @PostMapping("/page")
    public R page(@RequestBody PageReserveAdminDTO pageReserveDTO) {
        Long communityId = this.getCommunityId();
        pageReserveDTO.setCommunityId(communityId);
        return communityService.pageReserveAdmin(pageReserveDTO);
    }
    @ApiOperation(value = "新增预约登记记录")
    @PostMapping("/add")
    public R add(@RequestBody AddReserveAdminDTO addReserveDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        addReserveDTO.setCommunityId(loginUserInfo.getCommunityId());
        addReserveDTO.setUserId(loginUserInfo.getUserId());
        return communityService.addReserveAdmin(addReserveDTO);
    }
    @ApiOperation(value = "删除预约登记")
    @PostMapping("/delete")
    public R delete(@RequestParam("reserveId") Long reserveId) {
        return communityService.deleteReserveAdmin(reserveId);
    }
    @ApiOperation(value = "查询社区所有预约登记列表")
    @GetMapping("/list")
    public R list() {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        return communityService.listReserveAdmin(loginUserInfo.getCommunityId());
    }
    @ApiOperation(value = "编辑预约登记记录")
    @PostMapping("/edit")
    public R edit(@RequestBody EditReserveAdminDTO editReserveDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        editReserveDTO.setCommunityId(loginUserInfo.getCommunityId());
        editReserveDTO.setUserId(loginUserInfo.getUserId());
        return communityService.editReserveAdmin(editReserveDTO);
    }
    @ApiOperation(value = "修改预约登记状态")
    @PostMapping("/edit/status")
    public R editStatus(@RequestBody EditComActReserveStatusDTO editReserveDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        editReserveDTO.setUserId(loginUserInfo.getUserId());
        return communityService.editReserveStatusAdmin(editReserveDTO);
    }
    @ApiOperation(value = "点击继续预约登记")
    @PostMapping("/edit/info")
    public R editInfo(@RequestBody EditComActReserveInfoDTO editReserveDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        editReserveDTO.setUserId(loginUserInfo.getUserId());
        return communityService.editReserveInfoAdmin(editReserveDTO);
    }
    @ApiOperation(value = "预约登记详情")
    @PostMapping("/detail")
    public R detail(@RequestParam("reserveId") Long reserveId) {
        return communityService.detailReserveAdmin(reserveId);
    }
    @ApiOperation(value = "预约类统计汇总", response = ComActReserveMakeStatisticsAdminVO.class)
    @PostMapping("/make/statistics")
    public R makeStatistics(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        makeStatisticsDTO.setCommunityId(loginUserInfo.getCommunityId());
        return communityService.makeStatisticsAdmin(makeStatisticsDTO);
    }
    @ApiOperation(value = "预约登记统计汇总导出")
    @PostMapping("/make/statistics/export")
    public R makeStatisticsExport(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        makeStatisticsDTO.setCommunityId(loginUserInfo.getCommunityId());
        String url = sftpConfig.getExcelUrl();
        String name = "预约登记统计汇总导出数据.xlsx";
        String ftpUrl = "/mnt/data/web/excel/";
        R r = communityService.makeStatisticsExportAdmin(makeStatisticsDTO);
        if (R.isOk(r)) {
            List<ComActReserveMakeRightExcelAdminVO> resultList = new ArrayList<>();
            List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActReserveMakeRightStatisticsAdminVO.class);
            rightStatisticsList.forEach(rightStatistics -> {
                ComActReserveMakeRightExcelAdminVO makeRightExcelAdminVO = new ComActReserveMakeRightExcelAdminVO();
                BeanUtils.copyProperties(rightStatistics,makeRightExcelAdminVO);
                resultList.add(makeRightExcelAdminVO);
            });
            try {
                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
                sftp.login();
                boolean existDir = sftp.isExistDir(ftpUrl + name);
                if (!existDir) {
                    String property = System.getProperty("user.dir");
                    String fileName = property + File.separator + name;
                    // 这里 需要指定写用哪个class去写
                    ExcelWriter excelWriter = null;
                    InputStream inputStream = null;
                    try {
                        excelWriter = EasyExcel.write(fileName, ComActReserveMakeRightExcelAdminVO.class)
                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
                        WriteSheet writeSheet = EasyExcel.writerSheet("预约登记统计汇总导出数据").build();
                        excelWriter.write(resultList, writeSheet);
                        excelWriter.finish();
                        File file = new File(fileName);
                        inputStream = new FileInputStream(file);
                        sftp.uploadMore(ftpUrl, name, inputStream);
                        sftp.logout();
                        inputStream.close();
                        String absolutePath = file.getAbsolutePath();
                        boolean delete = file.delete();
                        log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                    } finally {
                        // 千万别忘记finish 会帮忙关闭流
                        if (inputStream != null) {
                            inputStream.close();
                        }
                        if (excelWriter != null) {
                            excelWriter.finish();
                        }
                    }
                }
                return R.ok(url + name);
            } catch (Exception e) {
                e.printStackTrace();
                log.error("文件传输失败【{}】", e.getMessage());
                return R.fail();
            }
        }
        return r;
    }
    @ApiOperation(value = "分页查询预约明细列表", response = ComActReserveMakeListAdminVO.class)
    @PostMapping("/make/page")
    public R pageMake(@RequestBody PageReserveMakeAdminDTO pageMakeDTO) {
        return communityService.pageMakeAdmin(pageMakeDTO);
    }
    @ApiOperation(value = "查询预约明细详情", response = ComActReserveMakeDetailAdminVO.class)
    @GetMapping("/make/detail")
    public R detailMake(@RequestParam("reserveRecordId") Long reserveRecordId) {
        return communityService.detailMakeAdmin(reserveRecordId);
    }
    @ApiOperation(value = "取消预约记录", response = ComActReserveMakeDetailAdminVO.class)
    @PostMapping("/make/cancel")
    public R makeCancel(@RequestBody CancelReserveRecordDTO reserveRecordDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        reserveRecordDTO.setUserId(loginUserInfo.getUserId());
        return communityService.makeCancelAdmin(reserveRecordDTO);
    }
    @ApiOperation(value = "预约明细导出")
    @PostMapping("/make/list/export")
    public R exportMake(@RequestBody PageReserveMakeAdminDTO pageMakeDTO) {
        String url = sftpConfig.getExcelUrl();
        String name = "预约明细导出数据.xlsx";
        String ftpUrl = "/mnt/data/web/excel/";
        R r = communityService.exportMakeAdmin(pageMakeDTO);
        if (R.isOk(r)) {
            List<ComActReserveMakeDetailedExcelAdminVO> resultList = new ArrayList<>();
            List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActReserveMakeRightStatisticsAdminVO.class);
            rightStatisticsList.forEach(rightStatistics -> {
                ComActReserveMakeDetailedExcelAdminVO makeRightExcelAdminVO = new ComActReserveMakeDetailedExcelAdminVO();
                BeanUtils.copyProperties(rightStatistics,makeRightExcelAdminVO);
                resultList.add(makeRightExcelAdminVO);
            });
            try {
                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
                sftp.login();
                boolean existDir = sftp.isExistDir(ftpUrl + name);
                if (!existDir) {
                    String property = System.getProperty("user.dir");
                    String fileName = property + File.separator + name;
                    // 这里 需要指定写用哪个class去写
                    ExcelWriter excelWriter = null;
                    InputStream inputStream = null;
                    try {
                        excelWriter = EasyExcel.write(fileName, ComActReserveMakeRightExcelAdminVO.class)
                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
                        WriteSheet writeSheet = EasyExcel.writerSheet("预约明细导出数据").build();
                        excelWriter.write(resultList, writeSheet);
                        excelWriter.finish();
                        File file = new File(fileName);
                        inputStream = new FileInputStream(file);
                        sftp.uploadMore(ftpUrl, name, inputStream);
                        sftp.logout();
                        inputStream.close();
                        String absolutePath = file.getAbsolutePath();
                        boolean delete = file.delete();
                        log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                    } finally {
                        // 千万别忘记finish 会帮忙关闭流
                        if (inputStream != null) {
                            inputStream.close();
                        }
                        if (excelWriter != null) {
                            excelWriter.finish();
                        }
                    }
                }
                return R.ok(url + name);
            } catch (Exception e) {
                e.printStackTrace();
                log.error("文件传输失败【{}】", e.getMessage());
                return R.fail();
            }
        }
        return r;
    }
    @ApiOperation(value = "登记类统计汇总", response = ComActReserveRegisterStatisticsAdminVO.class)
    @PostMapping("/register/statistics")
    public R registerStatistics(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        registerStatisticsDTO.setCommunityId(loginUserInfo.getCommunityId());
        return communityService.registerStatisticsAdmin(registerStatisticsDTO);
    }
    @ApiOperation(value = "登记类统计导出", response = ComActReserveRegisterStatisticsAdminVO.class)
    @PostMapping("/register/statistics/export")
    public R registerStatisticsExport(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        registerStatisticsDTO.setCommunityId(loginUserInfo.getCommunityId());
        String url = sftpConfig.getExcelUrl();
        String name = "登记统计汇总导出数据.xlsx";
        String ftpUrl = "/mnt/data/web/excel/";
        R r = communityService.registerStatisticsExportAdmin(registerStatisticsDTO);
        if (R.isOk(r)) {
            List<ComActReserveRegisterExcelAdminVO> resultList = new ArrayList<>();
            List<ComActReserveRegisterStatisticsAdminVO> rightStatisticsList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActReserveRegisterStatisticsAdminVO.class);
            rightStatisticsList.forEach(rightStatistics -> {
                ComActReserveRegisterExcelAdminVO makeRightExcelAdminVO = new ComActReserveRegisterExcelAdminVO();
                BeanUtils.copyProperties(rightStatistics,makeRightExcelAdminVO);
                resultList.add(makeRightExcelAdminVO);
            });
            try {
                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
                sftp.login();
                boolean existDir = sftp.isExistDir(ftpUrl + name);
                if (!existDir) {
                    String property = System.getProperty("user.dir");
                    String fileName = property + File.separator + name;
                    // 这里 需要指定写用哪个class去写
                    ExcelWriter excelWriter = null;
                    InputStream inputStream = null;
                    try {
                        excelWriter = EasyExcel.write(fileName, ComActReserveRegisterExcelAdminVO.class)
                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
                        WriteSheet writeSheet = EasyExcel.writerSheet("登记统计汇总导出数据").build();
                        excelWriter.write(resultList, writeSheet);
                        excelWriter.finish();
                        File file = new File(fileName);
                        inputStream = new FileInputStream(file);
                        sftp.uploadMore(ftpUrl, name, inputStream);
                        sftp.logout();
                        inputStream.close();
                        String absolutePath = file.getAbsolutePath();
                        boolean delete = file.delete();
                        log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                    } finally {
                        // 千万别忘记finish 会帮忙关闭流
                        if (inputStream != null) {
                            inputStream.close();
                        }
                        if (excelWriter != null) {
                            excelWriter.finish();
                        }
                    }
                }
                return R.ok(url + name);
            } catch (Exception e) {
                e.printStackTrace();
                log.error("文件传输失败【{}】", e.getMessage());
                return R.fail();
            }
        }
        return r;
    }
    @ApiOperation(value = "分页查询预约处理列表", response = ComActReserveMakeHandleListAdminVO.class)
    @PostMapping("/make/handle/page")
    public R pageMakeHandle(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        pageMakeHandleDTO.setCommunityId(loginUserInfo.getCommunityId());
        return communityService.pageMakeHandleAdmin(pageMakeHandleDTO);
    }
    @ApiOperation(value = "批量处理预约记录")
    @PostMapping("/make/handle")
    public R makeHandle(@RequestBody MakeHandleAdminDTO makeHandleDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        makeHandleDTO.setUserId(loginUserInfo.getUserId());
        return communityService.makeHandleAdmin(makeHandleDTO);
    }
    @ApiOperation(value = "预约处理列表导出")
    @PostMapping("/make/handle/export")
    public R exportMakeHandle(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        pageMakeHandleDTO.setCommunityId(loginUserInfo.getCommunityId());
        String url = sftpConfig.getExcelUrl();
        String name = "预约处理列表导出数据.xlsx";
        String ftpUrl = "/mnt/data/web/excel/";
        R r = communityService.exportMakeHandleAdmin(pageMakeHandleDTO);
        if (R.isOk(r)) {
            List<ComActReserveMakeHandleExcelAdminVO> resultList = new ArrayList<>();
            List<ComActReserveMakeHandleListAdminVO> rightStatisticsList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActReserveMakeHandleListAdminVO.class);
            rightStatisticsList.forEach(rightStatistics -> {
                ComActReserveMakeHandleExcelAdminVO makeRightExcelAdminVO = new ComActReserveMakeHandleExcelAdminVO();
                BeanUtils.copyProperties(rightStatistics,makeRightExcelAdminVO);
                makeRightExcelAdminVO.setStatus(ReserveRecordStatusEnum.getCnDescByName(rightStatistics.getStatus()));
                resultList.add(makeRightExcelAdminVO);
            });
            try {
                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
                sftp.login();
                boolean existDir = sftp.isExistDir(ftpUrl + name);
                if (!existDir) {
                    String property = System.getProperty("user.dir");
                    String fileName = property + File.separator + name;
                    // 这里 需要指定写用哪个class去写
                    ExcelWriter excelWriter = null;
                    InputStream inputStream = null;
                    try {
                        excelWriter = EasyExcel.write(fileName, ComActReserveMakeHandleExcelAdminVO.class)
                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
                        WriteSheet writeSheet = EasyExcel.writerSheet("预约处理列表导出数据").build();
                        excelWriter.write(resultList, writeSheet);
                        excelWriter.finish();
                        File file = new File(fileName);
                        inputStream = new FileInputStream(file);
                        sftp.uploadMore(ftpUrl, name, inputStream);
                        sftp.logout();
                        inputStream.close();
                        String absolutePath = file.getAbsolutePath();
                        boolean delete = file.delete();
                        log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                    } finally {
                        // 千万别忘记finish 会帮忙关闭流
                        if (inputStream != null) {
                            inputStream.close();
                        }
                        if (excelWriter != null) {
                            excelWriter.finish();
                        }
                    }
                }
                return R.ok(url + name);
            } catch (Exception e) {
                e.printStackTrace();
                log.error("文件传输失败【{}】", e.getMessage());
                return R.fail();
            }
        }
        return r;
    }
    @ApiOperation(value = "导出登记明细")
    @GetMapping("/register/list/export")
    public R exportRegister(@RequestParam("reserveId") Long reserveId) {
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "登记明细导出数据.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
            sftp.login();
            boolean existDir = sftp.isExistDir(ftpUrl + name);
            if (!existDir) {
                String property = System.getProperty("user.dir");
                String fileName = property + File.separator + name;
                ExcelWriter excelWriter = null;
                InputStream inputStream = null;
                try {
                    /**
                     * 组合导出数据
                     * 用户问卷答案
                     */
                    R QuestnaireAnswersDTOR = communityService.exportRegisterAdmin(reserveId);
                    QuestnaireAnswersDTO questnaireAnswersDTOS = JSON.parseObject(JSON.toJSONString(QuestnaireAnswersDTOR.getData()), QuestnaireAnswersDTO.class);
                    List<ComActQuestnaireSubVO> subVOList = questnaireAnswersDTOS.getSubs();
                    //构造表头
                    List<List<String>> headList = new ArrayList<List<String>>();
                    String firstRowContent = "调查结果";
                    List<String> head0 = new ArrayList<>();
                    head0.add(firstRowContent);
                    head0.add("姓名");
                    headList.add(head0);
                    List<String> head1 = new ArrayList<>();
                    head1.add(firstRowContent);
                    head1.add("提交时间");
                    headList.add(head1);
                    subVOList.forEach(sub -> {
                        List<String> headn = new ArrayList<>();
                        headn.add(firstRowContent);
                        headn.add(sub.getContent());
                        headList.add(headn);
                    });
                    List<List<Object>> datalist = new ArrayList<>();
                    List<ComActQuestnaireAnswerContentVO> answerContentVOList = questnaireAnswersDTOS.getAnswers();
                    if(answerContentVOList!=null && answerContentVOList.size()>0) {
                        Map<LoginUserInfoVO, LinkedHashMap<Long, List<ComActQuestnaireAnswerContentVO>>> answersMap = new HashMap<>();
                        List<ComActQuestnaireAnswerContentVO> usersAnswers = questnaireAnswersDTOS.getAnswers();
                        usersAnswers.forEach(userAnswers -> {
                            R<LoginUserInfoVO> loginUserInfoVOR = userService.getUserInfoByUserId(userAnswers.getUserId().toString());
                            if (R.isOk(loginUserInfoVOR)) {
                                LoginUserInfoVO loginUserInfoVO = loginUserInfoVOR.getData();
                                LinkedHashMap<Long, List<ComActQuestnaireAnswerContentVO>> theUserList = answersMap.get(loginUserInfoVO);
                                if (theUserList == null) {
                                    theUserList = new LinkedHashMap<>();
                                    answersMap.put(loginUserInfoVO, theUserList);
                                }
                                /**
                                 * 按题分类题目答案
                                 */
                                Long subId = userAnswers.getSubId();
                                List<ComActQuestnaireAnswerContentVO> answerContentVOList1 = theUserList.get(subId);
                                if(answerContentVOList1==null){
                                    answerContentVOList1 = new ArrayList<>();
                                    theUserList.put(subId, answerContentVOList1);
                                }
                                answerContentVOList1.add(userAnswers);
                            }
                        });
                        /**
                         * 构造导出数据
                         */
                        answersMap.forEach((user, answers) ->{
                            List<Object> userData = new ArrayList<>();
                            userData.add(user.getName());
                            //获取提交时间
                            Set<Long> keySet = answers.keySet();
                            String dateStr = "";
                            if(keySet!=null && keySet.size()>0){
                                try {
                                    ComActQuestnaireAnswerContentVO firstvo = answers.get(keySet.toArray()[0]).get(0);
                                    if (firstvo != null) {
                                        Date time = firstvo.getCreateAt();
                                        if(time!=null) {
                                            String sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time);
                                            dateStr = sd;
                                        }
                                    }
                                }catch (Exception e){
                                    dateStr = "";
                                }
                            }
                            userData.add(dateStr);
                            answers.forEach((id, answer )->{
                                StringBuilder usersAnswerContent = new StringBuilder("");
                                answer.forEach(ans ->{
                                    String context = (ans.getChoice()!=null?(ans.getChoice()+ "."):"")  + ans.getAnswerContent();
                                    usersAnswerContent.append(context +"\n");
                                });
                                userData.add(usersAnswerContent.toString());
                            });
                            datalist.add(userData);
                        });
                    }
                    WriteCellStyle headWriteCellStyle = new WriteCellStyle();
                    WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
                    contentWriteCellStyle.setWrapped(true);
                    HorizontalCellStyleStrategy horizontalCellStyleStrategy =
                            new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
                    LongestMatchColumnWidthStyleStrategy longestMatchColumnWidthStyleStrategy = new LongestMatchColumnWidthStyleStrategy();
                    excelWriter = EasyExcel.write(fileName, ComMngPopulationExcelVo.class)
                            .registerWriteHandler(horizontalCellStyleStrategy)
                            .registerWriteHandler(longestMatchColumnWidthStyleStrategy)
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("登记明细导出数据").head(headList).build();
                    excelWriter.write(datalist, writeSheet);
                    excelWriter.finish();
                    File file = new File(fileName);
                    inputStream = new FileInputStream(file);
                    sftp.uploadMore(ftpUrl, name, inputStream);
                    sftp.logout();
                    inputStream.close();
                    String absolutePath = file.getAbsolutePath();
                    boolean delete = file.delete();
                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                } finally {
                    // 千万别忘记finish 会帮忙关闭流
                    if (inputStream != null) {
                        inputStream.close();
                    }
                    if (excelWriter != null) {
                        excelWriter.finish();
                    }
                }
            }
            return R.ok(sftpConfig.getExcelUrl() + name);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java
@@ -1,21 +1,224 @@
package com.panzhihua.service_community.api;
import com.panzhihua.common.model.dtos.community.reserve.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.service.ComActReserveAnswerContentService;
import com.panzhihua.service_community.service.ComActReserveRecordService;
import com.panzhihua.service_community.service.ComActReserveService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
 * 预约登记
 */
@Slf4j
@RestController
@RequestMapping("/reserve")
@RequestMapping("/reserve/")
public class ComActReserveApi {
    @Resource
    private ComActReserveService comActReserveService;
    @Resource
    private ComActReserveRecordService comActReserveRecordService;
    @Resource
    private ComActReserveAnswerContentService comActReserveAnswerContentService;
    /**
     * 社区后台-分页查询预约登记列表
     * @param pageReserveDTO    请求参数
     * @return  预约登记列表
     */
    @PostMapping("/admin/page")
    public R pageReserveAdmin(@RequestBody PageReserveAdminDTO pageReserveDTO){
        return comActReserveService.pageReserveAdmin(pageReserveDTO);
    }
    /**
     * 社区后台-新增预约登记信息
     * @param addReserveDTO 请求参数
     * @return  新增结果
     */
    @PostMapping("/admin/add")
    public R addReserveAdmin(@RequestBody AddReserveAdminDTO addReserveDTO){
        return comActReserveService.addReserveAdmin(addReserveDTO);
    }
    /**
     * 社区后台-编辑预约登记信息
     * @param editReserveDTO 请求参数
     * @return  新增结果
     */
    @PostMapping("/admin/edit")
    public R editReserveAdmin(@RequestBody EditReserveAdminDTO editReserveDTO){
        return comActReserveService.editReserveAdmin(editReserveDTO);
    }
    /**
     * 社区后台-修改预约登记状态
     * @param editReserveDTO    请求参数
     * @return  修改结果
     */
    @PostMapping("/admin/edit/status")
    public R editReserveStatusAdmin(@RequestBody EditComActReserveStatusDTO editReserveDTO){
        return comActReserveService.editReserveStatusAdmin(editReserveDTO);
    }
    /**
     * 社区后台-继续预约登记
     * @param editReserveDTO    请求参数
     * @return  修改结果
     */
    @PostMapping("/admin/edit/info")
    public R editReserveInfoAdmin(@RequestBody EditComActReserveInfoDTO editReserveDTO){
        return comActReserveService.editReserveInfoAdmin(editReserveDTO);
    }
    /**
     * 社区后台-根据预约登记id查询详情
     * @param reserveId 预约登记id
     * @return  预约登记详情
     */
    @GetMapping("/admin/detail")
    public R detailReserveAdmin(@RequestParam("reserveId") Long reserveId){
        return comActReserveService.detailReserveAdmin(reserveId);
    }
    /**
     * 社区后台-根据社区id统计预约类数据
     * @param makeStatisticsDTO   请求参数
     * @return  统计预约类数据
     */
    @PostMapping("/admin/make/statistics")
    public R makeStatisticsAdmin(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO){
        return comActReserveService.makeStatisticsAdmin(makeStatisticsDTO);
    }
    /**
     * 社区后台-查询导出预约统计汇总数据
     * @param makeStatisticsDTO   请求参数
     * @return  统计预约类数据
     */
    @PostMapping("/admin/make/statistics/export")
    public R makeStatisticsExportAdmin(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO){
        return comActReserveService.makeStatisticsExportAdmin(makeStatisticsDTO);
    }
    /**
     * 社区后台-根据预约id查询预约明细
     * @param pageMakeDTO   请求参数
     * @return  预约明细
     */
    @PostMapping("/admin/make/page")
    public R pageMakeAdmin(@RequestBody PageReserveMakeAdminDTO pageMakeDTO){
        return comActReserveRecordService.pageMakeAdmin(pageMakeDTO);
    }
    /**
     * 根据预约记录id查询预约明细操作记录
     * @param reserveRecordId   预约记录id
     * @return  预约明细操作记录
     */
    @GetMapping("/admin/make/detail")
    public R detailMakeAdmin(@RequestParam("reserveRecordId") Long reserveRecordId){
        return comActReserveRecordService.detailMakeAdmin(reserveRecordId);
    }
    /**
     * 批量取消预约记录
     * @param reserveRecordDTO   请求参数
     * @return  取消结果
     */
    @PostMapping("/admin/make/cancel")
    public R makeCancelAdmin(@RequestBody CancelReserveRecordDTO reserveRecordDTO){
        return comActReserveRecordService.makeCancelAdmin(reserveRecordDTO);
    }
    /**
     * 预约明细导出数据查询
     * @param pageMakeDTO   请求参数
     * @return  预约明细数据
     */
    @PostMapping("/admin/make/list/export")
    public R exportMakeAdmin(@RequestBody PageReserveMakeAdminDTO pageMakeDTO){
        return comActReserveRecordService.exportMakeAdmin(pageMakeDTO);
    }
    /**
     * 分页查询登记统计汇总
     * @param registerStatisticsDTO 请求参数
     * @return  登记统计汇总
     */
    @PostMapping("/admin/register/page")
    public R registerStatisticsAdmin(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO){
        return comActReserveRecordService.registerStatisticsAdmin(registerStatisticsDTO);
    }
    /**
     * 导出登记统计汇总
     * @param registerStatisticsDTO 请求参数
     * @return  登记统计汇总
     */
    @PostMapping("/admin/register/export")
    public R registerStatisticsExportAdmin(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO){
        return comActReserveRecordService.registerStatisticsExportAdmin(registerStatisticsDTO);
    }
    /**
     * 分页查询预约处理列表
     * @param pageMakeHandleDTO 请求参数
     * @return  预约处理列表
     */
    @PostMapping("/admin/make/handle/page")
    public R pageMakeHandleAdmin(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO){
        return comActReserveRecordService.pageMakeHandleAdmin(pageMakeHandleDTO);
    }
    /**
     * 批量处理预约记录
     * @param makeHandleDTO 请求参数
     * @return  处理结果
     */
    @PostMapping("/admin/make/handle")
    public R makeHandleAdmin(@RequestBody MakeHandleAdminDTO makeHandleDTO){
        return comActReserveRecordService.makeHandleAdmin(makeHandleDTO);
    }
    /**
     * 导出预约处理列表数据查询
     * @param pageMakeHandleDTO 请求参数
     * @return  预约处理列表
     */
    @PostMapping("/admin/make/handle/export")
    public R exportMakeHandleAdmin(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO){
        return comActReserveRecordService.exportMakeHandleAdmin(pageMakeHandleDTO);
    }
    /**
     * 删除预约登记信息
     * @param reserveId 预约登记id
     * @return  删除结果
     */
    @GetMapping("/admin/delete")
    public R deleteReserveAdmin(@RequestParam("reserveId") Long reserveId){
        return comActReserveService.deleteReserveAdmin(reserveId);
    }
    /**
     * 查询社区所有预约信息列表
     * @param communityId   社区id
     * @return  预约信息列表
     */
    @GetMapping("/admin/list")
    public R listReserveAdmin(@RequestParam("communityId") Long communityId){
        return comActReserveService.listReserveAdmin(communityId);
    }
    @GetMapping("/admin/register/list/export")
    public R exportRegisterAdmin(@RequestParam("reserveId") Long reserveId){
        return comActReserveAnswerContentService.exportRegisterAdmin(reserveId);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.ComActReserveAnswerContentDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @auther lyq
@@ -12,4 +15,6 @@
@Mapper
public interface ComActReserveAnswerContentMapper extends BaseMapper<ComActReserveAnswerContentDO> {
    List<ComActReserveAnswerContentDO> selectListByReserve(@Param("registerStatisticsDTO")Long reserveId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveMapper.java
@@ -1,8 +1,18 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.reserve.ComActReserveMakeStatisticsDTO;
import com.panzhihua.common.model.dtos.community.reserve.PageReserveAdminDTO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveListAdminVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeLeftStatisticsAdminVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeRightStatisticsAdminVO;
import com.panzhihua.service_community.model.dos.ComActReserveDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @auther lyq
@@ -12,4 +22,48 @@
@Mapper
public interface ComActReserveMapper extends BaseMapper<ComActReserveDO> {
    /**
     * 社区后台-分页查询预约登记列表
     * @param pageReserveDTO    请求参数
     * @return  预约登记列表
     */
    IPage<ComActReserveListAdminVO> pageReserveAdmin(Page page, @Param("pageReserveDTO") PageReserveAdminDTO pageReserveDTO);
    /**
     * 根据预约登记id删除预约登记原有题目以及题目选项
     * @param reserveId 预约登记id
     */
    void deleteReserveSubAll(@Param("reserveId") Long reserveId);
    /**
     * 社区后台-根据社区id查询预约统计汇总左边数据
     * @param communityId   社区id
     * @return  预约统计汇总左边数据
     */
    List<ComActReserveMakeLeftStatisticsAdminVO> getReserveMakeLeftStatistics(@Param("communityId") Long communityId);
    /**
     * 社区后台-查询预约统计汇总右边数据
     * @param makeStatisticsDTO   请求参数
     * @return  预约统计汇总右边数据
     */
    List<ComActReserveMakeRightStatisticsAdminVO> getReserveMakeRightStatistics(@Param("makeStatisticsDTO") ComActReserveMakeStatisticsDTO makeStatisticsDTO);
    /**
     * 社区后台-根据社区id 查询开始时间到结束时间预约成功数量
     * @param communityId   社区id
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return  预约成功数量
     */
    Integer getReserveRecordCount(@Param("communityId") Long communityId,@Param("startTime") String startTime,@Param("endTime") String endTime);
    /**
     * 查询社区所有预约信息列表
     * @param communityId   社区id
     * @return  预约信息列表
     */
    List<ComActReserveListAdminVO> listReserveAdmin(@Param("communityId") Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveOperationRecordMapper.java
@@ -1,8 +1,12 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeOperationAdminVO;
import com.panzhihua.service_community.model.dos.ComActReserveOperationRecordDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @auther lyq
@@ -12,4 +16,11 @@
@Mapper
public interface ComActReserveOperationRecordMapper extends BaseMapper<ComActReserveOperationRecordDO> {
    /**
     * 根据预约记录id查询预约明细操作记录
     * @param reserveRecordId   预约记录id
     * @return  预约明细操作记录
     */
    List<ComActReserveMakeOperationAdminVO> getMakeOperationList(@Param("reserveRecordId") Long reserveRecordId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveRecordMapper.java
@@ -1,8 +1,20 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.reserve.ComActReserveRegisterStatisticsDTO;
import com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeAdminDTO;
import com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeHandleAdminDTO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeDetailAdminVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeHandleListAdminVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeListAdminVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterStatisticsAdminVO;
import com.panzhihua.service_community.model.dos.ComActReserveRecordDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @auther lyq
@@ -12,4 +24,73 @@
@Mapper
public interface ComActReserveRecordMapper extends BaseMapper<ComActReserveRecordDO> {
    /**
     * 社区后台-根据预约id查询预约明细
     * @param pageMakeDTO   请求参数
     * @return  预约明细
     */
    IPage<ComActReserveMakeListAdminVO> pageMakeAdmin(Page page, @Param("pageMakeDTO") PageReserveMakeAdminDTO pageMakeDTO);
    /**
     * 根据预约记录id查询预约记录详细信息
     * @param reserveRecordId   预约记录id
     * @return  预约记录详细信息
     */
    ComActReserveMakeDetailAdminVO getMakeDetailAdmin(@Param("reserveRecordId") Long reserveRecordId);
    /**
     * 查询预约记录id集合中是否存在未预约成功的记录
     * @param ids   预约记录id集合
     * @return  未预约成功记录的数量
     */
    Integer getReserveStatusById(@Param("ids") List<Long> ids);
    /**
     * 修改预约记录id集合的预约状态为已取消
     * @param ids   预约记录id集合
     * @return  修改结果
     */
    Integer editReserveStatusById(@Param("ids") List<Long> ids);
    /**
     * 预约明细导出数据查询
     * @param pageMakeDTO   请求参数
     * @return  预约明细数据
     */
    List<ComActReserveMakeListAdminVO> exportMakeAdmin(@Param("pageMakeDTO") PageReserveMakeAdminDTO pageMakeDTO);
    /**
     * 分页查询登记统计汇总
     * @param registerStatisticsDTO 请求参数
     * @return  登记统计汇总
     */
    IPage<ComActReserveRegisterStatisticsAdminVO> registerStatisticsAdmin(Page page, @Param("registerStatisticsDTO") ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
    /**
     * 导出登记统计汇总
     * @param registerStatisticsDTO 请求参数
     * @return  登记统计汇总
     */
    List<ComActReserveRegisterStatisticsAdminVO> registerStatisticsExportAdmin(@Param("registerStatisticsDTO") ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
    /**
     * 分页查询预约处理列表
     * @param pageMakeHandleDTO 请求参数
     * @return  预约处理列表
     */
    IPage<ComActReserveMakeHandleListAdminVO> pageMakeHandleAdmin(Page page, @Param("pageMakeHandleDTO") PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
    /**
     * 查询指定预约记录是否存在不是待处理状态的数据
     * @param ids   预约记录id集合
     * @return  不是待处理状态数据条数
     */
    Integer getReserveListCountByIds(@Param("ids")List<Long> ids);
    /**
     * 导出预约处理列表数据查询
     * @param pageMakeHandleDTO 请求参数
     * @return  预约处理列表
     */
    List<ComActReserveMakeHandleListAdminVO> exportMakeHandleAdmin(@Param("pageMakeHandleDTO") PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveSubMapper.java
@@ -1,8 +1,12 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.ComActReserveAnswerContentDO;
import com.panzhihua.service_community.model.dos.ComActReserveSubDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @auther lyq
@@ -12,4 +16,6 @@
@Mapper
public interface ComActReserveSubMapper extends BaseMapper<ComActReserveSubDO> {
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java
@@ -19,7 +19,7 @@
    @TableId(type= IdType.AUTO)
    private Long id;
    /**
     * 类型 0单选1多选2问答题
     * 类型 0 单选  1 多选 2 输入框 2姓名输入框 3 手机号 4 身份证 5 文字描述 6 日期选择
     */
    private int type;
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveDO.java
@@ -1,8 +1,6 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
@@ -122,6 +120,34 @@
     */
    private Long updateBy;
    /**
     * 结束时间
     */
    @TableField(value = "end_time", updateStrategy  = FieldStrategy.IGNORED)
    private Date endTime;
    /**
     * 是否已删除(1.是 2.否)
     */
    private Integer isDel;
    /**
     * 默认是否枚举(1.是 2.否)
     */
    public interface isOk{
        int yes = 1;
        int no = 2;
    }
    /**
     * 预约登记状态枚举(1.待发布 2.进行中 3.已停止)
     */
    public interface status{
        int dfb = 1;
        int jxz = 2;
        int ytz = 3;
    }
    @Override
    public String toString() {
        return "ComActReserveDO{" +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveOperationRecordDO.java
@@ -82,6 +82,24 @@
     */
    private Long createBy;
    /**
     * 类型(1.本人操作 2.社区操作)
     */
    public interface type{
        int br = 1;
        int sq = 2;
    }
    /**
     * 状态(1.提交 2.预约成功 3.预约失败 4.取消)
     */
    public interface status{
        int tj = 1;
        int yycg = 2;
        int yysb = 3;
        int qx = 4;
    }
    @Override
    public String toString() {
        return "ComActReserveOperationRecordDO{" +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveRecordDO.java
@@ -107,6 +107,16 @@
     */
    private Long updateBy;
    /**
     * 状态(1.待处理 2.预约成功 3.预约失败 4.已取消)
     */
    public interface status{
        int dcl = 1;
        int yycg = 2;
        int yysb = 3;
        int yqx = 4;
    }
    @Override
    public String toString() {
        return "ComActReserveRecordDO{" +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubDO.java
@@ -1,6 +1,7 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -38,13 +39,14 @@
    private Integer sort;
    /**
     * 类型 0单选1多选2问答题
     * 类型 0 单选  1 多选 2 输入框 2姓名输入框 3 手机号 4 身份证 5 文字描述 6 日期选择
     */
    private Integer type;
    /**
     * 问卷调查题目key
     */
    @TableField("`key`")
    private String key;
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubSelectionDO.java
@@ -1,6 +1,7 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -40,6 +41,7 @@
    /**
     * 预约登记选项key
     */
    @TableField("`key`")
    private String key;
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveAnswerContentService.java
@@ -1,6 +1,7 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComActReserveAnswerContentDO;
/**
@@ -10,4 +11,6 @@
 */
public interface ComActReserveAnswerContentService extends IService<ComActReserveAnswerContentDO> {
    R exportRegisterAdmin(Long reserveId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveRecordService.java
@@ -1,7 +1,11 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.reserve.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComActReserveRecordDO;
import java.util.List;
/**
 * @auther lyq
@@ -10,4 +14,67 @@
 */
public interface ComActReserveRecordService extends IService<ComActReserveRecordDO> {
    /**
     * 社区后台-根据预约id查询预约明细
     * @param pageMakeDTO   请求参数
     * @return  预约明细
     */
    R pageMakeAdmin(PageReserveMakeAdminDTO pageMakeDTO);
    /**
     * 根据预约记录id查询预约明细操作记录
     * @param reserveRecordId   预约记录id
     * @return  预约明细操作记录
     */
    R detailMakeAdmin(Long reserveRecordId);
    /**
     * 批量取消预约记录
     * @param reserveRecordDTO   请求参数
     * @return  取消结果
     */
    R makeCancelAdmin(CancelReserveRecordDTO reserveRecordDTO);
    /**
     * 预约明细导出数据查询
     * @param pageMakeDTO   请求参数
     * @return  预约明细数据
     */
    R exportMakeAdmin(PageReserveMakeAdminDTO pageMakeDTO);
    /**
     * 分页查询登记统计汇总
     * @param registerStatisticsDTO 请求参数
     * @return  登记统计汇总
     */
    R registerStatisticsAdmin(ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
    /**
     * 导出登记统计汇总
     * @param registerStatisticsDTO 请求参数
     * @return  登记统计汇总
     */
    R registerStatisticsExportAdmin(ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
    /**
     * 分页查询预约处理列表
     * @param pageMakeHandleDTO 请求参数
     * @return  预约处理列表
     */
    R pageMakeHandleAdmin(PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
    /**
     * 批量处理预约记录
     * @param makeHandleDTO 请求参数
     * @return  处理结果
     */
    R makeHandleAdmin(MakeHandleAdminDTO makeHandleDTO);
    /**
     * 导出预约处理列表数据查询
     * @param pageMakeHandleDTO 请求参数
     * @return  预约处理列表
     */
    R exportMakeHandleAdmin(PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveService.java
@@ -1,6 +1,8 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.reserve.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComActReserveDO;
/**
@@ -10,4 +12,74 @@
 */
public interface ComActReserveService extends IService<ComActReserveDO> {
    /**
     * 社区后台-分页查询预约登记列表
     * @param pageReserveDTO    请求参数
     * @return  预约登记列表
     */
    R pageReserveAdmin(PageReserveAdminDTO pageReserveDTO);
    /**
     * 社区后台-新增预约登记信息
     * @param addReserveDTO 请求参数
     * @return  新增结果
     */
    R addReserveAdmin(AddReserveAdminDTO addReserveDTO);
    /**
     * 社区后台-编辑预约登记信息
     * @param editReserveDTO 请求参数
     * @return  新增结果
     */
    R editReserveAdmin(EditReserveAdminDTO editReserveDTO);
    /**
     * 社区后台-修改预约登记状态
     * @param editReserveDTO    请求参数
     * @return  修改结果
     */
    R editReserveStatusAdmin(EditComActReserveStatusDTO editReserveDTO);
    /**
     * 社区后台-继续预约登记
     * @param editReserveDTO    请求参数
     * @return  修改结果
     */
    R editReserveInfoAdmin(EditComActReserveInfoDTO editReserveDTO);
    /**
     * 社区后台-根据预约登记id查询详情
     * @param reserveId 预约登记id
     * @return  预约登记详情
     */
    R detailReserveAdmin(Long reserveId);
    /**
     * 社区后台-根据社区id统计预约类数据
     * @param makeStatisticsDTO   请求参数
     * @return  统计预约类数据
     */
    R makeStatisticsAdmin(ComActReserveMakeStatisticsDTO makeStatisticsDTO);
    /**
     * 社区后台-查询导出预约统计汇总数据
     * @param makeStatisticsDTO   请求参数
     * @return  统计预约类数据
     */
    R makeStatisticsExportAdmin(ComActReserveMakeStatisticsDTO makeStatisticsDTO);
    /**
     * 删除预约登记信息
     * @param reserveId 预约登记id
     * @return  删除结果
     */
    R deleteReserveAdmin(Long reserveId);
    /**
     * 查询社区所有预约信息列表
     * @param communityId   社区id
     * @return  预约信息列表
     */
    R listReserveAdmin(Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java
@@ -1,11 +1,26 @@
package com.panzhihua.service_community.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.community.QuestnaireAnswersDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
import com.panzhihua.service_community.dao.ComActReserveAnswerContentMapper;
import com.panzhihua.service_community.dao.ComActReserveSubMapper;
import com.panzhihua.service_community.model.dos.ComActQuestnaireAnswerContentDO;
import com.panzhihua.service_community.model.dos.ComActQuestnaireSubDO;
import com.panzhihua.service_community.model.dos.ComActReserveAnswerContentDO;
import com.panzhihua.service_community.model.dos.ComActReserveSubDO;
import com.panzhihua.service_community.service.ComActReserveAnswerContentService;
import com.panzhihua.service_community.service.ComActReserveSubService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
 * @auther lyq
@@ -16,4 +31,32 @@
@Service
public class ComActReserveAnswerContentServiceImpl extends ServiceImpl<ComActReserveAnswerContentMapper, ComActReserveAnswerContentDO> implements ComActReserveAnswerContentService {
    @Resource
    private ComActReserveSubMapper comActReserveSubMapper;
    @Override
    public R exportRegisterAdmin(Long reserveId){
        QuestnaireAnswersDTO result = new QuestnaireAnswersDTO();
        //查询题目
        List<ComActReserveSubDO> list = comActReserveSubMapper.selectList(new QueryWrapper<ComActReserveSubDO>().lambda().eq(ComActReserveSubDO::getReserveId, reserveId));
        List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>();
        list.forEach(subDo -> {
            ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
            BeanUtils.copyProperties(subDo, comActQuestnaireSubVO);
            listSubVo.add(comActQuestnaireSubVO);
        });
        result.setSubs(listSubVo);
        //查询用户回答
        List<ComActReserveAnswerContentDO> questnaireAnswerContentDOList = this.baseMapper.selectListByReserve(reserveId);
        List<ComActQuestnaireAnswerContentVO> vos = new ArrayList<>();
        questnaireAnswerContentDOList.forEach(dos -> {
            ComActQuestnaireAnswerContentVO vo = new ComActQuestnaireAnswerContentVO();
            BeanUtils.copyProperties(dos, vo);
            vos.add(vo);
        });
        result.setAnswers(vos);
        return R.ok(result);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java
@@ -1,11 +1,30 @@
package com.panzhihua.service_community.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.community.reserve.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeDetailAdminVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeOperationAdminVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterStatisticsAdminVO;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.service_community.dao.ComActReserveOperationRecordMapper;
import com.panzhihua.service_community.dao.ComActReserveRecordMapper;
import com.panzhihua.service_community.model.dos.ComActReserveOperationRecordDO;
import com.panzhihua.service_community.model.dos.ComActReserveRecordDO;
import com.panzhihua.service_community.service.ComActReserveOperationRecordService;
import com.panzhihua.service_community.service.ComActReserveRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * @auther lyq
@@ -16,4 +35,181 @@
@Service
public class ComActReserveRecordServiceImpl extends ServiceImpl<ComActReserveRecordMapper, ComActReserveRecordDO> implements ComActReserveRecordService {
    @Resource
    private ComActReserveOperationRecordMapper comActReserveOperationRecordMapper;
    @Resource
    private ComActReserveRecordMapper comActReserveRecordMapper;
    @Resource
    private ComActReserveOperationRecordService comActReserveOperationRecordService;
    /**
     * 社区后台-根据预约id查询预约明细
     * @param pageMakeDTO   请求参数
     * @return  预约明细
     */
    @Override
    public R pageMakeAdmin(PageReserveMakeAdminDTO pageMakeDTO){
        return R.ok(this.baseMapper.pageMakeAdmin(new Page(pageMakeDTO.getPageNum(),pageMakeDTO.getPageSize()),pageMakeDTO));
    }
    /**
     * 根据预约记录id查询预约明细操作记录
     * @param reserveRecordId   预约记录id
     * @return  预约明细操作记录
     */
    @Override
    public R detailMakeAdmin(Long reserveRecordId){
        ComActReserveMakeDetailAdminVO makeDetailAdminVO = this.baseMapper.getMakeDetailAdmin(reserveRecordId);
        if(makeDetailAdminVO != null){
            //查询预约明细操作记录
            List<ComActReserveMakeOperationAdminVO> makeOperationList = comActReserveOperationRecordMapper.getMakeOperationList(reserveRecordId);
            makeDetailAdminVO.setOperationList(makeOperationList);
        }
        return R.ok(makeDetailAdminVO);
    }
    /**
     * 批量取消预约记录
     * @param reserveRecordDTO   请求参数
     * @return  取消结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R makeCancelAdmin(CancelReserveRecordDTO reserveRecordDTO){
        Integer count = this.baseMapper.getReserveStatusById(reserveRecordDTO.getIds());
        if(count > 0){
            return R.ok("您选择的记录中存在未预约成功,不可进行批量取消");
        }
        if(this.baseMapper.editReserveStatusById(reserveRecordDTO.getIds()) > 0){
            Long userId = reserveRecordDTO.getUserId();
            reserveRecordDTO.getIds().forEach(id -> {
                ComActReserveRecordDO reserveRecordDO = comActReserveRecordMapper.selectById(id);
                if(reserveRecordDO != null){
                    //添加操作记录
                    comActReserveOperationRecordService.addReserveOperationRecord(reserveRecordDO.getReserveId()
                            ,reserveRecordDO.getId(),reserveRecordDO.getUserId(),ComActReserveOperationRecordDO.type.sq,null
                            ,"社区管理员取消预约",reserveRecordDTO.getRemark(),ComActReserveOperationRecordDO.status.qx,userId);
                }
            });
            return R.ok();
        }else{
            return R.fail();
        }
    }
    /**
     * 预约明细导出数据查询
     * @param pageMakeDTO   请求参数
     * @return  预约明细数据
     */
    @Override
    public R exportMakeAdmin(PageReserveMakeAdminDTO pageMakeDTO){
        return R.ok(this.baseMapper.exportMakeAdmin(pageMakeDTO));
    }
    /**
     * 分页查询登记统计汇总
     * @param registerStatisticsDTO 请求参数
     * @return  登记统计汇总
     */
    @Override
    public R registerStatisticsAdmin(ComActReserveRegisterStatisticsDTO registerStatisticsDTO){
        IPage<ComActReserveRegisterStatisticsAdminVO> registerStatisticsList = this.baseMapper.registerStatisticsAdmin(new Page(registerStatisticsDTO.getPageNum()
                ,registerStatisticsDTO.getPageSize()),registerStatisticsDTO);
        registerStatisticsList.getRecords().forEach(registerStatistics -> {
            BigDecimal tag = BigDecimal.ZERO;
            if(registerStatistics.getAllCount() > 0){
                tag = BigDecimal.valueOf(registerStatistics.getCount()).divide(BigDecimal.valueOf(registerStatistics.getAllCount()),4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
            }
            registerStatistics.setTag(tag);
        });
        return R.ok(registerStatisticsList.getRecords());
    }
    /**
     * 导出登记统计汇总
     * @param registerStatisticsDTO 请求参数
     * @return  登记统计汇总
     */
    @Override
    public R registerStatisticsExportAdmin(ComActReserveRegisterStatisticsDTO registerStatisticsDTO){
        List<ComActReserveRegisterStatisticsAdminVO> registerStatisticsList = this.baseMapper.registerStatisticsExportAdmin(registerStatisticsDTO);
        registerStatisticsList.forEach(registerStatistics -> {
            BigDecimal tag = BigDecimal.ZERO;
            if(registerStatistics.getAllCount() > 0){
                tag = BigDecimal.valueOf(registerStatistics.getCount()).divide(BigDecimal.valueOf(registerStatistics.getAllCount()),4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
            }
            registerStatistics.setTag(tag);
        });
        return R.ok(registerStatisticsList);
    }
    /**
     * 分页查询预约处理列表
     * @param pageMakeHandleDTO 请求参数
     * @return  预约处理列表
     */
    @Override
    public R pageMakeHandleAdmin(PageReserveMakeHandleAdminDTO pageMakeHandleDTO){
        return R.ok(this.baseMapper.pageMakeHandleAdmin(new Page(pageMakeHandleDTO.getPageNum(),pageMakeHandleDTO.getPageSize()),pageMakeHandleDTO));
    }
    /**
     * 批量处理预约记录
     * @param makeHandleDTO 请求参数
     * @return  处理结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R makeHandleAdmin(MakeHandleAdminDTO makeHandleDTO){
        if(makeHandleDTO.getIds() == null || makeHandleDTO.getIds().isEmpty()){
            return R.fail("请勾选预约记录");
        }
        //判断选中的所有记录是否都是待处理记录
        if(this.baseMapper.getReserveListCountByIds(makeHandleDTO.getIds()) > 0){
            return R.fail("您勾选的记录中存在不是待处理状态的记录,请核对后再进行处理");
        }
        Date nowDate = new Date();
        Long userId = makeHandleDTO.getUserId();
        String remark = makeHandleDTO.getRemark();
        List<ComActReserveRecordDO> updateList = new ArrayList<>();
        makeHandleDTO.getIds().forEach(id -> {
            ComActReserveRecordDO reserveRecordDO = this.baseMapper.selectById(id);
            if(reserveRecordDO != null){
                //判断处理是否通过
                if(makeHandleDTO.getIsOk().equals(MakeHandleAdminDTO.isOk.yes)){
                    reserveRecordDO.setStatus(ComActReserveRecordDO.status.yycg);
                    comActReserveOperationRecordService.addReserveOperationRecord(reserveRecordDO.getReserveId()
                            ,id,reserveRecordDO.getUserId(),ComActReserveOperationRecordDO.type.sq,null
                            ,"社区管理员处理预约成功",remark,ComActReserveOperationRecordDO.status.yycg,userId);
                }else if(makeHandleDTO.getIsOk().equals(MakeHandleAdminDTO.isOk.no)){
                    reserveRecordDO.setStatus(ComActReserveRecordDO.status.yysb);
                    comActReserveOperationRecordService.addReserveOperationRecord(reserveRecordDO.getReserveId()
                            ,id,reserveRecordDO.getUserId(),ComActReserveOperationRecordDO.type.sq,null
                            ,"社区管理员处理预约失败",remark,ComActReserveOperationRecordDO.status.yysb,userId);
                }
                reserveRecordDO.setActRemark(remark);
                reserveRecordDO.setReserveTime(DateUtils.stringToDate(makeHandleDTO.getMakeTime(),DateUtils.ymdhms_format));
                reserveRecordDO.setUpdateAt(nowDate);
                reserveRecordDO.setUpdateBy(userId);
                updateList.add(reserveRecordDO);
            }
        });
        if(!updateList.isEmpty()){
            this.updateBatchById(updateList);
        }
        return R.ok();
    }
    /**
     * 导出预约处理列表数据查询
     * @param pageMakeHandleDTO 请求参数
     * @return  预约处理列表
     */
    @Override
    public R exportMakeHandleAdmin(PageReserveMakeHandleAdminDTO pageMakeHandleDTO){
        return R.ok(this.baseMapper.exportMakeHandleAdmin(pageMakeHandleDTO));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java
@@ -1,11 +1,32 @@
package com.panzhihua.service_community.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.panzhihua.common.model.dtos.community.reserve.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.questnaire.QuestnaiteSubSelectionVO;
import com.panzhihua.common.model.vos.community.questnaire.QuestnaiteSubVO;
import com.panzhihua.common.model.vos.community.reserve.*;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.ComActReserveMapper;
import com.panzhihua.service_community.model.dos.ComActReserveDO;
import com.panzhihua.service_community.dao.ComActReserveSubMapper;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.ComActReserveService;
import com.panzhihua.service_community.service.ComActReserveSubSelectionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * @auther lyq
@@ -16,4 +37,346 @@
@Service
public class ComActReserveServiceImpl extends ServiceImpl<ComActReserveMapper, ComActReserveDO> implements ComActReserveService {
    @Resource
    private ComActReserveSubMapper comActReserveSubMapper;
    @Resource
    private ComActReserveSubSelectionService comActReserveSubSelectionService;
    /**
     * 社区后台-分页查询预约登记列表
     * @param pageReserveDTO    请求参数
     * @return  预约登记列表
     */
    @Override
    public R pageReserveAdmin(PageReserveAdminDTO pageReserveDTO){
        IPage<ComActReserveListAdminVO> reservePage = this.baseMapper.pageReserveAdmin(new Page(pageReserveDTO.getPageNum(),pageReserveDTO.getPageSize()),pageReserveDTO);
        reservePage.getRecords().forEach(reserve -> {
            //判断广告位置
            StringBuilder sb = new StringBuilder();
            if(reserve.getAdverPositionTop().equals(ComActQuestnaireDO.isOk.yes)){
                sb.append("首页顶部,");
            }
            if(reserve.getAdverPositionApplication().equals(ComActQuestnaireDO.isOk.yes)){
                sb.append("首页应用,");
            }
            String advertPosition = sb.toString();
            if(advertPosition.length() > 0){
                reserve.setAdvertPosition(advertPosition.substring(0,advertPosition.length()-1));
            }else{
                reserve.setAdvertPosition("无");
            }
        });
        return R.ok(reservePage);
    }
    /**
     * 社区后台-新增预约登记信息
     * @param addReserveDTO 请求参数
     * @return  新增结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R addReserveAdmin(AddReserveAdminDTO addReserveDTO){
        Date nowDate = new Date();
        Long userId = addReserveDTO.getUserId();
        //新增预约登记信息
        ComActReserveDO reserveDO = new ComActReserveDO();
        BeanUtils.copyProperties(addReserveDTO,reserveDO);
        reserveDO.setStatus(ComActReserveDO.status.dfb);
        reserveDO.setCreateAt(nowDate);
        reserveDO.setCreateBy(userId);
        if(addReserveDTO.getIsPublish().equals(ComActReserveDO.isOk.yes)){
            reserveDO.setStatus(ComActReserveDO.status.jxz);
            reserveDO.setPublishTime(nowDate);
        }
        this.baseMapper.insert(reserveDO);
        //根据上传的json数据录入选项以及题目到数据库
        if(StringUtils.isEmpty(addReserveDTO.getJsonObject())){
            return R.fail("组件json数据为空,录入失败");
        }
        List<QuestnaiteSubVO> reserveSubVOS = JSON.parseArray(addReserveDTO.getJsonObject(),QuestnaiteSubVO.class);
        reserveSubVOS.forEach(reserveSub -> {
            ComActReserveSubDO comActReserveSubDO = new ComActReserveSubDO();
            comActReserveSubDO.setType(reserveSub.getType());
            comActReserveSubDO.setContent(reserveSub.getLabel());
            comActReserveSubDO.setSort(reserveSub.getSort());
            comActReserveSubDO.setReserveId(reserveDO.getId());
            comActReserveSubDO.setCreateBy(userId);
            comActReserveSubDO.setCreateAt(nowDate);
            comActReserveSubDO.setKey(reserveSub.getKey());
            comActReserveSubMapper.insert(comActReserveSubDO);
            ArrayList<ComActReserveSubSelectionDO> subSelectionList = Lists.newArrayList();
            if(reserveSub.getOptions() != null && !reserveSub.getOptions().isEmpty()) {
                List<QuestnaiteSubSelectionVO> subOptions = reserveSub.getOptions();
                for(int i=0; i<subOptions.size(); i++){
                    QuestnaiteSubSelectionVO subSelect = subOptions.get(i);
                    ComActReserveSubSelectionDO subSelectionDO = new ComActReserveSubSelectionDO();
                    subSelectionDO.setReserveSubId(comActReserveSubDO.getId());
                    if(subSelect.getType().equals(1)){
                        //添加选项名称
                        subSelectionDO.setOptionName(subSelect.getOptionName());
                    }else {
                        subSelectionDO.setOptionName(String.valueOf(Character.toChars('A' + i)));
                    }
                    subSelectionDO.setContent(subSelect.getLabel());
                    subSelectionDO.setReserveId(reserveDO.getId());
                    subSelectionDO.setCreateBy(userId);
                    subSelectionDO.setCreateAt(nowDate);
                    subSelectionDO.setType(subSelect.getType());
                    subSelectionDO.setKey(subSelect.getKey());
                    subSelectionList.add(subSelectionDO);
                }
            }
            comActReserveSubSelectionService.saveBatch(subSelectionList);
        });
        return R.ok();
    }
    /**
     * 社区后台-编辑预约登记信息
     * @param editReserveDTO 请求参数
     * @return  新增结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R editReserveAdmin(EditReserveAdminDTO editReserveDTO){
        Date nowDate = new Date();
        Long userId = editReserveDTO.getUserId();
        Long reserveId = editReserveDTO.getId();
        //查询预约登记信息
        ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
        if(reserveDO == null){
            return R.fail("未查询到预约登记记录");
        }
        if(!reserveDO.getStatus().equals(ComActReserveDO.status.dfb)){
            return R.fail("不可修改不是待发布状态的预约登记记录");
        }
        BeanUtils.copyProperties(editReserveDTO,reserveDO);
        reserveDO.setStatus(ComActReserveDO.status.dfb);
        reserveDO.setUpdateAt(nowDate);
        reserveDO.setUpdateBy(userId);
        if(editReserveDTO.getIsPublish().equals(ComActReserveDO.isOk.yes)){
            reserveDO.setStatus(ComActReserveDO.status.jxz);
            reserveDO.setPublishTime(nowDate);
        }
        this.baseMapper.updateById(reserveDO);
        //根据上传的json数据录入选项以及题目到数据库
        if(StringUtils.isEmpty(editReserveDTO.getJsonObject())){
            return R.fail("组件json数据为空,录入失败");
        }
        //清除原来预约登记题目以及题目选项
        this.baseMapper.deleteReserveSubAll(reserveId);
        //清除原有的,添加更新的
        List<QuestnaiteSubVO> reserveSubVOS = JSON.parseArray(editReserveDTO.getJsonObject(),QuestnaiteSubVO.class);
        if(reserveSubVOS.isEmpty()){
            return R.fail("组件json数据为空,录入失败");
        }
        reserveSubVOS.forEach(reserveSub -> {
            ComActReserveSubDO comActReserveSubDO = new ComActReserveSubDO();
            comActReserveSubDO.setType(reserveSub.getType());
            comActReserveSubDO.setContent(reserveSub.getLabel());
            comActReserveSubDO.setSort(reserveSub.getSort());
            comActReserveSubDO.setReserveId(reserveDO.getId());
            comActReserveSubDO.setCreateBy(userId);
            comActReserveSubDO.setCreateAt(nowDate);
            comActReserveSubDO.setKey(reserveSub.getKey());
            comActReserveSubMapper.insert(comActReserveSubDO);
            ArrayList<ComActReserveSubSelectionDO> subSelectionList = Lists.newArrayList();
            if(reserveSub.getOptions() != null && !reserveSub.getOptions().isEmpty()) {
                List<QuestnaiteSubSelectionVO> subOptions = reserveSub.getOptions();
                for(int i=0; i<subOptions.size(); i++){
                    QuestnaiteSubSelectionVO subSelect = subOptions.get(i);
                    ComActReserveSubSelectionDO subSelectionDO = new ComActReserveSubSelectionDO();
                    subSelectionDO.setReserveSubId(comActReserveSubDO.getId());
                    if(subSelect.getType().equals(1)){
                        //添加选项名称
                        subSelectionDO.setOptionName(subSelect.getOptionName());
                    }else {
                        subSelectionDO.setOptionName(String.valueOf(Character.toChars('A' + i)));
                    }
                    subSelectionDO.setContent(subSelect.getLabel());
                    subSelectionDO.setReserveId(reserveDO.getId());
                    subSelectionDO.setCreateBy(userId);
                    subSelectionDO.setCreateAt(nowDate);
                    subSelectionDO.setType(subSelect.getType());
                    subSelectionDO.setKey(subSelect.getKey());
                    subSelectionList.add(subSelectionDO);
                }
            }
            comActReserveSubSelectionService.saveBatch(subSelectionList);
        });
        return R.ok();
    }
    /**
     * 社区后台-修改预约登记状态
     * @param editReserveDTO    请求参数
     * @return  修改结果
     */
    @Override
    public R editReserveStatusAdmin(EditComActReserveStatusDTO editReserveDTO){
        Date nowDate = new Date();
        Long userId = editReserveDTO.getUserId();
        Long reserveId = editReserveDTO.getId();
        //查询预约登记信息
        ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
        if(reserveDO == null){
            return R.fail("未查询到预约登记记录");
        }
        if(editReserveDTO.getType().equals(EditComActReserveStatusDTO.type.tz)){
            reserveDO.setStatus(ComActReserveDO.status.ytz);
            reserveDO.setEndTime(nowDate);
        }else if(editReserveDTO.getType().equals(EditComActReserveStatusDTO.type.fb)){
            reserveDO.setStatus(ComActReserveDO.status.jxz);
            reserveDO.setPublishTime(nowDate);
        }
        reserveDO.setUpdateBy(userId);
        reserveDO.setUpdateAt(nowDate);
        if(this.baseMapper.updateById(reserveDO) > 0){
            return R.ok();
        }else{
            return R.fail();
        }
    }
    /**
     * 社区后台-继续预约登记
     * @param editReserveDTO    请求参数
     * @return  修改结果
     */
    @Override
    public R editReserveInfoAdmin(EditComActReserveInfoDTO editReserveDTO){
        Date nowDate = new Date();
        Long userId = editReserveDTO.getUserId();
        Long reserveId = editReserveDTO.getId();
        //查询预约登记信息
        ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
        if(reserveDO == null){
            return R.fail("未查询到预约登记记录");
        }
        BeanUtils.copyProperties(editReserveDTO,reserveDO);
        reserveDO.setStatus(ComActReserveDO.status.jxz);
        reserveDO.setUpdateAt(nowDate);
        reserveDO.setUpdateBy(userId);
        reserveDO.setEndTime(null);
        if(this.baseMapper.updateById(reserveDO) > 0){
            return R.ok();
        }else{
            return R.fail();
        }
    }
    /**
     * 社区后台-根据预约登记id查询详情
     * @param reserveId 预约登记id
     * @return  预约登记详情
     */
    @Override
    public R detailReserveAdmin(Long reserveId){
        ComActReserveDetailAdminVO reserveDetailAdminVO = new ComActReserveDetailAdminVO();
        //查询预约登记信息
        ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
        BeanUtils.copyProperties(reserveDO,reserveDetailAdminVO);
        return R.ok(reserveDetailAdminVO);
    }
    /**
     * 社区后台-根据社区id统计预约类数据
     * @param makeStatisticsDTO   请求参数
     * @return  统计预约类数据
     */
    @Override
    public R makeStatisticsAdmin(ComActReserveMakeStatisticsDTO makeStatisticsDTO){
        Long communityId = makeStatisticsDTO.getCommunityId();
        ComActReserveMakeStatisticsAdminVO makeStatisticsAdminVO = new ComActReserveMakeStatisticsAdminVO();
        //查询预约登记统计汇总左边数据
        List<ComActReserveMakeLeftStatisticsAdminVO> leftStatisticsList = this.baseMapper.getReserveMakeLeftStatistics(communityId);
        if(!leftStatisticsList.isEmpty()){
            makeStatisticsAdminVO.setLeftStatisticsList(leftStatisticsList);
        }
        //查询预约登记统计汇总右边数据
        List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList = getRightStatisticsList(makeStatisticsDTO);
        if(!rightStatisticsList.isEmpty()){
            makeStatisticsAdminVO.setRightStatisticsList(rightStatisticsList);
        }
        return R.ok(makeStatisticsAdminVO);
    }
    /**
     * 社区后台-查询预约统计汇总右边数据
     * @param makeStatisticsDTO 请求参数
     * @return  预约统计汇总右边数据
     */
    private List<ComActReserveMakeRightStatisticsAdminVO> getRightStatisticsList(ComActReserveMakeStatisticsDTO makeStatisticsDTO){
        Long communityId = makeStatisticsDTO.getCommunityId();
        //查询预约登记统计汇总右边数据
        List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList = this.baseMapper.getReserveMakeRightStatistics(makeStatisticsDTO);
        if(!rightStatisticsList.isEmpty()){
            rightStatisticsList.forEach(rightStatistics -> {
                String date = rightStatistics.getReserveTime();
                Integer count = this.baseMapper.getReserveRecordCount(communityId,date + " 00:00:00",date + " 23:59:59");
                rightStatistics.setAllCount(count);
                //计算百分比
                BigDecimal tag = BigDecimal.ZERO;
                if(count >= 0){
                    tag = BigDecimal.valueOf(rightStatistics.getCount()).divide(BigDecimal.valueOf(count),2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
                }
                rightStatistics.setTag(tag);
            });
        }
        return rightStatisticsList;
    }
    /**
     * 社区后台-查询导出预约统计汇总数据
     * @param makeStatisticsDTO   请求参数
     * @return  统计预约类数据
     */
    @Override
    public R makeStatisticsExportAdmin(ComActReserveMakeStatisticsDTO makeStatisticsDTO){
        return R.ok(getRightStatisticsList(makeStatisticsDTO));
    }
    /**
     * 删除预约登记信息
     * @param reserveId 预约登记id
     * @return  删除结果
     */
    @Override
    public R deleteReserveAdmin(Long reserveId){
        //查询预约登记信息
        ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
        if(reserveDO == null){
            return R.fail("未查询到预约登记信息");
        }
        reserveDO.setIsDel(ComActReserveDO.isOk.yes);
        reserveDO.setUpdateAt(new Date());
        if(this.baseMapper.updateById(reserveDO) > 0){
            return R.ok();
        }else{
            return R.fail();
        }
    }
    /**
     * 查询社区所有预约信息列表
     * @param communityId   社区id
     * @return  预约信息列表
     */
    @Override
    public R listReserveAdmin(Long communityId){
        return R.ok(this.baseMapper.listReserveAdmin(communityId));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml
@@ -21,5 +21,19 @@
        <sql id="Base_Column_List">
        id, reserve_sub_id, reserve_selection_id, user_id, type, choice, answer_content, create_by, create_at, update_by, update_at
    </sql>
    <select id="selectListByReserve" resultType="com.panzhihua.service_community.model.dos.ComActReserveAnswerContentDO">
        SELECT
            ac.*
        FROM
            com_act_reserve_answer_content ac
            LEFT JOIN com_act_reserve_sub qs ON ac.reserve_sub_id = qs.id
            LEFT JOIN com_act_reserve qn ON qs.reserve_id = qn.id
        WHERE
            qn.id = 2
        ORDER BY
            ac.user_id,
            qs.id
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveMapper.xml
@@ -24,11 +24,137 @@
                    <result column="create_by" property="createBy" />
                    <result column="update_at" property="updateAt" />
                    <result column="update_by" property="updateBy" />
        <result column="end_time" property="endTime"/>
        <result column="is_del" property="isDel"/>
        </resultMap>
        <!-- 通用查询结果列 -->
        <sql id="Base_Column_List">
        id, community_id, type, title, view_num, join_all_count, join_count, img_type, img_url, status, publish_time, is_repeat, remark, json_object, adver_position_top, adver_position_application, create_at, create_by, update_at, update_by
        id, community_id, type, title, view_num, join_all_count, join_count, img_type, img_url, status, publish_time, is_repeat, remark, json_object, adver_position_top, adver_position_application, create_at, create_by, update_at, update_by, end_time, is_del
    </sql>
    <select id="pageReserveAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveAdminDTO"
            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveListAdminVO">
        SELECT
            id,
            community_id,
            `type`,
            title,
            view_num,
            join_all_count,
            join_count,
            `status`,
            publish_time,
            create_at,
            end_time,
            adver_position_top,
            adver_position_application
        FROM
            com_act_reserve
            <where>
                and is_del = 2
                <if test="pageReserveDTO.communityId != null">
                    and community_id = #{pageReserveDTO.communityId}
                </if>
                <if test="pageReserveDTO.type != null and pageReserveDTO.type.size > 0">
                    and `type` in
                    <foreach collection='pageReserveDTO.type' item='id' index='index' open='(' close=')' separator=',' >
                        #{id}
                    </foreach>
                </if>
                <if test="pageReserveDTO.status != null">
                    and status = #{pageReserveDTO.status}
                </if>
                <if test="pageReserveDTO.advertType != null and pageReserveDTO.advertType == 1">
                    and adver_position_top = 2 and adver_position_application = 2
                </if>
                <if test="pageReserveDTO.advertType != null and pageReserveDTO.advertType == 2">
                    and adver_position_top = 1
                </if>
                <if test="pageReserveDTO.advertType != null and pageReserveDTO.advertType == 3">
                    and adver_position_application = 1
                </if>
                <if test="pageReserveDTO.keyWord != null and pageReserveDTO.keyWord != &quot;&quot;">
                    and title like concat (#{pageReserveDTO.keyWord},'%')
                </if>
                <if test="pageReserveDTO.startTime != null and pageReserveDTO.startTime != &quot;&quot;">
                    AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{pageReserveDTO.startTime}
                </if>
                <if test="pageReserveDTO.endTime != null and pageReserveDTO.endTime != &quot;&quot;">
                    AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{pageReserveDTO.endTime}
                </if>
            </where>
            order by create_at desc
    </select>
    <delete id="deleteReserveSubAll">
        delete from com_act_reserve_sub where reserve_id = #{reserveId};
        delete from com_act_reserve_sub_selection where reserve_id = #{reserveId};
    </delete>
    <select id="getReserveMakeLeftStatistics" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeLeftStatisticsAdminVO">
        SELECT
            date_format( reserve_time, '%Y-%m-%d' ) AS reserveTime,
            count( id ) AS count
        FROM
            com_act_reserve_record
        WHERE
            `status` = 2
            AND type = 1
            AND community_id = #{communityId}
            group by reserveTime
    </select>
    <select id="getReserveMakeRightStatistics" parameterType="com.panzhihua.common.model.dtos.community.reserve.ComActReserveMakeStatisticsDTO"
            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeRightStatisticsAdminVO">
        SELECT
            date_format( carr.reserve_time, '%Y-%m-%d' ) AS reserveTime,
            car.title AS title,
            count( carr.id ) AS count
        FROM
            com_act_reserve_record AS carr
            LEFT JOIN com_act_reserve AS car ON car.id = carr.reserve_id
        WHERE
            carr.`status` = 2
            AND carr.type = 1
            AND carr.community_id = #{makeStatisticsDTO.communityId}
            <if test="makeStatisticsDTO.startTime != null and makeStatisticsDTO.startTime != &quot;&quot;">
                AND carr.reserve_time <![CDATA[ >= ]]> #{makeStatisticsDTO.startTime}
            </if>
            <if test="makeStatisticsDTO.endTime != null and makeStatisticsDTO.endTime != &quot;&quot;">
                AND carr.reserve_time <![CDATA[ <= ]]> #{makeStatisticsDTO.endTime}
            </if>
        GROUP BY
            reserveTime,
            car.id
    </select>
    <select id="getReserveRecordCount" resultType="integer">
        select count(id) from com_act_reserve_record
        where `status` = 2 and `type` = 1 and community_id = #{communityId}
        and reserve_time <![CDATA[ >= ]]> #{startTime}
        and reserve_time <![CDATA[ <= ]]> #{endTime}
    </select>
    <select id="listReserveAdmin"  parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveAdminDTO"
            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveListAdminVO">
        SELECT
            id,
            community_id,
            `type`,
            title,
            view_num,
            join_all_count,
            join_count,
            `status`,
            publish_time,
            create_at,
            end_time,
            adver_position_top,
            adver_position_application
        FROM
            com_act_reserve
            where is_del = 2 and `type` = 1 and communityId = #{communityId}
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveOperationRecordMapper.xml
@@ -22,5 +22,27 @@
        <sql id="Base_Column_List">
        id, reserve_id, reserve_record_id, user_id, type, phone, reserve_time, reserve_content, remark, status, create_at, create_by
    </sql>
    <select id="getMakeOperationList" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeOperationAdminVO">
        SELECT
            caror.reserve_id,
            caror.reserve_record_id,
            caror.create_at,
            caror.type,
            caror.`status`,
            caror.reserve_time,
            caror.reserve_content,
            su.`name`,
            su.phone,
            caror.remark,
            su1.`name` as createByName
        FROM
            com_act_reserve_operation_record AS caror
            left join sys_user as su on su.user_id = caror.user_id
            left join sys_user as su1 on su1.user_id = caror.create_by
            where caror.reserve_record_id = #{reserveRecordId}
            order by caror.create_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveRecordMapper.xml
@@ -28,4 +28,241 @@
        id, user_id, reserve_id, community_id, type, name, phone, status, content, remark, act_remark, reserve_time, json_object, create_at, create_by, update_at, update_by
    </sql>
    <select id="pageMakeAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeAdminDTO"
            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeListAdminVO">
        SELECT
            carr.id,
            su.nick_name,
            carr.`name`,
            carr.phone,
            carr.reserve_time,
            carr.`content`,
            carr.remark,
            carr.act_remark,
            carr.create_at
        FROM
            com_act_reserve_record AS carr
            LEFT JOIN sys_user AS su ON su.user_id = carr.user_id
            where carr.status = 2 and carr.`type` = 1 and carr.reserve_id = #{pageMakeDTO.reserveId}
            <if test="pageMakeDTO.startTime != null and pageMakeDTO.startTime != &quot;&quot;">
                AND carr.reserve_time <![CDATA[ >= ]]> #{pageMakeDTO.startTime}
            </if>
            <if test="pageMakeDTO.endTime != null and pageMakeDTO.endTime != &quot;&quot;">
                AND carr.reserve_time <![CDATA[ <= ]]> #{pageMakeDTO.endTime}
            </if>
            order by carr.create_at desc
    </select>
    <select id="getMakeDetailAdmin" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeDetailAdminVO">
        SELECT
            carr.id,
            su.nick_name,
            carr.`name`,
            carr.phone,
            carr.reserve_time,
            carr.`content`,
            carr.remark,
            carr.act_remark,
            carr.create_at
        FROM
            com_act_reserve_record AS carr
            LEFT JOIN sys_user AS su ON su.user_id = carr.user_id
            where carr.id = #{reserveRecordId}
    </select>
    <select id="getReserveStatusById" resultType="integer">
        select count(id) from com_act_reserve_record where `status` != 2 and id in
        <foreach collection='ids' item='id' index='index' open='(' close=')' separator=',' >
            #{id}
        </foreach>
    </select>
    <update id="editReserveStatusById">
        update com_act_reserve_record set `status` = 4 where id in
        <foreach collection='ids' item='id' index='index' open='(' close=')' separator=',' >
            #{id}
        </foreach>
    </update>
    <select id="exportMakeAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeAdminDTO"
            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeListAdminVO">
        SELECT
        carr.id,
        su.nick_name,
        carr.`name`,
        carr.phone,
        carr.reserve_time,
        carr.`content`,
        carr.remark,
        carr.act_remark,
        carr.create_at
        FROM
        com_act_reserve_record AS carr
        LEFT JOIN sys_user AS su ON su.user_id = carr.user_id
        where carr.status = 2 and carr.`type` = 1 and carr.reserve_id = #{pageMakeDTO.reserveId}
        <if test="pageMakeDTO.startTime != null and pageMakeDTO.startTime != &quot;&quot;">
            AND carr.reserve_time <![CDATA[ >= ]]> #{pageMakeDTO.startTime}
        </if>
        <if test="pageMakeDTO.endTime != null and pageMakeDTO.endTime != &quot;&quot;">
            AND carr.reserve_time <![CDATA[ <= ]]> #{pageMakeDTO.endTime}
        </if>
        <if test="pageMakeDTO.ids != null and pageMakeDTO.ids.size > 0">
            AND carr.id in
            <foreach collection='pageMakeDTO.ids' item='id' index='index' open='(' close=')' separator=',' >
                #{id}
            </foreach>
        </if>
        order by carr.create_at desc
    </select>
    <select id="registerStatisticsAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.ComActReserveRegisterStatisticsDTO"
            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterStatisticsAdminVO">
        SELECT
            car.title,
            count( carr.id ) AS count,
            ( SELECT count( id ) FROM com_act_reserve_record WHERE `type` = 2 AND community_id = #{registerStatisticsDTO.communityId} AND `status` = 2 ) AS allCount
        FROM
            com_act_reserve_record AS carr
            LEFT JOIN com_act_reserve AS car ON car.id = carr.reserve_id
        WHERE
            carr.type = 2
            AND carr.community_id = #{registerStatisticsDTO.communityId}
            AND carr.`status` = 2
            <if test="registerStatisticsDTO.startTime != null and registerStatisticsDTO.startTime != &quot;&quot;">
                AND DATE_FORMAT(carr.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{registerStatisticsDTO.startTime}
            </if>
            <if test="registerStatisticsDTO.endTime != null and registerStatisticsDTO.endTime != &quot;&quot;">
                AND DATE_FORMAT(carr.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{registerStatisticsDTO.endTime}
            </if>
        GROUP BY
            car.id
    </select>
    <select id="registerStatisticsExportAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.ComActReserveRegisterStatisticsDTO"
            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterStatisticsAdminVO">
        SELECT
            car.title,
            count( carr.id ) AS count,
            ( SELECT count( id ) FROM com_act_reserve_record WHERE `type` = 2 AND community_id = #{registerStatisticsDTO.communityId} AND `status` = 2 ) AS allCount
        FROM
            com_act_reserve_record AS carr
            LEFT JOIN com_act_reserve AS car ON car.id = carr.reserve_id
        WHERE
            carr.type = 2
            AND carr.community_id = #{registerStatisticsDTO.communityId}
            AND carr.`status` = 2
            <if test="registerStatisticsDTO.startTime != null and registerStatisticsDTO.startTime != &quot;&quot;">
                AND DATE_FORMAT(carr.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{registerStatisticsDTO.startTime}
            </if>
            <if test="registerStatisticsDTO.endTime != null and registerStatisticsDTO.endTime != &quot;&quot;">
                AND DATE_FORMAT(carr.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{registerStatisticsDTO.endTime}
            </if>
        GROUP BY
            car.id
    </select>
    <select id="pageMakeHandleAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeHandleAdminDTO"
            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeHandleListAdminVO">
        SELECT
            carr.id,
            su.nick_name,
            carr.`name`,
            carr.phone,
            carr.reserve_time,
            carr.`content`,
            carr.remark,
            carr.act_remark,
            carr.`status`,
            car.`title`,
            carr.create_at
        FROM
            com_act_reserve_record AS carr
            LEFT JOIN sys_user AS su ON su.user_id = carr.user_id
            LEFT JOIN com_act_reserve AS car ON car.id = carr.reserve_id
        WHERE
            carr.`type` = 1
            <if test="pageMakeHandleDTO.keyWord != null and pageMakeHandleDTO.keyWord != &quot;&quot;">
                and (car.`title` like concat (#{pageMakeHandleDTO.keyWord},'%')
                or carr.`name` like concat (#{pageMakeHandleDTO.keyWord},'%')
                or su.nick_name like concat (#{pageMakeHandleDTO.keyWord},'%'))
            </if>
            <if test="pageMakeHandleDTO.status != null and pageMakeHandleDTO.status.size > 0">
                and carr.`status` in
                <foreach collection='pageMakeHandleDTO.status' item='id' index='index' open='(' close=')' separator=',' >
                    #{id}
                </foreach>
            </if>
            <if test="pageMakeHandleDTO.reserveId != null ">
                and carr.reserve_id = #{pageMakeHandleDTO.reserveId}
            </if>
            <if test="pageMakeHandleDTO.communityId != null ">
                and carr.community_id = #{pageMakeHandleDTO.communityId}
            </if>
            <if test="pageMakeHandleDTO.startTime != null and pageMakeHandleDTO.startTime != &quot;&quot;">
                AND DATE_FORMAT(carr.reserve_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{pageMakeHandleDTO.startTime}
            </if>
            <if test="pageMakeHandleDTO.endTime != null and pageMakeHandleDTO.endTime != &quot;&quot;">
                AND DATE_FORMAT(carr.reserve_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{pageMakeHandleDTO.endTime}
            </if>
        order by carr.create_at desc
    </select>
    <select id="getReserveListCountByIds" resultType="integer">
        select count(id) from com_act_reserve_record where `status` != 1 and `type` = 1 and id in
        <foreach collection='ids' item='id' index='index' open='(' close=')' separator=',' >
            #{id}
        </foreach>
    </select>
    <select id="exportMakeHandleAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeHandleAdminDTO"
            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeHandleListAdminVO">
        SELECT
        carr.id,
        su.nick_name,
        carr.`name`,
        carr.phone,
        carr.reserve_time,
        carr.`content`,
        carr.remark,
        carr.act_remark,
        carr.`status`,
        car.`title`,
        carr.create_at
        FROM
        com_act_reserve_record AS carr
        LEFT JOIN sys_user AS su ON su.user_id = carr.user_id
        LEFT JOIN com_act_reserve AS car ON car.id = carr.reserve_id
        WHERE
        carr.`type` = 1
        <if test="pageMakeHandleDTO.keyWord != null and pageMakeHandleDTO.keyWord != &quot;&quot;">
            and (car.`title` like concat (#{pageMakeHandleDTO.keyWord},'%')
            or carr.`name` like concat (#{pageMakeHandleDTO.keyWord},'%')
            or su.nick_name like concat (#{pageMakeHandleDTO.keyWord},'%'))
        </if>
        <if test="pageMakeHandleDTO.status != null and pageMakeHandleDTO.status.size > 0">
            and carr.`status` in
            <foreach collection='pageMakeHandleDTO.status' item='id' index='index' open='(' close=')' separator=',' >
                #{id}
            </foreach>
        </if>
        <if test="pageMakeHandleDTO.reserveId != null ">
            and carr.reserve_id = #{pageMakeHandleDTO.reserveId}
        </if>
        <if test="pageMakeHandleDTO.communityId != null ">
            and carr.community_id = #{pageMakeHandleDTO.communityId}
        </if>
        <if test="pageMakeHandleDTO.startTime != null and pageMakeHandleDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(carr.reserve_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{pageMakeHandleDTO.startTime}
        </if>
        <if test="pageMakeHandleDTO.endTime != null and pageMakeHandleDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(carr.reserve_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{pageMakeHandleDTO.endTime}
        </if>
        <if test="pageMakeHandleDTO.ids != null and pageMakeHandleDTO.ids.size > 0">
            and carr.id in
            <foreach collection='pageMakeHandleDTO.ids' item='id' index='index' open='(' close=')' separator=',' >
                #{id}
            </foreach>
        </if>
        order by carr.create_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubMapper.xml