Quellcode durchsuchen

提交酒店数据

wuweihao vor 3 Jahren
Ursprung
Commit
be97b6aee5

+ 2 - 2
README.md

@@ -1,3 +1,3 @@
-# gov_zhuhai_isolation
+# gov_zhuhai_isolation 2022-3-24
 
-政企类-香洲区隔离酒店
+政企类-香洲区隔离酒店 

+ 74 - 0
gis_cms/src/main/java/com/gis/cms/controller/HotelController.java

@@ -0,0 +1,74 @@
+package com.gis.cms.controller;
+
+import com.gis.cms.entity.dto.HotelDto;
+import com.gis.cms.entity.dto.HotelPageDto;
+import com.gis.cms.entity.dto.RoomDto;
+import com.gis.cms.entity.po.HotelEntity;
+import com.gis.cms.service.HotelService;
+import com.gis.common.base.aop.WebControllerLog;
+import com.gis.common.util.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * Created by owen on 2022/3/24 0008 9:54
+ */
+@Api(tags = "酒店管理")
+@RestController
+@RequestMapping("cms/hotel")
+public class HotelController {
+
+    @Autowired
+    HotelService entityService;
+
+
+    @ApiOperation(value = "列表", notes = "隔离人数共用")
+    @PostMapping("list")
+    public Result list(@Valid @RequestBody HotelPageDto param) {
+        return entityService.search(param);
+    }
+
+
+    @WebControllerLog(description = "领导管理-新增/编辑", addDb = true)
+    @ApiOperation(value = "新增/编辑")
+    @PostMapping("save")
+    public Result save(@Valid @RequestBody HotelDto param) {
+        return entityService.saveEntity(param);
+    }
+
+    @ApiOperation("删除")
+    @GetMapping("remove/{id}")
+    public Result remove(@PathVariable Long id) {
+        return Result.success(entityService.removeById(id));
+    }
+
+    @ApiOperation("详情")
+    @GetMapping("detail/{id}")
+    public Result<HotelEntity> detail(@PathVariable Long id) {
+        return Result.success(entityService.getById(id));
+    }
+
+    @ApiOperation(value = "是否显示", notes = "display: 1:显示, 0:不显示")
+    @GetMapping(value = "display/{id}/{display}")
+    public Result<HotelEntity> display(@PathVariable Integer display, @PathVariable Long id) {
+        entityService.setDisplay(id, display);
+        return Result.success();
+    }
+
+
+    @ApiOperation("房间数据-编辑")
+    @GetMapping("roomEdit")
+    public Result<HotelEntity> roomEdit(@Valid @RequestBody RoomDto param) {
+        return entityService.roomEdit(param);
+    }
+
+
+
+
+
+
+}

+ 32 - 0
gis_cms/src/main/java/com/gis/cms/controller/WebController.java

@@ -0,0 +1,32 @@
+package com.gis.cms.controller;
+
+import com.gis.cms.entity.dto.HotelPageDto;
+import com.gis.cms.service.HotelService;
+import com.gis.common.util.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * Created by owen on 2022/3/24 0008 9:54
+ */
+@Api(tags = "展示端")
+@RestController
+@RequestMapping("web")
+public class WebController {
+
+    @Autowired
+    HotelService entityService;
+
+
+    @ApiOperation(value = "列表", notes = "隔离人数共用")
+    @PostMapping("list")
+    public Result list(@Valid @RequestBody HotelPageDto param) {
+        param.setDisplay(1);
+        return entityService.search(param);
+    }
+
+}

+ 51 - 0
gis_cms/src/main/java/com/gis/cms/entity/dto/HotelDto.java

@@ -0,0 +1,51 @@
+package com.gis.cms.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * Created by owen on 2021/12/8 0008 14:34
+ */
+@Data
+public class HotelDto {
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+
+    @NotBlank(message = "酒店名称不能为空")
+    @ApiModelProperty(value = "酒店名称", required = true)
+    private String name;
+
+    @NotNull(message = "区域不能为空")
+    @ApiModelProperty(value = "区域 > 1:香洲区, 2:斗门去, 3:金湾区" ,required = true)
+    private Integer zone;
+
+    @NotNull(message = "状态不能为空")
+    @ApiModelProperty(value = "状态 > 0:可用, 1:储备, 2:应急储备", required = true)
+    private Integer status;
+
+    @NotBlank(message = "酒店地址不能为空")
+    @ApiModelProperty(value = "酒店地址", required = true)
+    private String address;
+
+    @ApiModelProperty(value = "跳转地址")
+    private String link;
+
+    @ApiModelProperty(value = "管理单位")
+    private String unit;
+
+    @ApiModelProperty(value = "类型 > local:本土, import:入境, hold:待定")
+    private String type;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "联系人, 允许多个")
+    private String contact;
+
+
+}

+ 26 - 0
gis_cms/src/main/java/com/gis/cms/entity/dto/HotelPageDto.java

@@ -0,0 +1,26 @@
+package com.gis.cms.entity.dto;
+
+import com.gis.common.base.entity.dto.PageDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * Created by owen on 2021/12/8 0008 14:34
+ */
+@Data
+public class HotelPageDto extends PageDto {
+
+    @ApiModelProperty(value = "状态 > 0:可用, 1:储备, 2:应急储备")
+    private Integer status;
+
+    @NotNull(message = "区域不能为空")
+    @ApiModelProperty(value = "区域 > 1:香洲区, 2:斗门去, 3:金湾区", required = true)
+    private Integer zone;
+
+    @ApiModelProperty(value = "显示:1:显示, 0:不显示(默认) -> 后端使用")
+    private Integer display;
+
+}

+ 23 - 0
gis_cms/src/main/java/com/gis/cms/entity/dto/RoomDto.java

@@ -0,0 +1,23 @@
+package com.gis.cms.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/12/28 0008 14:34
+ */
+@Data
+public class RoomDto {
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+
+    @ApiModelProperty(value = "总数")
+    private Integer total;
+
+    @ApiModelProperty(value = "已使用")
+    private Integer used;
+
+    @ApiModelProperty(value = "可用")
+    private Integer usable;
+}

+ 79 - 0
gis_cms/src/main/java/com/gis/cms/entity/po/HotelEntity.java

@@ -0,0 +1,79 @@
+package com.gis.cms.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.gis.common.base.entity.po.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 酒店
+ */
+@Data
+@TableName(value = "tb_hotel")
+public class HotelEntity extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "酒店名称")
+    private String name;
+
+    @ApiModelProperty(value = "状态 > 0:可用, 1:储备, 2:应急储备")
+    private Integer status;
+
+    @ApiModelProperty(value = "区域 > 1:香洲区, 2:斗门去, 3:金湾区")
+    private Integer zone;
+
+    @ApiModelProperty(value = "管理单位")
+    private String unit;
+
+    @ApiModelProperty(value = "类型 > local:本土, import:入境, hold:待定")
+    private String type;
+
+    @ApiModelProperty(value = "酒店地址")
+    private String address;
+
+    @ApiModelProperty(value = "跳转地址")
+    private String link;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+
+    @ApiModelProperty(value = "显示:1:显示, 0:不显示(默认)")
+    private Integer display;
+
+    @ApiModelProperty(value = "联系人, 允许多个")
+    private String contact;
+
+
+    @ApiModelProperty(value = "总数")
+    private Integer total;
+
+    @ApiModelProperty(value = "已使用")
+    private Integer used;
+
+    @ApiModelProperty(value = "可用")
+    private Integer usable;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}

+ 24 - 0
gis_cms/src/main/java/com/gis/cms/mapper/HotelMapper.java

@@ -0,0 +1,24 @@
+package com.gis.cms.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gis.admin.mapper.provider.SysUserProvider;
+import com.gis.cms.entity.dto.SortPageDto;
+import com.gis.cms.entity.po.HotelEntity;
+import com.gis.common.base.mapper.provider.BaseProvider;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.SelectProvider;
+import org.apache.ibatis.annotations.Update;
+import org.springframework.stereotype.Component;
+
+@Component
+@Mapper
+public interface HotelMapper extends BaseMapper<HotelEntity> {
+
+    @Update("update tb_hotel set display=#{display} where is_delete=0 and id=#{id}")
+    void setDisplay(Long id, Integer display);
+
+    @SelectProvider(type = BaseProvider.class, method = "runSql")
+    IPage<HotelEntity> search(String sqlStr, IPage<HotelEntity> page);
+}

+ 27 - 0
gis_cms/src/main/java/com/gis/cms/service/HotelService.java

@@ -0,0 +1,27 @@
+package com.gis.cms.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gis.cms.entity.dto.HotelDto;
+import com.gis.cms.entity.dto.HotelPageDto;
+import com.gis.cms.entity.dto.RoomDto;
+import com.gis.cms.entity.dto.SortPageDto;
+import com.gis.cms.entity.po.HotelEntity;
+import com.gis.common.util.Result;
+import org.springframework.web.multipart.MultipartFile;
+
+
+/**
+ * Created by owen on 2021/12/8 0011 16:14
+ */
+public interface HotelService extends IService<HotelEntity> {
+
+    Result saveEntity(HotelDto param);
+
+    Result search(HotelPageDto param);
+
+    void setDisplay(Long id, Integer display);
+
+
+    Result<HotelEntity> roomEdit(RoomDto param);
+}

+ 105 - 0
gis_cms/src/main/java/com/gis/cms/service/impl/HotelServiceImpl.java

@@ -0,0 +1,105 @@
+package com.gis.cms.service.impl;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.gis.cms.entity.dto.HotelDto;
+import com.gis.cms.entity.dto.HotelPageDto;
+import com.gis.cms.entity.dto.RoomDto;
+import com.gis.cms.entity.po.HotelEntity;
+import com.gis.cms.mapper.HotelMapper;
+import com.gis.cms.service.HotelService;
+import com.gis.common.base.exception.BaseRuntimeException;
+import com.gis.common.base.service.impl.IBaseService;
+import com.gis.common.constant.ErrorEnum;
+import com.gis.common.util.BaseUtil;
+import com.gis.common.util.Result;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+
+/**
+ * Created by owen on 2020/3/11 0011 16:16
+ */
+@Slf4j
+@Service
+public class HotelServiceImpl extends ServiceImpl<HotelMapper, HotelEntity> implements HotelService {
+
+
+    @Autowired
+    IBaseService iBaseService;
+
+
+
+    @Override
+    public Result search(HotelPageDto param) {
+        BaseUtil.startPage(param);
+        IPage<HotelEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+
+        LambdaQueryWrapper<HotelEntity> wrapper = new LambdaQueryWrapper<>();
+
+        Integer zone = param.getZone();
+        wrapper.eq(HotelEntity::getZone, zone);
+
+        Integer status = param.getStatus();
+        if (status != null){
+            wrapper.eq(HotelEntity::getStatus, status);
+        }
+
+        Integer display = param.getDisplay();
+        if (display != null){
+            wrapper.eq(HotelEntity::getDisplay, display);
+        }
+
+        String searchKey = param.getSearchKey();
+        if (StrUtil.isNotBlank(searchKey)){
+            wrapper.like(HotelEntity::getName, searchKey);
+        }
+        wrapper.orderByDesc(HotelEntity::getCreateTime);
+
+        IPage<HotelEntity> result = this.page(page, wrapper);
+        return Result.success(result);
+    }
+
+    @Override
+    public void setDisplay(Long id, Integer display) {
+        getBaseMapper().setDisplay(id, display);
+    }
+
+    @Override
+    public Result<HotelEntity> roomEdit(RoomDto param) {
+        HotelEntity entity = this.getById(param.getId());
+        BaseRuntimeException.isNull(entity, ErrorEnum.FAILURE_SYS_2001);
+        BeanUtils.copyProperties(param, entity);
+        this.updateById(entity);
+        return Result.success();
+    }
+
+
+    @Override
+    public Result saveEntity(HotelDto param) {
+        Long id = param.getId();
+
+        HotelEntity entity;
+        if (id == null){
+            entity = new HotelEntity();
+            entity.setCreatorId(iBaseService.getUserId());
+        } else {
+            entity = this.getById(id);
+            BaseRuntimeException.isNull(entity, ErrorEnum.FAILURE_SYS_2001);
+        }
+
+        BeanUtils.copyProperties(param, entity);
+        this.saveOrUpdate(entity);
+
+        return Result.success();
+    }
+
+
+
+}

+ 127 - 0
gis_common/src/main/java/com/gis/common/base/exception/BaseRuntimeException.java

@@ -0,0 +1,127 @@
+package com.gis.common.base.exception;
+
+import cn.hutool.core.util.StrUtil;
+import com.gis.common.constant.ErrorEnum;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+public class BaseRuntimeException extends RuntimeException{
+
+    private static final long serialVersionUID = -1518945670203783450L;
+    private Integer code;
+    private String msg;
+
+    public BaseRuntimeException(String msg){
+        super(msg);
+        this.code = -1;
+        this.msg = msg;
+    }
+
+    /**
+     *
+     * @param code 允许为null
+     * @param msg
+     */
+    public BaseRuntimeException(Integer code, String msg){
+        super(msg);
+        this.code = code == null? -1 : code;
+        this.msg = msg;
+    }
+
+    public BaseRuntimeException(ErrorEnum errorEnum){
+        this.code = errorEnum.code();
+        this.msg = errorEnum.message();
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+
+    public static void isNull(Object obj, Integer code, String msg){
+        if (obj == null){
+            getExc(code, msg);
+        }
+    }
+
+    public static void isBlank(Object obj, Integer code, String msg){
+        if (obj == null){
+            getExc(code, msg);
+        }
+
+        if (obj instanceof String || StrUtil.isBlank(obj.toString())){
+            getExc(code, msg);
+        }
+
+    }
+
+    public static void isNull(Object obj, ErrorEnum errorEnum){
+        if (obj == null){
+            getExc(errorEnum.code(), errorEnum.message());
+        }
+    }
+
+    public static void isBlank(Object obj, ErrorEnum errorEnum){
+        Integer code = errorEnum.code();
+        String msg = errorEnum.message();
+        if (obj == null){
+            getExc(code, msg);
+        }
+
+        if (obj instanceof String || StrUtil.isBlank(obj.toString())){
+            getExc(code, msg);
+        }
+
+    }
+
+    /**
+     *
+     * @param obj true 存在抛异常
+     * @param errorEnum
+     */
+    public static void isHas(boolean obj, ErrorEnum errorEnum){
+        if (obj){
+            getExc(errorEnum.code(), errorEnum.message());
+        }
+    }
+
+    /**
+     *
+     * @param obj 存在抛异常
+     * @param code 允许为null
+     * @param msg
+     */
+    public static void isHas(boolean obj, Integer code, String msg){
+        if (obj){
+            getExc(code, msg);
+        }
+    }
+
+    public static void  getExc(Integer code, String msg){
+        throw new BaseRuntimeException(code, msg);
+    }
+
+    /**
+     *
+     * @param obj 集合
+     * @param errorEnum
+     */
+    public static void isEmpty(List obj, ErrorEnum errorEnum){
+        if (CollectionUtils.isEmpty(obj)){
+            getExc(errorEnum.code(), errorEnum.message());
+        }
+    }
+}

+ 19 - 0
gis_common/src/main/java/com/gis/common/base/mapper/provider/BaseProvider.java

@@ -0,0 +1,19 @@
+package com.gis.common.base.mapper.provider;
+
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * Created by owen on 2022/2/9.
+ */
+@Slf4j
+public class BaseProvider {
+
+    public String runSql(String sql){
+        log.info("sql: {}", sql);
+        return sql;
+    }
+
+
+
+}

+ 50 - 0
gis_common/src/main/java/com/gis/common/constant/ErrorEnum.java

@@ -0,0 +1,50 @@
+package com.gis.common.constant;
+
+/**
+ * Created by owen on 2022/3/10 0010 14:47
+ */
+public enum ErrorEnum {
+
+    FAILURE_SYS_2001(2001, "对象不存在"),
+
+    FAILURE_CODE_3001(3001, "缺少必要参数"),
+    FAILURE_CODE_3002(3002, "访问异常!"),
+    FAILURE_CODE_3003(3003, "非法访问!"),
+    FAILURE_CODE_3004(3004, "用户未登录"),
+    FAILURE_CODE_3005(3005, "验证码已过期"),
+    FAILURE_CODE_3006(3006, "验证码错误"),
+    FAILURE_CODE_3007(3007, "昵称已存在"),
+    FAILURE_CODE_3008(3008, "该手机已被注册"),
+    FAILURE_CODE_3009(3009, "两次输入的密码不一致"),
+    FAILURE_CODE_3010(3010, "昵称长度错误"),
+    FAILURE_CODE_3011(3011, "密码需要包含英文大小写、数字,长度8-16字符"),
+    FAILURE_CODE_3012(3012, "昵称包含敏感词"),
+    FAILURE_CODE_3013(3013, "手机号码格式错误"),
+    FAILURE_CODE_3014(3014, "账号或密码不正确"),
+    FAILURE_CODE_3015(3015, "用户不存在"),
+    FAILURE_CODE_3016(3016, "登录失败,账号无权访问"),
+    FAILURE_CODE_3017(3017, "空文件"),
+    FAILURE_CODE_3018(3018, "需要上传或使用的文件不存在"),
+
+    ;
+
+    private Integer code;
+    private String message;
+
+    private ErrorEnum(Integer code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    public Integer code() {
+        return code;
+    }
+
+    public String message() {
+        return message;
+    }
+
+    public String formatMessage(Object... args){
+        return String.format(message, args);
+    }
+}