Jelajahi Sumber

1、api添加根据景区id返回标记物list
2、后台添加标记物与景区关联

luobo 3 tahun lalu
induk
melakukan
6119bc9462
23 mengubah file dengan 1347 tambahan dan 684 penghapusan
  1. 11 0
      smart-admin/src/main/java/com/huijy/web/controller/api/ApiIndexController.java
  2. 103 0
      smart-admin/src/main/java/com/huijy/web/controller/management/MarkerContentController.java
  3. 23 2
      smart-admin/src/main/java/com/huijy/web/controller/management/MarkerController.java
  4. 103 0
      smart-admin/src/main/java/com/huijy/web/controller/management/ShopGuestRecordController.java
  5. 3 0
      smart-generator/src/main/resources/vm/java/domain.java.vm
  6. 12 0
      smart-system/src/main/java/com/huijy/management/domain/Marker.java
  7. 65 0
      smart-system/src/main/java/com/huijy/management/domain/MarkerContent.java
  8. 136 0
      smart-system/src/main/java/com/huijy/management/domain/ShopGuestRecord.java
  9. 66 0
      smart-system/src/main/java/com/huijy/management/mapper/MarkerContentMapper.java
  10. 10 8
      smart-system/src/main/java/com/huijy/management/mapper/MarkerMapper.java
  11. 61 0
      smart-system/src/main/java/com/huijy/management/mapper/ShopGuestRecordMapper.java
  12. 65 0
      smart-system/src/main/java/com/huijy/management/service/IMarkerContentService.java
  13. 9 8
      smart-system/src/main/java/com/huijy/management/service/IMarkerService.java
  14. 61 0
      smart-system/src/main/java/com/huijy/management/service/IShopGuestRecordService.java
  15. 103 0
      smart-system/src/main/java/com/huijy/management/service/impl/MarkerContentServiceImpl.java
  16. 35 2
      smart-system/src/main/java/com/huijy/management/service/impl/MarkerServiceImpl.java
  17. 95 0
      smart-system/src/main/java/com/huijy/management/service/impl/ShopGuestRecordServiceImpl.java
  18. 69 0
      smart-system/src/main/resources/mapper/management/MarkerContentMapper.xml
  19. 13 6
      smart-system/src/main/resources/mapper/management/MarkerMapper.xml
  20. 87 0
      smart-system/src/main/resources/mapper/management/ShopGuestRecordMapper.xml
  21. 9 1
      smart-ui/src/router/index.js
  22. 181 653
      smart-ui/src/views/index.vue
  23. 27 4
      smart-ui/src/views/management/marker/index.vue

+ 11 - 0
smart-admin/src/main/java/com/huijy/web/controller/api/ApiIndexController.java

@@ -351,6 +351,17 @@ public class ApiIndexController extends ApiAbstractController {
 
     }
 
+    //根据contentId(景区id)获取标记物
+    @GetMapping("/getMarkerList/{contentId}")
+    @ApiOperation("根据contentId(景区id)获取标记物")
+    public AjaxResult getPageMarker(Long contentId) {
+        List<Marker> list = markerService.selectMarkerList(contentId);
+        Map<String, Object> resultObj = new HashMap<String, Object>();
+        resultObj.put("list", list);
+        return AjaxResult.success(resultObj);
+
+    }
+
 
     @PostMapping("/getEarlyWarnType")
     @ApiOperation("获取预警类型")

+ 103 - 0
smart-admin/src/main/java/com/huijy/web/controller/management/MarkerContentController.java

@@ -0,0 +1,103 @@
+package com.huijy.web.controller.management;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.huijy.common.annotation.Log;
+import com.huijy.common.core.controller.BaseController;
+import com.huijy.common.core.domain.AjaxResult;
+import com.huijy.common.enums.BusinessType;
+import com.huijy.management.domain.MarkerContent;
+import com.huijy.management.service.IMarkerContentService;
+import com.huijy.common.utils.poi.ExcelUtil;
+import com.huijy.common.core.page.TableDataInfo;
+
+/**
+ * 标记物内容中间Controller
+ *
+ * @author luobo
+ * @date 2021-10-10
+ */
+@RestController
+@RequestMapping("/management/markerContent")
+public class MarkerContentController extends BaseController
+{
+    @Autowired
+    private IMarkerContentService markerContentService;
+
+    /**
+     * 查询标记物内容中间列表
+     */
+    @PreAuthorize("@ss.hasPermi('management:markerContent:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(MarkerContent markerContent)
+    {
+        startPage();
+        List<MarkerContent> list = markerContentService.selectMarkerContentList(markerContent);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出标记物内容中间列表
+     */
+    @PreAuthorize("@ss.hasPermi('management:markerContent:export')")
+    @Log(title = "标记物内容中间", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(MarkerContent markerContent)
+    {
+        List<MarkerContent> list = markerContentService.selectMarkerContentList(markerContent);
+        ExcelUtil<MarkerContent> util = new ExcelUtil<MarkerContent>(MarkerContent.class);
+        return util.exportExcel(list, "标记物内容中间数据");
+    }
+
+    /**
+     * 获取标记物内容中间详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('management:markerContent:query')")
+    @GetMapping(value = "/{markerContent}")
+    public AjaxResult getInfo(@PathVariable("markerContent") Long markerContent)
+    {
+        return AjaxResult.success(markerContentService.selectMarkerContentByMarkerContent(markerContent));
+    }
+
+    /**
+     * 新增标记物内容中间
+     */
+    @PreAuthorize("@ss.hasPermi('management:markerContent:add')")
+    @Log(title = "标记物内容中间", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody MarkerContent markerContent)
+    {
+        return toAjax(markerContentService.insertMarkerContent(markerContent));
+    }
+
+    /**
+     * 修改标记物内容中间
+     */
+    @PreAuthorize("@ss.hasPermi('management:markerContent:edit')")
+    @Log(title = "标记物内容中间", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody MarkerContent markerContent)
+    {
+        return toAjax(markerContentService.updateMarkerContent(markerContent));
+    }
+
+    /**
+     * 删除标记物内容中间
+     */
+    @PreAuthorize("@ss.hasPermi('management:markerContent:remove')")
+    @Log(title = "标记物内容中间", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{markerContents}")
+    public AjaxResult remove(@PathVariable Long[] markerContents)
+    {
+        return toAjax(markerContentService.deleteMarkerContentByMarkerContents(markerContents));
+    }
+}

+ 23 - 2
smart-admin/src/main/java/com/huijy/web/controller/management/MarkerController.java

@@ -1,6 +1,12 @@
 package com.huijy.web.controller.management;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+
+import com.huijy.management.domain.Content;
+import com.huijy.management.service.IContentService;
+import com.huijy.management.service.IMarkerContentService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -32,7 +38,10 @@ public class MarkerController extends BaseController
 {
     @Autowired
     private IMarkerService markerService;
-
+    @Autowired
+    private IContentService contentService;
+    @Autowired
+    private IMarkerContentService markerContentService;
     /**
      * 查询标记物管理列表
      */
@@ -65,7 +74,19 @@ public class MarkerController extends BaseController
     @GetMapping(value = "/{markerId}")
     public AjaxResult getInfo(@PathVariable("markerId") Long markerId)
     {
-        return AjaxResult.success(markerService.selectMarkerByMarkerId(markerId));
+        Marker info=  markerService.selectMarkerByMarkerId(markerId);
+        Content content = new Content();
+        //1、党政 2、景区
+        content.setServiceInfo("2");
+        List<Content> contentList = contentService.selectContentList(content);
+        //获取中间表数据
+        List<Long> contentIdsList =markerContentService.getContentIdListByMarkerId(markerId);
+        Map<String, Object> resultObj = new HashMap<String, Object>();
+        resultObj.put("info", info);
+        resultObj.put("contentList", contentList);
+        resultObj.put("contentIdsList", contentIdsList);
+
+        return AjaxResult.success(resultObj);
     }
 
     /**

+ 103 - 0
smart-admin/src/main/java/com/huijy/web/controller/management/ShopGuestRecordController.java

@@ -0,0 +1,103 @@
+package com.huijy.web.controller.management;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.huijy.common.annotation.Log;
+import com.huijy.common.core.controller.BaseController;
+import com.huijy.common.core.domain.AjaxResult;
+import com.huijy.common.enums.BusinessType;
+import com.huijy.management.domain.ShopGuestRecord;
+import com.huijy.management.service.IShopGuestRecordService;
+import com.huijy.common.utils.poi.ExcelUtil;
+import com.huijy.common.core.page.TableDataInfo;
+
+/**
+ * 酒店客人数据记录Controller
+ *
+ * @author luobo
+ * @date 2021-10-10
+ */
+@RestController
+@RequestMapping("/management/guestRecord")
+public class ShopGuestRecordController extends BaseController
+{
+    @Autowired
+    private IShopGuestRecordService shopGuestRecordService;
+
+    /**
+     * 查询酒店客人数据记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('management:guestRecord:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ShopGuestRecord shopGuestRecord)
+    {
+        startPage();
+        List<ShopGuestRecord> list = shopGuestRecordService.selectShopGuestRecordList(shopGuestRecord);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出酒店客人数据记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('management:guestRecord:export')")
+    @Log(title = "酒店客人数据记录", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(ShopGuestRecord shopGuestRecord)
+    {
+        List<ShopGuestRecord> list = shopGuestRecordService.selectShopGuestRecordList(shopGuestRecord);
+        ExcelUtil<ShopGuestRecord> util = new ExcelUtil<ShopGuestRecord>(ShopGuestRecord.class);
+        return util.exportExcel(list, "酒店客人数据记录数据");
+    }
+
+    /**
+     * 获取酒店客人数据记录详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('management:guestRecord:query')")
+    @GetMapping(value = "/{shopGuestRecord}")
+    public AjaxResult getInfo(@PathVariable("shopGuestRecord") Long shopGuestRecord)
+    {
+        return AjaxResult.success(shopGuestRecordService.selectShopGuestRecordByShopGuestRecord(shopGuestRecord));
+    }
+
+    /**
+     * 新增酒店客人数据记录
+     */
+    @PreAuthorize("@ss.hasPermi('management:guestRecord:add')")
+    @Log(title = "酒店客人数据记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ShopGuestRecord shopGuestRecord)
+    {
+        return toAjax(shopGuestRecordService.insertShopGuestRecord(shopGuestRecord));
+    }
+
+    /**
+     * 修改酒店客人数据记录
+     */
+    @PreAuthorize("@ss.hasPermi('management:guestRecord:edit')")
+    @Log(title = "酒店客人数据记录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ShopGuestRecord shopGuestRecord)
+    {
+        return toAjax(shopGuestRecordService.updateShopGuestRecord(shopGuestRecord));
+    }
+
+    /**
+     * 删除酒店客人数据记录
+     */
+    @PreAuthorize("@ss.hasPermi('management:guestRecord:remove')")
+    @Log(title = "酒店客人数据记录", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{shopGuestRecords}")
+    public AjaxResult remove(@PathVariable Long[] shopGuestRecords)
+    {
+        return toAjax(shopGuestRecordService.deleteShopGuestRecordByShopGuestRecords(shopGuestRecords));
+    }
+}

+ 3 - 0
smart-generator/src/main/resources/vm/java/domain.java.vm

@@ -4,6 +4,9 @@ package ${packageName}.domain;
 import ${import};
 #end
 import com.huijy.common.annotation.Excel;
+import com.huijy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
 #if($table.crud || $table.sub)
 #elseif($table.tree)
 #end

+ 12 - 0
smart-system/src/main/java/com/huijy/management/domain/Marker.java

@@ -1,6 +1,8 @@
 package com.huijy.management.domain;
 
 import java.math.BigDecimal;
+import java.util.List;
+
 import com.huijy.common.annotation.Excel;
 import com.huijy.common.core.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -75,6 +77,8 @@ public class Marker extends BaseEntity
     @Excel(name = "详情")
     private String content;
 
+    private List<Long> contentIdsList;
+
     public void setMarkerId(Long markerId)
     {
         this.markerId = markerId;
@@ -211,6 +215,14 @@ public class Marker extends BaseEntity
         return content;
     }
 
+    public List<Long> getContentIdsList() {
+        return contentIdsList;
+    }
+
+    public void setContentIdsList(List<Long> contentIdsList) {
+        this.contentIdsList = contentIdsList;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

+ 65 - 0
smart-system/src/main/java/com/huijy/management/domain/MarkerContent.java

@@ -0,0 +1,65 @@
+package com.huijy.management.domain;
+
+import com.huijy.common.annotation.Excel;
+import com.huijy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 标记物内容中间对象 t_marker_content
+ *
+ * @author luobo
+ * @date 2021-10-10
+ */
+public class MarkerContent extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 标记物内容中间表id */
+    private Long markerContent;
+
+    /** 标记物id */
+    @Excel(name = "标记物id")
+    private Long markerId;
+
+    /** 内容id(景区id) */
+    @Excel(name = "内容id(景区id)")
+    private Long contentId;
+
+    public void setMarkerContent(Long markerContent)
+    {
+        this.markerContent = markerContent;
+    }
+
+    public Long getMarkerContent()
+    {
+        return markerContent;
+    }
+    public void setMarkerId(Long markerId)
+    {
+        this.markerId = markerId;
+    }
+
+    public Long getMarkerId()
+    {
+        return markerId;
+    }
+    public void setContentId(Long contentId)
+    {
+        this.contentId = contentId;
+    }
+
+    public Long getContentId()
+    {
+        return contentId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("markerContent", getMarkerContent())
+            .append("markerId", getMarkerId())
+            .append("contentId", getContentId())
+            .toString();
+    }
+}

+ 136 - 0
smart-system/src/main/java/com/huijy/management/domain/ShopGuestRecord.java

@@ -0,0 +1,136 @@
+package com.huijy.management.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.huijy.common.annotation.Excel;
+import com.huijy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 酒店客人数据记录对象 t_shop_guest_record
+ *
+ * @author luobo
+ * @date 2021-10-10
+ */
+public class ShopGuestRecord extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 客人上传记录 */
+    private Long shopGuestRecord;
+
+    /** 店铺id */
+    private Long shopId;
+    @Excel(name = "店铺名称")
+    private String shopName;
+
+    /** 游客姓名 */
+    @Excel(name = "游客姓名")
+    private String guestName;
+
+    /** 身份证号 */
+    @Excel(name = "身份证号")
+    private String idCard;
+
+    /** 手机号码 */
+    @Excel(name = "手机号码")
+    private String phone;
+
+    /** 入住日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "入住日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date checkInTime;
+
+    /** 游客类型 */
+    @Excel(name = "游客类型")
+    private String guestType;
+
+    public void setShopGuestRecord(Long shopGuestRecord)
+    {
+        this.shopGuestRecord = shopGuestRecord;
+    }
+
+    public Long getShopGuestRecord()
+    {
+        return shopGuestRecord;
+    }
+    public void setShopId(Long shopId)
+    {
+        this.shopId = shopId;
+    }
+
+    public Long getShopId()
+    {
+        return shopId;
+    }
+    public void setGuestName(String guestName)
+    {
+        this.guestName = guestName;
+    }
+
+    public String getGuestName()
+    {
+        return guestName;
+    }
+    public void setIdCard(String idCard)
+    {
+        this.idCard = idCard;
+    }
+
+    public String getIdCard()
+    {
+        return idCard;
+    }
+    public void setPhone(String phone)
+    {
+        this.phone = phone;
+    }
+
+    public String getPhone()
+    {
+        return phone;
+    }
+    public void setCheckInTime(Date checkInTime)
+    {
+        this.checkInTime = checkInTime;
+    }
+
+    public Date getCheckInTime()
+    {
+        return checkInTime;
+    }
+    public void setGuestType(String guestType)
+    {
+        this.guestType = guestType;
+    }
+
+    public String getGuestType()
+    {
+        return guestType;
+    }
+
+
+    public String getShopName() {
+        return shopName;
+    }
+
+    public void setShopName(String shopName) {
+        this.shopName = shopName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("shopGuestRecord", getShopGuestRecord())
+            .append("shopId", getShopId())
+            .append("guestName", getGuestName())
+            .append("idCard", getIdCard())
+            .append("phone", getPhone())
+            .append("checkInTime", getCheckInTime())
+            .append("guestType", getGuestType())
+            .append("createTime", getCreateTime())
+            .append("shopName", getShopName())
+            .toString();
+    }
+}

+ 66 - 0
smart-system/src/main/java/com/huijy/management/mapper/MarkerContentMapper.java

@@ -0,0 +1,66 @@
+package com.huijy.management.mapper;
+
+import java.util.List;
+import com.huijy.management.domain.MarkerContent;
+
+/**
+ * 标记物内容中间Mapper接口
+ *
+ * @author luobo
+ * @date 2021-10-10
+ */
+public interface MarkerContentMapper
+{
+    /**
+     * 查询标记物内容中间
+     *
+     * @param markerContent 标记物内容中间主键
+     * @return 标记物内容中间
+     */
+    public MarkerContent selectMarkerContentByMarkerContent(Long markerContent);
+
+    /**
+     * 查询标记物内容中间列表
+     *
+     * @param markerContent 标记物内容中间
+     * @return 标记物内容中间集合
+     */
+    public List<MarkerContent> selectMarkerContentList(MarkerContent markerContent);
+
+    /**
+     * 新增标记物内容中间
+     *
+     * @param markerContent 标记物内容中间
+     * @return 结果
+     */
+    public int insertMarkerContent(MarkerContent markerContent);
+
+    /**
+     * 修改标记物内容中间
+     *
+     * @param markerContent 标记物内容中间
+     * @return 结果
+     */
+    public int updateMarkerContent(MarkerContent markerContent);
+
+    /**
+     * 删除标记物内容中间
+     *
+     * @param markerContent 标记物内容中间主键
+     * @return 结果
+     */
+    public int deleteMarkerContentByMarkerContent(Long markerContent);
+
+    /**
+     * 批量删除标记物内容中间
+     *
+     * @param markerContents 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteMarkerContentByMarkerContents(Long[] markerContents);
+
+
+    List<Long> selectContentIdListByMarkerId(Long markerId);
+
+    Integer deleteMarkerContentByMarkerId(Long markerId);
+}

+ 10 - 8
smart-system/src/main/java/com/huijy/management/mapper/MarkerMapper.java

@@ -5,15 +5,15 @@ import com.huijy.management.domain.Marker;
 
 /**
  * 标记物管理Mapper接口
- * 
+ *
  * @author luobo
  * @date 2021-09-08
  */
-public interface MarkerMapper 
+public interface MarkerMapper
 {
     /**
      * 查询标记物管理
-     * 
+     *
      * @param markerId 标记物管理主键
      * @return 标记物管理
      */
@@ -21,15 +21,17 @@ public interface MarkerMapper
 
     /**
      * 查询标记物管理列表
-     * 
+     *
      * @param marker 标记物管理
      * @return 标记物管理集合
      */
     public List<Marker> selectMarkerList(Marker marker);
 
+    public List<Marker> selectMarkerListByContentId(Long contentId);
+
     /**
      * 新增标记物管理
-     * 
+     *
      * @param marker 标记物管理
      * @return 结果
      */
@@ -37,7 +39,7 @@ public interface MarkerMapper
 
     /**
      * 修改标记物管理
-     * 
+     *
      * @param marker 标记物管理
      * @return 结果
      */
@@ -45,7 +47,7 @@ public interface MarkerMapper
 
     /**
      * 删除标记物管理
-     * 
+     *
      * @param markerId 标记物管理主键
      * @return 结果
      */
@@ -53,7 +55,7 @@ public interface MarkerMapper
 
     /**
      * 批量删除标记物管理
-     * 
+     *
      * @param markerIds 需要删除的数据主键集合
      * @return 结果
      */

+ 61 - 0
smart-system/src/main/java/com/huijy/management/mapper/ShopGuestRecordMapper.java

@@ -0,0 +1,61 @@
+package com.huijy.management.mapper;
+
+import java.util.List;
+import com.huijy.management.domain.ShopGuestRecord;
+
+/**
+ * 酒店客人数据记录Mapper接口
+ * 
+ * @author luobo
+ * @date 2021-10-10
+ */
+public interface ShopGuestRecordMapper 
+{
+    /**
+     * 查询酒店客人数据记录
+     * 
+     * @param shopGuestRecord 酒店客人数据记录主键
+     * @return 酒店客人数据记录
+     */
+    public ShopGuestRecord selectShopGuestRecordByShopGuestRecord(Long shopGuestRecord);
+
+    /**
+     * 查询酒店客人数据记录列表
+     * 
+     * @param shopGuestRecord 酒店客人数据记录
+     * @return 酒店客人数据记录集合
+     */
+    public List<ShopGuestRecord> selectShopGuestRecordList(ShopGuestRecord shopGuestRecord);
+
+    /**
+     * 新增酒店客人数据记录
+     * 
+     * @param shopGuestRecord 酒店客人数据记录
+     * @return 结果
+     */
+    public int insertShopGuestRecord(ShopGuestRecord shopGuestRecord);
+
+    /**
+     * 修改酒店客人数据记录
+     * 
+     * @param shopGuestRecord 酒店客人数据记录
+     * @return 结果
+     */
+    public int updateShopGuestRecord(ShopGuestRecord shopGuestRecord);
+
+    /**
+     * 删除酒店客人数据记录
+     * 
+     * @param shopGuestRecord 酒店客人数据记录主键
+     * @return 结果
+     */
+    public int deleteShopGuestRecordByShopGuestRecord(Long shopGuestRecord);
+
+    /**
+     * 批量删除酒店客人数据记录
+     * 
+     * @param shopGuestRecords 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteShopGuestRecordByShopGuestRecords(Long[] shopGuestRecords);
+}

+ 65 - 0
smart-system/src/main/java/com/huijy/management/service/IMarkerContentService.java

@@ -0,0 +1,65 @@
+package com.huijy.management.service;
+
+import java.util.List;
+import com.huijy.management.domain.MarkerContent;
+
+/**
+ * 标记物内容中间Service接口
+ *
+ * @author luobo
+ * @date 2021-10-10
+ */
+public interface IMarkerContentService
+{
+    /**
+     * 查询标记物内容中间
+     *
+     * @param markerContent 标记物内容中间主键
+     * @return 标记物内容中间
+     */
+    public MarkerContent selectMarkerContentByMarkerContent(Long markerContent);
+
+    /**
+     * 查询标记物内容中间列表
+     *
+     * @param markerContent 标记物内容中间
+     * @return 标记物内容中间集合
+     */
+    public List<MarkerContent> selectMarkerContentList(MarkerContent markerContent);
+
+    /**
+     * 新增标记物内容中间
+     *
+     * @param markerContent 标记物内容中间
+     * @return 结果
+     */
+    public int insertMarkerContent(MarkerContent markerContent);
+
+    /**
+     * 修改标记物内容中间
+     *
+     * @param markerContent 标记物内容中间
+     * @return 结果
+     */
+    public int updateMarkerContent(MarkerContent markerContent);
+
+    /**
+     * 批量删除标记物内容中间
+     *
+     * @param markerContents 需要删除的标记物内容中间主键集合
+     * @return 结果
+     */
+    public int deleteMarkerContentByMarkerContents(Long[] markerContents);
+
+    /**
+     * 删除标记物内容中间信息
+     *
+     * @param markerContent 标记物内容中间主键
+     * @return 结果
+     */
+    public int deleteMarkerContentByMarkerContent(Long markerContent);
+
+    List<Long> getContentIdListByMarkerId(Long markerId);
+
+    Integer deleteMarkerContentByMarkerId(Long markerId);
+}

+ 9 - 8
smart-system/src/main/java/com/huijy/management/service/IMarkerService.java

@@ -5,15 +5,15 @@ import com.huijy.management.domain.Marker;
 
 /**
  * 标记物管理Service接口
- * 
+ *
  * @author luobo
  * @date 2021-09-08
  */
-public interface IMarkerService 
+public interface IMarkerService
 {
     /**
      * 查询标记物管理
-     * 
+     *
      * @param markerId 标记物管理主键
      * @return 标记物管理
      */
@@ -21,15 +21,16 @@ public interface IMarkerService
 
     /**
      * 查询标记物管理列表
-     * 
+     *
      * @param marker 标记物管理
      * @return 标记物管理集合
      */
     public List<Marker> selectMarkerList(Marker marker);
 
+    List<Marker> selectMarkerList(Long contentId);
     /**
      * 新增标记物管理
-     * 
+     *
      * @param marker 标记物管理
      * @return 结果
      */
@@ -37,7 +38,7 @@ public interface IMarkerService
 
     /**
      * 修改标记物管理
-     * 
+     *
      * @param marker 标记物管理
      * @return 结果
      */
@@ -45,7 +46,7 @@ public interface IMarkerService
 
     /**
      * 批量删除标记物管理
-     * 
+     *
      * @param markerIds 需要删除的标记物管理主键集合
      * @return 结果
      */
@@ -53,7 +54,7 @@ public interface IMarkerService
 
     /**
      * 删除标记物管理信息
-     * 
+     *
      * @param markerId 标记物管理主键
      * @return 结果
      */

+ 61 - 0
smart-system/src/main/java/com/huijy/management/service/IShopGuestRecordService.java

@@ -0,0 +1,61 @@
+package com.huijy.management.service;
+
+import java.util.List;
+import com.huijy.management.domain.ShopGuestRecord;
+
+/**
+ * 酒店客人数据记录Service接口
+ * 
+ * @author luobo
+ * @date 2021-10-10
+ */
+public interface IShopGuestRecordService 
+{
+    /**
+     * 查询酒店客人数据记录
+     * 
+     * @param shopGuestRecord 酒店客人数据记录主键
+     * @return 酒店客人数据记录
+     */
+    public ShopGuestRecord selectShopGuestRecordByShopGuestRecord(Long shopGuestRecord);
+
+    /**
+     * 查询酒店客人数据记录列表
+     * 
+     * @param shopGuestRecord 酒店客人数据记录
+     * @return 酒店客人数据记录集合
+     */
+    public List<ShopGuestRecord> selectShopGuestRecordList(ShopGuestRecord shopGuestRecord);
+
+    /**
+     * 新增酒店客人数据记录
+     * 
+     * @param shopGuestRecord 酒店客人数据记录
+     * @return 结果
+     */
+    public int insertShopGuestRecord(ShopGuestRecord shopGuestRecord);
+
+    /**
+     * 修改酒店客人数据记录
+     * 
+     * @param shopGuestRecord 酒店客人数据记录
+     * @return 结果
+     */
+    public int updateShopGuestRecord(ShopGuestRecord shopGuestRecord);
+
+    /**
+     * 批量删除酒店客人数据记录
+     * 
+     * @param shopGuestRecords 需要删除的酒店客人数据记录主键集合
+     * @return 结果
+     */
+    public int deleteShopGuestRecordByShopGuestRecords(Long[] shopGuestRecords);
+
+    /**
+     * 删除酒店客人数据记录信息
+     * 
+     * @param shopGuestRecord 酒店客人数据记录主键
+     * @return 结果
+     */
+    public int deleteShopGuestRecordByShopGuestRecord(Long shopGuestRecord);
+}

+ 103 - 0
smart-system/src/main/java/com/huijy/management/service/impl/MarkerContentServiceImpl.java

@@ -0,0 +1,103 @@
+package com.huijy.management.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.huijy.management.mapper.MarkerContentMapper;
+import com.huijy.management.domain.MarkerContent;
+import com.huijy.management.service.IMarkerContentService;
+
+/**
+ * 标记物内容中间Service业务层处理
+ *
+ * @author luobo
+ * @date 2021-10-10
+ */
+@Service
+public class MarkerContentServiceImpl implements IMarkerContentService
+{
+    @Autowired
+    private MarkerContentMapper markerContentMapper;
+
+    /**
+     * 查询标记物内容中间
+     *
+     * @param markerContent 标记物内容中间主键
+     * @return 标记物内容中间
+     */
+    @Override
+    public MarkerContent selectMarkerContentByMarkerContent(Long markerContent)
+    {
+        return markerContentMapper.selectMarkerContentByMarkerContent(markerContent);
+    }
+
+    /**
+     * 查询标记物内容中间列表
+     *
+     * @param markerContent 标记物内容中间
+     * @return 标记物内容中间
+     */
+    @Override
+    public List<MarkerContent> selectMarkerContentList(MarkerContent markerContent)
+    {
+        return markerContentMapper.selectMarkerContentList(markerContent);
+    }
+
+    /**
+     * 新增标记物内容中间
+     *
+     * @param markerContent 标记物内容中间
+     * @return 结果
+     */
+    @Override
+    public int insertMarkerContent(MarkerContent markerContent)
+    {
+        return markerContentMapper.insertMarkerContent(markerContent);
+    }
+
+    /**
+     * 修改标记物内容中间
+     *
+     * @param markerContent 标记物内容中间
+     * @return 结果
+     */
+    @Override
+    public int updateMarkerContent(MarkerContent markerContent)
+    {
+        return markerContentMapper.updateMarkerContent(markerContent);
+    }
+
+    /**
+     * 批量删除标记物内容中间
+     *
+     * @param markerContents 需要删除的标记物内容中间主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMarkerContentByMarkerContents(Long[] markerContents)
+    {
+        return markerContentMapper.deleteMarkerContentByMarkerContents(markerContents);
+    }
+
+    /**
+     * 删除标记物内容中间信息
+     *
+     * @param markerContent 标记物内容中间主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMarkerContentByMarkerContent(Long markerContent)
+    {
+        return markerContentMapper.deleteMarkerContentByMarkerContent(markerContent);
+    }
+
+    @Override
+    public List<Long> getContentIdListByMarkerId(Long markerId) {
+        return markerContentMapper.selectContentIdListByMarkerId(markerId);
+    }
+
+    @Override
+    public Integer deleteMarkerContentByMarkerId(Long markerId) {
+        return markerContentMapper.deleteMarkerContentByMarkerId(markerId);
+    }
+}

+ 35 - 2
smart-system/src/main/java/com/huijy/management/service/impl/MarkerServiceImpl.java

@@ -1,6 +1,9 @@
 package com.huijy.management.service.impl;
 
 import java.util.List;
+
+import com.huijy.management.domain.MarkerContent;
+import com.huijy.management.service.IMarkerContentService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.huijy.management.mapper.MarkerMapper;
@@ -18,6 +21,8 @@ public class MarkerServiceImpl implements IMarkerService
 {
     @Autowired
     private MarkerMapper markerMapper;
+    @Autowired
+    private IMarkerContentService markerContentService;
 
     /**
      * 查询标记物管理
@@ -43,6 +48,13 @@ public class MarkerServiceImpl implements IMarkerService
         return markerMapper.selectMarkerList(marker);
     }
 
+    @Override
+    public List<Marker> selectMarkerList(Long contentId) {
+        return markerMapper.selectMarkerListByContentId(contentId);
+    }
+
+
+
     /**
      * 新增标记物管理
      *
@@ -52,7 +64,16 @@ public class MarkerServiceImpl implements IMarkerService
     @Override
     public int insertMarker(Marker marker)
     {
-        return markerMapper.insertMarker(marker);
+      int row =  markerMapper.insertMarker(marker);
+      if (marker.getContentIdsList()!=null && marker.getContentIdsList().size()>0){
+          for (Long item:marker.getContentIdsList()){
+              MarkerContent markerContent = new MarkerContent();
+              markerContent.setMarkerId(marker.getMarkerId());
+              markerContent.setContentId(item);
+              markerContentService.insertMarkerContent(markerContent);
+          }
+      }
+        return row;
     }
 
     /**
@@ -64,7 +85,19 @@ public class MarkerServiceImpl implements IMarkerService
     @Override
     public int updateMarker(Marker marker)
     {
-        return markerMapper.updateMarker(marker);
+        Integer row = markerMapper.updateMarker(marker);
+        //先删除
+        markerContentService.deleteMarkerContentByMarkerId(marker.getMarkerId());
+        if (marker.getContentIdsList()!=null && marker.getContentIdsList().size()>0){
+            for (Long item:marker.getContentIdsList()){
+                MarkerContent markerContent = new MarkerContent();
+                markerContent.setMarkerId(marker.getMarkerId());
+                markerContent.setContentId(item);
+                markerContentService.insertMarkerContent(markerContent);
+            }
+        }
+
+        return row;
     }
 
     /**

+ 95 - 0
smart-system/src/main/java/com/huijy/management/service/impl/ShopGuestRecordServiceImpl.java

@@ -0,0 +1,95 @@
+package com.huijy.management.service.impl;
+
+import java.util.List;
+import com.huijy.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.huijy.management.mapper.ShopGuestRecordMapper;
+import com.huijy.management.domain.ShopGuestRecord;
+import com.huijy.management.service.IShopGuestRecordService;
+
+/**
+ * 酒店客人数据记录Service业务层处理
+ *
+ * @author luobo
+ * @date 2021-10-10
+ */
+@Service
+public class ShopGuestRecordServiceImpl implements IShopGuestRecordService
+{
+    @Autowired
+    private ShopGuestRecordMapper shopGuestRecordMapper;
+
+    /**
+     * 查询酒店客人数据记录
+     *
+     * @param shopGuestRecord 酒店客人数据记录主键
+     * @return 酒店客人数据记录
+     */
+    @Override
+    public ShopGuestRecord selectShopGuestRecordByShopGuestRecord(Long shopGuestRecord)
+    {
+        return shopGuestRecordMapper.selectShopGuestRecordByShopGuestRecord(shopGuestRecord);
+    }
+
+    /**
+     * 查询酒店客人数据记录列表
+     *
+     * @param shopGuestRecord 酒店客人数据记录
+     * @return 酒店客人数据记录
+     */
+    @Override
+    public List<ShopGuestRecord> selectShopGuestRecordList(ShopGuestRecord shopGuestRecord)
+    {
+        return shopGuestRecordMapper.selectShopGuestRecordList(shopGuestRecord);
+    }
+
+    /**
+     * 新增酒店客人数据记录
+     *
+     * @param shopGuestRecord 酒店客人数据记录
+     * @return 结果
+     */
+    @Override
+    public int insertShopGuestRecord(ShopGuestRecord shopGuestRecord)
+    {
+        shopGuestRecord.setCreateTime(DateUtils.getNowDate());
+        return shopGuestRecordMapper.insertShopGuestRecord(shopGuestRecord);
+    }
+
+    /**
+     * 修改酒店客人数据记录
+     *
+     * @param shopGuestRecord 酒店客人数据记录
+     * @return 结果
+     */
+    @Override
+    public int updateShopGuestRecord(ShopGuestRecord shopGuestRecord)
+    {
+        return shopGuestRecordMapper.updateShopGuestRecord(shopGuestRecord);
+    }
+
+    /**
+     * 批量删除酒店客人数据记录
+     *
+     * @param shopGuestRecords 需要删除的酒店客人数据记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteShopGuestRecordByShopGuestRecords(Long[] shopGuestRecords)
+    {
+        return shopGuestRecordMapper.deleteShopGuestRecordByShopGuestRecords(shopGuestRecords);
+    }
+
+    /**
+     * 删除酒店客人数据记录信息
+     *
+     * @param shopGuestRecord 酒店客人数据记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteShopGuestRecordByShopGuestRecord(Long shopGuestRecord)
+    {
+        return shopGuestRecordMapper.deleteShopGuestRecordByShopGuestRecord(shopGuestRecord);
+    }
+}

+ 69 - 0
smart-system/src/main/resources/mapper/management/MarkerContentMapper.xml

@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huijy.management.mapper.MarkerContentMapper">
+
+    <resultMap type="MarkerContent" id="MarkerContentResult">
+        <result property="markerContent"    column="marker_content"    />
+        <result property="markerId"    column="marker_id"    />
+        <result property="contentId"    column="content_id"    />
+    </resultMap>
+
+    <sql id="selectMarkerContentVo">
+        select marker_content, marker_id, content_id from t_marker_content
+    </sql>
+
+    <select id="selectMarkerContentList" parameterType="MarkerContent" resultMap="MarkerContentResult">
+        <include refid="selectMarkerContentVo"/>
+        <where>
+            <if test="markerId != null "> and marker_id = #{markerId}</if>
+            <if test="contentId != null "> and content_id = #{contentId}</if>
+        </where>
+    </select>
+
+    <select id="selectMarkerContentByMarkerContent" parameterType="Long" resultMap="MarkerContentResult">
+        <include refid="selectMarkerContentVo"/>
+        where marker_content = #{markerContent}
+    </select>
+
+    <insert id="insertMarkerContent" parameterType="MarkerContent" useGeneratedKeys="true" keyProperty="markerContent">
+        insert into t_marker_content
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="markerId != null">marker_id,</if>
+            <if test="contentId != null">content_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="markerId != null">#{markerId},</if>
+            <if test="contentId != null">#{contentId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateMarkerContent" parameterType="MarkerContent">
+        update t_marker_content
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="markerId != null">marker_id = #{markerId},</if>
+            <if test="contentId != null">content_id = #{contentId},</if>
+        </trim>
+        where marker_content = #{markerContent}
+    </update>
+
+    <delete id="deleteMarkerContentByMarkerContent" parameterType="Long">
+        delete from t_marker_content where marker_content = #{markerContent}
+    </delete>
+
+    <delete id="deleteMarkerContentByMarkerContents" parameterType="String">
+        delete from t_marker_content where marker_content in
+        <foreach item="markerContent" collection="array" open="(" separator="," close=")">
+            #{markerContent}
+        </foreach>
+    </delete>
+
+    <select id="selectContentIdListByMarkerId" parameterType="Long" resultType="Long">
+        select content_id from t_marker_content where marker_id = #{markerId}
+    </select>
+
+    <delete id="deleteMarkerContentByMarkerId" parameterType="Long">
+        delete from t_marker_content where marker_id = #{markerId}
+    </delete>
+</mapper>

+ 13 - 6
smart-system/src/main/resources/mapper/management/MarkerMapper.xml

@@ -3,7 +3,7 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.huijy.management.mapper.MarkerMapper">
-    
+
     <resultMap type="Marker" id="MarkerResult">
         <result property="markerId"    column="marker_id"    />
         <result property="markerName"    column="marker_name"    />
@@ -28,17 +28,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectMarkerList" parameterType="Marker" resultMap="MarkerResult">
         <include refid="selectMarkerVo"/>
-        <where>  
+        <where>
             <if test="markerName != null  and markerName != ''"> and marker_name like concat('%', #{markerName}, '%')</if>
             <if test="markerType != null  and markerType != ''"> and marker_type = #{markerType}</if>
         </where>
     </select>
-    
+
+    <select id="selectMarkerListByContentId" parameterType="Long" resultMap="MarkerResult">
+        <include refid="selectMarkerVo"/>
+        where marker_id in(select marker_id from t_marker_content where t_marker_content.content_id = #{contentId})
+    </select>
+
+
+
     <select id="selectMarkerByMarkerId" parameterType="Long" resultMap="MarkerResult">
         <include refid="selectMarkerVo"/>
         where marker_id = #{markerId}
     </select>
-        
+
     <insert id="insertMarker" parameterType="Marker">
         insert into t_marker
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -103,9 +110,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <delete id="deleteMarkerByMarkerIds" parameterType="String">
-        delete from t_marker where marker_id in 
+        delete from t_marker where marker_id in
         <foreach item="markerId" collection="array" open="(" separator="," close=")">
             #{markerId}
         </foreach>
     </delete>
-</mapper>
+</mapper>

+ 87 - 0
smart-system/src/main/resources/mapper/management/ShopGuestRecordMapper.xml

@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huijy.management.mapper.ShopGuestRecordMapper">
+
+    <resultMap type="ShopGuestRecord" id="ShopGuestRecordResult">
+        <result property="shopGuestRecord"    column="shop_guest_record"    />
+        <result property="shopId"    column="shop_id"    />
+        <result property="shopName"    column="shop_name"    />
+        <result property="guestName"    column="guest_name"    />
+        <result property="idCard"    column="id_card"    />
+        <result property="phone"    column="phone"    />
+        <result property="checkInTime"    column="check_in_time"    />
+        <result property="guestType"    column="guest_type"    />
+        <result property="createTime"    column="create_time"    />
+    </resultMap>
+
+    <sql id="selectShopGuestRecordVo">
+        select shop_guest_record, shop_id, guest_name, id_card, phone, check_in_time, guest_type, create_time,
+         (select name from t_shop where t_shop.shop_id = t_shop_sales_record.shop_id) shop_name
+         from t_shop_guest_record
+    </sql>
+
+    <select id="selectShopGuestRecordList" parameterType="ShopGuestRecord" resultMap="ShopGuestRecordResult">
+        <include refid="selectShopGuestRecordVo"/>
+        <where>
+            <if test="guestName != null  and guestName != ''"> and guest_name like concat('%', #{guestName}, '%')</if>
+            <if test="idCard != null  and idCard != ''"> and id_card = #{idCard}</if>
+            <if test="phone != null  and phone != ''"> and phone = #{phone}</if>
+        </where>
+    </select>
+
+    <select id="selectShopGuestRecordByShopGuestRecord" parameterType="Long" resultMap="ShopGuestRecordResult">
+        <include refid="selectShopGuestRecordVo"/>
+        where shop_guest_record = #{shopGuestRecord}
+    </select>
+
+    <insert id="insertShopGuestRecord" parameterType="ShopGuestRecord">
+        insert into t_shop_guest_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="shopGuestRecord != null">shop_guest_record,</if>
+            <if test="shopId != null">shop_id,</if>
+            <if test="guestName != null">guest_name,</if>
+            <if test="idCard != null">id_card,</if>
+            <if test="phone != null">phone,</if>
+            <if test="checkInTime != null">check_in_time,</if>
+            <if test="guestType != null">guest_type,</if>
+            <if test="createTime != null">create_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="shopGuestRecord != null">#{shopGuestRecord},</if>
+            <if test="shopId != null">#{shopId},</if>
+            <if test="guestName != null">#{guestName},</if>
+            <if test="idCard != null">#{idCard},</if>
+            <if test="phone != null">#{phone},</if>
+            <if test="checkInTime != null">#{checkInTime},</if>
+            <if test="guestType != null">#{guestType},</if>
+            <if test="createTime != null">#{createTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateShopGuestRecord" parameterType="ShopGuestRecord">
+        update t_shop_guest_record
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="shopId != null">shop_id = #{shopId},</if>
+            <if test="guestName != null">guest_name = #{guestName},</if>
+            <if test="idCard != null">id_card = #{idCard},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="checkInTime != null">check_in_time = #{checkInTime},</if>
+            <if test="guestType != null">guest_type = #{guestType},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+        </trim>
+        where shop_guest_record = #{shopGuestRecord}
+    </update>
+
+    <delete id="deleteShopGuestRecordByShopGuestRecord" parameterType="Long">
+        delete from t_shop_guest_record where shop_guest_record = #{shopGuestRecord}
+    </delete>
+
+    <delete id="deleteShopGuestRecordByShopGuestRecords" parameterType="String">
+        delete from t_shop_guest_record where shop_guest_record in
+        <foreach item="shopGuestRecord" collection="array" open="(" separator="," close=")">
+            #{shopGuestRecord}
+        </foreach>
+    </delete>
+</mapper>

+ 9 - 1
smart-ui/src/router/index.js

@@ -62,7 +62,15 @@ export const constantRoutes = [
   {
     path: '',
     component: Layout,
-    redirect: '/business/content',
+    redirect: 'index',
+    children: [
+      {
+        path: 'index',
+        component: (resolve) => require(['@/views/index'], resolve),
+        name: 'Index',
+        meta: { title: '首页', icon: 'dashboard', affix: true }
+      }
+    ]
   },
   {
     path: '/user',

+ 181 - 653
smart-ui/src/views/index.vue

@@ -1,597 +1,169 @@
 <template>
-  <div class="app-container home">
-    <el-row :gutter="20">
-      <el-col :sm="24" :lg="24">
-        <blockquote class="text-warning" style="font-size: 14px">
-          领取阿里云通用云产品1888优惠券
-          <br />
-          <el-link
-            href="https://www.aliyun.com/minisite/goods?userCode=brki8iof"
-            type="primary"
-            target="_blank"
-            >https://www.aliyun.com/minisite/goods?userCode=brki8iof</el-link
-          >
-          <br />
-          领取腾讯云通用云产品2860优惠券
-          <br />
-          <el-link
-            href="https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console"
-            type="primary"
-            target="_blank"
-            >https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console</el-link
-          >
-          <br />
-          阿里云服务器折扣区
-          <el-link href="http://aly.ruoyi.vip" type="primary" target="_blank"
-            >>☛☛点我进入☚☚</el-link
-          >
-          &nbsp;&nbsp;&nbsp; 腾讯云服务器秒杀区
-          <el-link href="http://txy.ruoyi.vip" type="primary" target="_blank"
-            >>☛☛点我进入☚☚</el-link
-          ><br />
-          <h4 class="text-danger">
-            云产品通用红包,可叠加官网常规优惠使用。(仅限新用户)
-          </h4>
-        </blockquote>
-
-        <hr />
-      </el-col>
-    </el-row>
-    <el-row :gutter="20">
-      <el-col :sm="24" :lg="12" style="padding-left: 20px">
-        <h2>若依后台管理框架</h2>
-        <p>
-          一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统。,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。
-        </p>
-        <p>
-          <b>当前版本:</b> <span>v{{ version }}</span>
-        </p>
-        <p>
-          <el-tag type="danger">&yen;免费开源</el-tag>
-        </p>
-        <p>
-          <el-button
-            type="primary"
-            size="mini"
-            icon="el-icon-cloudy"
-            plain
-            @click="goTarget('https://gitee.com/y_project/RuoYi-Vue')"
-            >访问码云</el-button
-          >
-          <el-button
-            size="mini"
-            icon="el-icon-s-home"
-            plain
-            @click="goTarget('http://ruoyi.vip')"
-            >访问主页</el-button
-          >
-        </p>
+  <div class="app-container">
+    <el-row>
+      <el-col :span="12" class="card-box">
+        <el-card>
+          <div slot="header"><span>CPU</span></div>
+          <div class="el-table el-table--enable-row-hover el-table--medium">
+            <table cellspacing="0" style="width: 100%;">
+              <thead>
+                <tr>
+                  <th class="is-leaf"><div class="cell">属性</div></th>
+                  <th class="is-leaf"><div class="cell">值</div></th>
+                </tr>
+              </thead>
+              <tbody>
+                <tr>
+                  <td><div class="cell">核心数</div></td>
+                  <td><div class="cell" v-if="server.cpu">{{ server.cpu.cpuNum }}</div></td>
+                </tr>
+                <tr>
+                  <td><div class="cell">用户使用率</div></td>
+                  <td><div class="cell" v-if="server.cpu">{{ server.cpu.used }}%</div></td>
+                </tr>
+                <tr>
+                  <td><div class="cell">系统使用率</div></td>
+                  <td><div class="cell" v-if="server.cpu">{{ server.cpu.sys }}%</div></td>
+                </tr>
+                <tr>
+                  <td><div class="cell">当前空闲率</div></td>
+                  <td><div class="cell" v-if="server.cpu">{{ server.cpu.free }}%</div></td>
+                </tr>
+              </tbody>
+            </table>
+          </div>
+        </el-card>
       </el-col>
 
-      <el-col :sm="24" :lg="12" style="padding-left: 50px">
-        <el-row>
-          <el-col :span="12">
-            <h2>技术选型</h2>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="6">
-            <h4>后端技术</h4>
-            <ul>
-              <li>SpringBoot</li>
-              <li>Spring Security</li>
-              <li>JWT</li>
-              <li>MyBatis</li>
-              <li>Druid</li>
-              <li>Fastjson</li>
-              <li>...</li>
-            </ul>
-          </el-col>
-          <el-col :span="6">
-            <h4>前端技术</h4>
-            <ul>
-              <li>Vue</li>
-              <li>Vuex</li>
-              <li>Element-ui</li>
-              <li>Axios</li>
-              <li>Sass</li>
-              <li>Quill</li>
-              <li>...</li>
-            </ul>
-          </el-col>
-        </el-row>
+      <el-col :span="12" class="card-box">
+        <el-card>
+          <div slot="header"><span>内存</span></div>
+          <div class="el-table el-table--enable-row-hover el-table--medium">
+            <table cellspacing="0" style="width: 100%;">
+              <thead>
+                <tr>
+                  <th class="is-leaf"><div class="cell">属性</div></th>
+                  <th class="is-leaf"><div class="cell">内存</div></th>
+                  <th class="is-leaf"><div class="cell">JVM</div></th>
+                </tr>
+              </thead>
+              <tbody>
+                <tr>
+                  <td><div class="cell">总内存</div></td>
+                  <td><div class="cell" v-if="server.mem">{{ server.mem.total }}G</div></td>
+                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.total }}M</div></td>
+                </tr>
+                <tr>
+                  <td><div class="cell">已用内存</div></td>
+                  <td><div class="cell" v-if="server.mem">{{ server.mem.used}}G</div></td>
+                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.used}}M</div></td>
+                </tr>
+                <tr>
+                  <td><div class="cell">剩余内存</div></td>
+                  <td><div class="cell" v-if="server.mem">{{ server.mem.free }}G</div></td>
+                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.free }}M</div></td>
+                </tr>
+                <tr>
+                  <td><div class="cell">使用率</div></td>
+                  <td><div class="cell" v-if="server.mem" :class="{'text-danger': server.mem.usage > 80}">{{ server.mem.usage }}%</div></td>
+                  <td><div class="cell" v-if="server.jvm" :class="{'text-danger': server.jvm.usage > 80}">{{ server.jvm.usage }}%</div></td>
+                </tr>
+              </tbody>
+            </table>
+          </div>
+        </el-card>
       </el-col>
-    </el-row>
-    <el-divider />
-    <el-row :gutter="20">
-      <el-col :xs="24" :sm="24" :md="12" :lg="8">
-        <el-card class="update-log">
-          <div slot="header" class="clearfix">
-            <span>联系信息</span>
+
+      <el-col :span="24" class="card-box">
+        <el-card>
+          <div slot="header">
+            <span>服务器信息</span>
           </div>
-          <div class="body">
-            <p>
-              <i class="el-icon-s-promotion"></i> 官网:<el-link
-                href="http://www.ruoyi.vip"
-                target="_blank"
-                >http://www.ruoyi.vip</el-link
-              >
-            </p>
-            <p>
-              <i class="el-icon-user-solid"></i> QQ群:<s>满937441</s>
-              <s>满887144332</s> <s>满180251782</s> <s>满104180207</s>
-              <s>满186866453</s> <s>满201396349</s>
-              <a href="https://jq.qq.com/?_wv=1027&k=TULPgzYe" target="_blank">
-                101456076</a
-              >
-            </p>
-            <p>
-              <i class="el-icon-chat-dot-round"></i> 微信:<a
-                href="javascript:;"
-                >/ *若依</a
-              >
-            </p>
-            <p>
-              <i class="el-icon-money"></i> 支付宝:<a
-                href="javascript:;"
-                class="支付宝信息"
-                >/ *若依</a
-              >
-            </p>
+          <div class="el-table el-table--enable-row-hover el-table--medium">
+            <table cellspacing="0" style="width: 100%;">
+              <tbody>
+                <tr>
+                  <td><div class="cell">服务器名称</div></td>
+                  <td><div class="cell" v-if="server.sys">{{ server.sys.computerName }}</div></td>
+                  <td><div class="cell">操作系统</div></td>
+                  <td><div class="cell" v-if="server.sys">{{ server.sys.osName }}</div></td>
+                </tr>
+                <tr>
+                  <td><div class="cell">服务器IP</div></td>
+                  <td><div class="cell" v-if="server.sys">{{ server.sys.computerIp }}</div></td>
+                  <td><div class="cell">系统架构</div></td>
+                  <td><div class="cell" v-if="server.sys">{{ server.sys.osArch }}</div></td>
+                </tr>
+              </tbody>
+            </table>
           </div>
         </el-card>
       </el-col>
-      <el-col :xs="24" :sm="24" :md="12" :lg="8">
-        <el-card class="update-log">
-          <div slot="header" class="clearfix">
-            <span>更新日志</span>
-          </div>
-          <el-collapse accordion>
-            <el-collapse-item title="v3.6.0 - 2021-07-12">
-              <ol>
-                <li>角色管理新增分配用户功能</li>
-                <li>用户管理新增分配角色功能</li>
-                <li>日志列表支持排序操作</li>
-                <li>优化参数&字典缓存操作</li>
-                <li>系统布局配置支持动态标题开关</li>
-                <li>菜单路由配置支持内链访问</li>
-                <li>默认访问后端首页新增提示语</li>
-                <li>富文本默认上传返回url类型</li>
-                <li>新增自定义弹窗拖拽指令</li>
-                <li>全局注册常用通用组件</li>
-                <li>全局挂载字典标签组件</li>
-                <li>ImageUpload组件支持多图片上传</li>
-                <li>FileUpload组件支持多文件上传</li>
-                <li>文件上传组件添加数量限制属性</li>
-                <li>富文本编辑组件添加类型属性</li>
-                <li>富文本组件工具栏配置视频</li>
-                <li>封装通用iframe组件</li>
-                <li>限制超级管理员不允许操作</li>
-                <li>用户信息长度校验限制</li>
-                <li>分页组件新增pagerCount属性</li>
-                <li>添加bat脚本执行应用</li>
-                <li>升级oshi到最新版本v5.7.4</li>
-                <li>升级element-ui到最新版本2.15.2</li>
-                <li>升级pagehelper到最新版1.3.1</li>
-                <li>升级commons.io到最新版本v2.10.0</li>
-                <li>升级commons.fileupload到最新版本v1.4</li>
-                <li>升级swagger到最新版本v3.0.0</li>
-                <li>修复关闭confirm提示框控制台报错问题</li>
-                <li>修复存在的SQL注入漏洞问题</li>
-                <li>定时任务屏蔽rmi远程调用</li>
-                <li>修复用户搜索分页变量错误</li>
-                <li>修复导出角色数据范围翻译缺少仅本人</li>
-                <li>修复表单构建选择下拉选择控制台报错问题</li>
-                <li>优化图片工具类读取文件</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.5.0 - 2021-05-25">
-              <ol>
-                <li>新增菜单导航显示风格TopNav(false为左侧导航菜单,true为顶部导航菜单)</li>
-                <li>布局设置支持保存&重置配置</li>
-                <li>修复树表数据显示不全&加载慢问题</li>
-                <li>新增IE浏览器版本过低提示页面</li>
-                <li>用户登录后记录最后登录IP&时间</li>
-                <li>页面导出按钮点击之后添加遮罩</li>
-                <li>富文本编辑器支持自定义上传地址</li>
-                <li>富文本编辑组件新增readOnly属性</li>
-                <li>页签TagsView新增关闭右侧功能</li>
-                <li>显隐列组件加载初始默认隐藏列</li>
-                <li>关闭头像上传窗口还原默认图片</li>
-                <li>个人信息添加手机&邮箱重复验证</li>
-                <li>代码生成模板导出按钮点击后添加遮罩</li>
-                <li>代码生成模板树表操作列添加新增按钮</li>
-                <li>代码生成模板修复主子表字段重名问题</li>
-                <li>升级fastjson到最新版1.2.76</li>
-                <li>升级druid到最新版本v1.2.6</li>
-                <li>升级mybatis到最新版3.5.6 阻止远程代码执行漏洞</li>
-                <li>升级oshi到最新版本v5.6.0</li>
-                <li>velocity剔除commons-collections版本,防止3.2.1版本的反序列化漏洞</li>
-                <li>数据监控页默认账户密码防止越权访问</li>
-                <li>修复firefox下表单构建拖拽会新打卡一个选项卡</li>
-                <li>修正后端导入表权限标识</li>
-                <li>修正前端操作日志&登录日志权限标识</li>
-                <li>设置Redis配置HashKey序列化</li>
-                <li>删除操作日志记录信息</li>
-                <li>上传媒体类型添加视频格式</li>
-                <li>修复请求形参未传值记录日志异常问题</li>
-                <li>优化xss校验json请求条件</li>
-                <li>树级结构更新子节点使用replaceFirst</li>
-                <li>优化ExcelUtil空值处理</li>
-                <li>日志记录过滤BindingResult对象,防止异常</li>
-                <li>修改主题后mini类型按钮无效问题</li>
-                <li>优化通用下载完成后删除节点</li>
-                <li>通用Controller添加响应返回消息</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.4.0 - 2021-02-22">
-              <ol>
-                <li>代码生成模板支持主子表</li>
-                <li>表格右侧工具栏组件支持显隐列</li>
-                <li>图片组件添加预览&移除功能</li>
-                <li>Excel注解支持Image图片导出</li>
-                <li>操作按钮组调整为朴素按钮样式</li>
-                <li>代码生成支持文件上传组件</li>
-                <li>代码生成日期控件区分范围</li>
-                <li>代码生成数据库文本类型生成表单文本域</li>
-                <li>用户手机邮箱&菜单组件修改允许空字符串</li>
-                <li>升级SpringBoot到最新版本2.2.13 提升启动速度</li>
-                <li>升级druid到最新版本v1.2.4</li>
-                <li>升级fastjson到最新版1.2.75</li>
-                <li>升级element-ui到最新版本2.15.0</li>
-                <li>修复IE11浏览器报错问题</li>
-                <li>优化多级菜单之间切换无法缓存的问题</li>
-                <li>修复四级菜单无法显示问题</li>
-                <li>修正侧边栏静态路由丢失问题</li>
-                <li>修复角色管理-编辑角色-功能权限显示异常</li>
-                <li>配置文件新增redis数据库索引属性</li>
-                <li>权限工具类增加admin判断</li>
-                <li>角色非自定义权限范围清空选择值</li>
-                <li>修复导入数据为负浮点数时丢失精度问题</li>
-                <li>移除path-to-regexp正则匹配插件</li>
-                <li>修复生成树表代码异常</li>
-                <li>修改ip字段长度防止ipv6地址长度不够</li>
-                <li>防止get请求参数值为false或0等特殊值会导致无法正确的传参</li>
-                <li>登录后push添加catch防止出现检查错误</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.3.0 - 2020-12-14">
-              <ol>
-                <li>新增缓存监控功能</li>
-                <li>支持主题风格配置</li>
-                <li>修复多级菜单之间切换无法缓存的问题</li>
-                <li>多级菜单自动配置组件</li>
-                <li>代码生成预览支持高亮显示</li>
-                <li>支持Get请求映射Params参数</li>
-                <li>删除用户和角色解绑关联</li>
-                <li>去除用户手机邮箱部门必填验证</li>
-                <li>Excel支持注解align对齐方式</li>
-                <li>Excel支持导入Boolean型数据</li>
-                <li>优化头像样式,鼠标移入悬停遮罩</li>
-                <li>代码生成预览提供滚动机制</li>
-                <li>代码生成删除多余的数字float类型</li>
-                <li>修正转换字符串的目标字符集属性</li>
-                <li>回显数据字典防止空值报错</li>
-                <li>日志记录增加过滤多文件场景</li>
-                <li>修改缓存Set方法可能导致嵌套的问题</li>
-                <li>移除前端一些多余的依赖</li>
-                <li>防止安全扫描YUI出现的风险提示</li>
-                <li>修改node-sass为dart-sass</li>
-                <li>升级SpringBoot到最新版本2.1.18</li>
-                <li>升级poi到最新版本4.1.2</li>
-                <li>升级oshi到最新版本v5.3.6</li>
-                <li>升级bitwalker到最新版本1.21</li>
-                <li>升级axios到最新版本0.21.0</li>
-                <li>升级element-ui到最新版本2.14.1</li>
-                <li>升级vue到最新版本2.6.12</li>
-                <li>升级vuex到最新版本3.6.0</li>
-                <li>升级vue-cli到版本4.5.9</li>
-                <li>升级vue-router到最新版本3.4.9</li>
-                <li>升级vue-cli到最新版本4.4.6</li>
-                <li>升级vue-cropper到最新版本0.5.5</li>
-                <li>升级clipboard到最新版本2.0.6</li>
-                <li>升级core-js到最新版本3.8.1</li>
-                <li>升级echarts到最新版本4.9.0</li>
-                <li>升级file-saver到最新版本2.0.4</li>
-                <li>升级fuse.js到最新版本6.4.3</li>
-                <li>升级js-beautify到最新版本1.13.0</li>
-                <li>升级js-cookie到最新版本2.2.1</li>
-                <li>升级path-to-regexp到最新版本6.2.0</li>
-                <li>升级quill到最新版本1.3.7</li>
-                <li>升级screenfull到最新版本5.0.2</li>
-                <li>升级sortablejs到最新版本1.10.2</li>
-                <li>升级vuedraggable到最新版本2.24.3</li>
-                <li>升级chalk到最新版本4.1.0</li>
-                <li>升级eslint到最新版本7.15.0</li>
-                <li>升级eslint-plugin-vue到最新版本7.2.0</li>
-                <li>升级lint-staged到最新版本10.5.3</li>
-                <li>升级runjs到最新版本4.4.2</li>
-                <li>升级sass-loader到最新版本10.1.0</li>
-                <li>升级script-ext-html-webpack-plugin到最新版本2.1.5</li>
-                <li>升级svg-sprite-loader到最新版本5.1.1</li>
-                <li>升级vue-template-compiler到最新版本2.6.12</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.2.1 - 2020-11-18">
-              <ol>
-                <li>阻止任意文件下载漏洞</li>
-                <li>代码生成支持上传控件</li>
-                <li>新增图片上传组件</li>
-                <li>调整默认首页</li>
-                <li>升级druid到最新版本v1.2.2</li>
-                <li>mapperLocations配置支持分隔符</li>
-                <li>权限信息调整</li>
-                <li>调整sql默认时间</li>
-                <li>解决代码生成没有bit类型的问题</li>
-                <li>升级pagehelper到最新版1.3.0</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.2.0 - 2020-10-10">
-              <ol>
-                <li>升级springboot版本到2.1.17 提升安全性</li>
-                <li>升级oshi到最新版本v5.2.5</li>
-                <li>升级druid到最新版本v1.2.1</li>
-                <li>升级jjwt到版本0.9.1</li>
-                <li>升级fastjson到最新版1.2.74</li>
-                <li>修改sass为node-sass,避免el-icon图标乱码</li>
-                <li>代码生成支持同步数据库</li>
-                <li>代码生成支持富文本控件</li>
-                <li>代码生成页面时不忽略remark属性</li>
-                <li>代码生成添加select必填选项</li>
-                <li>Excel导出类型NUMERIC支持精度浮点类型</li>
-                <li>Excel导出targetAttr优化获取值,防止get方法不规范</li>
-                <li>Excel注解支持自动统计数据总和</li>
-                <li>Excel注解支持设置BigDecimal精度&舍入规则</li>
-                <li>菜单&数据权限新增(展开/折叠 全选/全不选 父子联动)</li>
-                <li>允许用户分配到部门父节点</li>
-                <li>菜单新增是否缓存keep-alive</li>
-                <li>表格操作列间距调整</li>
-                <li>限制系统内置参数不允许删除</li>
-                <li>富文本组件优化,支持自定义高度&图片冲突问题</li>
-                <li>富文本工具栏样式对齐</li>
-                <li>导入excel整形值校验优化</li>
-                <li>修复页签关闭所有时固定标签路由不刷新问题</li>
-                <li>表单构建布局型组件新增按钮</li>
-                <li>左侧菜单文字过长显示省略号</li>
-                <li>修正根节点为子部门时,树状结构显示问题</li>
-                <li>修正调用目标字符串最大长度</li>
-                <li>修正菜单提示信息错误</li>
-                <li>修正定时任务执行一次权限标识</li>
-                <li>修正数据库字符串类型nvarchar</li>
-                <li>优化递归子节点</li>
-                <li>优化数据权限判断</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-
-            <el-collapse-item title="v3.1.0 - 2020-08-13">
-              <ol>
-                <li>表格工具栏右侧添加刷新&显隐查询组件</li>
-                <li>后端支持CORS跨域请求</li>
-                <li>代码生成支持选择上级菜单</li>
-                <li>代码生成支持自定义路径</li>
-                <li>代码生成支持复选框</li>
-                <li>Excel导出导入支持dictType字典类型</li>
-                <li>Excel支持分割字符串组内容</li>
-                <li>验证码类型支持(数组计算、字符验证)</li>
-                <li>升级vue-cli版本到4.4.4</li>
-                <li>修改 node-sass 为 dart-sass</li>
-                <li>表单类型为Integer/Long设置整形默认值</li>
-                <li>代码生成器默认mapper路径与默认mapperScan路径不一致</li>
-                <li>优化防重复提交拦截器</li>
-                <li>优化上级菜单不能选择自己</li>
-                <li>修复角色的权限分配后,未实时生效问题</li>
-                <li>修复在线用户日志记录类型</li>
-                <li>修复富文本空格和缩进保存后不生效问题</li>
-                <li>修复在线用户判断逻辑</li>
-                <li>唯一限制条件只返回单条数据</li>
-                <li>添加获取当前的环境配置方法</li>
-                <li>超时登录后页面跳转到首页</li>
-                <li>全局异常状态汉化拦截处理</li>
-                <li>HTML过滤器改为将html转义</li>
-                <li>检查字符支持小数点&降级改成异常提醒</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
 
-            <el-collapse-item title="v3.0.0 - 2020-07-20">
-              <ol>
-                <li>单应用调整为多模块项目</li>
-                <li>升级element-ui版本到2.13.2</li>
-                <li>删除babel,提高编译速度。</li>
-                <li>新增菜单默认主类目</li>
-                <li>编码文件名修改为uuid方式</li>
-                <li>定时任务cron表达式验证</li>
-                <li>角色权限修改时已有权限未自动勾选异常修复</li>
-                <li>防止切换权限用户后登录出现404</li>
-                <li>Excel支持sort导出排序</li>
-                <li>创建用户不允许选择超级管理员角色</li>
-                <li>修复代码生成导入表结构出现异常页面不提醒问题</li>
-                <li>修复代码生成点击多次表修改数据不变化的问题</li>
-                <li>修复头像上传成功二次打开无法改变裁剪框大小和位置问题</li>
-                <li>修复布局为small者mini用户表单显示错位问题</li>
-                <li>修复热部署导致的强换异常问题</li>
-                <li>修改用户管理复选框宽度,防止部分浏览器出现省略号</li>
-                <li>IpUtils工具,清除Xss特殊字符,防止Xff注入攻击</li>
-                <li>生成domain 如果是浮点型 统一用BigDecimal</li>
-                <li>定时任务调整label-width,防止部署出现错位</li>
-                <li>调整表头固定列默认样式</li>
-                <li>代码生成模板调整,字段为String并且必填则加空串条件</li>
-                <li>代码生成字典Integer/Long使用parseInt</li>
-                <li>
-                  修复dict_sort不可update为0的问题&查询返回增加dict_sort升序排序
-                </li>
-                <li>修正岗位导出权限注解</li>
-                <li>禁止加密密文返回前端</li>
-                <li>修复代码生成页面中的查询条件创建时间未生效的问题</li>
-                <li>修复首页搜索菜单外链无法点击跳转问题</li>
-                <li>修复菜单管理选择图标,backspace删除时不过滤数据</li>
-                <li>用户管理部门分支节点不可检查&显示计数</li>
-                <li>数据范围过滤属性调整</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-
-            <el-collapse-item title="v2.3.0 - 2020-06-01">
-              <ol>
-                <li>升级fastjson到最新版1.2.70 修复高危安全漏洞</li>
-                <li>dev启动默认打开浏览器</li>
-                <li>vue-cli使用默认source-map</li>
-                <li>slidebar eslint报错优化</li>
-                <li>当tags-view滚动关闭右键菜单</li>
-                <li>字典管理添加缓存读取</li>
-                <li>参数管理支持缓存操作</li>
-                <li>支持一级菜单(和主页同级)在main区域显示</li>
-                <li>限制外链地址必须以http(s)开头</li>
-                <li>tagview & sidebar 主题颜色与element ui(全局)同步</li>
-                <li>修改数据源类型优先级,先根据方法,再根据类</li>
-                <li>支持是否需要设置token属性,自定义返回码消息。</li>
-                <li>swagger请求前缀加入配置。</li>
-                <li>登录地点设置内容过长则隐藏显示</li>
-                <li>修复定时任务执行一次按钮后不提示消息问题</li>
-                <li>修改上级部门(选择项排除本身和下级)</li>
-                <li>通用http发送方法增加参数 contentType 编码类型</li>
-                <li>更换IP地址查询接口</li>
-                <li>修复页签变量undefined</li>
-                <li>添加校验部门包含未停用的子部门</li>
-                <li>修改定时任务详情下次执行时间日期显示错误</li>
-                <li>角色管理查询设置默认排序字段</li>
-                <li>swagger添加enable参数控制是否启用</li>
-                <li>只对json类型请求构建可重复读取inputStream的request</li>
-                <li>修改代码生成字典字段int类型没有自动选中问题</li>
-                <li>vuex用户名取值修正</li>
-                <li>表格树模板去掉多余的)</li>
-                <li>代码生成序号修正</li>
-                <li>全屏情况下不调整上外边距</li>
-                <li>代码生成Date字段添加默认格式</li>
-                <li>用户管理角色选择权限控制</li>
-                <li>修复路由懒加载报错问题</li>
-                <li>模板sql.vm添加菜单状态</li>
-                <li>设置用户名称不能修改</li>
-                <li>dialog添加append-to-body属性,防止ie遮罩</li>
-                <li>菜单区分状态和显示隐藏功能</li>
-                <li>升级fastjson到最新版1.2.68 修复安全加固</li>
-                <li>修复代码生成如果选择字典类型缺失逗号问题</li>
-                <li>登录请求params更换为data,防止暴露url</li>
-                <li>日志返回时间格式处理</li>
-                <li>添加handle控制允许拖动的元素</li>
-                <li>布局设置点击扩大范围</li>
-                <li>代码生成列属性排序查询</li>
-                <li>代码生成列支持拖动排序</li>
-                <li>修复时间格式不支持ios问题</li>
-                <li>表单构建添加父级class,防止冲突</li>
-                <li>定时任务并发属性修正</li>
-                <li>角色禁用&菜单隐藏不查询权限</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-
-            <el-collapse-item title="v2.2.0 - 2020-03-18">
-              <ol>
-                <li>系统监控新增定时任务功能</li>
-                <li>添加一个打包Web工程bat</li>
-                <li>修复页签鼠标滚轮按下的时候,可以关闭不可关闭的tag</li>
-                <li>修复点击退出登录有时会无提示问题</li>
-                <li>修复防重复提交注解无效问题</li>
-                <li>修复通知公告批量删除异常问题</li>
-                <li>添加菜单时路由地址必填限制</li>
-                <li>代码生成字段描述可编辑</li>
-                <li>修复用户修改个人信息导致缓存不过期问题</li>
-                <li>个人信息创建时间获取正确属性值</li>
-                <li>操作日志详细显示正确类型</li>
-                <li>导入表单击行数据时选中对应的复选框</li>
-                <li>批量替换表前缀逻辑调整</li>
-                <li>固定重定向路径表达式</li>
-                <li>升级element-ui版本到2.13.0</li>
-                <li>操作日志排序调整</li>
-                <li>修复charts切换侧边栏或者缩放窗口显示bug</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-
-            <el-collapse-item title="v2.1.0 - 2020-02-24">
-              <ol>
-                <li>新增表单构建</li>
-                <li>代码生成支持树表结构</li>
-                <li>新增用户导入</li>
-                <li>修复动态加载路由页面刷新问题</li>
-                <li>修复地址开关无效问题</li>
-                <li>汉化错误提示页面</li>
-                <li>代码生成已知问题修改</li>
-                <li>修复多数据源下配置关闭出现异常处理</li>
-                <li>添加HTML过滤器,用于去除XSS漏洞隐患</li>
-                <li>修复上传头像控制台出现异常</li>
-                <li>修改用户管理分页不正确的问题</li>
-                <li>修复验证码记录提示错误</li>
-                <li>修复request.js缺少Message引用</li>
-                <li>修复表格时间为空出现的异常</li>
-                <li>添加Jackson日期反序列化时区配置</li>
-                <li>调整根据用户权限加载菜单数据树形结构</li>
-                <li>调整成功登陆不恢复按钮,防止多次点击</li>
-                <li>修改用户个人资料同步缓存信息</li>
-                <li>修复页面同时出现el-upload和Editor不显示处理</li>
-                <li>修复在角色管理页修改菜单权限偶尔未选中问题</li>
-                <li>配置文件新增redis密码属性</li>
-                <li>设置mybatis全局的配置文件</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-
-            <el-collapse-item title="v2.0.0 - 2019-12-02">
-              <ol>
-                <li>新增代码生成</li>
-                <li>新增@RepeatSubmit注解,防止重复提交</li>
-                <li>新增菜单主目录添加/删除操作</li>
-                <li>日志记录过滤特殊对象,防止转换异常</li>
-                <li>修改代码生成路由脚本错误</li>
-                <li>用户上传头像实时同步缓存,无需重新登录</li>
-                <li>调整切换页签后不重新加载数据</li>
-                <li>添加jsencrypt实现参数的前端加密</li>
-                <li>系统退出删除用户缓存记录</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v1.1.0 - 2019-11-11">
-              <ol>
-                <li>新增在线用户管理</li>
-                <li>新增按钮组功能实现(批量删除、导出、清空)</li>
-                <li>新增查询条件重置按钮</li>
-                <li>新增Swagger全局Token配置</li>
-                <li>新增后端参数校验</li>
-                <li>修复字典管理页面的日期查询异常</li>
-                <li>修改时间函数命名防止冲突</li>
-                <li>去除菜单上级校验,默认为顶级</li>
-                <li>修复用户密码无法修改问题</li>
-                <li>修复菜单类型为按钮时不显示权限标识</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v1.0.0 - 2019-10-08">
-              <ol>
-                <li>若依前后端分离系统正式发布</li>
-              </ol>
-            </el-collapse-item>
-          </el-collapse>
+      <el-col :span="24" class="card-box">
+        <el-card>
+          <div slot="header">
+            <span>Java虚拟机信息</span>
+          </div>
+          <div class="el-table el-table--enable-row-hover el-table--medium">
+            <table cellspacing="0" style="width: 100%;">
+              <tbody>
+                <tr>
+                  <td><div class="cell">Java名称</div></td>
+                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.name }}</div></td>
+                  <td><div class="cell">Java版本</div></td>
+                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.version }}</div></td>
+                </tr>
+                <tr>
+                  <td><div class="cell">启动时间</div></td>
+                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.startTime }}</div></td>
+                  <td><div class="cell">运行时长</div></td>
+                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.runTime }}</div></td>
+                </tr>
+                <tr>
+                  <td colspan="1"><div class="cell">安装路径</div></td>
+                  <td colspan="3"><div class="cell" v-if="server.jvm">{{ server.jvm.home }}</div></td>
+                </tr>
+                <tr>
+                  <td colspan="1"><div class="cell">项目路径</div></td>
+                  <td colspan="3"><div class="cell" v-if="server.sys">{{ server.sys.userDir }}</div></td>
+                </tr>
+              </tbody>
+            </table>
+          </div>
         </el-card>
       </el-col>
-      <el-col :xs="24" :sm="24" :md="12" :lg="8">
-        <el-card class="update-log">
-          <div slot="header" class="clearfix">
-            <span>捐赠支持</span>
+
+      <el-col :span="24" class="card-box">
+        <el-card>
+          <div slot="header">
+            <span>磁盘状态</span>
           </div>
-          <div class="body">
-            <img
-              src="https://oscimg.oschina.net/oscnet/up-d6695f82666e5018f715c41cb7ee60d3b73.png"
-              alt="donate"
-              width="100%"
-            />
-            <span style="display: inline-block; height: 30px; line-height: 30px"
-              >你可以请作者喝杯咖啡表示鼓励</span
-            >
+          <div class="el-table el-table--enable-row-hover el-table--medium">
+            <table cellspacing="0" style="width: 100%;">
+              <thead>
+                <tr>
+                  <th class="is-leaf"><div class="cell">盘符路径</div></th>
+                  <th class="is-leaf"><div class="cell">文件系统</div></th>
+                  <th class="is-leaf"><div class="cell">盘符类型</div></th>
+                  <th class="is-leaf"><div class="cell">总大小</div></th>
+                  <th class="is-leaf"><div class="cell">可用大小</div></th>
+                  <th class="is-leaf"><div class="cell">已用大小</div></th>
+                  <th class="is-leaf"><div class="cell">已用百分比</div></th>
+                </tr>
+              </thead>
+              <tbody v-if="server.sysFiles">
+                <tr v-for="sysFile in server.sysFiles">
+                  <td><div class="cell">{{ sysFile.dirName }}</div></td>
+                  <td><div class="cell">{{ sysFile.sysTypeName }}</div></td>
+                  <td><div class="cell">{{ sysFile.typeName }}</div></td>
+                  <td><div class="cell">{{ sysFile.total }}</div></td>
+                  <td><div class="cell">{{ sysFile.free }}</div></td>
+                  <td><div class="cell">{{ sysFile.used }}</div></td>
+                  <td><div class="cell" :class="{'text-danger': sysFile.usage > 80}">{{ sysFile.usage }}%</div></td>
+                </tr>
+              </tbody>
+            </table>
           </div>
         </el-card>
       </el-col>
@@ -600,83 +172,39 @@
 </template>
 
 <script>
+import { getServer } from "@/api/monitor/server";
+
 export default {
-  name: "Index",
+  name: "Server",
   data() {
     return {
-      // 版本号
-      version: "3.6.0",
+      // 加载层信息
+      loading: [],
+      // 服务器信息
+      server: []
     };
   },
+  created() {
+    this.getList();
+    this.openLoading();
+  },
   methods: {
-    goTarget(href) {
-      window.open(href, "_blank");
+    /** 查询服务器信息 */
+    getList() {
+      getServer().then(response => {
+        this.server = response.data;
+        this.loading.close();
+      });
     },
-  },
-};
-</script>
-
-<style scoped lang="scss">
-.home {
-  blockquote {
-    padding: 10px 20px;
-    margin: 0 0 20px;
-    font-size: 17.5px;
-    border-left: 5px solid #eee;
-  }
-  hr {
-    margin-top: 20px;
-    margin-bottom: 20px;
-    border: 0;
-    border-top: 1px solid #eee;
-  }
-  .col-item {
-    margin-bottom: 20px;
-  }
-
-  ul {
-    padding: 0;
-    margin: 0;
-  }
-
-  font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  color: #676a6c;
-  overflow-x: hidden;
-
-  ul {
-    list-style-type: none;
-  }
-
-  h4 {
-    margin-top: 0px;
-  }
-
-  h2 {
-    margin-top: 10px;
-    font-size: 26px;
-    font-weight: 100;
-  }
-
-  p {
-    margin-top: 10px;
-
-    b {
-      font-weight: 700;
+    // 打开加载层
+    openLoading() {
+      this.loading = this.$loading({
+        lock: true,
+        text: "拼命读取中",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)"
+      });
     }
   }
-
-  .update-log {
-    ol {
-      display: block;
-      list-style-type: decimal;
-      margin-block-start: 1em;
-      margin-block-end: 1em;
-      margin-inline-start: 0;
-      margin-inline-end: 0;
-      padding-inline-start: 40px;
-    }
-  }
-}
-</style>
-
+};
+</script>

+ 27 - 4
smart-ui/src/views/management/marker/index.vue

@@ -237,6 +237,16 @@
                 </el-option>
               </el-select>
             </el-form-item>
+            <el-form-item label="所属景区">
+              <el-checkbox-group v-model="contentIdsList">
+                <el-checkbox
+                  v-for="(item, index) in contentList"
+                  :key="'jq' + index"
+                  :label="item.contentId"
+                  >{{ item.title }}</el-checkbox
+                >
+              </el-checkbox-group>
+            </el-form-item>
           </el-tab-pane>
           <el-tab-pane label="地图" name="second">
             <el-row>
@@ -374,7 +384,9 @@ export default {
       tmap: undefined,
       map: undefined,
       baseUrl: process.env.VUE_APP_BASE_API,
-      labelList: undefined
+      labelList: undefined,
+      contentList: [],
+      contentIdsList: []
 
     };
   },
@@ -459,6 +471,12 @@ export default {
       this.reset();
       this.open = true;
       this.title = "添加标记物管理";
+      this.contentIdsList = [];
+      this.contentList = [];
+      getMarker(0).then(response => {
+        this.contentList = response.data.contentList;
+
+      });
 
     },
     /** 修改按钮操作 */
@@ -466,10 +484,15 @@ export default {
       this.reset();
       const markerId = row.markerId || this.ids
       getMarker(markerId).then(response => {
-        this.form = response.data;
+        this.form = response.data.info;
         this.open = true;
         this.title = "修改标记物管理";
-        this.form.labelText = response.data.labelText.split(",")
+        if (response.data.info.labelText) {
+          this.form.labelText = response.data.info.labelText.split(",")
+        }
+
+        this.contentList = response.data.contentList;
+        this.contentIdsList = response.data.contentIdsList;
 
       });
     },
@@ -480,7 +503,7 @@ export default {
           if (this.form.labelText) {
             this.form.labelText = this.form.labelText.join(",")
           }
-
+        this.form.contentIdsList = this.contentIdsList
           if (this.form.markerId != null) {
             updateMarker(this.form).then(response => {
               this.msgSuccess("修改成功");