commit 9429ce55039f0e3a67975cf8da97357d11f7f126
Author: DESKTOP-EUEHMTS\WXK <314315830@qq.com>
Date: Wed Mar 22 17:39:07 2023 +0800
init version
diff --git a/5575183_wx.szfinest.com_nginx.zip b/5575183_wx.szfinest.com_nginx.zip
new file mode 100644
index 0000000..62a39ac
Binary files /dev/null and b/5575183_wx.szfinest.com_nginx.zip differ
diff --git a/5592355_wx.sznewsoft.com_nginx.zip b/5592355_wx.sznewsoft.com_nginx.zip
new file mode 100644
index 0000000..090754c
Binary files /dev/null and b/5592355_wx.sznewsoft.com_nginx.zip differ
diff --git a/fenis-trip/fenis-trip.iml b/fenis-trip/fenis-trip.iml
new file mode 100644
index 0000000..a1668b8
--- /dev/null
+++ b/fenis-trip/fenis-trip.iml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fenis-trip/pom.xml b/fenis-trip/pom.xml
new file mode 100644
index 0000000..3813127
--- /dev/null
+++ b/fenis-trip/pom.xml
@@ -0,0 +1,74 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.2.9.RELEASE
+
+
+
+ com.hc
+ fenis-trip
+ pom
+ 0.0.1-SNAPSHOT
+ fenis-trip
+ Demo project for Spring Boot
+
+
+ trip-business
+ trip-core
+ trip-web
+
+
+
+ 11
+ 1.2.5
+ 2.1.4
+ 1.2.5
+ 4.1.5
+ [7.2.0, 7.2.99]
+ 3.3.0
+ 1.2.70
+ 4.9.9
+ 3.0.0
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+
+
+ com.spring4all
+ swagger-spring-boot-starter
+ 1.6.0.RELEASE
+
+
+
+
+
+
diff --git a/fenis-trip/trip-business/pom.xml b/fenis-trip/trip-business/pom.xml
new file mode 100644
index 0000000..119ea50
--- /dev/null
+++ b/fenis-trip/trip-business/pom.xml
@@ -0,0 +1,44 @@
+
+
+ 4.0.0
+
+ com.hc
+ fenis-trip
+ 0.0.1-SNAPSHOT
+
+
+ trip-business
+ 0.0.1-SNAPSHOT
+ trip-business
+ Demo project for Spring Boot
+
+
+ 11
+
+
+
+
+
+ com.hc
+ trip-core
+ ${project.version}
+
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ ${pagehelper.version}
+
+
+ mybatis-spring-boot-starter
+ org.mybatis.spring.boot
+
+
+
+
+
+
+
+
+
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/BannerMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/BannerMapper.java
new file mode 100644
index 0000000..79377d3
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/BannerMapper.java
@@ -0,0 +1,18 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.Banner;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 广告表
+ * (Banner)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-30 14:19:19
+ */
+
+@Repository
+public interface BannerMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/NewsMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/NewsMapper.java
new file mode 100644
index 0000000..e4a089e
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/NewsMapper.java
@@ -0,0 +1,18 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.News;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 新闻表
+ * (News)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-30 14:03:23
+ */
+
+@Repository
+public interface NewsMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/NewsTagMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/NewsTagMapper.java
new file mode 100644
index 0000000..3412dd4
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/NewsTagMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.NewsTag;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 新闻标签表(NewsTag)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-30 14:03:24
+ */
+
+@Repository
+public interface NewsTagMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/NewsTagRelaxMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/NewsTagRelaxMapper.java
new file mode 100644
index 0000000..50bf89b
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/NewsTagRelaxMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.NewsTagRelax;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * (NewsTagRelax)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-30 14:03:25
+ */
+
+@Repository
+public interface NewsTagRelaxMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/RolesMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/RolesMapper.java
new file mode 100644
index 0000000..82f8b1f
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/RolesMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.Roles;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * (Roles)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-30 15:08:18
+ */
+
+@Repository
+public interface RolesMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryMapper.java
new file mode 100644
index 0000000..91656c6
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.Scenery;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 景点表(Scenery)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-25 09:27:40
+ */
+
+@Repository
+public interface SceneryMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryPictureMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryPictureMapper.java
new file mode 100644
index 0000000..809a1d0
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryPictureMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.SceneryPicture;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 景点图片表(SceneryPicture)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-27 15:26:10
+ */
+
+@Repository
+public interface SceneryPictureMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryTagMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryTagMapper.java
new file mode 100644
index 0000000..43b9a07
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryTagMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.SceneryTag;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 景点标签(SceneryTag)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-27 15:26:10
+ */
+
+@Repository
+public interface SceneryTagMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryTicketsMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryTicketsMapper.java
new file mode 100644
index 0000000..a92f5ca
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryTicketsMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.SceneryTickets;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 景点门票表(SceneryTickets)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-25 09:34:29
+ */
+
+@Repository
+public interface SceneryTicketsMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryTicketsTypeMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryTicketsTypeMapper.java
new file mode 100644
index 0000000..b7e3bdb
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryTicketsTypeMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.SceneryTicketsType;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 门票类型表(SceneryTicketsType)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-25 09:39:56
+ */
+
+@Repository
+public interface SceneryTicketsTypeMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryVideoMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryVideoMapper.java
new file mode 100644
index 0000000..9cebca7
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/SceneryVideoMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.SceneryVideo;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 景点视频表(SceneryVideo)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-27 15:26:48
+ */
+
+@Repository
+public interface SceneryVideoMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserOrderDetailMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserOrderDetailMapper.java
new file mode 100644
index 0000000..80904e7
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserOrderDetailMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.UserOrderDetail;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 订单详情表(UserOrderDetail)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-30 17:01:28
+ */
+
+@Repository
+public interface UserOrderDetailMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserOrdersMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserOrdersMapper.java
new file mode 100644
index 0000000..b3f8233
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserOrdersMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.UserOrders;
+import org.springframework.stereotype.Repository;
+import com.hc.tripcore.utils.mapper.Mapper;
+
+/**
+ * 订单表(UserOrders)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-30 17:01:29
+ */
+
+@Repository
+public interface UserOrdersMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserShopMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserShopMapper.java
new file mode 100644
index 0000000..eee52f6
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserShopMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.UserShop;
+import org.springframework.stereotype.Repository;
+import com.hc.tripcore.utils.mapper.Mapper;
+
+/**
+ * 购物车表(UserShop)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-30 17:01:30
+ */
+
+@Repository
+public interface UserShopMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserTicketsMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserTicketsMapper.java
new file mode 100644
index 0000000..7506618
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UserTicketsMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.UserTickets;
+import org.springframework.stereotype.Repository;
+import com.hc.tripcore.utils.mapper.Mapper;
+
+/**
+ * 用户门票(UserTickets)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-30 17:01:30
+ */
+
+@Repository
+public interface UserTicketsMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UsersMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UsersMapper.java
new file mode 100644
index 0000000..994fddb
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UsersMapper.java
@@ -0,0 +1,27 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.Users;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * (Users)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-25 17:45:10
+ */
+
+@Repository
+public interface UsersMapper extends Mapper {
+
+ /**
+ * 通过用户openid 获取用户信息
+ *
+ * @param openId 微信用户标识
+ * @return 实例对象数组
+ */
+ List selectUserByOpenId(String openId);
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UsersRoleMapper.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UsersRoleMapper.java
new file mode 100644
index 0000000..51d332f
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/mapper/UsersRoleMapper.java
@@ -0,0 +1,17 @@
+package com.hc.tripbusiness.mapper;
+
+import com.hc.tripbusiness.model.UsersRole;
+import com.hc.tripcore.utils.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * (UsersRole)表数据库访问层
+ *
+ * @author java
+ * @since 2021-04-30 15:08:37
+ */
+
+@Repository
+public interface UsersRoleMapper extends Mapper {
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Banner.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Banner.java
new file mode 100644
index 0000000..04b6b22
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Banner.java
@@ -0,0 +1,74 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * 广告表
+ * (Banner)实体类
+ *
+ * @author java
+ * @since 2021-04-30 14:19:19
+ */
+
+@Data
+public class Banner implements Serializable {
+
+ private static final long serialVersionUID = 667839688154296150L;
+
+
+ /**
+ * ID主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "ID主键")
+ private Integer bannerId;
+
+ /**
+ * 主题
+ */
+ @ApiModelProperty(value = "主题", required = true)
+ @NotNull
+ private String bannerTitle;
+
+ /**
+ * 广告连接
+ */
+ @ApiModelProperty(value = "广告连接", required = true)
+ @NotNull
+ private String bannerUrl;
+
+ /**
+ * 索引
+ */
+ @ApiModelProperty(value = "索引")
+ private Integer bannerIndex;
+
+ /**
+ * 点击后跳转的目的链接
+ */
+ @ApiModelProperty(value = "点击后跳转的目的链接", required = true)
+ private String targetUrl;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/News.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/News.java
new file mode 100644
index 0000000..d5adadc
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/News.java
@@ -0,0 +1,69 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * 新闻表
+ * (News)实体类
+ *
+ * @author java
+ * @since 2021-04-30 14:03:22
+ */
+
+@Data
+public class News implements Serializable {
+
+ private static final long serialVersionUID = 235012938178936468L;
+
+
+ /**
+ * 新闻id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "新闻id")
+ private Integer newsId;
+
+ /**
+ * 标题
+ */
+ @ApiModelProperty(value = "标题", required = true)
+ @NotNull
+ private String newsTitle;
+
+ /**
+ * 标题配图
+ */
+ @ApiModelProperty(value = "标题配图", required = true)
+ @NotNull
+ private String newsLogo;
+
+ /**
+ * 新闻内容
+ */
+ @ApiModelProperty(value = "新闻内容", required = true)
+ @NotNull
+ private String newsContent;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/NewsTag.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/NewsTag.java
new file mode 100644
index 0000000..581db75
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/NewsTag.java
@@ -0,0 +1,54 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * 新闻标签表(NewsTag)实体类
+ *
+ * @author java
+ * @since 2021-04-30 14:03:24
+ */
+
+@Data
+public class NewsTag implements Serializable {
+
+ private static final long serialVersionUID = -39154458050657705L;
+
+
+ /**
+ * 主键id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键id")
+ private Integer tagId;
+
+ /**
+ * 类别名称
+ */
+ @ApiModelProperty(value = "类别名称", required = true)
+ @NotNull
+ private String tagName;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/NewsTagRelax.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/NewsTagRelax.java
new file mode 100644
index 0000000..8b9f5d7
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/NewsTagRelax.java
@@ -0,0 +1,61 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * (NewsTagRelax)实体类
+ *
+ * @author java
+ * @since 2021-04-30 14:03:25
+ */
+
+@Data
+public class NewsTagRelax implements Serializable {
+
+ private static final long serialVersionUID = 917744923319773742L;
+
+
+ /**
+ * 主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键")
+ private Integer newsTagRelaxId;
+
+ /**
+ * 标签id
+ */
+ @ApiModelProperty(value = "标签id", required = true)
+ @NotNull
+ private Integer tagId;
+
+ /**
+ * 新闻id
+ */
+ @ApiModelProperty(value = "新闻id", required = true)
+ @NotNull
+ private Integer newsId;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Roles.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Roles.java
new file mode 100644
index 0000000..1933ab9
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Roles.java
@@ -0,0 +1,42 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * (Roles)实体类
+ *
+ * @author java
+ * @since 2021-04-30 15:08:17
+ */
+
+@Data
+public class Roles implements Serializable {
+
+ private static final long serialVersionUID = -66181277016540076L;
+
+
+ /**
+ * 主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键")
+ private Integer id;
+
+ /**
+ * 角色名称
+ */
+ @ApiModelProperty(value = "角色名称", required = true)
+ @NotNull
+ private String name;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Scenery.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Scenery.java
new file mode 100644
index 0000000..262a84f
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Scenery.java
@@ -0,0 +1,109 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * 景点表(Scenery)实体类
+ *
+ * @author java
+ * @since 2021-04-25 09:27:39
+ */
+
+@Data
+@ApiModel(value = "景点表")
+public class Scenery implements Serializable {
+
+ private static final long serialVersionUID = 912947094192635315L;
+
+
+ /**
+ * 主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键")
+ private Integer sceneryId;
+
+ /**
+ * 景区名称
+ */
+ @ApiModelProperty(value = "景区名称", required = true)
+ @NotNull
+ private String sceneryName;
+
+ /**
+ * 景点公告
+ */
+ @ApiModelProperty(value = "景点公告", required = true)
+ private String sceneryNotes;
+
+ /**
+ * 景点排序
+ */
+ @ApiModelProperty(value = "景点排序")
+ private Integer sceneryIndex;
+
+ /**
+ * 景点介绍
+ */
+ @ApiModelProperty(value = "景点介绍", required = true)
+ private String sceneryIntroduce;
+
+ /**
+ * 景点Logo
+ */
+ @ApiModelProperty(value = "景点Logo", required = true)
+ private String sceneryLogo;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+
+ /**
+ * 开放时间
+ */
+ @ApiModelProperty(value = "开放时间")
+ private Long startTime;
+
+ /**
+ * 结束时间
+ */
+ @ApiModelProperty(value = "结束时间")
+ private Long endTime;
+
+ /**
+ * 联系电话
+ */
+ @ApiModelProperty(value = "联系电话")
+ private String phone;
+
+ /**
+ * 官网
+ */
+ @ApiModelProperty(value = "官网")
+ private String website;
+
+ /**
+ * 交通
+ */
+ @ApiModelProperty(value = "交通")
+ private String traffic;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryPicture.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryPicture.java
new file mode 100644
index 0000000..9d525e7
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryPicture.java
@@ -0,0 +1,79 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * 景点图片表(SceneryPicture)实体类
+ *
+ * @author java
+ * @since 2021-04-27 15:26:10
+ */
+
+@Data
+@ApiModel(value = "景点图片表")
+public class SceneryPicture implements Serializable {
+
+ private static final long serialVersionUID = -40027829476880747L;
+
+
+ /**
+ * 主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键")
+ private Integer sceneryPictureId;
+
+ /**
+ * 图片名称
+ */
+ @ApiModelProperty(value = "图片名称", required = true)
+ private String pictureName;
+
+ /**
+ * 图片地址
+ */
+ @ApiModelProperty(value = "图片地址", required = true)
+ private String pictureUrl;
+
+ /**
+ * 图片介绍
+ */
+ @ApiModelProperty(value = "图片介绍", required = true)
+ private String pictureIntroduce;
+
+ /**
+ * 图片排序
+ */
+ @ApiModelProperty(value = "图片排序")
+ private Integer pictureIndex;
+
+ /**
+ * 景区id
+ */
+ @ApiModelProperty(value = "景区id", required = true)
+ @NotNull
+ private Integer sceneryId;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryTag.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryTag.java
new file mode 100644
index 0000000..8410d32
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryTag.java
@@ -0,0 +1,55 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.persistence.Id;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * 景点标签(SceneryTag)实体类
+ *
+ * @author java
+ * @since 2021-04-27 15:26:10
+ */
+
+@Data
+@ApiModel(value = "景点标签表")
+public class SceneryTag implements Serializable {
+
+ private static final long serialVersionUID = -57206923209950362L;
+
+
+ /**
+ * 主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键")
+ private Integer sceneryTagId;
+
+ /**
+ * 景区标签
+ */
+ @ApiModelProperty(value = "景区标签", required = true)
+ @NotNull
+ private String tagName;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryTickets.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryTickets.java
new file mode 100644
index 0000000..7675c15
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryTickets.java
@@ -0,0 +1,93 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.persistence.Id;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * 景点门票表(SceneryTickets)实体类
+ *
+ * @author java
+ * @since 2021-04-25 09:34:29
+ */
+
+@Data
+@ApiModel(value = "门票表")
+public class SceneryTickets implements Serializable {
+
+ private static final long serialVersionUID = -56795734829011871L;
+
+
+ /**
+ * 主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键", required = true)
+ private Integer sceneryTicketId;
+
+ /**
+ * 景区门票类型
+ */
+ @ApiModelProperty(value = "景区门票类型", required = true)
+ @NotNull
+ private Integer ticketsTypeId;
+
+ /**
+ * 门票名字
+ */
+ @ApiModelProperty(value = "门票名字", required = true)
+ private String ticketsName;
+
+ /**
+ * 门票价格
+ */
+ @ApiModelProperty(value = "门票价格", required = true)
+ private Double ticketsPrice;
+
+ /**
+ * 门票介绍
+ */
+ @ApiModelProperty(value = "门票介绍", required = true)
+ private String ticketIntroduce;
+
+ /**
+ * 门票logo
+ */
+ @ApiModelProperty(value = "门票logo", required = true)
+ private String ticketsLogo;
+
+ /**
+ * 景区id
+ */
+ @ApiModelProperty(value = "景区id", required = true)
+ @NotNull
+ private Integer sceneryId;
+
+ /**
+ * 销售数量
+ */
+ @ApiModelProperty(value = "销售数量 ", required = true)
+ private Integer ticketSellNum;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryTicketsType.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryTicketsType.java
new file mode 100644
index 0000000..7a26459
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryTicketsType.java
@@ -0,0 +1,56 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * 门票类型表(SceneryTicketsType)实体类
+ *
+ * @author java
+ * @since 2021-04-25 09:39:56
+ */
+
+@Data
+@ApiModel(value = "门票类型表")
+public class SceneryTicketsType implements Serializable {
+
+ private static final long serialVersionUID = -56522778678792842L;
+
+
+ /**
+ * 主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键")
+ private Integer ticketsTypeId;
+
+ /**
+ * 门票类型名称
+ */
+ @ApiModelProperty(value = "门票类型名称", required = true)
+ @NotNull
+ private String ticketName;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryVideo.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryVideo.java
new file mode 100644
index 0000000..2d8bf66
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/SceneryVideo.java
@@ -0,0 +1,81 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.persistence.Id;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * 景点视频表(SceneryVideo)实体类
+ *
+ * @author java
+ * @since 2021-04-27 15:26:47
+ */
+
+@Data
+@ApiModel(value = "景点视频表")
+public class SceneryVideo implements Serializable {
+
+ private static final long serialVersionUID = -13473191696203048L;
+
+
+ /**
+ * 主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键")
+ private Integer sceneryVideoId;
+
+ /**
+ * 视频名称
+ */
+ @ApiModelProperty(value = "视频名称", required = true)
+ @NotNull
+ private String videoName;
+
+ /**
+ * 视频介绍
+ */
+ @ApiModelProperty(value = "视频介绍", required = true)
+ private String videoIntroduce;
+
+ /**
+ * 排序字段
+ */
+ @ApiModelProperty(value = "排序字段")
+ private Integer videoIndex;
+
+ /**
+ * 资源地址
+ */
+ @ApiModelProperty(value = "资源地址", required = true)
+ private String videoUrl;
+
+ /**
+ * 外键
+ */
+ @ApiModelProperty(value = "外键", required = true)
+ @NotNull
+ private Integer sceneryId;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserOrderDetail.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserOrderDetail.java
new file mode 100644
index 0000000..12957fa
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserOrderDetail.java
@@ -0,0 +1,64 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+
+/**
+ * 订单详情表(UserOrderDetail)实体类
+ *
+ * @author java
+ * @since 2021-04-30 17:01:27
+ */
+
+@Data
+public class UserOrderDetail implements Serializable {
+
+ private static final long serialVersionUID = 884717817060295517L;
+
+
+ /**
+ * 主键id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键id")
+ private Integer orderDetailId;
+
+ /**
+ * 订单id
+ */
+ @ApiModelProperty(value = "订单id", required = true)
+ private Integer orderId;
+
+ /**
+ * 门票id
+ */
+ @ApiModelProperty(value = "门票id", required = true)
+ private Integer sceneryTicketId;
+
+ /**
+ * 购买数量
+ */
+ @ApiModelProperty(value = "购买数量", required = true)
+ private Integer num;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserOrders.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserOrders.java
new file mode 100644
index 0000000..d181d8e
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserOrders.java
@@ -0,0 +1,113 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import tk.mybatis.mapper.annotation.Version;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+
+/**
+ * 订单表(UserOrders)实体类
+ *
+ * @author java
+ * @since 2021-04-30 17:01:29
+ */
+
+@Data
+public class UserOrders implements Serializable {
+
+ private static final long serialVersionUID = 654720203617863422L;
+
+
+ /**
+ * 主键id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键id")
+ private Integer ordersId;
+
+ /**
+ * 订单号
+ */
+ @ApiModelProperty(value = "订单号", required = true)
+ private String orderNo;
+
+ /**
+ * 用户id
+ */
+ @ApiModelProperty(value = "用户id", required = true)
+ private Integer userId;
+
+ /**
+ * 商品介绍
+ */
+ @ApiModelProperty(value = "商品介绍", required = true)
+ private String body;
+
+ /**
+ * 订单名称
+ */
+ @ApiModelProperty(value = "订单名称", required = true)
+ private String subject;
+
+ /**
+ * 订单总金额
+ */
+ @ApiModelProperty(value = "订单总金额", required = true)
+ private Double totalAmount;
+
+ /**
+ * 订单状态
+ */
+ @ApiModelProperty(value = "订单状态", required = true)
+ private Integer orderStatus;
+
+ /**
+ * 是否删除
+ */
+ @ApiModelProperty(value = "是否删除", required = true)
+ private Integer isDe;
+
+ /**
+ * 支付宝交易号
+ */
+ @ApiModelProperty(value = "支付宝交易号", required = true)
+ private String aliTradeNo;
+
+ /**
+ * 微信交易号
+ */
+ @ApiModelProperty(value = "微信交易号", required = true)
+ private String wxTradeNo;
+
+ /**
+ * 发票id
+ */
+ @ApiModelProperty(value = "发票id", required = true)
+ private Integer userInvoicesId;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+
+ /**
+ * 乐观锁
+ */
+ @ApiModelProperty(value = "乐观锁")
+ @Version
+ private Integer version;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserShop.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserShop.java
new file mode 100644
index 0000000..783137b
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserShop.java
@@ -0,0 +1,64 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+
+/**
+ * 购物车表(UserShop)实体类
+ *
+ * @author java
+ * @since 2021-04-30 17:01:30
+ */
+
+@Data
+public class UserShop implements Serializable {
+
+ private static final long serialVersionUID = -18437284989870592L;
+
+
+ /**
+ * 主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键")
+ private Integer userShopId;
+
+ /**
+ * 用户id
+ */
+ @ApiModelProperty(value = "用户id", required = true)
+ private Integer userId;
+
+ /**
+ * 门票id
+ */
+ @ApiModelProperty(value = "门票id", required = true)
+ private Integer sceneryTicketId;
+
+ /**
+ * 数量id
+ */
+ @ApiModelProperty(value = "数量id", required = true)
+ private Integer num;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserTickets.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserTickets.java
new file mode 100644
index 0000000..ce87296
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UserTickets.java
@@ -0,0 +1,102 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+import tk.mybatis.mapper.annotation.Version;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+
+/**
+ * 用户门票(UserTickets)实体类
+ *
+ * @author java
+ * @since 2021-04-30 17:01:30
+ */
+
+@Data
+public class UserTickets implements Serializable {
+
+ private static final long serialVersionUID = 689996508632270417L;
+
+
+ /**
+ * 主键id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键id")
+ private Integer userTicketsId;
+
+ /**
+ * 门票id
+ */
+ @ApiModelProperty(value = "门票id", required = true)
+ private String sceneryTicketId;
+
+ /**
+ * 票密码(保留)
+ */
+ @ApiModelProperty(value = "票密码(保留)", required = true)
+ private String ticketsPass;
+
+ /**
+ * 票号
+ */
+ @ApiModelProperty(value = "票号", required = true)
+ private String ticketsNo;
+
+ /**
+ * 二维码地址
+ */
+ @ApiModelProperty(value = "二维码地址", required = true)
+ private String ticketsCode;
+
+ /**
+ * 门票得有效期时间
+ */
+ @ApiModelProperty(value = "门票得有效期时间", required = true)
+ private Long ticketsTime;
+
+ /**
+ * 用户id
+ */
+ @ApiModelProperty(value = "用户id", required = true)
+ private Integer userId;
+
+ /**
+ * 是否使用
+ */
+ @ApiModelProperty(value = "是否使用", required = true)
+ private Boolean isUse;
+
+ /**
+ * 使用时间戳
+ */
+ @ApiModelProperty(value = "使用时间戳", required = true)
+ private Long usedTime;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Long createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty(value = "修改时间")
+ private Long updateTime;
+
+ /**
+ * 乐观锁
+ */
+ @ApiModelProperty(value = "乐观锁")
+ @Version
+ private Integer version;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Users.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Users.java
new file mode 100644
index 0000000..57ffb72
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/Users.java
@@ -0,0 +1,71 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+
+/**
+ * (Users)实体类
+ *
+ * @author java
+ * @since 2021-04-27 14:47:03
+ */
+
+@Data
+@ApiModel(value = "用户表")
+public class Users implements Serializable {
+
+ private static final long serialVersionUID = 942617439502094031L;
+
+
+ /**
+ * 主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+ /**
+ * 用户名
+ */
+ @ApiModelProperty(value = "用户名")
+ private String username;
+
+ /**
+ * 密码
+ */
+ @ApiModelProperty(value = "密码")
+ private String password;
+
+ /**
+ * 微信用户标识
+ */
+ @ApiModelProperty(value = "微信用户标识", required = true)
+ private String openid;
+
+ /**
+ * 用户头像
+ */
+ @ApiModelProperty(value = "用户头像")
+ private String userLogo;
+
+ /**
+ * 社区昵称
+ */
+ @ApiModelProperty(value = "社区昵称")
+ private String nickname;
+
+ /**
+ * 性别
+ */
+ @ApiModelProperty(value = "性别")
+ private String gender;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UsersRole.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UsersRole.java
new file mode 100644
index 0000000..c09c79d
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/UsersRole.java
@@ -0,0 +1,49 @@
+package com.hc.tripbusiness.model;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * (UsersRole)实体类
+ *
+ * @author java
+ * @since 2021-04-30 15:08:37
+ */
+
+@Data
+public class UsersRole implements Serializable {
+
+ private static final long serialVersionUID = -33538509975795305L;
+
+
+ /**
+ * 主键
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "主键")
+ private Integer id;
+
+ /**
+ * 角色信息
+ */
+ @ApiModelProperty(value = "角色信息", required = true)
+ @NotNull
+ private Integer roleId;
+
+ /**
+ * 用户信息
+ */
+ @ApiModelProperty(value = "用户信息", required = true)
+ @NotNull
+ private Integer userId;
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/jwt/GenerateAuthToken.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/jwt/GenerateAuthToken.java
new file mode 100644
index 0000000..6436ecb
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/jwt/GenerateAuthToken.java
@@ -0,0 +1,57 @@
+package com.hc.tripbusiness.model.jwt;
+
+import com.hc.tripbusiness.model.Users;
+import com.hc.tripbusiness.model.login.AccessEntity;
+import com.hc.tripbusiness.model.login.AuthEntity;
+import com.hc.tripbusiness.model.login.TokenEntity;
+import com.hc.tripcore.utils.redis.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.util.SerializationUtils;
+
+import java.util.Objects;
+
+@Slf4j
+@Component
+public class GenerateAuthToken {
+
+ private final RedisUtil redisUtil;
+
+ @Autowired
+ public GenerateAuthToken(RedisUtil redisUtil) {
+ this.redisUtil = redisUtil;
+ }
+
+ public AccessEntity generateToken(AuthEntity auth, Users user) {
+
+ AccessEntity accessEntity = new AccessEntity();
+ accessEntity.setAuth(auth);
+ TokenEntity tokenEntity = new TokenEntity();
+ // 默认超时 8 小时
+ tokenEntity.setExpires(60 * 60 * 8);
+ String token = JWTUtil.sign(auth.getUserName(), auth.getPassword());
+ tokenEntity.setId(token);
+
+
+ accessEntity.setToken(tokenEntity);
+ String accessEntityStr = null;
+ try {
+ accessEntityStr = new String(Objects.requireNonNull(SerializationUtils.serialize(accessEntity)));
+ } catch (Exception e) {
+ log.warn("{}-{}用户登录出错", auth.getUserName(), auth.getPassword());
+ }
+ // 写入到 redis
+ redisUtil.set(accessEntity.getToken().getId(),
+ accessEntityStr,
+ accessEntity.getToken().getExpires());
+
+ if (user != null) {
+ tokenEntity.setPermissionLevel(4);
+ accessEntity.setUser(user);
+ }
+
+ log.info("用户登录成功 user={}", auth.getUserName());
+ return accessEntity;
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/jwt/JWTUtil.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/jwt/JWTUtil.java
new file mode 100644
index 0000000..a20392d
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/jwt/JWTUtil.java
@@ -0,0 +1,74 @@
+package com.hc.tripbusiness.model.jwt;
+
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.JWTVerifier;
+import com.auth0.jwt.algorithms.Algorithm;
+import com.auth0.jwt.exceptions.JWTDecodeException;
+import com.auth0.jwt.interfaces.DecodedJWT;
+import org.springframework.stereotype.Component;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+
+@Component
+public class JWTUtil {
+
+ // 过期时间8小时0分钟
+
+ private static final long EXPIRE_TIME = 8 * 60 * 60 * 1000 ;
+
+ /**
+ * 校验token是否正确
+ *
+ * @param token 密钥
+ * @param secret 用户的密码
+ * @return 是否正确
+ */
+ public static boolean verify(String token, String userName, String secret) {
+ try {
+ Algorithm algorithm = Algorithm.HMAC256(secret);
+ JWTVerifier verifier = JWT.require(algorithm)
+ .withClaim("userName", userName)
+ .build();
+ DecodedJWT jwt = verifier.verify(token);
+ return true;
+ } catch (Exception exception) {
+ return false;
+ }
+ }
+
+ /**
+ * 获得token中的信息无需secret解密也能获得
+ *
+ * @return token中包含的用户名
+ */
+ public static String getUserName(String token) {
+ try {
+ DecodedJWT jwt = JWT.decode(token);
+ return jwt.getClaim("userName").asString();
+ } catch (JWTDecodeException e) {
+ return null;
+ }
+ }
+
+ /**
+ * 生成签名,2小时后过期
+ *
+ * @param userName 用户名
+ * @param secret 用户的密码
+ * @return 加密的token
+ */
+ public static String sign(String userName, String secret) {
+ try {
+ Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME);
+ Algorithm algorithm = Algorithm.HMAC256(secret);
+ // 附带userName信息
+ return JWT.create()
+ .withClaim("userName", userName)
+ .withExpiresAt(date)
+ .sign(algorithm);
+ } catch (UnsupportedEncodingException e) {
+ return null;
+ }
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/login/AccessEntity.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/login/AccessEntity.java
new file mode 100644
index 0000000..755147a
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/login/AccessEntity.java
@@ -0,0 +1,31 @@
+package com.hc.tripbusiness.model.login;
+
+import com.hc.tripbusiness.model.Users;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@ApiModel
+@Data
+public class AccessEntity implements Serializable{
+
+ /**
+ * 序列化标识
+ */
+ private static final long serialVersionUID = -5164168823800497252L;
+
+ @ApiModelProperty(value = "用户信息")
+ private AuthEntity auth;
+
+ @ApiModelProperty(value = "token",example = "e781d000-0498-46d3-90df-96edfd95bcd6")
+ private TokenEntity token;
+
+ @ApiModelProperty(value = "user")
+ private Users user;
+
+// @ApiModelProperty(value = "userAdmin")
+// private UserAdmin userAdmin;
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/login/AuthEntity.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/login/AuthEntity.java
new file mode 100644
index 0000000..c4c15a5
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/login/AuthEntity.java
@@ -0,0 +1,23 @@
+package com.hc.tripbusiness.model.login;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+@Data
+public class AuthEntity implements Serializable {
+
+ private static final long serialVersionUID = -9061398570055647081L;
+
+ @NotNull(message = "用户名不可以为空")
+ private String userName;
+
+ @NotNull(message = "密码不可以为空")
+ private String password;
+
+ @NotNull(message = "登录类型不可以为空")
+ private Integer loginType;
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/login/TokenEntity.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/login/TokenEntity.java
new file mode 100644
index 0000000..c1c773d
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/model/login/TokenEntity.java
@@ -0,0 +1,23 @@
+package com.hc.tripbusiness.model.login;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class TokenEntity implements Serializable{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -6482495805136843397L;
+
+ private String id; // token的ID
+
+ private long expires; // 过期时间
+
+ //1,2,3d对应后台123级管理员,4作为新增的前台用户
+
+ private Integer permissionLevel; // 权限级别
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/BannerService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/BannerService.java
new file mode 100644
index 0000000..9c95e55
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/BannerService.java
@@ -0,0 +1,61 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.Banner;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 广告表
+ * (Banner)表服务接口
+ *
+ * @author java
+ * @since 2021-04-30 14:19:19
+ */
+
+@Component
+public interface BannerService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param bannerId 主键
+ * @return 实例对象
+ */
+ Banner queryById(Integer bannerId);
+
+ /**
+ * 新增数据
+ *
+ * @param banner 实例对象
+ * @return 实例对象
+ */
+ Banner insert(Banner banner);
+
+ /**
+ * 修改数据
+ *
+ * @param banner 实例对象
+ * @return 实例对象
+ */
+ Banner update(Banner banner);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param bannerId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer bannerId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/NewsService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/NewsService.java
new file mode 100644
index 0000000..618b6ab
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/NewsService.java
@@ -0,0 +1,61 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.News;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 新闻表
+ * (News)表服务接口
+ *
+ * @author java
+ * @since 2021-04-30 14:03:23
+ */
+
+@Component
+public interface NewsService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param newsId 主键
+ * @return 实例对象
+ */
+ News queryById(Integer newsId);
+
+ /**
+ * 新增数据
+ *
+ * @param news 实例对象
+ * @return 实例对象
+ */
+ News insert(News news);
+
+ /**
+ * 修改数据
+ *
+ * @param news 实例对象
+ * @return 实例对象
+ */
+ News update(News news);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param newsId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer newsId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/NewsTagRelaxService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/NewsTagRelaxService.java
new file mode 100644
index 0000000..2e86ac3
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/NewsTagRelaxService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.NewsTagRelax;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * (NewsTagRelax)表服务接口
+ *
+ * @author java
+ * @since 2021-04-30 14:03:25
+ */
+
+@Component
+public interface NewsTagRelaxService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param newsTagRelaxId 主键
+ * @return 实例对象
+ */
+ NewsTagRelax queryById(Integer newsTagRelaxId);
+
+ /**
+ * 新增数据
+ *
+ * @param newsTagRelax 实例对象
+ * @return 实例对象
+ */
+ NewsTagRelax insert(NewsTagRelax newsTagRelax);
+
+ /**
+ * 修改数据
+ *
+ * @param newsTagRelax 实例对象
+ * @return 实例对象
+ */
+ NewsTagRelax update(NewsTagRelax newsTagRelax);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param newsTagRelaxId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer newsTagRelaxId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/NewsTagService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/NewsTagService.java
new file mode 100644
index 0000000..abe8170
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/NewsTagService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.NewsTag;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 新闻标签表(NewsTag)表服务接口
+ *
+ * @author java
+ * @since 2021-04-30 14:03:24
+ */
+
+@Component
+public interface NewsTagService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param tagId 主键
+ * @return 实例对象
+ */
+ NewsTag queryById(Integer tagId);
+
+ /**
+ * 新增数据
+ *
+ * @param newsTag 实例对象
+ * @return 实例对象
+ */
+ NewsTag insert(NewsTag newsTag);
+
+ /**
+ * 修改数据
+ *
+ * @param newsTag 实例对象
+ * @return 实例对象
+ */
+ NewsTag update(NewsTag newsTag);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param tagId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer tagId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/RolesService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/RolesService.java
new file mode 100644
index 0000000..2bc3288
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/RolesService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.Roles;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * (Roles)表服务接口
+ *
+ * @author java
+ * @since 2021-04-30 15:08:18
+ */
+
+@Component
+public interface RolesService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ Roles queryById(Integer id);
+
+ /**
+ * 新增数据
+ *
+ * @param roles 实例对象
+ * @return 实例对象
+ */
+ Roles insert(Roles roles);
+
+ /**
+ * 修改数据
+ *
+ * @param roles 实例对象
+ * @return 实例对象
+ */
+ Roles update(Roles roles);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer id);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryPictureService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryPictureService.java
new file mode 100644
index 0000000..08fb34e
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryPictureService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.SceneryPicture;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 景点图片表(SceneryPicture)表服务接口
+ *
+ * @author java
+ * @since 2021-04-27 15:26:10
+ */
+
+@Component
+public interface SceneryPictureService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param sceneryPictureId 主键
+ * @return 实例对象
+ */
+ SceneryPicture queryById(Integer sceneryPictureId);
+
+ /**
+ * 新增数据
+ *
+ * @param sceneryPicture 实例对象
+ * @return 实例对象
+ */
+ SceneryPicture insert(SceneryPicture sceneryPicture);
+
+ /**
+ * 修改数据
+ *
+ * @param sceneryPicture 实例对象
+ * @return 实例对象
+ */
+ SceneryPicture update(SceneryPicture sceneryPicture);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param sceneryPictureId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer sceneryPictureId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryService.java
new file mode 100644
index 0000000..b8bfe5f
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.Scenery;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 景点表(Scenery)表服务接口
+ *
+ * @author java
+ * @since 2021-04-25 09:27:40
+ */
+
+@Component
+public interface SceneryService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param sceneryId 主键
+ * @return 实例对象
+ */
+ Scenery queryById(Integer sceneryId);
+
+ /**
+ * 新增数据
+ *
+ * @param scenery 实例对象
+ * @return 实例对象
+ */
+ Scenery insert(Scenery scenery);
+
+ /**
+ * 修改数据
+ *
+ * @param scenery 实例对象
+ * @return 实例对象
+ */
+ Scenery update(Scenery scenery);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param sceneryId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer sceneryId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryTagService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryTagService.java
new file mode 100644
index 0000000..c93c78b
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryTagService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.SceneryTag;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 景点标签(SceneryTag)表服务接口
+ *
+ * @author java
+ * @since 2021-04-27 15:26:11
+ */
+
+@Component
+public interface SceneryTagService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param sceneryTagId 主键
+ * @return 实例对象
+ */
+ SceneryTag queryById(Integer sceneryTagId);
+
+ /**
+ * 新增数据
+ *
+ * @param sceneryTag 实例对象
+ * @return 实例对象
+ */
+ SceneryTag insert(SceneryTag sceneryTag);
+
+ /**
+ * 修改数据
+ *
+ * @param sceneryTag 实例对象
+ * @return 实例对象
+ */
+ SceneryTag update(SceneryTag sceneryTag);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param sceneryTagId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer sceneryTagId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryTicketsService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryTicketsService.java
new file mode 100644
index 0000000..041f31c
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryTicketsService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.SceneryTickets;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 景点门票表(SceneryTickets)表服务接口
+ *
+ * @author java
+ * @since 2021-04-25 09:34:29
+ */
+
+@Component
+public interface SceneryTicketsService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param sceneryTicketId 主键
+ * @return 实例对象
+ */
+ SceneryTickets queryById(Integer sceneryTicketId);
+
+ /**
+ * 新增数据
+ *
+ * @param sceneryTickets 实例对象
+ * @return 实例对象
+ */
+ SceneryTickets insert(SceneryTickets sceneryTickets);
+
+ /**
+ * 修改数据
+ *
+ * @param sceneryTickets 实例对象
+ * @return 实例对象
+ */
+ SceneryTickets update(SceneryTickets sceneryTickets);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param sceneryTicketId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer sceneryTicketId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryTicketsTypeService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryTicketsTypeService.java
new file mode 100644
index 0000000..e90c961
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryTicketsTypeService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.SceneryTicketsType;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 门票类型表(SceneryTicketsType)表服务接口
+ *
+ * @author java
+ * @since 2021-04-25 09:39:56
+ */
+
+@Component
+public interface SceneryTicketsTypeService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param ticketsTypeId 主键
+ * @return 实例对象
+ */
+ SceneryTicketsType queryById(Integer ticketsTypeId);
+
+ /**
+ * 新增数据
+ *
+ * @param sceneryTicketsType 实例对象
+ * @return 实例对象
+ */
+ SceneryTicketsType insert(SceneryTicketsType sceneryTicketsType);
+
+ /**
+ * 修改数据
+ *
+ * @param sceneryTicketsType 实例对象
+ * @return 实例对象
+ */
+ SceneryTicketsType update(SceneryTicketsType sceneryTicketsType);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param ticketsTypeId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer ticketsTypeId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryVideoService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryVideoService.java
new file mode 100644
index 0000000..0ae28a5
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/SceneryVideoService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.SceneryVideo;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 景点视频表(SceneryVideo)表服务接口
+ *
+ * @author java
+ * @since 2021-04-27 15:26:48
+ */
+
+@Component
+public interface SceneryVideoService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param sceneryVideoId 主键
+ * @return 实例对象
+ */
+ SceneryVideo queryById(Integer sceneryVideoId);
+
+ /**
+ * 新增数据
+ *
+ * @param sceneryVideo 实例对象
+ * @return 实例对象
+ */
+ SceneryVideo insert(SceneryVideo sceneryVideo);
+
+ /**
+ * 修改数据
+ *
+ * @param sceneryVideo 实例对象
+ * @return 实例对象
+ */
+ SceneryVideo update(SceneryVideo sceneryVideo);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param sceneryVideoId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer sceneryVideoId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserOrderDetailService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserOrderDetailService.java
new file mode 100644
index 0000000..2cf8d57
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserOrderDetailService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.UserOrderDetail;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 订单详情表(UserOrderDetail)表服务接口
+ *
+ * @author java
+ * @since 2021-04-30 17:01:28
+ */
+
+@Component
+public interface UserOrderDetailService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param orderDetailId 主键
+ * @return 实例对象
+ */
+ UserOrderDetail queryById(Integer orderDetailId);
+
+ /**
+ * 新增数据
+ *
+ * @param userOrderDetail 实例对象
+ * @return 实例对象
+ */
+ UserOrderDetail insert(UserOrderDetail userOrderDetail);
+
+ /**
+ * 修改数据
+ *
+ * @param userOrderDetail 实例对象
+ * @return 实例对象
+ */
+ UserOrderDetail update(UserOrderDetail userOrderDetail);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param orderDetailId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer orderDetailId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserOrdersService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserOrdersService.java
new file mode 100644
index 0000000..2bfd006
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserOrdersService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.UserOrders;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 订单表(UserOrders)表服务接口
+ *
+ * @author java
+ * @since 2021-04-30 17:01:29
+ */
+
+@Component
+public interface UserOrdersService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param ordersId 主键
+ * @return 实例对象
+ */
+ UserOrders queryById(Integer ordersId);
+
+ /**
+ * 新增数据
+ *
+ * @param userOrders 实例对象
+ * @return 实例对象
+ */
+ UserOrders insert(UserOrders userOrders);
+
+ /**
+ * 修改数据
+ *
+ * @param userOrders 实例对象
+ * @return 实例对象
+ */
+ UserOrders update(UserOrders userOrders);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param ordersId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer ordersId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserShopService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserShopService.java
new file mode 100644
index 0000000..ad24303
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserShopService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.UserShop;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 购物车表(UserShop)表服务接口
+ *
+ * @author java
+ * @since 2021-04-30 17:01:30
+ */
+
+@Component
+public interface UserShopService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param userShopId 主键
+ * @return 实例对象
+ */
+ UserShop queryById(Integer userShopId);
+
+ /**
+ * 新增数据
+ *
+ * @param userShop 实例对象
+ * @return 实例对象
+ */
+ UserShop insert(UserShop userShop);
+
+ /**
+ * 修改数据
+ *
+ * @param userShop 实例对象
+ * @return 实例对象
+ */
+ UserShop update(UserShop userShop);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param userShopId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer userShopId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserTicketsService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserTicketsService.java
new file mode 100644
index 0000000..d632899
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UserTicketsService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.UserTickets;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 用户门票(UserTickets)表服务接口
+ *
+ * @author java
+ * @since 2021-04-30 17:01:30
+ */
+
+@Component
+public interface UserTicketsService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param userTicketsId 主键
+ * @return 实例对象
+ */
+ UserTickets queryById(Integer userTicketsId);
+
+ /**
+ * 新增数据
+ *
+ * @param userTickets 实例对象
+ * @return 实例对象
+ */
+ UserTickets insert(UserTickets userTickets);
+
+ /**
+ * 修改数据
+ *
+ * @param userTickets 实例对象
+ * @return 实例对象
+ */
+ UserTickets update(UserTickets userTickets);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param userTicketsId 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer userTicketsId);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UsersRoleService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UsersRoleService.java
new file mode 100644
index 0000000..792e87f
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UsersRoleService.java
@@ -0,0 +1,60 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.UsersRole;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * (UsersRole)表服务接口
+ *
+ * @author java
+ * @since 2021-04-30 15:08:37
+ */
+
+@Component
+public interface UsersRoleService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ UsersRole queryById(Integer id);
+
+ /**
+ * 新增数据
+ *
+ * @param usersRole 实例对象
+ * @return 实例对象
+ */
+ UsersRole insert(UsersRole usersRole);
+
+ /**
+ * 修改数据
+ *
+ * @param usersRole 实例对象
+ * @return 实例对象
+ */
+ UsersRole update(UsersRole usersRole);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer id);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UsersService.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UsersService.java
new file mode 100644
index 0000000..504c2f6
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/UsersService.java
@@ -0,0 +1,78 @@
+package com.hc.tripbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.Users;
+import com.hc.tripbusiness.model.login.AccessEntity;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * (Users)表服务接口
+ *
+ * @author java
+ * @since 2021-04-25 17:45:10
+ */
+
+@Component
+public interface UsersService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ Users queryById(Long id);
+
+ /**
+ * 新增数据
+ *
+ * @param users 实例对象
+ * @return 实例对象
+ */
+ Users insert(Users users);
+
+ /**
+ * 修改数据
+ *
+ * @param users 实例对象
+ * @return 实例对象
+ */
+ Users update(Users users);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Long id);
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ PageInfo queryAllByLimit(int page, int size);
+
+ /**
+ * 微信官方用户登录
+ *
+ * @param appid
+ * @param code
+ * @return
+ */
+ String login(String appid, String code);
+
+ /**
+ * 依据openId 获取用户信息
+ *
+ * @param openId
+ * @return
+ */
+ AccessEntity selectUserByOpenId(String openId);
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/BannerServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/BannerServiceImpl.java
new file mode 100644
index 0000000..3d3ab7b
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/BannerServiceImpl.java
@@ -0,0 +1,88 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.Banner;
+import com.hc.tripbusiness.mapper.BannerMapper;
+import com.hc.tripbusiness.service.BannerService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 广告表
+ * (Banner)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-30 14:19:20
+ */
+
+@Service("bannerService")
+public class BannerServiceImpl implements BannerService {
+
+ private final BannerMapper bannerMapper;
+
+ public BannerServiceImpl(BannerMapper bannerMapper) {
+ this.bannerMapper = bannerMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param bannerId 主键
+ * @return 实例对象
+ */
+ @Override
+ public Banner queryById(Integer bannerId) {
+ return this.bannerMapper.selectByPrimaryKey(bannerId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param banner 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Banner insert(Banner banner) {
+ banner.setCreateTime(System.currentTimeMillis());
+ this.bannerMapper.insert(banner);
+ return banner;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param banner 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Banner update(Banner banner) {
+ banner.setUpdateTime(System.currentTimeMillis());
+ this.bannerMapper.updateByPrimaryKeySelective(banner);
+ return this.queryById(banner.getBannerId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param bannerId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer bannerId) {
+ return this.bannerMapper.deleteByPrimaryKey(bannerId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.bannerMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/NewsServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/NewsServiceImpl.java
new file mode 100644
index 0000000..5525198
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/NewsServiceImpl.java
@@ -0,0 +1,88 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.News;
+import com.hc.tripbusiness.mapper.NewsMapper;
+import com.hc.tripbusiness.service.NewsService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 新闻表
+ * (News)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-30 14:03:23
+ */
+
+@Service("newsService")
+public class NewsServiceImpl implements NewsService {
+
+ private final NewsMapper newsMapper;
+
+ public NewsServiceImpl(NewsMapper newsMapper) {
+ this.newsMapper = newsMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param newsId 主键
+ * @return 实例对象
+ */
+ @Override
+ public News queryById(Integer newsId) {
+ return this.newsMapper.selectByPrimaryKey(newsId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param news 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public News insert(News news) {
+ news.setCreateTime(System.currentTimeMillis());
+ this.newsMapper.insert(news);
+ return news;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param news 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public News update(News news) {
+ news.setUpdateTime(System.currentTimeMillis());
+ this.newsMapper.updateByPrimaryKeySelective(news);
+ return this.queryById(news.getNewsId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param newsId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer newsId) {
+ return this.newsMapper.deleteByPrimaryKey(newsId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.newsMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/NewsTagRelaxServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/NewsTagRelaxServiceImpl.java
new file mode 100644
index 0000000..6aba443
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/NewsTagRelaxServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.NewsTagRelax;
+import com.hc.tripbusiness.mapper.NewsTagRelaxMapper;
+import com.hc.tripbusiness.service.NewsTagRelaxService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * (NewsTagRelax)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-30 14:03:25
+ */
+
+@Service("newsTagRelaxService")
+public class NewsTagRelaxServiceImpl implements NewsTagRelaxService {
+
+ private final NewsTagRelaxMapper newsTagRelaxMapper;
+
+ public NewsTagRelaxServiceImpl(NewsTagRelaxMapper newsTagRelaxMapper) {
+ this.newsTagRelaxMapper = newsTagRelaxMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param newsTagRelaxId 主键
+ * @return 实例对象
+ */
+ @Override
+ public NewsTagRelax queryById(Integer newsTagRelaxId) {
+ return this.newsTagRelaxMapper.selectByPrimaryKey(newsTagRelaxId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param newsTagRelax 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public NewsTagRelax insert(NewsTagRelax newsTagRelax) {
+ newsTagRelax.setCreateTime(System.currentTimeMillis());
+ this.newsTagRelaxMapper.insert(newsTagRelax);
+ return newsTagRelax;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param newsTagRelax 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public NewsTagRelax update(NewsTagRelax newsTagRelax) {
+ newsTagRelax.setUpdateTime(System.currentTimeMillis());
+ this.newsTagRelaxMapper.updateByPrimaryKeySelective(newsTagRelax);
+ return this.queryById(newsTagRelax.getNewsTagRelaxId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param newsTagRelaxId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer newsTagRelaxId) {
+ return this.newsTagRelaxMapper.deleteByPrimaryKey(newsTagRelaxId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.newsTagRelaxMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/NewsTagServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/NewsTagServiceImpl.java
new file mode 100644
index 0000000..b522ac9
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/NewsTagServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.NewsTag;
+import com.hc.tripbusiness.mapper.NewsTagMapper;
+import com.hc.tripbusiness.service.NewsTagService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 新闻标签表(NewsTag)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-30 14:03:24
+ */
+
+@Service("newsTagService")
+public class NewsTagServiceImpl implements NewsTagService {
+
+ private final NewsTagMapper newsTagMapper;
+
+ public NewsTagServiceImpl(NewsTagMapper newsTagMapper) {
+ this.newsTagMapper = newsTagMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param tagId 主键
+ * @return 实例对象
+ */
+ @Override
+ public NewsTag queryById(Integer tagId) {
+ return this.newsTagMapper.selectByPrimaryKey(tagId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param newsTag 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public NewsTag insert(NewsTag newsTag) {
+ newsTag.setCreateTime(System.currentTimeMillis());
+ this.newsTagMapper.insert(newsTag);
+ return newsTag;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param newsTag 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public NewsTag update(NewsTag newsTag) {
+ newsTag.setUpdateTime(System.currentTimeMillis());
+ this.newsTagMapper.updateByPrimaryKeySelective(newsTag);
+ return this.queryById(newsTag.getTagId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param tagId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer tagId) {
+ return this.newsTagMapper.deleteByPrimaryKey(tagId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.newsTagMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/RolesServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/RolesServiceImpl.java
new file mode 100644
index 0000000..b3a4c39
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/RolesServiceImpl.java
@@ -0,0 +1,85 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.Roles;
+import com.hc.tripbusiness.mapper.RolesMapper;
+import com.hc.tripbusiness.service.RolesService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * (Roles)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-30 15:08:18
+ */
+
+@Service("rolesService")
+public class RolesServiceImpl implements RolesService {
+
+ private final RolesMapper rolesMapper;
+
+ public RolesServiceImpl(RolesMapper rolesMapper) {
+ this.rolesMapper = rolesMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ @Override
+ public Roles queryById(Integer id) {
+ return this.rolesMapper.selectByPrimaryKey(id);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param roles 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Roles insert(Roles roles) {
+ this.rolesMapper.insert(roles);
+ return roles;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param roles 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Roles update(Roles roles) {
+ this.rolesMapper.updateByPrimaryKeySelective(roles);
+ return this.queryById(roles.getId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer id) {
+ return this.rolesMapper.deleteByPrimaryKey(id) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.rolesMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryPictureServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryPictureServiceImpl.java
new file mode 100644
index 0000000..9fd20a2
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryPictureServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.SceneryPicture;
+import com.hc.tripbusiness.mapper.SceneryPictureMapper;
+import com.hc.tripbusiness.service.SceneryPictureService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 景点图片表(SceneryPicture)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-27 15:26:10
+ */
+
+@Service("sceneryPictureService")
+public class SceneryPictureServiceImpl implements SceneryPictureService {
+
+ private final SceneryPictureMapper sceneryPictureMapper;
+
+ public SceneryPictureServiceImpl(SceneryPictureMapper sceneryPictureMapper) {
+ this.sceneryPictureMapper = sceneryPictureMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param sceneryPictureId 主键
+ * @return 实例对象
+ */
+ @Override
+ public SceneryPicture queryById(Integer sceneryPictureId) {
+ return this.sceneryPictureMapper.selectByPrimaryKey(sceneryPictureId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param sceneryPicture 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public SceneryPicture insert(SceneryPicture sceneryPicture) {
+ sceneryPicture.setCreateTime(System.currentTimeMillis());
+ this.sceneryPictureMapper.insert(sceneryPicture);
+ return sceneryPicture;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param sceneryPicture 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public SceneryPicture update(SceneryPicture sceneryPicture) {
+ sceneryPicture.setUpdateTime(System.currentTimeMillis());
+ this.sceneryPictureMapper.updateByPrimaryKeySelective(sceneryPicture);
+ return this.queryById(sceneryPicture.getSceneryPictureId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param sceneryPictureId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer sceneryPictureId) {
+ return this.sceneryPictureMapper.deleteByPrimaryKey(sceneryPictureId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.sceneryPictureMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryServiceImpl.java
new file mode 100644
index 0000000..6c62ab7
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.Scenery;
+import com.hc.tripbusiness.mapper.SceneryMapper;
+import com.hc.tripbusiness.service.SceneryService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 景点表(Scenery)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-25 09:27:40
+ */
+
+@Service("sceneryService")
+public class SceneryServiceImpl implements SceneryService {
+
+ private final SceneryMapper sceneryMapper;
+
+ public SceneryServiceImpl(SceneryMapper sceneryMapper) {
+ this.sceneryMapper = sceneryMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param sceneryId 主键
+ * @return 实例对象
+ */
+ @Override
+ public Scenery queryById(Integer sceneryId) {
+ return this.sceneryMapper.selectByPrimaryKey(sceneryId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param scenery 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Scenery insert(Scenery scenery) {
+ scenery.setCreateTime(System.currentTimeMillis());
+ this.sceneryMapper.insert(scenery);
+ return scenery;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param scenery 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Scenery update(Scenery scenery) {
+ scenery.setUpdateTime(System.currentTimeMillis());
+ this.sceneryMapper.updateByPrimaryKeySelective(scenery);
+ return this.queryById(scenery.getSceneryId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param sceneryId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer sceneryId) {
+ return this.sceneryMapper.deleteByPrimaryKey(sceneryId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.sceneryMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryTagServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryTagServiceImpl.java
new file mode 100644
index 0000000..4497492
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryTagServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.SceneryTag;
+import com.hc.tripbusiness.mapper.SceneryTagMapper;
+import com.hc.tripbusiness.service.SceneryTagService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 景点标签(SceneryTag)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-27 15:26:11
+ */
+
+@Service("sceneryTagService")
+public class SceneryTagServiceImpl implements SceneryTagService {
+
+ private final SceneryTagMapper sceneryTagMapper;
+
+ public SceneryTagServiceImpl(SceneryTagMapper sceneryTagMapper) {
+ this.sceneryTagMapper = sceneryTagMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param sceneryTagId 主键
+ * @return 实例对象
+ */
+ @Override
+ public SceneryTag queryById(Integer sceneryTagId) {
+ return this.sceneryTagMapper.selectByPrimaryKey(sceneryTagId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param sceneryTag 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public SceneryTag insert(SceneryTag sceneryTag) {
+ sceneryTag.setCreateTime(System.currentTimeMillis());
+ this.sceneryTagMapper.insert(sceneryTag);
+ return sceneryTag;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param sceneryTag 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public SceneryTag update(SceneryTag sceneryTag) {
+ sceneryTag.setUpdateTime(System.currentTimeMillis());
+ this.sceneryTagMapper.updateByPrimaryKeySelective(sceneryTag);
+ return this.queryById(sceneryTag.getSceneryTagId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param sceneryTagId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer sceneryTagId) {
+ return this.sceneryTagMapper.deleteByPrimaryKey(sceneryTagId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.sceneryTagMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryTicketsServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryTicketsServiceImpl.java
new file mode 100644
index 0000000..5cc25e3
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryTicketsServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.SceneryTickets;
+import com.hc.tripbusiness.mapper.SceneryTicketsMapper;
+import com.hc.tripbusiness.service.SceneryTicketsService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 景点门票表(SceneryTickets)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-25 09:34:29
+ */
+
+@Service("sceneryTicketsService")
+public class SceneryTicketsServiceImpl implements SceneryTicketsService {
+
+ private final SceneryTicketsMapper sceneryTicketsMapper;
+
+ public SceneryTicketsServiceImpl(SceneryTicketsMapper sceneryTicketsMapper) {
+ this.sceneryTicketsMapper = sceneryTicketsMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param sceneryTicketId 主键
+ * @return 实例对象
+ */
+ @Override
+ public SceneryTickets queryById(Integer sceneryTicketId) {
+ return this.sceneryTicketsMapper.selectByPrimaryKey(sceneryTicketId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param sceneryTickets 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public SceneryTickets insert(SceneryTickets sceneryTickets) {
+ sceneryTickets.setCreateTime(System.currentTimeMillis());
+ this.sceneryTicketsMapper.insert(sceneryTickets);
+ return sceneryTickets;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param sceneryTickets 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public SceneryTickets update(SceneryTickets sceneryTickets) {
+ sceneryTickets.setUpdateTime(System.currentTimeMillis());
+ this.sceneryTicketsMapper.updateByPrimaryKeySelective(sceneryTickets);
+ return this.queryById(sceneryTickets.getSceneryTicketId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param sceneryTicketId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer sceneryTicketId) {
+ return this.sceneryTicketsMapper.deleteByPrimaryKey(sceneryTicketId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.sceneryTicketsMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryTicketsTypeServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryTicketsTypeServiceImpl.java
new file mode 100644
index 0000000..df9c22f
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryTicketsTypeServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.SceneryTicketsType;
+import com.hc.tripbusiness.mapper.SceneryTicketsTypeMapper;
+import com.hc.tripbusiness.service.SceneryTicketsTypeService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 门票类型表(SceneryTicketsType)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-25 09:39:56
+ */
+
+@Service("sceneryTicketsTypeService")
+public class SceneryTicketsTypeServiceImpl implements SceneryTicketsTypeService {
+
+ private final SceneryTicketsTypeMapper sceneryTicketsTypeMapper;
+
+ public SceneryTicketsTypeServiceImpl(SceneryTicketsTypeMapper sceneryTicketsTypeMapper) {
+ this.sceneryTicketsTypeMapper = sceneryTicketsTypeMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param ticketsTypeId 主键
+ * @return 实例对象
+ */
+ @Override
+ public SceneryTicketsType queryById(Integer ticketsTypeId) {
+ return this.sceneryTicketsTypeMapper.selectByPrimaryKey(ticketsTypeId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param sceneryTicketsType 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public SceneryTicketsType insert(SceneryTicketsType sceneryTicketsType) {
+ sceneryTicketsType.setCreateTime(System.currentTimeMillis());
+ this.sceneryTicketsTypeMapper.insert(sceneryTicketsType);
+ return sceneryTicketsType;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param sceneryTicketsType 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public SceneryTicketsType update(SceneryTicketsType sceneryTicketsType) {
+ sceneryTicketsType.setUpdateTime(System.currentTimeMillis());
+ this.sceneryTicketsTypeMapper.updateByPrimaryKeySelective(sceneryTicketsType);
+ return this.queryById(sceneryTicketsType.getTicketsTypeId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param ticketsTypeId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer ticketsTypeId) {
+ return this.sceneryTicketsTypeMapper.deleteByPrimaryKey(ticketsTypeId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.sceneryTicketsTypeMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryVideoServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryVideoServiceImpl.java
new file mode 100644
index 0000000..8f10ffd
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/SceneryVideoServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.SceneryVideo;
+import com.hc.tripbusiness.mapper.SceneryVideoMapper;
+import com.hc.tripbusiness.service.SceneryVideoService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 景点视频表(SceneryVideo)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-27 15:26:48
+ */
+
+@Service("sceneryVideoService")
+public class SceneryVideoServiceImpl implements SceneryVideoService {
+
+ private final SceneryVideoMapper sceneryVideoMapper;
+
+ public SceneryVideoServiceImpl(SceneryVideoMapper sceneryVideoMapper) {
+ this.sceneryVideoMapper = sceneryVideoMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param sceneryVideoId 主键
+ * @return 实例对象
+ */
+ @Override
+ public SceneryVideo queryById(Integer sceneryVideoId) {
+ return this.sceneryVideoMapper.selectByPrimaryKey(sceneryVideoId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param sceneryVideo 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public SceneryVideo insert(SceneryVideo sceneryVideo) {
+ sceneryVideo.setCreateTime(System.currentTimeMillis());
+ this.sceneryVideoMapper.insert(sceneryVideo);
+ return sceneryVideo;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param sceneryVideo 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public SceneryVideo update(SceneryVideo sceneryVideo) {
+ sceneryVideo.setUpdateTime(System.currentTimeMillis());
+ this.sceneryVideoMapper.updateByPrimaryKeySelective(sceneryVideo);
+ return this.queryById(sceneryVideo.getSceneryVideoId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param sceneryVideoId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer sceneryVideoId) {
+ return this.sceneryVideoMapper.deleteByPrimaryKey(sceneryVideoId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.sceneryVideoMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserOrderDetailServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserOrderDetailServiceImpl.java
new file mode 100644
index 0000000..426c20f
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserOrderDetailServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.UserOrderDetail;
+import com.hc.tripbusiness.mapper.UserOrderDetailMapper;
+import com.hc.tripbusiness.service.UserOrderDetailService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 订单详情表(UserOrderDetail)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-30 17:01:28
+ */
+
+@Service("userOrderDetailService")
+public class UserOrderDetailServiceImpl implements UserOrderDetailService {
+
+ private final UserOrderDetailMapper userOrderDetailMapper;
+
+ public UserOrderDetailServiceImpl(UserOrderDetailMapper userOrderDetailMapper) {
+ this.userOrderDetailMapper = userOrderDetailMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param orderDetailId 主键
+ * @return 实例对象
+ */
+ @Override
+ public UserOrderDetail queryById(Integer orderDetailId) {
+ return this.userOrderDetailMapper.selectByPrimaryKey(orderDetailId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param userOrderDetail 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public UserOrderDetail insert(UserOrderDetail userOrderDetail) {
+ userOrderDetail.setCreateTime(System.currentTimeMillis());
+ this.userOrderDetailMapper.insert(userOrderDetail);
+ return userOrderDetail;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param userOrderDetail 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public UserOrderDetail update(UserOrderDetail userOrderDetail) {
+ userOrderDetail.setUpdateTime(System.currentTimeMillis());
+ this.userOrderDetailMapper.updateByPrimaryKeySelective(userOrderDetail);
+ return this.queryById(userOrderDetail.getOrderDetailId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param orderDetailId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer orderDetailId) {
+ return this.userOrderDetailMapper.deleteByPrimaryKey(orderDetailId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.userOrderDetailMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserOrdersServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserOrdersServiceImpl.java
new file mode 100644
index 0000000..22f9d9c
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserOrdersServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.UserOrders;
+import com.hc.tripbusiness.mapper.UserOrdersMapper;
+import com.hc.tripbusiness.service.UserOrdersService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 订单表(UserOrders)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-30 17:01:29
+ */
+
+@Service("userOrdersService")
+public class UserOrdersServiceImpl implements UserOrdersService {
+
+ private final UserOrdersMapper userOrdersMapper;
+
+ public UserOrdersServiceImpl(UserOrdersMapper userOrdersMapper) {
+ this.userOrdersMapper = userOrdersMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param ordersId 主键
+ * @return 实例对象
+ */
+ @Override
+ public UserOrders queryById(Integer ordersId) {
+ return this.userOrdersMapper.selectByPrimaryKey(ordersId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param userOrders 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public UserOrders insert(UserOrders userOrders) {
+ userOrders.setCreateTime(System.currentTimeMillis());
+ this.userOrdersMapper.insert(userOrders);
+ return userOrders;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param userOrders 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public UserOrders update(UserOrders userOrders) {
+ userOrders.setUpdateTime(System.currentTimeMillis());
+ this.userOrdersMapper.updateByPrimaryKeySelective(userOrders);
+ return this.queryById(userOrders.getOrdersId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param ordersId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer ordersId) {
+ return this.userOrdersMapper.deleteByPrimaryKey(ordersId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.userOrdersMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserShopServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserShopServiceImpl.java
new file mode 100644
index 0000000..cf8aa85
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserShopServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.UserShop;
+import com.hc.tripbusiness.mapper.UserShopMapper;
+import com.hc.tripbusiness.service.UserShopService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 购物车表(UserShop)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-30 17:01:30
+ */
+
+@Service("userShopService")
+public class UserShopServiceImpl implements UserShopService {
+
+ private final UserShopMapper userShopMapper;
+
+ public UserShopServiceImpl(UserShopMapper userShopMapper) {
+ this.userShopMapper = userShopMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param userShopId 主键
+ * @return 实例对象
+ */
+ @Override
+ public UserShop queryById(Integer userShopId) {
+ return this.userShopMapper.selectByPrimaryKey(userShopId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param userShop 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public UserShop insert(UserShop userShop) {
+ userShop.setCreateTime(System.currentTimeMillis());
+ this.userShopMapper.insert(userShop);
+ return userShop;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param userShop 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public UserShop update(UserShop userShop) {
+ userShop.setUpdateTime(System.currentTimeMillis());
+ this.userShopMapper.updateByPrimaryKeySelective(userShop);
+ return this.queryById(userShop.getUserShopId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param userShopId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer userShopId) {
+ return this.userShopMapper.deleteByPrimaryKey(userShopId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.userShopMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserTicketsServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserTicketsServiceImpl.java
new file mode 100644
index 0000000..eaf25ca
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UserTicketsServiceImpl.java
@@ -0,0 +1,87 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.UserTickets;
+import com.hc.tripbusiness.mapper.UserTicketsMapper;
+import com.hc.tripbusiness.service.UserTicketsService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 用户门票(UserTickets)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-30 17:01:31
+ */
+
+@Service("userTicketsService")
+public class UserTicketsServiceImpl implements UserTicketsService {
+
+ private final UserTicketsMapper userTicketsMapper;
+
+ public UserTicketsServiceImpl(UserTicketsMapper userTicketsMapper) {
+ this.userTicketsMapper = userTicketsMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param userTicketsId 主键
+ * @return 实例对象
+ */
+ @Override
+ public UserTickets queryById(Integer userTicketsId) {
+ return this.userTicketsMapper.selectByPrimaryKey(userTicketsId);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param userTickets 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public UserTickets insert(UserTickets userTickets) {
+ userTickets.setCreateTime(System.currentTimeMillis());
+ this.userTicketsMapper.insert(userTickets);
+ return userTickets;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param userTickets 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public UserTickets update(UserTickets userTickets) {
+ userTickets.setUpdateTime(System.currentTimeMillis());
+ this.userTicketsMapper.updateByPrimaryKeySelective(userTickets);
+ return this.queryById(userTickets.getUserTicketsId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param userTicketsId 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer userTicketsId) {
+ return this.userTicketsMapper.deleteByPrimaryKey(userTicketsId) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.userTicketsMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UsersRoleServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UsersRoleServiceImpl.java
new file mode 100644
index 0000000..9dd6601
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UsersRoleServiceImpl.java
@@ -0,0 +1,85 @@
+package com.hc.tripbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.model.UsersRole;
+import com.hc.tripbusiness.mapper.UsersRoleMapper;
+import com.hc.tripbusiness.service.UsersRoleService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * (UsersRole)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-30 15:08:37
+ */
+
+@Service("usersRoleService")
+public class UsersRoleServiceImpl implements UsersRoleService {
+
+ private final UsersRoleMapper usersRoleMapper;
+
+ public UsersRoleServiceImpl(UsersRoleMapper usersRoleMapper) {
+ this.usersRoleMapper = usersRoleMapper;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ @Override
+ public UsersRole queryById(Integer id) {
+ return this.usersRoleMapper.selectByPrimaryKey(id);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param usersRole 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public UsersRole insert(UsersRole usersRole) {
+ this.usersRoleMapper.insert(usersRole);
+ return usersRole;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param usersRole 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public UsersRole update(UsersRole usersRole) {
+ this.usersRoleMapper.updateByPrimaryKeySelective(usersRole);
+ return this.queryById(usersRole.getId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer id) {
+ return this.usersRoleMapper.deleteByPrimaryKey(id) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.usersRoleMapper::selectAll);
+ }
+}
diff --git a/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UsersServiceImpl.java b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UsersServiceImpl.java
new file mode 100644
index 0000000..da92c74
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/java/com/hc/tripbusiness/service/impl/UsersServiceImpl.java
@@ -0,0 +1,150 @@
+package com.hc.tripbusiness.service.impl;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.tripbusiness.mapper.UsersMapper;
+import com.hc.tripbusiness.model.Users;
+import com.hc.tripbusiness.model.jwt.GenerateAuthToken;
+import com.hc.tripbusiness.model.login.AccessEntity;
+import com.hc.tripbusiness.model.login.AuthEntity;
+import com.hc.tripbusiness.service.UsersService;
+import com.hc.tripcore.utils.enums.InfoEnum;
+import com.hc.tripcore.utils.exception.ResponseException;
+import com.hc.tripcore.utils.tool.JsonUtils;
+import com.hc.tripcore.utils.wechat.WxMaConfiguration;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.exception.WxErrorException;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * (Users)表服务实现类
+ *
+ * @author java
+ * @since 2021-04-25 17:45:11
+ */
+
+@Slf4j
+@Service("usersService")
+public class UsersServiceImpl implements UsersService {
+
+ private final UsersMapper usersMapper;
+
+ private final GenerateAuthToken generateAuthToken;
+
+ public UsersServiceImpl(UsersMapper usersMapper, GenerateAuthToken generateAuthToken) {
+ this.usersMapper = usersMapper;
+ this.generateAuthToken = generateAuthToken;
+ }
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ @Override
+ public Users queryById(Long id) {
+ return this.usersMapper.selectByPrimaryKey(id);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param users 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Users insert(Users users) {
+ this.usersMapper.insert(users);
+ return users;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param users 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Users update(Users users) {
+ this.usersMapper.updateByPrimaryKeySelective(users);
+ return this.queryById(users.getId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Long id) {
+ return this.usersMapper.deleteByPrimaryKey(id) > 0;
+ }
+
+ /**
+ * 分页查询多条数据
+ *
+ * @param page 页码
+ * @param size 查询条数
+ * @return 对象列表
+ */
+ @Override
+ public PageInfo queryAllByLimit(int page, int size) {
+ return PageHelper.startPage(page, size).doSelectPageInfo(this.usersMapper::selectAll);
+ }
+
+ @Override
+ public String login(String appid, String code) {
+
+ if (StringUtils.isBlank(code)) {
+ return "empty jscode";
+ }
+
+ final WxMaService wxService = WxMaConfiguration.getMaService(appid);
+ try {
+ WxMaJscode2SessionResult session = wxService.getUserService().getSessionInfo(code);
+ log.info(session.getSessionKey());
+ log.info(session.getOpenid());
+
+ //TODO 可以增加自己的逻辑,关联业务相关数据
+
+ List users = usersMapper.selectUserByOpenId(session.getOpenid());
+ if (CollectionUtils.isEmpty(users)) {
+ Users user = new Users();
+ user.setOpenid(session.getOpenid());
+ usersMapper.insert(user);
+ }
+
+ return JsonUtils.toJson(session);
+ } catch (WxErrorException e) {
+ log.error(e.getMessage(), e);
+ return e.toString();
+ }
+ }
+
+ @Override
+ public AccessEntity selectUserByOpenId(String openId) {
+
+ List users = usersMapper.selectUserByOpenId(openId);
+ if (CollectionUtils.isEmpty(users)) {
+ throw new ResponseException(InfoEnum.LOGIN_USER_NAME_ERROR);
+ }
+
+ Users user = users.get(0);
+ AuthEntity authEntity = new AuthEntity();
+ authEntity.setUserName(openId);
+ authEntity.setPassword(RandomStringUtils.randomAlphanumeric(10));
+ authEntity.setLoginType(1);
+ return generateAuthToken.generateToken(authEntity, user);
+ }
+
+
+}
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/BannerMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/BannerMapper.xml
new file mode 100644
index 0000000..8efe63a
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/BannerMapper.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ banner_id,
+ banner_title,
+ banner_url,
+ banner_index,
+ target_url,
+ create_time,
+ update_time
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/NewsMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/NewsMapper.xml
new file mode 100644
index 0000000..60bf384
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/NewsMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ news_id,
+ news_title,
+ news_logo,
+ news_content,
+ create_time,
+ update_time
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/NewsTagMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/NewsTagMapper.xml
new file mode 100644
index 0000000..b0666cb
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/NewsTagMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ tag_id,
+ tag_name,
+ create_time,
+ update_time
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/NewsTagRelaxMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/NewsTagRelaxMapper.xml
new file mode 100644
index 0000000..c136285
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/NewsTagRelaxMapper.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ news_tag_relax_id,
+ tag_id,
+ news_id,
+ create_time,
+ update_time
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/RolesMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/RolesMapper.xml
new file mode 100644
index 0000000..0033d43
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/RolesMapper.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+ id,
+ `name`
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/SceneryMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/SceneryMapper.xml
new file mode 100644
index 0000000..8304571
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/SceneryMapper.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ scenery_id,
+ scenery_name,
+ scenery_notes,
+ scenery_index,
+ scenery_introduce,
+ scenery_logo,
+ create_time,
+ update_time,
+ start_time,
+ end_time,
+ phone,
+ website,
+ traffic
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/SceneryPictureMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/SceneryPictureMapper.xml
new file mode 100644
index 0000000..9bd60bb
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/SceneryPictureMapper.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ scenery_picture_id,
+ picture_name,
+ picture_url,
+ picture_introduce,
+ picture_index,
+ scenery_id,
+ create_time,
+ update_time
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/SceneryTagMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/SceneryTagMapper.xml
new file mode 100644
index 0000000..286f113
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/SceneryTagMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ scenery_tag_id,
+ tag_name,
+ create_time,
+ update_time
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/SceneryTicketsMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/SceneryTicketsMapper.xml
new file mode 100644
index 0000000..c784141
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/SceneryTicketsMapper.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ scenery_ticket_id,
+ tickets_type_id,
+ tickets_name,
+ tickets_price,
+ ticket_introduce,
+ tickets_logo,
+ scenery_id,
+ ticket_sell_num,
+ create_time,
+ update_time
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/SceneryTicketsTypeMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/SceneryTicketsTypeMapper.xml
new file mode 100644
index 0000000..f2322ed
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/SceneryTicketsTypeMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ tickets_type_id,
+ ticket_name,
+ create_time,
+ update_time
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/SceneryVideoMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/SceneryVideoMapper.xml
new file mode 100644
index 0000000..8c726df
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/SceneryVideoMapper.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ scenery_video_id,
+ video_name,
+ video_introduce,
+ video_index,
+ video_url,
+ scenery_id,
+ create_time,
+ update_time
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/UserOrderDetailMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/UserOrderDetailMapper.xml
new file mode 100644
index 0000000..d623dfd
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/UserOrderDetailMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ order_detail_id,
+ order_id,
+ scenery_ticket_id,
+ num,
+ create_time,
+ update_time
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/UserOrdersMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/UserOrdersMapper.xml
new file mode 100644
index 0000000..fbe976f
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/UserOrdersMapper.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ orders_id,
+ order_no,
+ user_id,
+ `body`,
+ `subject`,
+ total_amount,
+ order_status,
+ is_de,
+ ali_trade_no,
+ wx_trade_no,
+ user_invoices_id,
+ create_time,
+ update_time,
+ version
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/UserShopMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/UserShopMapper.xml
new file mode 100644
index 0000000..9446780
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/UserShopMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ user_shop_id,
+ user_id,
+ scenery_ticket_id,
+ num,
+ create_time,
+ update_time
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/UserTicketsMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/UserTicketsMapper.xml
new file mode 100644
index 0000000..b489127
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/UserTicketsMapper.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ user_tickets_id,
+ scenery_ticket_id,
+ tickets_pass,
+ tickets_no,
+ tickets_code,
+ tickets_time,
+ user_id,
+ is_use,
+ used_time,
+ create_time,
+ update_time,
+ version
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/UsersMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/UsersMapper.xml
new file mode 100644
index 0000000..f6dcd6f
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/UsersMapper.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,
+ username,
+ `password`,
+ user_logo,
+ nickname,
+ gender,
+ openid
+
+
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mapper/UsersRoleMapper.xml b/fenis-trip/trip-business/src/main/resources/mapper/UsersRoleMapper.xml
new file mode 100644
index 0000000..e6105c3
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mapper/UsersRoleMapper.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+ id,
+ role_id,
+ user_id
+
+
+
diff --git a/fenis-trip/trip-business/src/main/resources/mybatis-config.xml b/fenis-trip/trip-business/src/main/resources/mybatis-config.xml
new file mode 100644
index 0000000..7313d8f
--- /dev/null
+++ b/fenis-trip/trip-business/src/main/resources/mybatis-config.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/fenis-trip/trip-business/trip-business.iml b/fenis-trip/trip-business/trip-business.iml
new file mode 100644
index 0000000..ee687d6
--- /dev/null
+++ b/fenis-trip/trip-business/trip-business.iml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fenis-trip/trip-core/pom.xml b/fenis-trip/trip-core/pom.xml
new file mode 100644
index 0000000..a8237f7
--- /dev/null
+++ b/fenis-trip/trip-core/pom.xml
@@ -0,0 +1,118 @@
+
+
+ 4.0.0
+
+ com.hc
+ fenis-trip
+ 0.0.1-SNAPSHOT
+
+
+ trip-core
+ 0.0.1-SNAPSHOT
+ trip-core
+ Demo project for Spring Boot
+
+ 11
+
+
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ ${mybatis.version}
+
+
+
+ tk.mybatis
+ mapper
+ ${tk.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ io.lettuce
+ lettuce-core
+
+
+
+
+
+ redis.clients
+ jedis
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+ org.apache.commons
+ commons-pool2
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+
+ com.qiniu
+ qiniu-java-sdk
+ ${qiniu.version}
+
+
+
+
+ com.auth0
+ java-jwt
+ ${auth0.jwt.version}
+
+
+
+ org.apache.httpcomponents
+ httpcore
+
+
+
+ org.apache.httpcomponents
+ httpclient
+
+
+
+
+ org.jdom
+ jdom
+ 2.0.2
+
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ com.alipay.sdk
+ alipay-sdk-java
+ ${alipay.version}
+
+
+
+ com.github.binarywang
+ weixin-java-miniapp
+ ${weixin.miniapp.version}
+
+
+
+
+
+
+
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/constants/OrderConstants.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/constants/OrderConstants.java
new file mode 100644
index 0000000..d43cb01
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/constants/OrderConstants.java
@@ -0,0 +1,11 @@
+package com.hc.tripcore.utils.constants;
+
+/**
+ * @author 10696
+ * @since 2020/11/26 14:49
+ */
+
+public interface OrderConstants {
+
+ String ORDER_REFUND = "10000";
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/enums/ErrorEnum.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/enums/ErrorEnum.java
new file mode 100644
index 0000000..a2ec49a
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/enums/ErrorEnum.java
@@ -0,0 +1,34 @@
+package com.hc.tripcore.utils.enums;
+
+import lombok.Getter;
+
+/**
+ * @author JIA
+ * 自定义错误枚举类
+ */
+
+@Getter
+public enum ErrorEnum {
+
+ /* 系统级别 */
+
+ ERROR_REQUEST(100,"请求失败"),
+ ERROR_BAD_REQUEST(400,"请求语法错误"),
+ ERROR_UNAUTHORIZED(401,"未授权"),
+ ERROR_FORBIDDEN(403,"服务器拒绝请求"),
+ ERROR_NOT_FOUND(404,"请求资源不存在"),
+ ERROR_METHOD_NOT_AllOWED(405,"指定的请求方法,被禁用"),
+ ERROR_REQUEST_TIMEOUT(408,"请求超时"),
+ ERROR_REQUEST_ENTITY_TOO_LARGE(413,"请求实体过大,超出处理能力"),
+ ERROR_REQUEST_URI_TOO_LONG(414,"请求URL太长,拒绝访问")
+
+ ;
+ private final Integer key;
+ private final String msg;
+
+ ErrorEnum(Integer key, String msg) {
+ this.key = key;
+ this.msg = msg;
+ }
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/enums/InfoEnum.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/enums/InfoEnum.java
new file mode 100644
index 0000000..6c373b1
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/enums/InfoEnum.java
@@ -0,0 +1,40 @@
+package com.hc.tripcore.utils.enums;
+
+import lombok.Getter;
+
+/**
+ * @author JIA
+ * 自定义消息枚举类
+ */
+@Getter
+public enum InfoEnum {
+
+ NULL_PARAMETER(400, "请求参数错误"),
+
+ LOGIN_USER_NAME_ERROR(201, "用户名错误,此用户不存在"),
+
+ LOGIN_PASSWORD_ERROR(202, "密码错误,请重新输入"),
+
+ LOGIN_REGISTER_RE(204, "用户已存在,不可重复注册"),
+
+ SESSION_EXPIRED(205, "无资源权限,请登录"),
+
+ AUTHCODE_ERROR(206, "验证码输入错误"),
+
+ PAPER_ERROR(212, "此试卷已过期,请联系管理员重新设置"),
+
+ TOKEN_ERROR(209, "非法token,禁止进入系统"),
+
+ USER_INVOICES_ERROR(210, "此订单已申请发票,请不要重复操作"),
+
+ ORDER_ERROR(211, "订单已存在,请不要重复操作");
+
+ private final Integer key;
+ private final String msg;
+
+ InfoEnum(Integer key, String msg) {
+ this.key = key;
+ this.msg = msg;
+ }
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/enums/SuccessEnum.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/enums/SuccessEnum.java
new file mode 100644
index 0000000..cc9709d
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/enums/SuccessEnum.java
@@ -0,0 +1,32 @@
+package com.hc.tripcore.utils.enums;
+
+import lombok.Getter;
+
+/**
+ * @author JIA
+ * 自定义成功枚举类
+ */
+@Getter
+public enum SuccessEnum {
+
+ /* 系统级别 */
+
+ SUCCESS_REQUEST(200, "服务请求成功"),
+ SUCCESS_CREATED(201, "请求成功,服务器创建资源"),
+ SUCCESS_ACCEPTED(202, "请求成功,服务器尚未处理"),
+ SUCCESS_NON_AUTHORITATIVE(203,"请求成功,信息非授权"),
+ SUCCESS_NO_CONTENT(204,"请求成功,无内容"),
+ SUCCESS_RESET_CONTENT(205,"请求成功,内容重置"),
+ SUCCESS_PARTIAL_CONTENT(206,"请求成功,部分内容已处理")
+
+ ;
+
+ private final Integer key;
+ private final String msg;
+
+ SuccessEnum(Integer key, String msg) {
+ this.key = key;
+ this.msg = msg;
+ }
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/exception/ResponseException.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/exception/ResponseException.java
new file mode 100644
index 0000000..684293f
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/exception/ResponseException.java
@@ -0,0 +1,34 @@
+package com.hc.tripcore.utils.exception;
+
+
+import com.hc.tripcore.utils.enums.InfoEnum;
+
+/**
+ * @author JIA
+ */
+
+public class ResponseException extends RuntimeException {
+
+ private static final long serialVersionUID = 1L;
+
+ private Integer code;
+
+ public ResponseException(Integer code,String message){
+ super(message);
+ this.code = code;
+ }
+
+ public ResponseException(InfoEnum infoEnum){
+ super(infoEnum.getMsg());
+ this.code = infoEnum.getKey();
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/mapper/Mapper.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/mapper/Mapper.java
new file mode 100644
index 0000000..40c8074
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/mapper/Mapper.java
@@ -0,0 +1,19 @@
+package com.hc.tripcore.utils.mapper;
+
+import tk.mybatis.mapper.common.BaseMapper;
+import tk.mybatis.mapper.common.ConditionMapper;
+import tk.mybatis.mapper.common.IdsMapper;
+import tk.mybatis.mapper.common.special.InsertListMapper;
+
+/**
+ * 定制版MyBatis Mapper插件接口,如需其他接口参考官方文档自行添加。
+ *
+ * @author mybatis
+ */
+public interface Mapper
+ extends
+ BaseMapper,
+ ConditionMapper,
+ IdsMapper,
+ InsertListMapper {
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/msm/MessageService.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/msm/MessageService.java
new file mode 100644
index 0000000..13acfaf
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/msm/MessageService.java
@@ -0,0 +1,101 @@
+package com.hc.tripcore.utils.msm;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Random;
+
+/**
+ * @author Andrew
+ * @create 2019/02/18 10:39
+ */
+@Configuration
+@EnableConfigurationProperties(MsgConfig.class)
+@Slf4j
+public class MessageService {
+
+ private final MsgConfig msgConfig;
+
+ @Autowired
+ public MessageService(MsgConfig msgConfig) {
+ this.msgConfig = msgConfig;
+ }
+
+ private JSONObject sendHttp(String url, String params) throws Exception {
+ CloseableHttpClient client = HttpClients.createDefault();
+ HttpPost method = new HttpPost(url);
+ StringEntity entity = new StringEntity(params, "utf-8");
+ entity.setContentEncoding("UTF-8");
+ entity.setContentType("application/x-www-form-urlencoded");
+ setHeader(method);
+ method.setEntity(entity);
+ HttpResponse resp = client.execute(method);
+ String result = EntityUtils.toString(resp.getEntity());
+ client.close();
+ return JSON.parseObject(result);
+ }
+
+ private void setHeader(HttpPost method) {
+ Random random = new Random();
+ long nonce = Math.abs(random.nextLong());
+ long timpStamp = (System.currentTimeMillis() / 1000);
+ String sign = DigestUtils.sha1Hex(msgConfig.getAPP_SECRIT() + nonce + timpStamp);
+ method.addHeader("App-Key", msgConfig.getAPP_KEY());
+ method.addHeader("Nonce", nonce + "");
+ method.addHeader("Timestamp", timpStamp + "");
+ method.addHeader("Signature", sign);
+ }
+
+
+ public String sendValidShortMessage(String phone) {
+ try {
+ String params = "mobile=" + phone + "&templateId=" + msgConfig.getTEMPLATE_ID() + "®ion=" + msgConfig.getREGION();
+ JSONObject obj = sendHttp(msgConfig.getSEND_CODE_URL(), params);
+ if (obj != null && obj.get("code") != null && "200".equals(obj.get("code").toString())) {
+ return (String) obj.get("sessionId");
+ } else {
+ return "";
+ }
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ return "";
+ }
+ }
+
+ @Deprecated
+ public boolean validCode(String sessionId, String code) {
+ try {
+
+ String params = "sessionId=" + sessionId + "&code=" + code;
+ JSONObject obj = sendHttp(msgConfig.getVERIF_CODE_URL(), params);
+
+ if ((obj != null) && (obj.get("code") != null) && ("200".equals(obj.get("code").toString()))
+ && ("true".equals(obj.get("success").toString()))) {
+ log.debug("verify:" + params + ": obj:" + obj.toString());
+
+ return true;
+
+ } else {
+
+ assert obj != null;
+ log.debug("verify:" + params + ": obj:" + obj.toString());
+ return false;
+ }
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ return false;
+ }
+ }
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/msm/MsgConfig.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/msm/MsgConfig.java
new file mode 100644
index 0000000..ddd2b24
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/msm/MsgConfig.java
@@ -0,0 +1,26 @@
+package com.hc.tripcore.utils.msm;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * @author Andrew
+ * @create 2019/02/18 10:40
+ */
+@Data
+@ConfigurationProperties(prefix = "rong")
+public class MsgConfig {
+
+ private String TEMPLATE_ID;
+
+ private String REGION;
+
+ private String SEND_CODE_URL;
+
+ private String APP_SECRIT;
+
+ private String APP_KEY;
+
+ private String VERIF_CODE_URL;
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/oss/QiNiuUtil.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/oss/QiNiuUtil.java
new file mode 100644
index 0000000..ae0abe8
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/oss/QiNiuUtil.java
@@ -0,0 +1,50 @@
+package com.hc.tripcore.utils.oss;
+
+import com.qiniu.util.Auth;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * @author JIA
+ */
+
+@Data
+@Component
+public class QiNiuUtil {
+
+ @Value("${oss.access-key}")
+ private String accessKey;
+
+ @Value("${oss.secret-key}")
+ private String secretKey;
+
+ @Value("${oss.bucket}")
+ private String bucket;
+
+ @Value("${oss.file-domain}")
+ private String fileDomain;
+
+ private Auth auth;
+
+ private Auth getAuth() {
+ if (Objects.isNull(auth)) {
+ auth = Auth.create(getAccessKey(), getSecretKey());
+ }
+ return auth;
+ }
+
+ public Map getUpToken() {
+ Map map = new HashMap<>(2);
+ String upToken = getAuth().uploadToken(bucket);
+ map.put("upToken", upToken);
+ map.put("domain", fileDomain);
+ return map;
+ }
+
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/alipay/bean/AliPayBean.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/alipay/bean/AliPayBean.java
new file mode 100644
index 0000000..aa8fa29
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/alipay/bean/AliPayBean.java
@@ -0,0 +1,50 @@
+package com.hc.tripcore.utils.pay.browser.alipay.bean;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author 10696
+ * @since 2020/11/26 14:43
+ */
+
+@Data
+public class AliPayBean {
+
+ /**
+ * 商户订单号
+ */
+ @NotNull(message = "订单号不可以为空")
+ private String out_trade_no;
+
+ /**
+ * 订单名称
+ */
+ @NotNull(message = "订单名称不可以为空")
+ private String subject;
+
+ /**
+ * 付款金额
+ */
+ @NotNull(message = "付款金额不可以为空")
+ private String total_amount;
+
+ /**
+ * 商品描述
+ */
+ @NotNull(message = "商品描述不可以为空")
+ private String body;
+
+ /**
+ * 超时时间参数
+ */
+ private String timeout_express = "10m";
+
+ /**
+ * 产品编号
+ */
+ private String product_code = "FAST_INSTANT_TRADE_PAY";
+
+
+}
\ No newline at end of file
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/alipay/bean/AliPayRefundBean.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/alipay/bean/AliPayRefundBean.java
new file mode 100644
index 0000000..8bb37fc
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/alipay/bean/AliPayRefundBean.java
@@ -0,0 +1,31 @@
+package com.hc.tripcore.utils.pay.browser.alipay.bean;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author 10696
+ * @since 2020/11/26 14:44
+ */
+
+@Data
+public class AliPayRefundBean {
+
+ /**
+ * 商品订单号
+ */
+ @NotNull
+ private String out_trade_no;
+ /**
+ * 支付宝交易号
+ */
+ @NotNull
+ private String trade_no;
+ /**
+ * 退款金额
+ */
+ @NotNull
+ private Double refund_amount;
+
+}
\ No newline at end of file
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/alipay/processor/AliPayProcessor.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/alipay/processor/AliPayProcessor.java
new file mode 100644
index 0000000..1f1bead
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/alipay/processor/AliPayProcessor.java
@@ -0,0 +1,92 @@
+package com.hc.tripcore.utils.pay.browser.alipay.processor;
+
+import com.alibaba.fastjson.JSON;
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.DefaultAlipayClient;
+import com.alipay.api.request.AlipayTradePagePayRequest;
+import com.alipay.api.request.AlipayTradeRefundRequest;
+import com.hc.tripcore.utils.pay.browser.alipay.bean.AliPayBean;
+import com.hc.tripcore.utils.pay.browser.alipay.bean.AliPayRefundBean;
+import com.hc.tripcore.utils.properties.PayProperties;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author JIA
+ */
+
+@Component("aliPayProcessor")
+public class AliPayProcessor {
+
+ @Autowired
+ private PayProperties payProperties;
+
+ /**
+ * 支付宝支付配置
+ *
+ * @return 接口对象
+ */
+ public AlipayClient alipayClient(String aliPayPublicKey) {
+ // 1、获得初始化的AliPayClient
+ String serverUrl = payProperties.getAliPay().getGatewayUrl();
+ String appId = payProperties.getAliPay().getAppId();
+ String privateKey = payProperties.getAliPay().getPrivateKey();
+ String format = "json";
+ String charset = payProperties.getAliPay().getCharset();
+ String signType = payProperties.getAliPay().getSignType();
+ return new DefaultAlipayClient(serverUrl, appId, privateKey, format, charset, aliPayPublicKey, signType);
+ }
+
+ /**
+ * 支付
+ *
+ * @param aliPayBean
+ * @return 实例对象
+ * @throws AlipayApiException
+ */
+ public String pay(AliPayBean aliPayBean) throws AlipayApiException {
+
+ // 2、设置请求参数
+ String aliPayPublicKey = payProperties.getAliPay().getPublicKey();
+ String notifyUrl = payProperties.getAliPay().getNotifyUrl();
+ String returnUrl = payProperties.getAliPay().getReturnUrl();
+ // 构造请求
+ AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
+ // 页面跳转同步通知页面路径
+ alipayRequest.setReturnUrl(returnUrl);
+ // 服务器异步通知页面路径
+ alipayRequest.setNotifyUrl(notifyUrl);
+ // 封装参数
+ alipayRequest.setBizContent(JSON.toJSONString(aliPayBean));
+ // 连接参数
+ AlipayClient alipayClient = alipayClient(aliPayPublicKey);
+ // 3、请求支付宝进行付款,并获取支付结果
+ String result = alipayClient.pageExecute(alipayRequest).getBody();
+ // 返回付款信息
+ return result;
+ }
+
+ /**
+ * 退款
+ *
+ * @param aliPayRefundBean
+ * @return 实例对象
+ * @throws AlipayApiException
+ */
+ public String refund(AliPayRefundBean aliPayRefundBean) throws AlipayApiException {
+ // 2、设置请求参数
+ String aliPayPublicKey = payProperties.getAliPay().getKey();
+ // 构造请求
+ AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
+ request.setBizContent(JSON.toJSONString(aliPayRefundBean));
+ //连接参数
+ AlipayClient alipayClient = alipayClient(aliPayPublicKey);
+ // 3、请求支付宝进行退款,并获取支付结果
+ String result = alipayClient.execute(request).getBody();
+ // 返回退款信息
+ return result;
+ }
+
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/wxpay/utils/WebUtils.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/wxpay/utils/WebUtils.java
new file mode 100644
index 0000000..7f9cb95
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/wxpay/utils/WebUtils.java
@@ -0,0 +1,43 @@
+package com.hc.tripcore.utils.pay.browser.wxpay.utils;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.methods.RequestEntity;
+import org.apache.commons.httpclient.methods.StringRequestEntity;
+
+import java.io.BufferedInputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author zdx
+ */
+public class WebUtils {
+
+ public static Map getMwebUrl(String url, String xmlParam){
+ String jsonStr = null;
+ HttpClient httpClient = new HttpClient();
+ Map map = new HashMap();
+ try {
+ PostMethod method = null;
+ RequestEntity reqEntity = new StringRequestEntity(xmlParam,"text/json","UTF-8");
+ method = new PostMethod(url);
+ method.setRequestEntity(reqEntity);
+ method.addRequestHeader("Content-Type","application/json;charset=utf-8");
+ httpClient.executeMethod(method);
+ StringBuffer resBodyBuf = new StringBuffer();
+ byte[] responseBody = new byte[1024];
+ int readCount = 0;
+ BufferedInputStream is = new BufferedInputStream(method.getResponseBodyAsStream());
+ while((readCount = is.read(responseBody,0,responseBody.length))!=-1){
+ resBodyBuf.append(new String(responseBody,0,readCount,"utf-8"));
+ }
+ jsonStr = resBodyBuf.toString();
+ map = XMLUtils.parseXmlToList(jsonStr);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return map;
+ }
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/wxpay/utils/XMLUtils.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/wxpay/utils/XMLUtils.java
new file mode 100644
index 0000000..e3821b7
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/pay/browser/wxpay/utils/XMLUtils.java
@@ -0,0 +1,51 @@
+package com.hc.tripcore.utils.pay.browser.wxpay.utils;
+
+import org.jdom2.Document;
+import org.jdom2.Element;
+import org.jdom2.input.SAXBuilder;
+import org.xml.sax.InputSource;
+
+import java.io.StringReader;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zdx
+ */
+public class XMLUtils {
+
+ /**
+ * description: 解析微信通知xml
+ *
+ * @param xml
+ * @return
+ * @author ex_yangxiaoyi
+ * @see
+ */
+ @SuppressWarnings({ "unused", "rawtypes", "unchecked" })
+ public static Map parseXmlToList(String xml) {
+ Map retMap = new HashMap();
+ try {
+ StringReader read = new StringReader(xml);
+ // 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
+ InputSource source = new InputSource(read);
+ // 创建一个新的SAXBuilder
+ SAXBuilder sb = new SAXBuilder();
+ // 通过输入源构造一个Document
+ Document doc = (Document) sb.build(source);
+ Element root = doc.getRootElement();// 指向根节点
+ List es = root.getChildren();
+ if (es != null && es.size() != 0) {
+ for (Element element : es) {
+ retMap.put(element.getName(), element.getValue());
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return retMap;
+
+ }
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/properties/AliPayProperties.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/properties/AliPayProperties.java
new file mode 100644
index 0000000..b024951
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/properties/AliPayProperties.java
@@ -0,0 +1,31 @@
+package com.hc.tripcore.utils.properties;
+
+import lombok.Data;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author 10696
+ * @since 2020/11/26 14:20
+ */
+@Data
+@Component
+public class AliPayProperties {
+
+ private String appId;
+
+ private String privateKey;
+
+ private String publicKey;
+
+ private String notifyUrl;
+
+ private String returnUrl;
+
+ private String signType;
+
+ private String charset;
+
+ private String gatewayUrl;
+
+ private String key;
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/properties/PayProperties.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/properties/PayProperties.java
new file mode 100644
index 0000000..50a7bc4
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/properties/PayProperties.java
@@ -0,0 +1,36 @@
+package com.hc.tripcore.utils.properties;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author 10696
+ */
+
+@Component("payProperties")
+@ConfigurationProperties("hc.pay")
+public class PayProperties {
+
+ private AliPayProperties aliPay = new AliPayProperties();
+
+ private WxPayProperties wxPay = new WxPayProperties();
+
+ public AliPayProperties getAliPay() {
+ return aliPay;
+ }
+
+ public void setAliPay(AliPayProperties aliPay) {
+ this.aliPay = aliPay;
+ }
+
+ public WxPayProperties getWxPay() {
+ return wxPay;
+ }
+
+ public void setWxPay(WxPayProperties wxPay) {
+ this.wxPay = wxPay;
+ }
+
+
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/properties/WxPayProperties.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/properties/WxPayProperties.java
new file mode 100644
index 0000000..a543809
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/properties/WxPayProperties.java
@@ -0,0 +1,37 @@
+package com.hc.tripcore.utils.properties;
+
+import lombok.Data;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author 10696
+ */
+@Data
+@Component
+public class WxPayProperties {
+
+ private String appid;
+
+ private String mch_id;
+
+ private String sign_key;
+
+ private String nonce_str;
+
+ private String sign;
+
+ private String body;
+
+ private String out_trade_no;
+
+ private int total_fee;
+
+ private String spbill_create_ip;
+
+ private String notify_url;
+
+ private String trade_type;
+
+ private String scene_info;
+
+}
diff --git a/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/redis/RedisUtil.java b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/redis/RedisUtil.java
new file mode 100644
index 0000000..d81a314
--- /dev/null
+++ b/fenis-trip/trip-core/src/main/java/com/hc/tripcore/utils/redis/RedisUtil.java
@@ -0,0 +1,281 @@
+package com.hc.tripcore.utils.redis;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * SpringData Redis工具类
+ * 序列化工具,已回退到jdk序列
+ *
+ * @author JIA
+ */
+@Component
+public class RedisUtil {
+
+ private final RedisTemplate redisTemplate;
+
+ @Autowired
+ public RedisUtil(RedisTemplate redisTemplate) {
+ this.redisTemplate = redisTemplate;
+ }
+
+ /**
+ * 指定缓存失效时间
+ *
+ * @param key 键值
+ * @param time 时间
+ * @return 布尔
+ */
+ public boolean expire(String key, long time) {
+ try {
+ if (time > 0) {
+ redisTemplate.expire(key, time, TimeUnit.SECONDS);
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+
+ /**
+ * 判断key是否存在
+ *
+ * @param key 键值
+ * @return 布尔
+ */
+ public boolean hasKey(String key) {
+ try {
+ return redisTemplate.hasKey(key);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 删除缓存
+ *
+ * @param key 键值
+ */
+ public void del(String... key) {
+ if (key != null && key.length > 0) {
+ if (key.length == 1) {
+ redisTemplate.delete(key[0]);
+ } else {
+ redisTemplate.delete(CollectionUtils.arrayToList(key));
+ }
+ }
+ }
+
+
+ /**
+ * 放入存储,不设置时间
+ *
+ * @param key 键值
+ * @param value 对象
+ * @return 布尔
+ */
+ public boolean set(String key, Object value) {
+ try {
+ redisTemplate.opsForValue().set(key, value);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 放入缓存,并设置时间
+ *
+ * @param key 键值
+ * @param value 对象
+ * @param time 时间
+ * @return 布尔
+ */
+
+ public boolean set(String key, Object value, long time) {
+ try {
+ if (time > 0) {
+ redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
+ } else {
+ set(key, value);
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 依据key 获取缓存
+ *
+ * @param key 键值
+ * @return 实例对象
+ */
+ public Object get(String key) {
+ return key == null ? null : redisTemplate.opsForValue().get(key);
+ }
+
+ /**
+ * HashMap存入缓存
+ *
+ * @param key 键值
+ * @param map Map对象
+ * @return 布尔
+ */
+ public boolean hashMapSet(String key, Map map) {
+ try {
+ redisTemplate.opsForHash().putAll(key, map);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+
+ /**
+ * HashGet获取
+ *
+ * @param key 键值
+ * @param item 散列值
+ * @return 实例对象
+ */
+ public Object hashGet(String key, String item) {
+ return redisTemplate.opsForHash().get(key, item);
+ }
+
+ /**
+ * hash表中放入数据,如果不存在将创建
+ *
+ * @param key 键值
+ * @param item 散列值
+ * @param value 对象
+ * @return 布尔
+ */
+ public boolean hashSet(String key, String item, Object value) {
+ try {
+ redisTemplate.opsForHash().put(key, item, value);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 删除hash表中的值
+ *
+ * @param key 键值
+ * @param item 散列值
+ */
+ public void hashDel(String key, Object... item) {
+ redisTemplate.opsForHash().delete(key, item);
+ }
+
+ /**
+ * 判断hash表中是否有该项的值
+ *
+ * @param key 键值
+ * @param item 散列值
+ * @return 布尔
+ */
+ public boolean hashHasKey(String key, String item) {
+ return redisTemplate.opsForHash().hasKey(key, item);
+ }
+
+ /**
+ * 根据key获取Set中的所有值
+ *
+ * @param key 键值
+ * @return 实例对象数组
+ */
+ public Set