zhangyuewww il y a 2 ans
Parent
commit
dddaf6b9ce

+ 59 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/ICarouselManagementService.java

@@ -0,0 +1,59 @@
+package com.iotechn.unimall.admin.api.tourism;
+
+
+import com.iotechn.unimall.data.domain.CarouselManagement;
+import com.iotechn.unimall.core.annotation.HttpMethod;
+import com.iotechn.unimall.core.annotation.HttpOpenApi;
+import com.iotechn.unimall.core.annotation.HttpParam;
+import com.iotechn.unimall.core.annotation.HttpParamType;
+import com.iotechn.unimall.core.annotation.param.NotNull;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+
+/**
+ * 轮播管理信息Service接口
+ * 
+ * @author jlb
+ * @date 2023-05-31
+ */
+@HttpOpenApi(group = "admin.tourism.carouselManagement", description = "轮播管理信息")
+public interface ICarouselManagementService{
+	@HttpMethod(description = "新增",   permissionName = "轮播管理信息管理")
+	public Boolean add(@NotNull @HttpParam(name = "carouselManagement", type = HttpParamType.COMMON, description = "轮播管理信息") CarouselManagement carouselManagement)throws ServiceException;
+
+	@HttpMethod(description = "列表", permissionName = "轮播管理信息管理")
+	public Page<CarouselManagement> list(
+								@HttpParam(name = "title", type = HttpParamType.COMMON, description = "标题") String title,
+							@HttpParam(name = "url", type = HttpParamType.COMMON, description = "轮播图片") String url,
+							@HttpParam(name = "classify", type = HttpParamType.COMMON, description = "分类") String classify,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除",permissionName = "轮播管理信息管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改",  permissionName = "轮播管理信息管理")
+	public Boolean update(@NotNull @HttpParam(name = "carouselManagement", type = HttpParamType.COMMON, description = "轮播管理信息") CarouselManagement carouselManagement)throws ServiceException;
+
+	@HttpMethod(description = "查询", permissionName = "轮播管理信息管理")
+	public CarouselManagement get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表",  permissionName = "轮播管理信息管理")
+	public String export(
+								@HttpParam(name = "title", type = HttpParamType.COMMON, description = "标题") String title,
+							@HttpParam(name = "url", type = HttpParamType.COMMON, description = "轮播图片") String url,
+							@HttpParam(name = "classify", type = HttpParamType.COMMON, description = "分类") String classify,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 67 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/ICommonUserInfoService.java

@@ -0,0 +1,67 @@
+package com.iotechn.unimall.admin.api.tourism;
+
+
+import com.iotechn.unimall.data.domain.CommonUserInfo;
+import com.iotechn.unimall.core.annotation.HttpMethod;
+import com.iotechn.unimall.core.annotation.HttpOpenApi;
+import com.iotechn.unimall.core.annotation.HttpParam;
+import com.iotechn.unimall.core.annotation.HttpParamType;
+import com.iotechn.unimall.core.annotation.param.NotNull;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+
+/**
+ * 用户管理Service接口
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@HttpOpenApi(group = "admin.unimall.commonUserInfo", description = "用户管理")
+public interface ICommonUserInfoService{
+	@HttpMethod(description = "新增",  permissionName = "用户管理管理")
+	public Boolean add(@NotNull @HttpParam(name = "commonUserInfo", type = HttpParamType.COMMON, description = "用户管理") CommonUserInfo commonUserInfo)throws ServiceException;
+
+	@HttpMethod(description = "列表",  permissionName = "用户管理管理")
+	public Page<CommonUserInfo> list(
+								@HttpParam(name = "nickname", type = HttpParamType.COMMON, description = "昵称") String nickname,
+							@HttpParam(name = "password", type = HttpParamType.COMMON, description = "密码") String password,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "手机号") String phone,
+							@HttpParam(name = "realname", type = HttpParamType.COMMON, description = "真实姓名") String realname,
+							@HttpParam(name = "shareCard", type = HttpParamType.COMMON, description = "允许他人分享名片(1允许)") Long shareCard,
+							@HttpParam(name = "lookPage", type = HttpParamType.COMMON, description = "允许圈子成员查看主页(1允许)") Long lookPage,
+							@HttpParam(name = "autoAccept", type = HttpParamType.COMMON, description = "自动接受邀请(1是)") Long autoAccept,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "0.冻结 1.激活") Long status,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permissionName = "用户管理管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改",  permissionName = "用户管理管理")
+	public Boolean update(@NotNull @HttpParam(name = "commonUserInfo", type = HttpParamType.COMMON, description = "用户管理") CommonUserInfo commonUserInfo)throws ServiceException;
+
+	@HttpMethod(description = "查询", permissionName = "用户管理管理")
+	public CommonUserInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表",  permissionName = "用户管理管理")
+	public String export(
+								@HttpParam(name = "nickname", type = HttpParamType.COMMON, description = "昵称") String nickname,
+							@HttpParam(name = "password", type = HttpParamType.COMMON, description = "密码") String password,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "手机号") String phone,
+							@HttpParam(name = "realname", type = HttpParamType.COMMON, description = "真实姓名") String realname,
+							@HttpParam(name = "shareCard", type = HttpParamType.COMMON, description = "允许他人分享名片(1允许)") Long shareCard,
+							@HttpParam(name = "lookPage", type = HttpParamType.COMMON, description = "允许圈子成员查看主页(1允许)") Long lookPage,
+							@HttpParam(name = "autoAccept", type = HttpParamType.COMMON, description = "自动接受邀请(1是)") Long autoAccept,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "0.冻结 1.激活") Long status,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 124 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/impl/CarouselManagementServiceImpl.java

@@ -0,0 +1,124 @@
+package com.iotechn.unimall.admin.api.tourism.impl;
+
+import java.util.List;
+
+import org.apache.ibatis.session.RowBounds;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.util.ExcelUtil;
+import com.iotechn.unimall.data.mapper.CarouselManagementMapper;
+import com.iotechn.unimall.data.domain.CarouselManagement;
+import com.iotechn.unimall.admin.api.tourism.ICarouselManagementService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 轮播管理信息Service业务层处理
+ * 
+ * @author jlb
+ * @date 2023-05-31
+ */
+@Service
+public class CarouselManagementServiceImpl implements ICarouselManagementService{
+	@Autowired
+	private CarouselManagementMapper carouselManagementMapper;
+	
+	@Override
+	public Boolean add(CarouselManagement carouselManagement) throws ServiceException {
+		Date now = new Date();
+		carouselManagement.setGmtCreate(now);
+		carouselManagement.setGmtUpdate(now);
+		return carouselManagementMapper.insert(carouselManagement)>0;
+	}
+
+	@Override
+	public Page<CarouselManagement> list(String title,String url,String classify,String status,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CarouselManagement> wrapper = new EntityWrapper<CarouselManagement>();
+														if (!StringUtils.isEmpty(title)) {
+					wrapper.eq("title", title);
+				}
+												if (!StringUtils.isEmpty(url)) {
+					wrapper.eq("url", url);
+				}
+												if (!StringUtils.isEmpty(classify)) {
+					wrapper.eq("classify", classify);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							wrapper.eq("delete_flag", 0);
+		List<CarouselManagement> list = carouselManagementMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = carouselManagementMapper.selectCount(wrapper);
+		return new Page<CarouselManagement>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			CarouselManagement tmp =  carouselManagementMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				carouselManagementMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(CarouselManagement carouselManagement) throws ServiceException {
+		Date now = new Date();
+		carouselManagement.setGmtUpdate(now);
+		return carouselManagementMapper.updateById(carouselManagement)>0;
+	}
+
+	@Override
+	public CarouselManagement get(Long id) throws ServiceException {
+		return carouselManagementMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(String title,String url,String classify,String status,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CarouselManagement> wrapper = new EntityWrapper<CarouselManagement>();
+														if (!StringUtils.isEmpty(title)) {
+					wrapper.eq("title", title);
+				}
+												if (!StringUtils.isEmpty(url)) {
+					wrapper.eq("url", url);
+				}
+												if (!StringUtils.isEmpty(classify)) {
+					wrapper.eq("classify", classify);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							List<CarouselManagement> list = carouselManagementMapper.selectList(wrapper);
+		ExcelUtil<CarouselManagement> util = new ExcelUtil<CarouselManagement>(CarouselManagement.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 151 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/impl/CommonUserInfoServiceImpl.java

@@ -0,0 +1,151 @@
+package com.iotechn.unimall.admin.api.tourism.impl;
+
+import java.util.List;
+
+import com.iotechn.unimall.admin.api.tourism.ICommonUserInfoService;
+import org.apache.ibatis.session.RowBounds;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.util.ExcelUtil;
+import com.iotechn.unimall.data.mapper.CommonUserInfoMapper;
+import com.iotechn.unimall.data.domain.CommonUserInfo;
+import com.iotechn.unimall.data.model.Page;
+
+import java.util.Date;
+
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 用户管理Service业务层处理
+ *
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Service
+public class CommonUserInfoServiceImpl implements ICommonUserInfoService {
+    @Autowired
+    private CommonUserInfoMapper commonUserInfoMapper;
+
+    @Override
+    public Boolean add(CommonUserInfo commonUserInfo) throws ServiceException {
+        Date now = new Date();
+        commonUserInfo.setGmtCreate(now);
+        commonUserInfo.setGmtUpdate(now);
+        return commonUserInfoMapper.insert(commonUserInfo) > 0;
+    }
+
+    @Override
+    public Page<CommonUserInfo> list(String nickname, String password, String phone, String realname, Long shareCard, Long lookPage, Long autoAccept, Long status, Date gmtCreate, Date gmtUpdate, Long deleteFlag, Integer page, Integer limit) throws ServiceException {
+        Wrapper<CommonUserInfo> wrapper = new EntityWrapper<CommonUserInfo>();
+        if (!StringUtils.isEmpty(nickname)) {
+            wrapper.eq("nickname", nickname);
+        }
+        if (!StringUtils.isEmpty(password)) {
+            wrapper.eq("password", password);
+        }
+        if (!StringUtils.isEmpty(phone)) {
+            wrapper.eq("phone", phone);
+        }
+        if (!StringUtils.isEmpty(realname)) {
+            wrapper.eq("realname", realname);
+        }
+        if (!StringUtils.isEmpty(shareCard)) {
+            wrapper.eq("share_card", shareCard);
+        }
+        if (!StringUtils.isEmpty(lookPage)) {
+            wrapper.eq("look_page", lookPage);
+        }
+        if (!StringUtils.isEmpty(autoAccept)) {
+            wrapper.eq("auto_accept", autoAccept);
+        }
+        if (!StringUtils.isEmpty(status)) {
+            wrapper.eq("status", status);
+        }
+        if (!StringUtils.isEmpty(gmtCreate)) {
+            wrapper.eq("gmt_create", gmtCreate);
+        }
+        if (!StringUtils.isEmpty(gmtUpdate)) {
+            wrapper.eq("gmt_update", gmtUpdate);
+        }
+        if (!StringUtils.isEmpty(deleteFlag)) {
+            wrapper.eq("delete_flag", deleteFlag);
+        }
+        wrapper.eq("delete_flag", 0);
+        List<CommonUserInfo> list = commonUserInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+        Integer count = commonUserInfoMapper.selectCount(wrapper);
+        return new Page<CommonUserInfo>(list, page, limit, count);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(String id) {
+        String[] ids = String.valueOf(id).split(",");
+        for (String tt : ids) {
+            CommonUserInfo tmp = commonUserInfoMapper.selectById(Long.parseLong(tt));
+            if (tmp != null) {
+                tmp.setDeleteFlag(1L);
+                tmp.setGmtUpdate(new Date());
+                commonUserInfoMapper.updateById(tmp);
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public Boolean update(CommonUserInfo commonUserInfo) throws ServiceException {
+        Date now = new Date();
+        commonUserInfo.setGmtUpdate(now);
+        return commonUserInfoMapper.updateById(commonUserInfo) > 0;
+    }
+
+    @Override
+    public CommonUserInfo get(Long id) throws ServiceException {
+        return commonUserInfoMapper.selectById(id);
+    }
+
+    @Override
+    public String export(String nickname, String password, String phone, String realname, Long shareCard, Long lookPage, Long autoAccept, Long status, Date gmtCreate, Date gmtUpdate, Long deleteFlag, Integer page, Integer limit) throws ServiceException {
+        Wrapper<CommonUserInfo> wrapper = new EntityWrapper<CommonUserInfo>();
+        if (!StringUtils.isEmpty(nickname)) {
+            wrapper.eq("nickname", nickname);
+        }
+        if (!StringUtils.isEmpty(password)) {
+            wrapper.eq("password", password);
+        }
+        if (!StringUtils.isEmpty(phone)) {
+            wrapper.eq("phone", phone);
+        }
+        if (!StringUtils.isEmpty(realname)) {
+            wrapper.eq("realname", realname);
+        }
+        if (!StringUtils.isEmpty(shareCard)) {
+            wrapper.eq("share_card", shareCard);
+        }
+        if (!StringUtils.isEmpty(lookPage)) {
+            wrapper.eq("look_page", lookPage);
+        }
+        if (!StringUtils.isEmpty(autoAccept)) {
+            wrapper.eq("auto_accept", autoAccept);
+        }
+        if (!StringUtils.isEmpty(status)) {
+            wrapper.eq("status", status);
+        }
+        if (!StringUtils.isEmpty(gmtCreate)) {
+            wrapper.eq("gmt_create", gmtCreate);
+        }
+        if (!StringUtils.isEmpty(gmtUpdate)) {
+            wrapper.eq("gmt_update", gmtUpdate);
+        }
+        if (!StringUtils.isEmpty(deleteFlag)) {
+            wrapper.eq("delete_flag", deleteFlag);
+        }
+        List<CommonUserInfo> list = commonUserInfoMapper.selectList(wrapper);
+        ExcelUtil<CommonUserInfo> util = new ExcelUtil<CommonUserInfo>(CommonUserInfo.class);
+        return util.exportExcel(list, "操作日志");
+    }
+}

+ 1 - 1
unimall-admin/index.html

@@ -5,7 +5,7 @@
     <meta charset="utf-8">
     <meta name="renderer" content="webkit">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
-    <title>名片后台管理</title>
+    <title>旅游后台管理</title>
 </head>
 
 <body>

+ 73 - 0
unimall-admin/src/api/tourism/carouselManagement.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询轮播管理信息列表
+export function listCarouselManagement(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.tourism.carouselManagement',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询轮播管理信息详细
+export function getCarouselManagement(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.tourism.carouselManagement',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增轮播管理信息
+export function addCarouselManagement(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.tourism.carouselManagement',
+      _mt: 'add',
+      carouselManagement: data
+    }
+  })
+}
+
+// 修改轮播管理信息
+export function updateCarouselManagement(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.tourism.carouselManagement',
+      _mt: 'update',
+      carouselManagement: data
+    }
+  })
+}
+
+// 删除轮播管理信息
+export function delCarouselManagement(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.tourism.carouselManagement',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出轮播管理信息
+export function exportCarouselManagement(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.tourism.carouselManagement',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 360 - 0
unimall-admin/src/views/carouselManagement/index.vue

@@ -0,0 +1,360 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="标题" prop="title">
+        <el-input
+          v-model="queryParams.title"
+          placeholder="请输入标题"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="分类" prop="classify">
+        <el-input
+          v-model="queryParams.classify"
+          placeholder="请输入分类"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+        <el-form-item label="状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="" prop="gmtCreate">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.gmtCreate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="" prop="gmtUpdate">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.gmtUpdate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="删除标识" prop="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入删除标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['tourism:carouselManagement:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['tourism:carouselManagement:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['tourism:carouselManagement:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['tourism:carouselManagement:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="carouselManagementList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="标题" align="center" prop="title" />
+      <el-table-column label="轮播图片" align="center" prop="url" />
+      <el-table-column label="分类" align="center" prop="classify" />
+      <el-table-column label="状态" align="center" prop="status" />
+      <el-table-column label="" align="center" prop="gmtCreate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.gmtCreate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="" align="center" prop="gmtUpdate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.gmtUpdate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="删除标识" align="center" prop="deleteFlag" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['tourism:carouselManagement:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['tourism:carouselManagement:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改轮播管理信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="标题" prop="title">
+          <el-input v-model="form.title" placeholder="请输入标题" />
+        </el-form-item>
+        <el-form-item label="轮播图片" prop="url">
+          <el-input v-model="form.url" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="分类" prop="classify">
+          <el-input v-model="form.classify" placeholder="请输入分类" />
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-radio-group v-model="form.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="" prop="gmtCreate">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.gmtCreate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="" prop="gmtUpdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.gmtUpdate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="删除标识" prop="deleteFlag">
+          <el-input v-model="form.deleteFlag" placeholder="请输入删除标识" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listCarouselManagement, getCarouselManagement, delCarouselManagement, addCarouselManagement, updateCarouselManagement, exportCarouselManagement } from "@/api/tourism/carouselManagement";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 轮播管理信息表格数据
+      carouselManagementList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        title: undefined,
+        url: undefined,
+        classify: undefined,
+        status: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        url: [
+          { required: true, message: "轮播图片不能为空", trigger: "blur" }
+        ],        gmtCreate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        gmtUpdate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        deleteFlag: [
+          { required: true, message: "删除标识不能为空", trigger: "blur" }
+        ]      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询轮播管理信息列表 */
+    getList() {
+      this.loading = true;
+      listCarouselManagement(this.queryParams).then(response => {
+        this.carouselManagementList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        title: undefined,
+        url: undefined,
+        classify: undefined,
+        status: "0",
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加轮播管理信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids.join(',')
+      getCarouselManagement(id).then(response => {
+        this.form = response.data.data
+        this.open = true;
+        this.title = "修改轮播管理信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != undefined) {
+            updateCarouselManagement(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addCarouselManagement(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids.join(',')
+      this.$confirm('是否确认删除轮播管理信息编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delCarouselManagement(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有轮播管理信息数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportCarouselManagement(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 129 - 129
unimall-admin/src/views/dashboard/index.vue

@@ -71,136 +71,136 @@ export default {
     }
   },
   created() {
-    info().then(response => {
-      const orderChart = echarts.init(document.getElementById('orderChart'))
-      const sumChart = echarts.init(document.getElementById('sumChart'))
-      const areaChart = echarts.init(document.getElementById('areaChart'))
-      const channelChart = echarts.init(document.getElementById('channelChart'))
-      this.waitStockCount = response.data.data.waitStockCount
-      this.goodsCount = response.data.data.goodsCount
-      // 每日订单走势
-      orderChart.setOption({
-        title: { text: '7日订单' },
-        legend: {
-          data: ['订单数'],
-          right: 1
-        },
-        yAxis: [
-          {
-            name: '订单数',
-            type: 'value',
-            axisLine: {
-              show: false
-            },
-            axisTick: {
-              show: false
-            },
-            axisLabel: {
-              color: '#666',
-              fontSize: 12
-            }
-          }
-        ],
-        xAxis: {
-          axisTick: {
-            show: false
-          },
-          axisLabel: {
-            color: '#666',
-            fontSize: 12,
-            margin: 12
-          },
-          data: response.data.data.daysOrder[0]
-        },
-        series: [
-          {
-            name: '订单数',
-            yAxisIndex: 0,
-            data: response.data.data.daysOrder[1],
-            type: 'bar',
-            color: '#00B5FF',
-            barWidth: 30
-          }
-        ]
-      })
-      // 订单金额走势
-      sumChart.setOption({
-        title: { text: '7日成交金额' },
-        legend: {
-          data: ['订单数'],
-          right: 1
-        },
-        yAxis: [
-          {
-            name: '订单数',
-            type: 'value',
-            axisLine: {
-              show: false
-            },
-            axisTick: {
-              show: false
-            },
-            axisLabel: {
-              color: '#666',
-              fontSize: 12
-            }
-          }
-        ],
-        xAxis: {
-          axisTick: {
-            show: false
-          },
-          axisLabel: {
-            color: '#666',
-            fontSize: 12,
-            margin: 12
-          },
-          data: response.data.data.daysSum[0]
-        },
-        series: [
-          {
-            name: '订单数',
-            yAxisIndex: 0,
-            data: response.data.data.daysSum[1],
-            type: 'line',
-            color: '#20B2AA'
-          }
-        ]
-      })
-      // 地区饼图
-      areaChart.setOption({
-        title: { text: '订单地区分布' },
-        legend: {
-          data: ['地区分布'],
-          right: 1,
-          color: '#20B2AA'
-        },
-        series: [
-          {
-            type: 'pie',
-            name: '地区分布',
-            data: response.data.data.area
-          }
-        ]
-      })
-      // 渠道饼图
-      channelChart.setOption({
-        title: { text: '订单渠道分布' },
-        legend: {
-          data: ['渠道分布'],
-          right: 1,
-          color: '#20B2AA'
-        },
-        series: [
-          {
-            type: 'pie',
-            name: '地区分布',
+    // info().then(response => {
+    //   const orderChart = echarts.init(document.getElementById('orderChart'))
+    //   const sumChart = echarts.init(document.getElementById('sumChart'))
+    //   const areaChart = echarts.init(document.getElementById('areaChart'))
+    //   const channelChart = echarts.init(document.getElementById('channelChart'))
+    //   this.waitStockCount = response.data.data.waitStockCount
+    //   this.goodsCount = response.data.data.goodsCount
+    //   // 每日订单走势
+    //   orderChart.setOption({
+    //     title: { text: '7日订单' },
+    //     legend: {
+    //       data: ['订单数'],
+    //       right: 1
+    //     },
+    //     yAxis: [
+    //       {
+    //         name: '订单数',
+    //         type: 'value',
+    //         axisLine: {
+    //           show: false
+    //         },
+    //         axisTick: {
+    //           show: false
+    //         },
+    //         axisLabel: {
+    //           color: '#666',
+    //           fontSize: 12
+    //         }
+    //       }
+    //     ],
+    //     xAxis: {
+    //       axisTick: {
+    //         show: false
+    //       },
+    //       axisLabel: {
+    //         color: '#666',
+    //         fontSize: 12,
+    //         margin: 12
+    //       },
+    //       data: response.data.data.daysOrder[0]
+    //     },
+    //     series: [
+    //       {
+    //         name: '订单数',
+    //         yAxisIndex: 0,
+    //         data: response.data.data.daysOrder[1],
+    //         type: 'bar',
+    //         color: '#00B5FF',
+    //         barWidth: 30
+    //       }
+    //     ]
+    //   })
+    //   // 订单金额走势
+    //   sumChart.setOption({
+    //     title: { text: '7日成交金额' },
+    //     legend: {
+    //       data: ['订单数'],
+    //       right: 1
+    //     },
+    //     yAxis: [
+    //       {
+    //         name: '订单数',
+    //         type: 'value',
+    //         axisLine: {
+    //           show: false
+    //         },
+    //         axisTick: {
+    //           show: false
+    //         },
+    //         axisLabel: {
+    //           color: '#666',
+    //           fontSize: 12
+    //         }
+    //       }
+    //     ],
+    //     xAxis: {
+    //       axisTick: {
+    //         show: false
+    //       },
+    //       axisLabel: {
+    //         color: '#666',
+    //         fontSize: 12,
+    //         margin: 12
+    //       },
+    //       data: response.data.data.daysSum[0]
+    //     },
+    //     series: [
+    //       {
+    //         name: '订单数',
+    //         yAxisIndex: 0,
+    //         data: response.data.data.daysSum[1],
+    //         type: 'line',
+    //         color: '#20B2AA'
+    //       }
+    //     ]
+    //   })
+    //   // 地区饼图
+    //   areaChart.setOption({
+    //     title: { text: '订单地区分布' },
+    //     legend: {
+    //       data: ['地区分布'],
+    //       right: 1,
+    //       color: '#20B2AA'
+    //     },
+    //     series: [
+    //       {
+    //         type: 'pie',
+    //         name: '地区分布',
+    //         data: response.data.data.area
+    //       }
+    //     ]
+    //   })
+    //   // 渠道饼图
+    //   channelChart.setOption({
+    //     title: { text: '订单渠道分布' },
+    //     legend: {
+    //       data: ['渠道分布'],
+    //       right: 1,
+    //       color: '#20B2AA'
+    //     },
+    //     series: [
+    //       {
+    //         type: 'pie',
+    //         name: '地区分布',
 
-            data: response.data.data.channel
-          }
-        ]
-      })
-    })
+    //         data: response.data.data.channel
+    //       }
+    //     ]
+    //   })
+    // })
   },
   methods: {
     handleSetLineChartData(type) {

+ 1 - 1
unimall-admin/src/views/login/index.vue

@@ -11,7 +11,7 @@
           class="img"
           src="@/assets/avatar.png"
           alt="">
-        <p class="title">名片后台登录</p>
+        <p class="title">旅游后台登录</p>
       </div>
       <div class="login-border">
         <div class="login-main">

+ 24 - 43
unimall-data/src/main/java/com/iotechn/unimall/data/domain/CircleFriendsDetail.java → unimall-data/src/main/java/com/iotechn/unimall/data/domain/CarouselManagement.java

@@ -1,6 +1,5 @@
 package com.iotechn.unimall.data.domain;
 
-import com.iotechn.unimall.data.domain.SuperDO;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.iotechn.unimall.core.framework.aspectj.lang.annotaion.Excel;
@@ -14,54 +13,39 @@ import com.iotechn.unimall.core.util.StringUtils;
 import java.util.Date;
 
 /**
- * 记录朋友圈互动信息对象 circle_friends_detail
+ * 轮播管理信息对象 carousel_management
  * 
  * @author jlb
- * @date 2023-05-22
+ * @date 2023-05-31
  */
 @Data
-@TableName("circle_friends_detail")
-public class CircleFriendsDetail extends SuperDO {
+@TableName("carousel_management")
+public class CarouselManagement extends SuperDO{
     private static final long serialVersionUID = 1L;
 
     /**  */
     @TableId("id")
     private Long id;
 
-    /** 朋友圈id */
-    @Excel(name = "朋友圈id")
-    @TableField("circle_friends_id")
-    private Long circleFriendsId;
+    /** 标题 */
+    @Excel(name = "标题")
+    @TableField("title")
+    private String title;
 
-    /** 发表人id */
-    @Excel(name = "发表人id")
-    @TableField("common_id")
-    private Long commonId;
+    /** 轮播图片 */
+    @Excel(name = "轮播图片")
+    @TableField("url")
+    private String url;
 
-    /** 头像 */
-    @Excel(name = "头像")
-    @TableField("head")
-    private String head;
+    /** 分类 */
+    @Excel(name = "分类")
+    @TableField("classify")
+    private String classify;
 
-    /** 昵称 */
-    @Excel(name = "昵称")
-    @TableField("nickname")
-    private String nickname;
-
-    /** 评论内容 */
-    @Excel(name = "评论内容")
-    @TableField("comment_content")
-    private String commentContent;
-
-    /** 回复的评论id */
-    @Excel(name = "回复的评论id")
-    @TableField("comment_id")
-    private Long commentId;
-
-    /** 标识(1点赞2评论) */
-    @Excel(name = "标识(1点赞2评论)")
-    @TableField("interaction_flag")
-    private String interactionFlag;
+    /** 状态 */
+    @Excel(name = "状态")
+    @TableField("status")
+    private String status;
 
     /**  */
     @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
@@ -83,13 +67,10 @@ public class CircleFriendsDetail extends SuperDO {
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
             .append("id", getId())
-            .append("circleFriendsId", getCircleFriendsId())
-            .append("commonId", getCommonId())
-            .append("head", getHead())
-            .append("nickname", getNickname())
-            .append("commentContent", getCommentContent())
-            .append("commentId", getCommentId())
-            .append("interactionFlag", getInteractionFlag())
+            .append("title", getTitle())
+            .append("url", getUrl())
+            .append("classify", getClassify())
+            .append("status", getStatus())
             .append("gmtCreate", getGmtCreate())
             .append("gmtUpdate", getGmtUpdate())
             .append("deleteFlag", getDeleteFlag())

+ 13 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/mapper/CarouselManagementMapper.java

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper;
+
+import com.iotechn.unimall.data.domain.CarouselManagement;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 轮播管理信息Mapper接口
+ * 
+ * @author jlb
+ * @date 2023-05-31
+ */
+public interface CarouselManagementMapper extends BaseMapper<CarouselManagement>{
+
+}

+ 9 - 0
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/CarouselManagementMapper.xml

@@ -0,0 +1,9 @@
+<?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.iotechn.unimall.data.mapper.CarouselManagementMapper">
+    
+
+
+</mapper>

+ 1 - 1
unimall-launcher/src/main/java/com/iotechn/unimall/launcher/controller/CommonController.java

@@ -90,7 +90,7 @@ public class CommonController {
         response.reset();
         response.setHeader("Content-Disposition", "attachment; filename=\""+tables+".zip\"");
         response.setHeader("Access-Control-Allow-Credentials", "true");
-        response.setHeader("Access-Control-Allow-Origin", "http://localhost:9528");
+        response.setHeader("Access-Control-Allow-Origin", "http://192.168.110.138:9527");
         response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
         response.addHeader("Content-Length", "" + data.length);
         response.setContentType("application/octet-stream; charset=UTF-8");