├── .mvn └── wrapper │ ├── maven-wrapper.jar │ ├── maven-wrapper.properties │ └── MavenWrapperDownloader.java ├── src └── main │ ├── java │ └── com │ │ ├── dao │ │ ├── ConfigDao.java │ │ ├── UserDao.java │ │ ├── TokenDao.java │ │ ├── CommonDao.java │ │ ├── NewsDao.java │ │ ├── YonghuDao.java │ │ ├── StoreupDao.java │ │ ├── MessagesDao.java │ │ ├── FuwujinduDao.java │ │ ├── FuwuxinxiDao.java │ │ ├── FuwufenpeiDao.java │ │ ├── FuwuquxiaoDao.java │ │ ├── PeixuntixiDao.java │ │ ├── FuwuleixingDao.java │ │ ├── FuwurenyuanDao.java │ │ ├── PingjiaxinxiDao.java │ │ └── FuwuyuyueDao.java │ │ ├── annotation │ │ ├── IgnoreAuth.java │ │ ├── LoginUser.java │ │ └── APPLoginUser.java │ │ ├── config │ │ ├── AlipayConfig.java │ │ ├── MybatisPlusConfig.java │ │ └── InterceptorConfig.java │ │ ├── entity │ │ ├── vo │ │ │ ├── FuwuleixingVO.java │ │ │ ├── NewsVO.java │ │ │ ├── MessagesVO.java │ │ │ ├── FuwurenyuanVO.java │ │ │ ├── FuwuxinxiVO.java │ │ │ ├── PeixuntixiVO.java │ │ │ ├── FuwuyuyueVO.java │ │ │ ├── FuwufenpeiVO.java │ │ │ ├── FuwuquxiaoVO.java │ │ │ └── FuwujinduVO.java │ │ ├── model │ │ │ ├── FuwuleixingModel.java │ │ │ ├── NewsModel.java │ │ │ ├── MessagesModel.java │ │ │ ├── StoreupModel.java │ │ │ ├── YonghuModel.java │ │ │ ├── FuwurenyuanModel.java │ │ │ ├── FuwuxinxiModel.java │ │ │ ├── PeixuntixiModel.java │ │ │ ├── FuwuyuyueModel.java │ │ │ ├── PingjiaxinxiModel.java │ │ │ ├── FuwufenpeiModel.java │ │ │ ├── FuwuquxiaoModel.java │ │ │ └── FuwujinduModel.java │ │ ├── view │ │ │ ├── NewsView.java │ │ │ ├── YonghuView.java │ │ │ ├── StoreupView.java │ │ │ ├── MessagesView.java │ │ │ ├── FuwujinduView.java │ │ │ ├── FuwuxinxiView.java │ │ │ ├── FuwuyuyueView.java │ │ │ ├── FuwufenpeiView.java │ │ │ ├── FuwuquxiaoView.java │ │ │ ├── PeixuntixiView.java │ │ │ ├── FuwuleixingView.java │ │ │ ├── FuwurenyuanView.java │ │ │ └── PingjiaxinxiView.java │ │ ├── EIException.java │ │ ├── ConfigEntity.java │ │ ├── UserEntity.java │ │ ├── FuwuleixingEntity.java │ │ ├── TokenEntity.java │ │ ├── NewsEntity.java │ │ ├── MessagesEntity.java │ │ ├── StoreupEntity.java │ │ ├── YonghuEntity.java │ │ ├── FuwurenyuanEntity.java │ │ ├── FuwuxinxiEntity.java │ │ ├── PeixuntixiEntity.java │ │ ├── FuwuyuyueEntity.java │ │ ├── PingjiaxinxiEntity.java │ │ └── FuwufenpeiEntity.java │ │ ├── SpringbootSchemaApplication.java │ │ └── controller │ │ ├── ConfigController.java │ │ ├── FileController.java │ │ └── UserController.java │ └── resources │ ├── admin │ └── admin │ │ ├── src │ │ ├── icons │ │ │ └── svgo.yml │ │ └── main.js │ │ └── vue.config.js │ ├── application.yml │ └── front │ └── front │ └── modules │ └── tinymce │ ├── tinymce │ └── readme.md │ └── tinymce.js ├── .gitignore ├── README.md └── pom.xml /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/small-bears/Housekeeping/HEAD/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar 3 | -------------------------------------------------------------------------------- /src/main/java/com/dao/ConfigDao.java: -------------------------------------------------------------------------------- 1 | 2 | package com.dao; 3 | 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import com.entity.ConfigEntity; 6 | 7 | /** 8 | * 配置 9 | */ 10 | public interface ConfigDao extends BaseMapper { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/annotation/IgnoreAuth.java: -------------------------------------------------------------------------------- 1 | package com.annotation; 2 | 3 | import java.lang.annotation.*; 4 | 5 | /** 6 | * 忽略Token验证 7 | */ 8 | @Target(ElementType.METHOD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | @Documented 11 | public @interface IgnoreAuth { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/config/AlipayConfig.java: -------------------------------------------------------------------------------- 1 | package com.config; 2 | 3 | import java.io.FileWriter; 4 | import java.io.IOException; 5 | 6 | /* * 7 | *类名:AlipayConfig 8 | *功能:基础配置类 9 | *详细:设置帐户有关信息及返回路径 10 | *修改日期:2017-04-05 11 | *说明: 12 | *以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。 13 | *该代码仅供学习和研究支付宝接口使用,只是提供一个参考。 14 | */ 15 | 16 | public class AlipayConfig { 17 | } 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/com/annotation/LoginUser.java: -------------------------------------------------------------------------------- 1 | package com.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 登录用户信息 10 | */ 11 | @Target(ElementType.PARAMETER) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface LoginUser { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/annotation/APPLoginUser.java: -------------------------------------------------------------------------------- 1 | package com.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 登录用户信息 10 | */ 11 | @Target(ElementType.PARAMETER) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface APPLoginUser { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | 30 | ### VS Code ### 31 | .vscode/ 32 | -------------------------------------------------------------------------------- /src/main/resources/admin/admin/src/icons/svgo.yml: -------------------------------------------------------------------------------- 1 | # replace default config 2 | # 基于svgo对svg文件进行压缩:https://panjiachen.github.io/vue-element-admin-site/zh/feature/script/svgo.html 3 | # multipass: true 4 | # full: true 5 | 6 | plugins: 7 | 8 | # - name 9 | # 10 | # or: 11 | # - name: false 12 | # - name: true 13 | # 14 | # or: 15 | # - name: 16 | # param1: 1 17 | # param2: 2 18 | 19 | - removeAttrs: 20 | attrs: 21 | - 'fill' 22 | - 'fill-rule' 23 | -------------------------------------------------------------------------------- /src/main/java/com/config/MybatisPlusConfig.java: -------------------------------------------------------------------------------- 1 | 2 | package com.config; 3 | 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | import com.baomidou.mybatisplus.mapper.MetaObjectHandler; 8 | import com.baomidou.mybatisplus.plugins.PaginationInterceptor; 9 | 10 | /** 11 | * mybatis-plus配置 12 | */ 13 | @Configuration 14 | public class MybatisPlusConfig { 15 | 16 | /** 17 | * 分页插件 18 | */ 19 | @Bean 20 | public PaginationInterceptor paginationInterceptor() { 21 | return new PaginationInterceptor(); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/dao/UserDao.java: -------------------------------------------------------------------------------- 1 | 2 | package com.dao; 3 | 4 | import java.util.List; 5 | 6 | import org.apache.ibatis.annotations.Param; 7 | 8 | import com.baomidou.mybatisplus.mapper.BaseMapper; 9 | import com.baomidou.mybatisplus.mapper.Wrapper; 10 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 11 | import com.entity.UserEntity; 12 | 13 | /** 14 | * 用户 15 | */ 16 | public interface UserDao extends BaseMapper { 17 | 18 | List selectListView(@Param("ew") Wrapper wrapper); 19 | 20 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/entity/vo/FuwuleixingVO.java: -------------------------------------------------------------------------------- 1 | package com.entity.vo; 2 | 3 | import com.entity.FuwuleixingEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务类型 15 | * 手机端接口返回实体辅助类 16 | * (主要作用去除一些不必要的字段) 17 | * @author 18 | * @email 19 | * @date 2022-04-20 17:40:05 20 | */ 21 | public class FuwuleixingVO implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/dao/TokenDao.java: -------------------------------------------------------------------------------- 1 | 2 | package com.dao; 3 | 4 | import java.util.List; 5 | 6 | import org.apache.ibatis.annotations.Param; 7 | 8 | import com.baomidou.mybatisplus.mapper.BaseMapper; 9 | import com.baomidou.mybatisplus.mapper.Wrapper; 10 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 11 | import com.entity.TokenEntity; 12 | 13 | /** 14 | * token 15 | */ 16 | public interface TokenDao extends BaseMapper { 17 | 18 | List selectListView(@Param("ew") Wrapper wrapper); 19 | 20 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/FuwuleixingModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.FuwuleixingEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务类型 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class FuwuleixingModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/dao/CommonDao.java: -------------------------------------------------------------------------------- 1 | 2 | package com.dao; 3 | 4 | import java.util.List; 5 | import java.util.Map; 6 | 7 | /** 8 | * 通用接口 9 | */ 10 | public interface CommonDao{ 11 | List getOption(Map params); 12 | 13 | Map getFollowByOption(Map params); 14 | 15 | List getFollowByOption2(Map params); 16 | 17 | void sh(Map params); 18 | 19 | int remindCount(Map params); 20 | 21 | Map selectCal(Map params); 22 | 23 | List> selectGroup(Map params); 24 | 25 | List> selectValue(Map params); 26 | 27 | List> selectTimeStatValue(Map params); 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/SpringbootSchemaApplication.java: -------------------------------------------------------------------------------- 1 | package com; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.boot.builder.SpringApplicationBuilder; 7 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 8 | 9 | @SpringBootApplication 10 | @MapperScan(basePackages = {"com.dao"}) 11 | public class SpringbootSchemaApplication extends SpringBootServletInitializer{ 12 | 13 | public static void main(String[] args) { 14 | SpringApplication.run(SpringbootSchemaApplication.class, args); 15 | } 16 | 17 | @Override 18 | protected SpringApplicationBuilder configure(SpringApplicationBuilder applicationBuilder) { 19 | return applicationBuilder.sources(SpringbootSchemaApplication.class); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/NewsView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.NewsEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 公告信息 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("news") 21 | public class NewsView extends NewsEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public NewsView(){ 25 | } 26 | 27 | public NewsView(NewsEntity newsEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, newsEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/YonghuView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.YonghuEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 用户 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("yonghu") 21 | public class YonghuView extends YonghuEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public YonghuView(){ 25 | } 26 | 27 | public YonghuView(YonghuEntity yonghuEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, yonghuEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/StoreupView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.StoreupEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 收藏表 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("storeup") 21 | public class StoreupView extends StoreupEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public StoreupView(){ 25 | } 26 | 27 | public StoreupView(StoreupEntity storeupEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, storeupEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/MessagesView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.MessagesEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 留言反馈 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("messages") 21 | public class MessagesView extends MessagesEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public MessagesView(){ 25 | } 26 | 27 | public MessagesView(MessagesEntity messagesEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, messagesEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/FuwujinduView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.FuwujinduEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 服务进度 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("fuwujindu") 21 | public class FuwujinduView extends FuwujinduEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public FuwujinduView(){ 25 | } 26 | 27 | public FuwujinduView(FuwujinduEntity fuwujinduEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, fuwujinduEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/FuwuxinxiView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.FuwuxinxiEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 服务信息 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("fuwuxinxi") 21 | public class FuwuxinxiView extends FuwuxinxiEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public FuwuxinxiView(){ 25 | } 26 | 27 | public FuwuxinxiView(FuwuxinxiEntity fuwuxinxiEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, fuwuxinxiEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/FuwuyuyueView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.FuwuyuyueEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 服务预约 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("fuwuyuyue") 21 | public class FuwuyuyueView extends FuwuyuyueEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public FuwuyuyueView(){ 25 | } 26 | 27 | public FuwuyuyueView(FuwuyuyueEntity fuwuyuyueEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, fuwuyuyueEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/FuwufenpeiView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.FuwufenpeiEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 服务分配 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("fuwufenpei") 21 | public class FuwufenpeiView extends FuwufenpeiEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public FuwufenpeiView(){ 25 | } 26 | 27 | public FuwufenpeiView(FuwufenpeiEntity fuwufenpeiEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, fuwufenpeiEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/FuwuquxiaoView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.FuwuquxiaoEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 服务取消 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("fuwuquxiao") 21 | public class FuwuquxiaoView extends FuwuquxiaoEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public FuwuquxiaoView(){ 25 | } 26 | 27 | public FuwuquxiaoView(FuwuquxiaoEntity fuwuquxiaoEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, fuwuquxiaoEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/PeixuntixiView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.PeixuntixiEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 培训体系 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("peixuntixi") 21 | public class PeixuntixiView extends PeixuntixiEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public PeixuntixiView(){ 25 | } 26 | 27 | public PeixuntixiView(PeixuntixiEntity peixuntixiEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, peixuntixiEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/FuwuleixingView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.FuwuleixingEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 服务类型 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("fuwuleixing") 21 | public class FuwuleixingView extends FuwuleixingEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public FuwuleixingView(){ 25 | } 26 | 27 | public FuwuleixingView(FuwuleixingEntity fuwuleixingEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, fuwuleixingEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/FuwurenyuanView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.FuwurenyuanEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 服务人员 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("fuwurenyuan") 21 | public class FuwurenyuanView extends FuwurenyuanEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public FuwurenyuanView(){ 25 | } 26 | 27 | public FuwurenyuanView(FuwurenyuanEntity fuwurenyuanEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, fuwurenyuanEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/entity/view/PingjiaxinxiView.java: -------------------------------------------------------------------------------- 1 | package com.entity.view; 2 | 3 | import com.entity.PingjiaxinxiEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import org.apache.commons.beanutils.BeanUtils; 7 | import java.lang.reflect.InvocationTargetException; 8 | 9 | import java.io.Serializable; 10 | 11 | 12 | /** 13 | * 评价信息 14 | * 后端返回视图实体辅助类 15 | * (通常后端关联的表或者自定义的字段需要返回使用) 16 | * @author 17 | * @email 18 | * @date 2022-04-20 17:40:05 19 | */ 20 | @TableName("pingjiaxinxi") 21 | public class PingjiaxinxiView extends PingjiaxinxiEntity implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | public PingjiaxinxiView(){ 25 | } 26 | 27 | public PingjiaxinxiView(PingjiaxinxiEntity pingjiaxinxiEntity){ 28 | try { 29 | BeanUtils.copyProperties(this, pingjiaxinxiEntity); 30 | } catch (IllegalAccessException | InvocationTargetException e) { 31 | // TODO Auto-generated catch block 32 | e.printStackTrace(); 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/dao/NewsDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.NewsEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.NewsVO; 12 | import com.entity.view.NewsView; 13 | 14 | 15 | /** 16 | * 公告信息 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface NewsDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | NewsVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | NewsView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/entity/EIException.java: -------------------------------------------------------------------------------- 1 | 2 | package com.entity; 3 | 4 | /** 5 | * 自定义异常 6 | */ 7 | public class EIException extends RuntimeException { 8 | private static final long serialVersionUID = 1L; 9 | 10 | private String msg; 11 | private int code = 500; 12 | 13 | public EIException(String msg) { 14 | super(msg); 15 | this.msg = msg; 16 | } 17 | 18 | public EIException(String msg, Throwable e) { 19 | super(msg, e); 20 | this.msg = msg; 21 | } 22 | 23 | public EIException(String msg, int code) { 24 | super(msg); 25 | this.msg = msg; 26 | this.code = code; 27 | } 28 | 29 | public EIException(String msg, int code, Throwable e) { 30 | super(msg, e); 31 | this.msg = msg; 32 | this.code = code; 33 | } 34 | 35 | public String getMsg() { 36 | return msg; 37 | } 38 | 39 | public void setMsg(String msg) { 40 | this.msg = msg; 41 | } 42 | 43 | public int getCode() { 44 | return code; 45 | } 46 | 47 | public void setCode(int code) { 48 | this.code = code; 49 | } 50 | 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/com/entity/ConfigEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import java.io.Serializable; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableId; 6 | import com.baomidou.mybatisplus.annotations.TableName; 7 | import com.baomidou.mybatisplus.enums.IdType; 8 | 9 | /** 10 | * 类说明 : 11 | */ 12 | @TableName("config") 13 | public class ConfigEntity implements Serializable{ 14 | private static final long serialVersionUID = 1L; 15 | 16 | @TableId(type = IdType.AUTO) 17 | private Long id; 18 | 19 | /** 20 | * key 21 | */ 22 | private String name; 23 | 24 | /** 25 | * value 26 | */ 27 | private String value; 28 | 29 | public Long getId() { 30 | return id; 31 | } 32 | 33 | public void setId(Long id) { 34 | this.id = id; 35 | } 36 | 37 | public String getName() { 38 | return name; 39 | } 40 | 41 | public void setName(String name) { 42 | this.name = name; 43 | } 44 | 45 | public String getValue() { 46 | return value; 47 | } 48 | 49 | public void setValue(String value) { 50 | this.value = value; 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/com/dao/YonghuDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.YonghuEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.YonghuVO; 12 | import com.entity.view.YonghuView; 13 | 14 | 15 | /** 16 | * 用户 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface YonghuDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | YonghuVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | YonghuView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/dao/StoreupDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.StoreupEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.StoreupVO; 12 | import com.entity.view.StoreupView; 13 | 14 | 15 | /** 16 | * 收藏表 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface StoreupDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | StoreupVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | StoreupView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/dao/MessagesDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.MessagesEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.MessagesVO; 12 | import com.entity.view.MessagesView; 13 | 14 | 15 | /** 16 | * 留言反馈 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface MessagesDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | MessagesVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | MessagesView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/dao/FuwujinduDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.FuwujinduEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.FuwujinduVO; 12 | import com.entity.view.FuwujinduView; 13 | 14 | 15 | /** 16 | * 服务进度 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface FuwujinduDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | FuwujinduVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | FuwujinduView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/dao/FuwuxinxiDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.FuwuxinxiEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.FuwuxinxiVO; 12 | import com.entity.view.FuwuxinxiView; 13 | 14 | 15 | /** 16 | * 服务信息 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface FuwuxinxiDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | FuwuxinxiVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | FuwuxinxiView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/dao/FuwufenpeiDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.FuwufenpeiEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.FuwufenpeiVO; 12 | import com.entity.view.FuwufenpeiView; 13 | 14 | 15 | /** 16 | * 服务分配 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface FuwufenpeiDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | FuwufenpeiVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | FuwufenpeiView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/dao/FuwuquxiaoDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.FuwuquxiaoEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.FuwuquxiaoVO; 12 | import com.entity.view.FuwuquxiaoView; 13 | 14 | 15 | /** 16 | * 服务取消 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface FuwuquxiaoDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | FuwuquxiaoVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | FuwuquxiaoView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/dao/PeixuntixiDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.PeixuntixiEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.PeixuntixiVO; 12 | import com.entity.view.PeixuntixiView; 13 | 14 | 15 | /** 16 | * 培训体系 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface PeixuntixiDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | PeixuntixiVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | PeixuntixiView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/dao/FuwuleixingDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.FuwuleixingEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.FuwuleixingVO; 12 | import com.entity.view.FuwuleixingView; 13 | 14 | 15 | /** 16 | * 服务类型 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface FuwuleixingDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | FuwuleixingVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | FuwuleixingView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/dao/FuwurenyuanDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.FuwurenyuanEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.FuwurenyuanVO; 12 | import com.entity.view.FuwurenyuanView; 13 | 14 | 15 | /** 16 | * 服务人员 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface FuwurenyuanDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | FuwurenyuanVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | FuwurenyuanView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/dao/PingjiaxinxiDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.PingjiaxinxiEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.PingjiaxinxiVO; 12 | import com.entity.view.PingjiaxinxiView; 13 | 14 | 15 | /** 16 | * 评价信息 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface PingjiaxinxiDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | PingjiaxinxiVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | PingjiaxinxiView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/entity/UserEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import java.io.Serializable; 4 | import java.util.Date; 5 | 6 | import com.baomidou.mybatisplus.annotations.TableId; 7 | import com.baomidou.mybatisplus.annotations.TableName; 8 | import com.baomidou.mybatisplus.enums.IdType; 9 | 10 | /** 11 | * 用户 12 | */ 13 | @TableName("users") 14 | public class UserEntity implements Serializable { 15 | private static final long serialVersionUID = 1L; 16 | 17 | @TableId(type = IdType.AUTO) 18 | private Long id; 19 | 20 | /** 21 | * 用户账号 22 | */ 23 | private String username; 24 | 25 | /** 26 | * 密码 27 | */ 28 | private String password; 29 | 30 | /** 31 | * 用户类型 32 | */ 33 | private String role; 34 | 35 | private Date addtime; 36 | 37 | public String getUsername() { 38 | return username; 39 | } 40 | 41 | public void setUsername(String username) { 42 | this.username = username; 43 | } 44 | 45 | public String getPassword() { 46 | return password; 47 | } 48 | 49 | public void setPassword(String password) { 50 | this.password = password; 51 | } 52 | 53 | public String getRole() { 54 | return role; 55 | } 56 | 57 | public void setRole(String role) { 58 | this.role = role; 59 | } 60 | 61 | public Date getAddtime() { 62 | return addtime; 63 | } 64 | 65 | public void setAddtime(Date addtime) { 66 | this.addtime = addtime; 67 | } 68 | 69 | public Long getId() { 70 | return id; 71 | } 72 | 73 | public void setId(Long id) { 74 | this.id = id; 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /src/main/java/com/dao/FuwuyuyueDao.java: -------------------------------------------------------------------------------- 1 | package com.dao; 2 | 3 | import com.entity.FuwuyuyueEntity; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import java.util.List; 6 | import java.util.Map; 7 | import com.baomidou.mybatisplus.mapper.Wrapper; 8 | import com.baomidou.mybatisplus.plugins.pagination.Pagination; 9 | 10 | import org.apache.ibatis.annotations.Param; 11 | import com.entity.vo.FuwuyuyueVO; 12 | import com.entity.view.FuwuyuyueView; 13 | 14 | 15 | /** 16 | * 服务预约 17 | * 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public interface FuwuyuyueDao extends BaseMapper { 23 | 24 | List selectListVO(@Param("ew") Wrapper wrapper); 25 | 26 | FuwuyuyueVO selectVO(@Param("ew") Wrapper wrapper); 27 | 28 | List selectListView(@Param("ew") Wrapper wrapper); 29 | 30 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper); 31 | 32 | FuwuyuyueView selectView(@Param("ew") Wrapper wrapper); 33 | 34 | 35 | List> selectValue(@Param("params") Map params,@Param("ew") Wrapper wrapper); 36 | 37 | List> selectTimeStatValue(@Param("params") Map params,@Param("ew") Wrapper wrapper); 38 | 39 | List> selectGroup(@Param("params") Map params,@Param("ew") Wrapper wrapper); 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/config/InterceptorConfig.java: -------------------------------------------------------------------------------- 1 | package com.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 6 | import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 7 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; 8 | 9 | import com.interceptor.AuthorizationInterceptor; 10 | 11 | @Configuration 12 | public class InterceptorConfig extends WebMvcConfigurationSupport{ 13 | 14 | @Bean 15 | public AuthorizationInterceptor getAuthorizationInterceptor() { 16 | return new AuthorizationInterceptor(); 17 | } 18 | 19 | @Override 20 | public void addInterceptors(InterceptorRegistry registry) { 21 | registry.addInterceptor(getAuthorizationInterceptor()).addPathPatterns("/**").excludePathPatterns("/static/**"); 22 | super.addInterceptors(registry); 23 | } 24 | 25 | /** 26 | * springboot 2.0配置WebMvcConfigurationSupport之后,会导致默认配置被覆盖,要访问静态资源需要重写addResourceHandlers方法 27 | */ 28 | @Override 29 | public void addResourceHandlers(ResourceHandlerRegistry registry) { 30 | registry.addResourceHandler("/**") 31 | .addResourceLocations("classpath:/resources/") 32 | .addResourceLocations("classpath:/static/") 33 | .addResourceLocations("classpath:/admin/") 34 | .addResourceLocations("classpath:/front/") 35 | .addResourceLocations("classpath:/public/"); 36 | super.addResourceHandlers(registry); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/com/entity/vo/NewsVO.java: -------------------------------------------------------------------------------- 1 | package com.entity.vo; 2 | 3 | import com.entity.NewsEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 公告信息 15 | * 手机端接口返回实体辅助类 16 | * (主要作用去除一些不必要的字段) 17 | * @author 18 | * @email 19 | * @date 2022-04-20 17:40:05 20 | */ 21 | public class NewsVO implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | 25 | /** 26 | * 简介 27 | */ 28 | 29 | private String introduction; 30 | 31 | /** 32 | * 图片 33 | */ 34 | 35 | private String picture; 36 | 37 | /** 38 | * 内容 39 | */ 40 | 41 | private String content; 42 | 43 | 44 | /** 45 | * 设置:简介 46 | */ 47 | 48 | public void setIntroduction(String introduction) { 49 | this.introduction = introduction; 50 | } 51 | 52 | /** 53 | * 获取:简介 54 | */ 55 | public String getIntroduction() { 56 | return introduction; 57 | } 58 | 59 | 60 | /** 61 | * 设置:图片 62 | */ 63 | 64 | public void setPicture(String picture) { 65 | this.picture = picture; 66 | } 67 | 68 | /** 69 | * 获取:图片 70 | */ 71 | public String getPicture() { 72 | return picture; 73 | } 74 | 75 | 76 | /** 77 | * 设置:内容 78 | */ 79 | 80 | public void setContent(String content) { 81 | this.content = content; 82 | } 83 | 84 | /** 85 | * 获取:内容 86 | */ 87 | public String getContent() { 88 | return content; 89 | } 90 | 91 | } 92 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | ### 联系方式(微信扫一扫): 3 | 2fc79856-4bde-42f0-a5ea-83281867fbbe 4 | 5 | ### 计算机毕设定制(直接点击链接):https://www.yuque.com/techninja/code/xrpvpxbu3y8fa3ey?singleDoc# 6 | ## 一、获取地址: 7 | 8 | #### 项目获取地址:https://www.666bear.com/10529.html 9 | 10 | **博主介绍:✌全网粉丝30W+,csdn特邀作者、Java领域优质创作者、csdn/掘金/哔哩哔哩/知乎/道客/小红书等平台优质作者,计算机毕设实战导师,目前专注于大学生项目实战开发,讲解,毕业答疑辅导✌工作室接计算机毕业设计程序开发、论文代写、代码讲解、出售成品源码等毕设服务,专业靠谱~** 11 | 12 | #### 作者QQ:3289948684 微信:bysj7626 (支持修改、 部署调试、 代做接毕业设计和课程设计) 13 | 14 | #### 接网站建设、小程序、H5、APP、各种系统、样式修改等 15 | 16 | #### 选题+开题报告+任务书+程序定制+安装调试+论文+答辩ppt 都可以做 17 | 18 | #### 有需求尽管甩过来!一条龙帮你安心过! 19 | 20 | #### 所有项目以及源代码本人均调试运行无问题 可支持远程调试运行 21 | 22 | ## 一、 项目介绍 23 | (协同过滤推荐算法)基于SpringBoot Vue家政服务平台 24 | 角色:管理员、用户、家政人员 25 | 26 | 管理员:管理员进入主页面,主要功能包括系统管理、个人中心、用户管理、家政人员管理、服务类型管理、服务项目管理、预约订单管理、服务记录管理、评价与反馈管理、在线投诉、系统管理 等进行操作 27 | 28 | 用户:当用户打开系统的网址后,首先看到的就是首页界面。在这里,用户能够看到家政服务平台的导航栏显示系统首页、服务项目、系统公告、在线投诉、个人中心。 29 | 30 | 家政人员:家政人员登录系统后,然后页面跳转到系统主页面可以对系统首页、个人中心、服务项目管理、预约订单管理、服务记录管理、评价与反馈等功能进行操作。 31 | 32 | ## 二、 视频演示(点击既可以看到) 33 | 34 | https://www.bilibili.com/video/BV1KuVozDEPD/?spm_id_from=333.1387.search.video_card.click&vd_source=b5789de9f485ad6d0cfaeca1ad4b230c 35 | 36 | ## 三、项目技术 37 | 38 | 后端: SpringBoot+Mybaits 39 | 40 | 前端:Vue +ELementUI 41 | 42 | 43 | 44 | ## 四、 运行环境 45 | 46 | 开发语言:Java 47 | 48 | 开发工具:IDEA,Eclipse,Myeclipse都可以。推荐IDEA 49 | 50 | JDK版本:1.8 51 | 52 | 数据库: MySQL8.0版本以上 53 | 54 | 项目管理:Maven 55 | ## 五、 运行截图(点图片可放大) 56 | https://www.bilibili.com/video/BV1KuVozDEPD/?spm_id_from=333.1387.search.video_card.click&vd_source=b5789de9f485ad6d0cfaeca1ad4b230c 57 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/NewsModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.NewsEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 公告信息 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class NewsModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 简介 28 | */ 29 | 30 | private String introduction; 31 | 32 | /** 33 | * 图片 34 | */ 35 | 36 | private String picture; 37 | 38 | /** 39 | * 内容 40 | */ 41 | 42 | private String content; 43 | 44 | 45 | /** 46 | * 设置:简介 47 | */ 48 | 49 | public void setIntroduction(String introduction) { 50 | this.introduction = introduction; 51 | } 52 | 53 | /** 54 | * 获取:简介 55 | */ 56 | public String getIntroduction() { 57 | return introduction; 58 | } 59 | 60 | 61 | /** 62 | * 设置:图片 63 | */ 64 | 65 | public void setPicture(String picture) { 66 | this.picture = picture; 67 | } 68 | 69 | /** 70 | * 获取:图片 71 | */ 72 | public String getPicture() { 73 | return picture; 74 | } 75 | 76 | 77 | /** 78 | * 设置:内容 79 | */ 80 | 81 | public void setContent(String content) { 82 | this.content = content; 83 | } 84 | 85 | /** 86 | * 获取:内容 87 | */ 88 | public String getContent() { 89 | return content; 90 | } 91 | 92 | } 93 | -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | # Tomcat 2 | server: 3 | tomcat: 4 | uri-encoding: UTF-8 5 | port: 8080 6 | servlet: 7 | context-path: /springbootm7qt4 8 | 9 | spring: 10 | datasource: 11 | driverClassName: com.mysql.cj.jdbc.Driver 12 | url: jdbc:mysql://127.0.0.1:3306/springbootm7qt4?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8 13 | username: root 14 | password: 123456 15 | 16 | # driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver 17 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=springbootm7qt4 18 | # username: sa 19 | # password: 123456 20 | 21 | servlet: 22 | multipart: 23 | max-file-size: 300MB 24 | max-request-size: 300MB 25 | resources: 26 | static-locations: classpath:static/,file:static/ 27 | 28 | #mybatis 29 | mybatis-plus: 30 | mapper-locations: classpath*:mapper/*.xml 31 | #实体扫描,多个package用逗号或者分号分隔 32 | typeAliasesPackage: com.entity 33 | global-config: 34 | #主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID"; 35 | id-type: 1 36 | #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断" 37 | field-strategy: 1 38 | #驼峰下划线转换 39 | db-column-underline: true 40 | #刷新mapper 调试神器 41 | refresh-mapper: true 42 | #逻辑删除配置 43 | logic-delete-value: -1 44 | logic-not-delete-value: 0 45 | #自定义SQL注入器 46 | sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector 47 | configuration: 48 | map-underscore-to-camel-case: true 49 | cache-enabled: false 50 | call-setters-on-nulls: true 51 | #springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other) 52 | jdbc-type-for-null: 'null' 53 | -------------------------------------------------------------------------------- /src/main/resources/admin/admin/vue.config.js: -------------------------------------------------------------------------------- 1 | // var webpack = require('webpack'); 2 | const path = require('path') 3 | function resolve(dir) { 4 | return path.join(__dirname, dir) 5 | } 6 | function publicPath(){ 7 | if (process.env.NODE_ENV == 'production') { 8 | return "././"; 9 | } else { 10 | return "/"; 11 | } 12 | } 13 | // vue.config.js 14 | module.exports = { 15 | // publicPath:"././", 16 | publicPath: publicPath(), 17 | // 国际化配置 使用其它语言,默认情况下中文语言包依旧是被引入的 18 | configureWebpack: { 19 | // plugins: [ 20 | // new webpack.NormalModuleReplacementPlugin(/element-ui[\/\\]lib[\/\\]locale[\/\\]lang[\/\\]zh-CN/, 'element-ui/lib/locale/lang/en') 21 | // ] 22 | resolve: { 23 | alias: { 24 | '@': resolve('src') 25 | } 26 | } 27 | }, 28 | lintOnSave: false, 29 | devServer: { 30 | host: "0.0.0.0", //指定使用一个 host。默认是 localhost,这里默认值即可 31 | port: 8081, //指定端口 32 | hot: true, // 开启热更新 33 | https: false, // 是否开启https模式 34 | proxy: { // 请求代理服务器 35 | '/springbootm7qt4': { //带上api前缀的 36 | target: 'http://localhost:8080/springbootm7qt4/', //代理目标地址 37 | changeOrigin: true, 38 | secure: false, 39 | pathRewrite: { // 在发出请求后将/api替换为''空值,这样不影响接口请求 40 | '^/springbootm7qt4': '' 41 | } 42 | } 43 | } 44 | }, 45 | chainWebpack(config) { 46 | config.module 47 | .rule('svg') 48 | .exclude.add(resolve('src/icons')) 49 | .end() 50 | config.module 51 | .rule('icons') 52 | .test(/\.svg$/) 53 | .include.add(resolve('src/icons')) 54 | .end() 55 | .use('svg-sprite-loader') 56 | .loader('svg-sprite-loader') 57 | .options({ 58 | symbolId: 'icon-[name]' 59 | }) 60 | .end() 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/entity/FuwuleixingEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import com.baomidou.mybatisplus.annotations.TableId; 4 | import com.baomidou.mybatisplus.annotations.TableName; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | import java.lang.reflect.InvocationTargetException; 11 | 12 | import java.io.Serializable; 13 | import java.util.Date; 14 | import java.util.List; 15 | 16 | import org.springframework.format.annotation.DateTimeFormat; 17 | import com.fasterxml.jackson.annotation.JsonFormat; 18 | import org.apache.commons.beanutils.BeanUtils; 19 | import com.baomidou.mybatisplus.annotations.TableField; 20 | import com.baomidou.mybatisplus.enums.FieldFill; 21 | import com.baomidou.mybatisplus.enums.IdType; 22 | 23 | 24 | /** 25 | * 服务类型 26 | * 数据库通用操作实体类(普通增删改查) 27 | * @author 28 | * @email 29 | * @date 2022-04-20 17:40:05 30 | */ 31 | @TableName("fuwuleixing") 32 | public class FuwuleixingEntity implements Serializable { 33 | private static final long serialVersionUID = 1L; 34 | 35 | 36 | public FuwuleixingEntity() { 37 | 38 | } 39 | 40 | public FuwuleixingEntity(T t) { 41 | try { 42 | BeanUtils.copyProperties(this, t); 43 | } catch (IllegalAccessException | InvocationTargetException e) { 44 | // TODO Auto-generated catch block 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | /** 50 | * 主键id 51 | */ 52 | @TableId 53 | private Long id; 54 | /** 55 | * 服务类型 56 | */ 57 | 58 | private String fuwuleixing; 59 | 60 | 61 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 62 | @DateTimeFormat 63 | private Date addtime; 64 | 65 | public Date getAddtime() { 66 | return addtime; 67 | } 68 | public void setAddtime(Date addtime) { 69 | this.addtime = addtime; 70 | } 71 | 72 | public Long getId() { 73 | return id; 74 | } 75 | 76 | public void setId(Long id) { 77 | this.id = id; 78 | } 79 | /** 80 | * 设置:服务类型 81 | */ 82 | public void setFuwuleixing(String fuwuleixing) { 83 | this.fuwuleixing = fuwuleixing; 84 | } 85 | /** 86 | * 获取:服务类型 87 | */ 88 | public String getFuwuleixing() { 89 | return fuwuleixing; 90 | } 91 | 92 | } 93 | -------------------------------------------------------------------------------- /src/main/java/com/entity/vo/MessagesVO.java: -------------------------------------------------------------------------------- 1 | package com.entity.vo; 2 | 3 | import com.entity.MessagesEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 留言反馈 15 | * 手机端接口返回实体辅助类 16 | * (主要作用去除一些不必要的字段) 17 | * @author 18 | * @email 19 | * @date 2022-04-20 17:40:05 20 | */ 21 | public class MessagesVO implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | 25 | /** 26 | * 用户名 27 | */ 28 | 29 | private String username; 30 | 31 | /** 32 | * 留言内容 33 | */ 34 | 35 | private String content; 36 | 37 | /** 38 | * 留言图片 39 | */ 40 | 41 | private String cpicture; 42 | 43 | /** 44 | * 回复内容 45 | */ 46 | 47 | private String reply; 48 | 49 | /** 50 | * 回复图片 51 | */ 52 | 53 | private String rpicture; 54 | 55 | 56 | /** 57 | * 设置:用户名 58 | */ 59 | 60 | public void setUsername(String username) { 61 | this.username = username; 62 | } 63 | 64 | /** 65 | * 获取:用户名 66 | */ 67 | public String getUsername() { 68 | return username; 69 | } 70 | 71 | 72 | /** 73 | * 设置:留言内容 74 | */ 75 | 76 | public void setContent(String content) { 77 | this.content = content; 78 | } 79 | 80 | /** 81 | * 获取:留言内容 82 | */ 83 | public String getContent() { 84 | return content; 85 | } 86 | 87 | 88 | /** 89 | * 设置:留言图片 90 | */ 91 | 92 | public void setCpicture(String cpicture) { 93 | this.cpicture = cpicture; 94 | } 95 | 96 | /** 97 | * 获取:留言图片 98 | */ 99 | public String getCpicture() { 100 | return cpicture; 101 | } 102 | 103 | 104 | /** 105 | * 设置:回复内容 106 | */ 107 | 108 | public void setReply(String reply) { 109 | this.reply = reply; 110 | } 111 | 112 | /** 113 | * 获取:回复内容 114 | */ 115 | public String getReply() { 116 | return reply; 117 | } 118 | 119 | 120 | /** 121 | * 设置:回复图片 122 | */ 123 | 124 | public void setRpicture(String rpicture) { 125 | this.rpicture = rpicture; 126 | } 127 | 128 | /** 129 | * 获取:回复图片 130 | */ 131 | public String getRpicture() { 132 | return rpicture; 133 | } 134 | 135 | } 136 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/MessagesModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.MessagesEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 留言反馈 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class MessagesModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 用户名 28 | */ 29 | 30 | private String username; 31 | 32 | /** 33 | * 留言内容 34 | */ 35 | 36 | private String content; 37 | 38 | /** 39 | * 留言图片 40 | */ 41 | 42 | private String cpicture; 43 | 44 | /** 45 | * 回复内容 46 | */ 47 | 48 | private String reply; 49 | 50 | /** 51 | * 回复图片 52 | */ 53 | 54 | private String rpicture; 55 | 56 | 57 | /** 58 | * 设置:用户名 59 | */ 60 | 61 | public void setUsername(String username) { 62 | this.username = username; 63 | } 64 | 65 | /** 66 | * 获取:用户名 67 | */ 68 | public String getUsername() { 69 | return username; 70 | } 71 | 72 | 73 | /** 74 | * 设置:留言内容 75 | */ 76 | 77 | public void setContent(String content) { 78 | this.content = content; 79 | } 80 | 81 | /** 82 | * 获取:留言内容 83 | */ 84 | public String getContent() { 85 | return content; 86 | } 87 | 88 | 89 | /** 90 | * 设置:留言图片 91 | */ 92 | 93 | public void setCpicture(String cpicture) { 94 | this.cpicture = cpicture; 95 | } 96 | 97 | /** 98 | * 获取:留言图片 99 | */ 100 | public String getCpicture() { 101 | return cpicture; 102 | } 103 | 104 | 105 | /** 106 | * 设置:回复内容 107 | */ 108 | 109 | public void setReply(String reply) { 110 | this.reply = reply; 111 | } 112 | 113 | /** 114 | * 获取:回复内容 115 | */ 116 | public String getReply() { 117 | return reply; 118 | } 119 | 120 | 121 | /** 122 | * 设置:回复图片 123 | */ 124 | 125 | public void setRpicture(String rpicture) { 126 | this.rpicture = rpicture; 127 | } 128 | 129 | /** 130 | * 获取:回复图片 131 | */ 132 | public String getRpicture() { 133 | return rpicture; 134 | } 135 | 136 | } 137 | -------------------------------------------------------------------------------- /src/main/resources/admin/admin/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from '@/App.vue' 3 | // element ui 完全引入 4 | import ElementUI from 'element-ui' 5 | import '@/assets/css/element-variables.scss' 6 | import '@/assets/css/style.scss' 7 | // 加载路由 8 | // import router from '@/router/router-static.js'; 9 | import router from '@/router/router-static.js'; 10 | // 面包屑导航,注册为全局组件 11 | import BreadCrumbs from '@/components/common/BreadCrumbs' 12 | // 引入echart 13 | import echarts from 'echarts' 14 | // 引入echart主题 15 | // import '@/assets/js/echarts-theme-macarons.js' 16 | import 'echarts/theme/macarons.js' 17 | // ajax 18 | import http from '@/utils/http.js' 19 | // 基础配置 20 | import base from '@/utils/base' 21 | // 工具类 22 | import { isAuth, getCurDate, getCurDateTime } from '@/utils/utils' 23 | // storage 封装 24 | import storage from "@/utils/storage"; 25 | // 上传组件 26 | import FileUpload from "@/components/common/FileUpload"; 27 | import ExcelFileUpload from "@/components/common/ExcelFileUpload"; 28 | // 富文本编辑组件 29 | import Editor from "@/components/common/Editor"; 30 | // api 接口 31 | import api from '@/utils/api' 32 | // 数据校验工具类 33 | import * as validate from '@/utils/validate.js' 34 | // 后台地图 35 | import VueAMap from 'vue-amap' 36 | import '@/icons' 37 | //excel导出 38 | import JsonExcel from 'vue-json-excel' 39 | //打印 40 | import printJS from 'print-js' 41 | //MD5 42 | import md5 from 'js-md5'; 43 | 44 | // 后台地图 45 | Vue.use(VueAMap) 46 | VueAMap.initAMapApiLoader({ 47 | key: 'ca04cee7ac952691aa67a131e6f0cee0', 48 | plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor', 'AMap.Geocoder'], 49 | // 默认高德 sdk 版本为 1.4.4 50 | v: '1.4.4' 51 | }) 52 | Vue.prototype.$validate = validate 53 | Vue.prototype.$http = http // ajax请求方法 54 | Vue.prototype.$echarts = echarts 55 | Vue.prototype.$base = base.get() 56 | Vue.prototype.$project = base.getProjectName() 57 | Vue.prototype.$storage = storage 58 | Vue.prototype.$api = api 59 | // 判断权限方法 60 | Vue.prototype.isAuth = isAuth 61 | Vue.prototype.getCurDateTime = getCurDateTime 62 | Vue.prototype.getCurDate = getCurDate 63 | // Vue.prototype.$base = base 64 | Vue.use(ElementUI, { size: 'medium', zIndex: 3000 }); 65 | Vue.config.productionTip = false 66 | // 组件全局组件 67 | Vue.component('bread-crumbs', BreadCrumbs) 68 | Vue.component('file-upload', FileUpload) 69 | Vue.component('excel-file-upload', ExcelFileUpload) 70 | Vue.component('editor', Editor) 71 | //excel导出 72 | Vue.component('downloadExcel', JsonExcel) 73 | //MD5 74 | Vue.prototype.$md5 = md5; 75 | new Vue({ 76 | render: h => h(App), 77 | router 78 | }).$mount('#app') 79 | -------------------------------------------------------------------------------- /src/main/java/com/entity/TokenEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import java.io.Serializable; 4 | import java.util.Date; 5 | 6 | import com.baomidou.mybatisplus.annotations.TableId; 7 | import com.baomidou.mybatisplus.annotations.TableName; 8 | import com.baomidou.mybatisplus.enums.IdType; 9 | 10 | /** 11 | * token表 12 | */ 13 | @TableName("token") 14 | public class TokenEntity implements Serializable { 15 | private static final long serialVersionUID = 1L; 16 | 17 | @TableId(type = IdType.AUTO) 18 | private Long id; 19 | 20 | /** 21 | * 用户id 22 | */ 23 | private Long userid; 24 | 25 | /** 26 | * 用户名 27 | */ 28 | private String username; 29 | 30 | /** 31 | * 表名 32 | */ 33 | private String tablename; 34 | 35 | /** 36 | * 角色 37 | */ 38 | private String role; 39 | 40 | /** 41 | * token 42 | */ 43 | private String token; 44 | 45 | /** 46 | * 过期时间 47 | */ 48 | private Date expiratedtime; 49 | 50 | /** 51 | * 新增时间 52 | */ 53 | private Date addtime; 54 | 55 | public Long getId() { 56 | return id; 57 | } 58 | 59 | public void setId(Long id) { 60 | this.id = id; 61 | } 62 | 63 | public Long getUserid() { 64 | return userid; 65 | } 66 | 67 | public void setUserid(Long userid) { 68 | this.userid = userid; 69 | } 70 | 71 | public String getRole() { 72 | return role; 73 | } 74 | 75 | public void setRole(String role) { 76 | this.role = role; 77 | } 78 | 79 | public String getToken() { 80 | return token; 81 | } 82 | 83 | public String getTablename() { 84 | return tablename; 85 | } 86 | 87 | public void setTablename(String tablename) { 88 | this.tablename = tablename; 89 | } 90 | 91 | public void setToken(String token) { 92 | this.token = token; 93 | } 94 | 95 | public Date getExpiratedtime() { 96 | return expiratedtime; 97 | } 98 | 99 | public void setExpiratedtime(Date expiratedtime) { 100 | this.expiratedtime = expiratedtime; 101 | } 102 | 103 | public Date getAddtime() { 104 | return addtime; 105 | } 106 | 107 | public void setAddtime(Date addtime) { 108 | this.addtime = addtime; 109 | } 110 | 111 | public String getUsername() { 112 | return username; 113 | } 114 | 115 | public void setUsername(String username) { 116 | this.username = username; 117 | } 118 | 119 | public TokenEntity(Long userid, String username, String tablename,String role, String token, Date expiratedtime) { 120 | super(); 121 | this.userid = userid; 122 | this.username = username; 123 | this.tablename = tablename; 124 | this.role = role; 125 | this.token = token; 126 | this.expiratedtime = expiratedtime; 127 | } 128 | 129 | public TokenEntity() { 130 | } 131 | 132 | } 133 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/StoreupModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.StoreupEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 收藏表 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class StoreupModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 收藏id 28 | */ 29 | 30 | private Long refid; 31 | 32 | /** 33 | * 表名 34 | */ 35 | 36 | private String tablename; 37 | 38 | /** 39 | * 收藏名称 40 | */ 41 | 42 | private String name; 43 | 44 | /** 45 | * 收藏图片 46 | */ 47 | 48 | private String picture; 49 | 50 | /** 51 | * 类型(1:收藏,21:赞,22:踩) 52 | */ 53 | 54 | private String type; 55 | 56 | /** 57 | * 推荐类型 58 | */ 59 | 60 | private String inteltype; 61 | 62 | 63 | /** 64 | * 设置:收藏id 65 | */ 66 | 67 | public void setRefid(Long refid) { 68 | this.refid = refid; 69 | } 70 | 71 | /** 72 | * 获取:收藏id 73 | */ 74 | public Long getRefid() { 75 | return refid; 76 | } 77 | 78 | 79 | /** 80 | * 设置:表名 81 | */ 82 | 83 | public void setTablename(String tablename) { 84 | this.tablename = tablename; 85 | } 86 | 87 | /** 88 | * 获取:表名 89 | */ 90 | public String getTablename() { 91 | return tablename; 92 | } 93 | 94 | 95 | /** 96 | * 设置:收藏名称 97 | */ 98 | 99 | public void setName(String name) { 100 | this.name = name; 101 | } 102 | 103 | /** 104 | * 获取:收藏名称 105 | */ 106 | public String getName() { 107 | return name; 108 | } 109 | 110 | 111 | /** 112 | * 设置:收藏图片 113 | */ 114 | 115 | public void setPicture(String picture) { 116 | this.picture = picture; 117 | } 118 | 119 | /** 120 | * 获取:收藏图片 121 | */ 122 | public String getPicture() { 123 | return picture; 124 | } 125 | 126 | 127 | /** 128 | * 设置:类型(1:收藏,21:赞,22:踩) 129 | */ 130 | 131 | public void setType(String type) { 132 | this.type = type; 133 | } 134 | 135 | /** 136 | * 获取:类型(1:收藏,21:赞,22:踩) 137 | */ 138 | public String getType() { 139 | return type; 140 | } 141 | 142 | 143 | /** 144 | * 设置:推荐类型 145 | */ 146 | 147 | public void setInteltype(String inteltype) { 148 | this.inteltype = inteltype; 149 | } 150 | 151 | /** 152 | * 获取:推荐类型 153 | */ 154 | public String getInteltype() { 155 | return inteltype; 156 | } 157 | 158 | } 159 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/YonghuModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.YonghuEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 用户 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class YonghuModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 密码 28 | */ 29 | 30 | private String mima; 31 | 32 | /** 33 | * 姓名 34 | */ 35 | 36 | private String xingming; 37 | 38 | /** 39 | * 性别 40 | */ 41 | 42 | private String xingbie; 43 | 44 | /** 45 | * 邮箱 46 | */ 47 | 48 | private String youxiang; 49 | 50 | /** 51 | * 手机号码 52 | */ 53 | 54 | private String shoujihaoma; 55 | 56 | /** 57 | * 相片 58 | */ 59 | 60 | private String xiangpian; 61 | 62 | 63 | /** 64 | * 设置:密码 65 | */ 66 | 67 | public void setMima(String mima) { 68 | this.mima = mima; 69 | } 70 | 71 | /** 72 | * 获取:密码 73 | */ 74 | public String getMima() { 75 | return mima; 76 | } 77 | 78 | 79 | /** 80 | * 设置:姓名 81 | */ 82 | 83 | public void setXingming(String xingming) { 84 | this.xingming = xingming; 85 | } 86 | 87 | /** 88 | * 获取:姓名 89 | */ 90 | public String getXingming() { 91 | return xingming; 92 | } 93 | 94 | 95 | /** 96 | * 设置:性别 97 | */ 98 | 99 | public void setXingbie(String xingbie) { 100 | this.xingbie = xingbie; 101 | } 102 | 103 | /** 104 | * 获取:性别 105 | */ 106 | public String getXingbie() { 107 | return xingbie; 108 | } 109 | 110 | 111 | /** 112 | * 设置:邮箱 113 | */ 114 | 115 | public void setYouxiang(String youxiang) { 116 | this.youxiang = youxiang; 117 | } 118 | 119 | /** 120 | * 获取:邮箱 121 | */ 122 | public String getYouxiang() { 123 | return youxiang; 124 | } 125 | 126 | 127 | /** 128 | * 设置:手机号码 129 | */ 130 | 131 | public void setShoujihaoma(String shoujihaoma) { 132 | this.shoujihaoma = shoujihaoma; 133 | } 134 | 135 | /** 136 | * 获取:手机号码 137 | */ 138 | public String getShoujihaoma() { 139 | return shoujihaoma; 140 | } 141 | 142 | 143 | /** 144 | * 设置:相片 145 | */ 146 | 147 | public void setXiangpian(String xiangpian) { 148 | this.xiangpian = xiangpian; 149 | } 150 | 151 | /** 152 | * 获取:相片 153 | */ 154 | public String getXiangpian() { 155 | return xiangpian; 156 | } 157 | 158 | } 159 | -------------------------------------------------------------------------------- /src/main/java/com/entity/vo/FuwurenyuanVO.java: -------------------------------------------------------------------------------- 1 | package com.entity.vo; 2 | 3 | import com.entity.FuwurenyuanEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务人员 15 | * 手机端接口返回实体辅助类 16 | * (主要作用去除一些不必要的字段) 17 | * @author 18 | * @email 19 | * @date 2022-04-20 17:40:05 20 | */ 21 | public class FuwurenyuanVO implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | 25 | /** 26 | * 密码 27 | */ 28 | 29 | private String mima; 30 | 31 | /** 32 | * 员工姓名 33 | */ 34 | 35 | private String yuangongxingming; 36 | 37 | /** 38 | * 性别 39 | */ 40 | 41 | private String xingbie; 42 | 43 | /** 44 | * 邮箱 45 | */ 46 | 47 | private String youxiang; 48 | 49 | /** 50 | * 联系手机 51 | */ 52 | 53 | private String lianxishouji; 54 | 55 | /** 56 | * 相片 57 | */ 58 | 59 | private String xiangpian; 60 | 61 | 62 | /** 63 | * 设置:密码 64 | */ 65 | 66 | public void setMima(String mima) { 67 | this.mima = mima; 68 | } 69 | 70 | /** 71 | * 获取:密码 72 | */ 73 | public String getMima() { 74 | return mima; 75 | } 76 | 77 | 78 | /** 79 | * 设置:员工姓名 80 | */ 81 | 82 | public void setYuangongxingming(String yuangongxingming) { 83 | this.yuangongxingming = yuangongxingming; 84 | } 85 | 86 | /** 87 | * 获取:员工姓名 88 | */ 89 | public String getYuangongxingming() { 90 | return yuangongxingming; 91 | } 92 | 93 | 94 | /** 95 | * 设置:性别 96 | */ 97 | 98 | public void setXingbie(String xingbie) { 99 | this.xingbie = xingbie; 100 | } 101 | 102 | /** 103 | * 获取:性别 104 | */ 105 | public String getXingbie() { 106 | return xingbie; 107 | } 108 | 109 | 110 | /** 111 | * 设置:邮箱 112 | */ 113 | 114 | public void setYouxiang(String youxiang) { 115 | this.youxiang = youxiang; 116 | } 117 | 118 | /** 119 | * 获取:邮箱 120 | */ 121 | public String getYouxiang() { 122 | return youxiang; 123 | } 124 | 125 | 126 | /** 127 | * 设置:联系手机 128 | */ 129 | 130 | public void setLianxishouji(String lianxishouji) { 131 | this.lianxishouji = lianxishouji; 132 | } 133 | 134 | /** 135 | * 获取:联系手机 136 | */ 137 | public String getLianxishouji() { 138 | return lianxishouji; 139 | } 140 | 141 | 142 | /** 143 | * 设置:相片 144 | */ 145 | 146 | public void setXiangpian(String xiangpian) { 147 | this.xiangpian = xiangpian; 148 | } 149 | 150 | /** 151 | * 获取:相片 152 | */ 153 | public String getXiangpian() { 154 | return xiangpian; 155 | } 156 | 157 | } 158 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/FuwurenyuanModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.FuwurenyuanEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务人员 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class FuwurenyuanModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 密码 28 | */ 29 | 30 | private String mima; 31 | 32 | /** 33 | * 员工姓名 34 | */ 35 | 36 | private String yuangongxingming; 37 | 38 | /** 39 | * 性别 40 | */ 41 | 42 | private String xingbie; 43 | 44 | /** 45 | * 邮箱 46 | */ 47 | 48 | private String youxiang; 49 | 50 | /** 51 | * 联系手机 52 | */ 53 | 54 | private String lianxishouji; 55 | 56 | /** 57 | * 相片 58 | */ 59 | 60 | private String xiangpian; 61 | 62 | 63 | /** 64 | * 设置:密码 65 | */ 66 | 67 | public void setMima(String mima) { 68 | this.mima = mima; 69 | } 70 | 71 | /** 72 | * 获取:密码 73 | */ 74 | public String getMima() { 75 | return mima; 76 | } 77 | 78 | 79 | /** 80 | * 设置:员工姓名 81 | */ 82 | 83 | public void setYuangongxingming(String yuangongxingming) { 84 | this.yuangongxingming = yuangongxingming; 85 | } 86 | 87 | /** 88 | * 获取:员工姓名 89 | */ 90 | public String getYuangongxingming() { 91 | return yuangongxingming; 92 | } 93 | 94 | 95 | /** 96 | * 设置:性别 97 | */ 98 | 99 | public void setXingbie(String xingbie) { 100 | this.xingbie = xingbie; 101 | } 102 | 103 | /** 104 | * 获取:性别 105 | */ 106 | public String getXingbie() { 107 | return xingbie; 108 | } 109 | 110 | 111 | /** 112 | * 设置:邮箱 113 | */ 114 | 115 | public void setYouxiang(String youxiang) { 116 | this.youxiang = youxiang; 117 | } 118 | 119 | /** 120 | * 获取:邮箱 121 | */ 122 | public String getYouxiang() { 123 | return youxiang; 124 | } 125 | 126 | 127 | /** 128 | * 设置:联系手机 129 | */ 130 | 131 | public void setLianxishouji(String lianxishouji) { 132 | this.lianxishouji = lianxishouji; 133 | } 134 | 135 | /** 136 | * 获取:联系手机 137 | */ 138 | public String getLianxishouji() { 139 | return lianxishouji; 140 | } 141 | 142 | 143 | /** 144 | * 设置:相片 145 | */ 146 | 147 | public void setXiangpian(String xiangpian) { 148 | this.xiangpian = xiangpian; 149 | } 150 | 151 | /** 152 | * 获取:相片 153 | */ 154 | public String getXiangpian() { 155 | return xiangpian; 156 | } 157 | 158 | } 159 | -------------------------------------------------------------------------------- /src/main/java/com/entity/NewsEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import com.baomidou.mybatisplus.annotations.TableId; 4 | import com.baomidou.mybatisplus.annotations.TableName; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | import java.lang.reflect.InvocationTargetException; 11 | 12 | import java.io.Serializable; 13 | import java.util.Date; 14 | import java.util.List; 15 | 16 | import org.springframework.format.annotation.DateTimeFormat; 17 | import com.fasterxml.jackson.annotation.JsonFormat; 18 | import org.apache.commons.beanutils.BeanUtils; 19 | import com.baomidou.mybatisplus.annotations.TableField; 20 | import com.baomidou.mybatisplus.enums.FieldFill; 21 | import com.baomidou.mybatisplus.enums.IdType; 22 | 23 | 24 | /** 25 | * 公告信息 26 | * 数据库通用操作实体类(普通增删改查) 27 | * @author 28 | * @email 29 | * @date 2022-04-20 17:40:05 30 | */ 31 | @TableName("news") 32 | public class NewsEntity implements Serializable { 33 | private static final long serialVersionUID = 1L; 34 | 35 | 36 | public NewsEntity() { 37 | 38 | } 39 | 40 | public NewsEntity(T t) { 41 | try { 42 | BeanUtils.copyProperties(this, t); 43 | } catch (IllegalAccessException | InvocationTargetException e) { 44 | // TODO Auto-generated catch block 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | /** 50 | * 主键id 51 | */ 52 | @TableId 53 | private Long id; 54 | /** 55 | * 标题 56 | */ 57 | 58 | private String title; 59 | 60 | /** 61 | * 简介 62 | */ 63 | 64 | private String introduction; 65 | 66 | /** 67 | * 图片 68 | */ 69 | 70 | private String picture; 71 | 72 | /** 73 | * 内容 74 | */ 75 | 76 | private String content; 77 | 78 | 79 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 80 | @DateTimeFormat 81 | private Date addtime; 82 | 83 | public Date getAddtime() { 84 | return addtime; 85 | } 86 | public void setAddtime(Date addtime) { 87 | this.addtime = addtime; 88 | } 89 | 90 | public Long getId() { 91 | return id; 92 | } 93 | 94 | public void setId(Long id) { 95 | this.id = id; 96 | } 97 | /** 98 | * 设置:标题 99 | */ 100 | public void setTitle(String title) { 101 | this.title = title; 102 | } 103 | /** 104 | * 获取:标题 105 | */ 106 | public String getTitle() { 107 | return title; 108 | } 109 | /** 110 | * 设置:简介 111 | */ 112 | public void setIntroduction(String introduction) { 113 | this.introduction = introduction; 114 | } 115 | /** 116 | * 获取:简介 117 | */ 118 | public String getIntroduction() { 119 | return introduction; 120 | } 121 | /** 122 | * 设置:图片 123 | */ 124 | public void setPicture(String picture) { 125 | this.picture = picture; 126 | } 127 | /** 128 | * 获取:图片 129 | */ 130 | public String getPicture() { 131 | return picture; 132 | } 133 | /** 134 | * 设置:内容 135 | */ 136 | public void setContent(String content) { 137 | this.content = content; 138 | } 139 | /** 140 | * 获取:内容 141 | */ 142 | public String getContent() { 143 | return content; 144 | } 145 | 146 | } 147 | -------------------------------------------------------------------------------- /src/main/java/com/entity/vo/FuwuxinxiVO.java: -------------------------------------------------------------------------------- 1 | package com.entity.vo; 2 | 3 | import com.entity.FuwuxinxiEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务信息 15 | * 手机端接口返回实体辅助类 16 | * (主要作用去除一些不必要的字段) 17 | * @author 18 | * @email 19 | * @date 2022-04-20 17:40:05 20 | */ 21 | public class FuwuxinxiVO implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | 25 | /** 26 | * 服务图片 27 | */ 28 | 29 | private String fuwutupian; 30 | 31 | /** 32 | * 服务类型 33 | */ 34 | 35 | private String fuwuleixing; 36 | 37 | /** 38 | * 合同信息 39 | */ 40 | 41 | private String hetongxinxi; 42 | 43 | /** 44 | * 服务价格 45 | */ 46 | 47 | private String fuwujiage; 48 | 49 | /** 50 | * 服务简介 51 | */ 52 | 53 | private String fuwujianjie; 54 | 55 | /** 56 | * 服务详情 57 | */ 58 | 59 | private String fuwuxiangqing; 60 | 61 | /** 62 | * 发布日期 63 | */ 64 | 65 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 66 | @DateTimeFormat 67 | private Date faburiqi; 68 | 69 | 70 | /** 71 | * 设置:服务图片 72 | */ 73 | 74 | public void setFuwutupian(String fuwutupian) { 75 | this.fuwutupian = fuwutupian; 76 | } 77 | 78 | /** 79 | * 获取:服务图片 80 | */ 81 | public String getFuwutupian() { 82 | return fuwutupian; 83 | } 84 | 85 | 86 | /** 87 | * 设置:服务类型 88 | */ 89 | 90 | public void setFuwuleixing(String fuwuleixing) { 91 | this.fuwuleixing = fuwuleixing; 92 | } 93 | 94 | /** 95 | * 获取:服务类型 96 | */ 97 | public String getFuwuleixing() { 98 | return fuwuleixing; 99 | } 100 | 101 | 102 | /** 103 | * 设置:合同信息 104 | */ 105 | 106 | public void setHetongxinxi(String hetongxinxi) { 107 | this.hetongxinxi = hetongxinxi; 108 | } 109 | 110 | /** 111 | * 获取:合同信息 112 | */ 113 | public String getHetongxinxi() { 114 | return hetongxinxi; 115 | } 116 | 117 | 118 | /** 119 | * 设置:服务价格 120 | */ 121 | 122 | public void setFuwujiage(String fuwujiage) { 123 | this.fuwujiage = fuwujiage; 124 | } 125 | 126 | /** 127 | * 获取:服务价格 128 | */ 129 | public String getFuwujiage() { 130 | return fuwujiage; 131 | } 132 | 133 | 134 | /** 135 | * 设置:服务简介 136 | */ 137 | 138 | public void setFuwujianjie(String fuwujianjie) { 139 | this.fuwujianjie = fuwujianjie; 140 | } 141 | 142 | /** 143 | * 获取:服务简介 144 | */ 145 | public String getFuwujianjie() { 146 | return fuwujianjie; 147 | } 148 | 149 | 150 | /** 151 | * 设置:服务详情 152 | */ 153 | 154 | public void setFuwuxiangqing(String fuwuxiangqing) { 155 | this.fuwuxiangqing = fuwuxiangqing; 156 | } 157 | 158 | /** 159 | * 获取:服务详情 160 | */ 161 | public String getFuwuxiangqing() { 162 | return fuwuxiangqing; 163 | } 164 | 165 | 166 | /** 167 | * 设置:发布日期 168 | */ 169 | 170 | public void setFaburiqi(Date faburiqi) { 171 | this.faburiqi = faburiqi; 172 | } 173 | 174 | /** 175 | * 获取:发布日期 176 | */ 177 | public Date getFaburiqi() { 178 | return faburiqi; 179 | } 180 | 181 | } 182 | -------------------------------------------------------------------------------- /src/main/java/com/entity/vo/PeixuntixiVO.java: -------------------------------------------------------------------------------- 1 | package com.entity.vo; 2 | 3 | import com.entity.PeixuntixiEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 培训体系 15 | * 手机端接口返回实体辅助类 16 | * (主要作用去除一些不必要的字段) 17 | * @author 18 | * @email 19 | * @date 2022-04-20 17:40:05 20 | */ 21 | public class PeixuntixiVO implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | 25 | /** 26 | * 培训图片 27 | */ 28 | 29 | private String peixuntupian; 30 | 31 | /** 32 | * 基本流程 33 | */ 34 | 35 | private String jibenliucheng; 36 | 37 | /** 38 | * 师资力量 39 | */ 40 | 41 | private String shizililiang; 42 | 43 | /** 44 | * 联系人 45 | */ 46 | 47 | private String lianxiren; 48 | 49 | /** 50 | * 联系方式 51 | */ 52 | 53 | private String lianxifangshi; 54 | 55 | /** 56 | * 培训视频 57 | */ 58 | 59 | private String peixunshipin; 60 | 61 | /** 62 | * 发布日期 63 | */ 64 | 65 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 66 | @DateTimeFormat 67 | private Date faburiqi; 68 | 69 | 70 | /** 71 | * 设置:培训图片 72 | */ 73 | 74 | public void setPeixuntupian(String peixuntupian) { 75 | this.peixuntupian = peixuntupian; 76 | } 77 | 78 | /** 79 | * 获取:培训图片 80 | */ 81 | public String getPeixuntupian() { 82 | return peixuntupian; 83 | } 84 | 85 | 86 | /** 87 | * 设置:基本流程 88 | */ 89 | 90 | public void setJibenliucheng(String jibenliucheng) { 91 | this.jibenliucheng = jibenliucheng; 92 | } 93 | 94 | /** 95 | * 获取:基本流程 96 | */ 97 | public String getJibenliucheng() { 98 | return jibenliucheng; 99 | } 100 | 101 | 102 | /** 103 | * 设置:师资力量 104 | */ 105 | 106 | public void setShizililiang(String shizililiang) { 107 | this.shizililiang = shizililiang; 108 | } 109 | 110 | /** 111 | * 获取:师资力量 112 | */ 113 | public String getShizililiang() { 114 | return shizililiang; 115 | } 116 | 117 | 118 | /** 119 | * 设置:联系人 120 | */ 121 | 122 | public void setLianxiren(String lianxiren) { 123 | this.lianxiren = lianxiren; 124 | } 125 | 126 | /** 127 | * 获取:联系人 128 | */ 129 | public String getLianxiren() { 130 | return lianxiren; 131 | } 132 | 133 | 134 | /** 135 | * 设置:联系方式 136 | */ 137 | 138 | public void setLianxifangshi(String lianxifangshi) { 139 | this.lianxifangshi = lianxifangshi; 140 | } 141 | 142 | /** 143 | * 获取:联系方式 144 | */ 145 | public String getLianxifangshi() { 146 | return lianxifangshi; 147 | } 148 | 149 | 150 | /** 151 | * 设置:培训视频 152 | */ 153 | 154 | public void setPeixunshipin(String peixunshipin) { 155 | this.peixunshipin = peixunshipin; 156 | } 157 | 158 | /** 159 | * 获取:培训视频 160 | */ 161 | public String getPeixunshipin() { 162 | return peixunshipin; 163 | } 164 | 165 | 166 | /** 167 | * 设置:发布日期 168 | */ 169 | 170 | public void setFaburiqi(Date faburiqi) { 171 | this.faburiqi = faburiqi; 172 | } 173 | 174 | /** 175 | * 获取:发布日期 176 | */ 177 | public Date getFaburiqi() { 178 | return faburiqi; 179 | } 180 | 181 | } 182 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/FuwuxinxiModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.FuwuxinxiEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务信息 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class FuwuxinxiModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 服务图片 28 | */ 29 | 30 | private String fuwutupian; 31 | 32 | /** 33 | * 服务类型 34 | */ 35 | 36 | private String fuwuleixing; 37 | 38 | /** 39 | * 合同信息 40 | */ 41 | 42 | private String hetongxinxi; 43 | 44 | /** 45 | * 服务价格 46 | */ 47 | 48 | private String fuwujiage; 49 | 50 | /** 51 | * 服务简介 52 | */ 53 | 54 | private String fuwujianjie; 55 | 56 | /** 57 | * 服务详情 58 | */ 59 | 60 | private String fuwuxiangqing; 61 | 62 | /** 63 | * 发布日期 64 | */ 65 | 66 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 67 | @DateTimeFormat 68 | private Date faburiqi; 69 | 70 | 71 | /** 72 | * 设置:服务图片 73 | */ 74 | 75 | public void setFuwutupian(String fuwutupian) { 76 | this.fuwutupian = fuwutupian; 77 | } 78 | 79 | /** 80 | * 获取:服务图片 81 | */ 82 | public String getFuwutupian() { 83 | return fuwutupian; 84 | } 85 | 86 | 87 | /** 88 | * 设置:服务类型 89 | */ 90 | 91 | public void setFuwuleixing(String fuwuleixing) { 92 | this.fuwuleixing = fuwuleixing; 93 | } 94 | 95 | /** 96 | * 获取:服务类型 97 | */ 98 | public String getFuwuleixing() { 99 | return fuwuleixing; 100 | } 101 | 102 | 103 | /** 104 | * 设置:合同信息 105 | */ 106 | 107 | public void setHetongxinxi(String hetongxinxi) { 108 | this.hetongxinxi = hetongxinxi; 109 | } 110 | 111 | /** 112 | * 获取:合同信息 113 | */ 114 | public String getHetongxinxi() { 115 | return hetongxinxi; 116 | } 117 | 118 | 119 | /** 120 | * 设置:服务价格 121 | */ 122 | 123 | public void setFuwujiage(String fuwujiage) { 124 | this.fuwujiage = fuwujiage; 125 | } 126 | 127 | /** 128 | * 获取:服务价格 129 | */ 130 | public String getFuwujiage() { 131 | return fuwujiage; 132 | } 133 | 134 | 135 | /** 136 | * 设置:服务简介 137 | */ 138 | 139 | public void setFuwujianjie(String fuwujianjie) { 140 | this.fuwujianjie = fuwujianjie; 141 | } 142 | 143 | /** 144 | * 获取:服务简介 145 | */ 146 | public String getFuwujianjie() { 147 | return fuwujianjie; 148 | } 149 | 150 | 151 | /** 152 | * 设置:服务详情 153 | */ 154 | 155 | public void setFuwuxiangqing(String fuwuxiangqing) { 156 | this.fuwuxiangqing = fuwuxiangqing; 157 | } 158 | 159 | /** 160 | * 获取:服务详情 161 | */ 162 | public String getFuwuxiangqing() { 163 | return fuwuxiangqing; 164 | } 165 | 166 | 167 | /** 168 | * 设置:发布日期 169 | */ 170 | 171 | public void setFaburiqi(Date faburiqi) { 172 | this.faburiqi = faburiqi; 173 | } 174 | 175 | /** 176 | * 获取:发布日期 177 | */ 178 | public Date getFaburiqi() { 179 | return faburiqi; 180 | } 181 | 182 | } 183 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/PeixuntixiModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.PeixuntixiEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 培训体系 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class PeixuntixiModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 培训图片 28 | */ 29 | 30 | private String peixuntupian; 31 | 32 | /** 33 | * 基本流程 34 | */ 35 | 36 | private String jibenliucheng; 37 | 38 | /** 39 | * 师资力量 40 | */ 41 | 42 | private String shizililiang; 43 | 44 | /** 45 | * 联系人 46 | */ 47 | 48 | private String lianxiren; 49 | 50 | /** 51 | * 联系方式 52 | */ 53 | 54 | private String lianxifangshi; 55 | 56 | /** 57 | * 培训视频 58 | */ 59 | 60 | private String peixunshipin; 61 | 62 | /** 63 | * 发布日期 64 | */ 65 | 66 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 67 | @DateTimeFormat 68 | private Date faburiqi; 69 | 70 | 71 | /** 72 | * 设置:培训图片 73 | */ 74 | 75 | public void setPeixuntupian(String peixuntupian) { 76 | this.peixuntupian = peixuntupian; 77 | } 78 | 79 | /** 80 | * 获取:培训图片 81 | */ 82 | public String getPeixuntupian() { 83 | return peixuntupian; 84 | } 85 | 86 | 87 | /** 88 | * 设置:基本流程 89 | */ 90 | 91 | public void setJibenliucheng(String jibenliucheng) { 92 | this.jibenliucheng = jibenliucheng; 93 | } 94 | 95 | /** 96 | * 获取:基本流程 97 | */ 98 | public String getJibenliucheng() { 99 | return jibenliucheng; 100 | } 101 | 102 | 103 | /** 104 | * 设置:师资力量 105 | */ 106 | 107 | public void setShizililiang(String shizililiang) { 108 | this.shizililiang = shizililiang; 109 | } 110 | 111 | /** 112 | * 获取:师资力量 113 | */ 114 | public String getShizililiang() { 115 | return shizililiang; 116 | } 117 | 118 | 119 | /** 120 | * 设置:联系人 121 | */ 122 | 123 | public void setLianxiren(String lianxiren) { 124 | this.lianxiren = lianxiren; 125 | } 126 | 127 | /** 128 | * 获取:联系人 129 | */ 130 | public String getLianxiren() { 131 | return lianxiren; 132 | } 133 | 134 | 135 | /** 136 | * 设置:联系方式 137 | */ 138 | 139 | public void setLianxifangshi(String lianxifangshi) { 140 | this.lianxifangshi = lianxifangshi; 141 | } 142 | 143 | /** 144 | * 获取:联系方式 145 | */ 146 | public String getLianxifangshi() { 147 | return lianxifangshi; 148 | } 149 | 150 | 151 | /** 152 | * 设置:培训视频 153 | */ 154 | 155 | public void setPeixunshipin(String peixunshipin) { 156 | this.peixunshipin = peixunshipin; 157 | } 158 | 159 | /** 160 | * 获取:培训视频 161 | */ 162 | public String getPeixunshipin() { 163 | return peixunshipin; 164 | } 165 | 166 | 167 | /** 168 | * 设置:发布日期 169 | */ 170 | 171 | public void setFaburiqi(Date faburiqi) { 172 | this.faburiqi = faburiqi; 173 | } 174 | 175 | /** 176 | * 获取:发布日期 177 | */ 178 | public Date getFaburiqi() { 179 | return faburiqi; 180 | } 181 | 182 | } 183 | -------------------------------------------------------------------------------- /src/main/java/com/controller/ConfigController.java: -------------------------------------------------------------------------------- 1 | 2 | package com.controller; 3 | 4 | 5 | import java.util.Arrays; 6 | import java.util.Map; 7 | 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.web.bind.annotation.PathVariable; 10 | import org.springframework.web.bind.annotation.PostMapping; 11 | import org.springframework.web.bind.annotation.RequestBody; 12 | import org.springframework.web.bind.annotation.RequestMapping; 13 | import org.springframework.web.bind.annotation.RequestParam; 14 | import org.springframework.web.bind.annotation.RestController; 15 | 16 | import com.annotation.IgnoreAuth; 17 | import com.baomidou.mybatisplus.mapper.EntityWrapper; 18 | import com.entity.ConfigEntity; 19 | import com.service.ConfigService; 20 | import com.utils.MPUtil; 21 | import com.utils.PageUtils; 22 | import com.utils.R; 23 | import com.utils.ValidatorUtils; 24 | 25 | /** 26 | * 登录相关 27 | */ 28 | @RequestMapping("config") 29 | @RestController 30 | public class ConfigController{ 31 | 32 | @Autowired 33 | private ConfigService configService; 34 | 35 | /** 36 | * 列表 37 | */ 38 | @RequestMapping("/page") 39 | public R page(@RequestParam Map params,ConfigEntity config){ 40 | EntityWrapper ew = new EntityWrapper(); 41 | PageUtils page = configService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, config), params), params)); 42 | return R.ok().put("data", page); 43 | } 44 | 45 | /** 46 | * 列表 47 | */ 48 | @IgnoreAuth 49 | @RequestMapping("/list") 50 | public R list(@RequestParam Map params,ConfigEntity config){ 51 | EntityWrapper ew = new EntityWrapper(); 52 | PageUtils page = configService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, config), params), params)); 53 | return R.ok().put("data", page); 54 | } 55 | 56 | /** 57 | * 信息 58 | */ 59 | @RequestMapping("/info/{id}") 60 | public R info(@PathVariable("id") String id){ 61 | ConfigEntity config = configService.selectById(id); 62 | return R.ok().put("data", config); 63 | } 64 | 65 | /** 66 | * 详情 67 | */ 68 | @IgnoreAuth 69 | @RequestMapping("/detail/{id}") 70 | public R detail(@PathVariable("id") String id){ 71 | ConfigEntity config = configService.selectById(id); 72 | return R.ok().put("data", config); 73 | } 74 | 75 | /** 76 | * 根据name获取信息 77 | */ 78 | @RequestMapping("/info") 79 | public R infoByName(@RequestParam String name){ 80 | ConfigEntity config = configService.selectOne(new EntityWrapper().eq("name", "faceFile")); 81 | return R.ok().put("data", config); 82 | } 83 | 84 | /** 85 | * 保存 86 | */ 87 | @PostMapping("/save") 88 | public R save(@RequestBody ConfigEntity config){ 89 | // ValidatorUtils.validateEntity(config); 90 | configService.insert(config); 91 | return R.ok(); 92 | } 93 | 94 | /** 95 | * 修改 96 | */ 97 | @RequestMapping("/update") 98 | public R update(@RequestBody ConfigEntity config){ 99 | // ValidatorUtils.validateEntity(config); 100 | configService.updateById(config);//全部更新 101 | return R.ok(); 102 | } 103 | 104 | /** 105 | * 删除 106 | */ 107 | @RequestMapping("/delete") 108 | public R delete(@RequestBody Long[] ids){ 109 | configService.deleteBatchIds(Arrays.asList(ids)); 110 | return R.ok(); 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /src/main/java/com/entity/MessagesEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import com.baomidou.mybatisplus.annotations.TableId; 4 | import com.baomidou.mybatisplus.annotations.TableName; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | import java.lang.reflect.InvocationTargetException; 11 | 12 | import java.io.Serializable; 13 | import java.util.Date; 14 | import java.util.List; 15 | 16 | import org.springframework.format.annotation.DateTimeFormat; 17 | import com.fasterxml.jackson.annotation.JsonFormat; 18 | import org.apache.commons.beanutils.BeanUtils; 19 | import com.baomidou.mybatisplus.annotations.TableField; 20 | import com.baomidou.mybatisplus.enums.FieldFill; 21 | import com.baomidou.mybatisplus.enums.IdType; 22 | 23 | 24 | /** 25 | * 留言反馈 26 | * 数据库通用操作实体类(普通增删改查) 27 | * @author 28 | * @email 29 | * @date 2022-04-20 17:40:05 30 | */ 31 | @TableName("messages") 32 | public class MessagesEntity implements Serializable { 33 | private static final long serialVersionUID = 1L; 34 | 35 | 36 | public MessagesEntity() { 37 | 38 | } 39 | 40 | public MessagesEntity(T t) { 41 | try { 42 | BeanUtils.copyProperties(this, t); 43 | } catch (IllegalAccessException | InvocationTargetException e) { 44 | // TODO Auto-generated catch block 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | /** 50 | * 主键id 51 | */ 52 | @TableId 53 | private Long id; 54 | /** 55 | * 留言人id 56 | */ 57 | 58 | private Long userid; 59 | 60 | /** 61 | * 用户名 62 | */ 63 | 64 | private String username; 65 | 66 | /** 67 | * 留言内容 68 | */ 69 | 70 | private String content; 71 | 72 | /** 73 | * 留言图片 74 | */ 75 | 76 | private String cpicture; 77 | 78 | /** 79 | * 回复内容 80 | */ 81 | 82 | private String reply; 83 | 84 | /** 85 | * 回复图片 86 | */ 87 | 88 | private String rpicture; 89 | 90 | 91 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 92 | @DateTimeFormat 93 | private Date addtime; 94 | 95 | public Date getAddtime() { 96 | return addtime; 97 | } 98 | public void setAddtime(Date addtime) { 99 | this.addtime = addtime; 100 | } 101 | 102 | public Long getId() { 103 | return id; 104 | } 105 | 106 | public void setId(Long id) { 107 | this.id = id; 108 | } 109 | /** 110 | * 设置:留言人id 111 | */ 112 | public void setUserid(Long userid) { 113 | this.userid = userid; 114 | } 115 | /** 116 | * 获取:留言人id 117 | */ 118 | public Long getUserid() { 119 | return userid; 120 | } 121 | /** 122 | * 设置:用户名 123 | */ 124 | public void setUsername(String username) { 125 | this.username = username; 126 | } 127 | /** 128 | * 获取:用户名 129 | */ 130 | public String getUsername() { 131 | return username; 132 | } 133 | /** 134 | * 设置:留言内容 135 | */ 136 | public void setContent(String content) { 137 | this.content = content; 138 | } 139 | /** 140 | * 获取:留言内容 141 | */ 142 | public String getContent() { 143 | return content; 144 | } 145 | /** 146 | * 设置:留言图片 147 | */ 148 | public void setCpicture(String cpicture) { 149 | this.cpicture = cpicture; 150 | } 151 | /** 152 | * 获取:留言图片 153 | */ 154 | public String getCpicture() { 155 | return cpicture; 156 | } 157 | /** 158 | * 设置:回复内容 159 | */ 160 | public void setReply(String reply) { 161 | this.reply = reply; 162 | } 163 | /** 164 | * 获取:回复内容 165 | */ 166 | public String getReply() { 167 | return reply; 168 | } 169 | /** 170 | * 设置:回复图片 171 | */ 172 | public void setRpicture(String rpicture) { 173 | this.rpicture = rpicture; 174 | } 175 | /** 176 | * 获取:回复图片 177 | */ 178 | public String getRpicture() { 179 | return rpicture; 180 | } 181 | 182 | } 183 | -------------------------------------------------------------------------------- /src/main/java/com/entity/StoreupEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import com.baomidou.mybatisplus.annotations.TableId; 4 | import com.baomidou.mybatisplus.annotations.TableName; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | import java.lang.reflect.InvocationTargetException; 11 | 12 | import java.io.Serializable; 13 | import java.util.Date; 14 | import java.util.List; 15 | 16 | import org.springframework.format.annotation.DateTimeFormat; 17 | import com.fasterxml.jackson.annotation.JsonFormat; 18 | import org.apache.commons.beanutils.BeanUtils; 19 | import com.baomidou.mybatisplus.annotations.TableField; 20 | import com.baomidou.mybatisplus.enums.FieldFill; 21 | import com.baomidou.mybatisplus.enums.IdType; 22 | 23 | 24 | /** 25 | * 收藏表 26 | * 数据库通用操作实体类(普通增删改查) 27 | * @author 28 | * @email 29 | * @date 2022-04-20 17:40:05 30 | */ 31 | @TableName("storeup") 32 | public class StoreupEntity implements Serializable { 33 | private static final long serialVersionUID = 1L; 34 | 35 | 36 | public StoreupEntity() { 37 | 38 | } 39 | 40 | public StoreupEntity(T t) { 41 | try { 42 | BeanUtils.copyProperties(this, t); 43 | } catch (IllegalAccessException | InvocationTargetException e) { 44 | // TODO Auto-generated catch block 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | /** 50 | * 主键id 51 | */ 52 | @TableId 53 | private Long id; 54 | /** 55 | * 用户id 56 | */ 57 | 58 | private Long userid; 59 | 60 | /** 61 | * 收藏id 62 | */ 63 | 64 | private Long refid; 65 | 66 | /** 67 | * 表名 68 | */ 69 | 70 | private String tablename; 71 | 72 | /** 73 | * 收藏名称 74 | */ 75 | 76 | private String name; 77 | 78 | /** 79 | * 收藏图片 80 | */ 81 | 82 | private String picture; 83 | 84 | /** 85 | * 类型(1:收藏,21:赞,22:踩) 86 | */ 87 | 88 | private String type; 89 | 90 | /** 91 | * 推荐类型 92 | */ 93 | 94 | private String inteltype; 95 | 96 | 97 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 98 | @DateTimeFormat 99 | private Date addtime; 100 | 101 | public Date getAddtime() { 102 | return addtime; 103 | } 104 | public void setAddtime(Date addtime) { 105 | this.addtime = addtime; 106 | } 107 | 108 | public Long getId() { 109 | return id; 110 | } 111 | 112 | public void setId(Long id) { 113 | this.id = id; 114 | } 115 | /** 116 | * 设置:用户id 117 | */ 118 | public void setUserid(Long userid) { 119 | this.userid = userid; 120 | } 121 | /** 122 | * 获取:用户id 123 | */ 124 | public Long getUserid() { 125 | return userid; 126 | } 127 | /** 128 | * 设置:收藏id 129 | */ 130 | public void setRefid(Long refid) { 131 | this.refid = refid; 132 | } 133 | /** 134 | * 获取:收藏id 135 | */ 136 | public Long getRefid() { 137 | return refid; 138 | } 139 | /** 140 | * 设置:表名 141 | */ 142 | public void setTablename(String tablename) { 143 | this.tablename = tablename; 144 | } 145 | /** 146 | * 获取:表名 147 | */ 148 | public String getTablename() { 149 | return tablename; 150 | } 151 | /** 152 | * 设置:收藏名称 153 | */ 154 | public void setName(String name) { 155 | this.name = name; 156 | } 157 | /** 158 | * 获取:收藏名称 159 | */ 160 | public String getName() { 161 | return name; 162 | } 163 | /** 164 | * 设置:收藏图片 165 | */ 166 | public void setPicture(String picture) { 167 | this.picture = picture; 168 | } 169 | /** 170 | * 获取:收藏图片 171 | */ 172 | public String getPicture() { 173 | return picture; 174 | } 175 | /** 176 | * 设置:类型(1:收藏,21:赞,22:踩) 177 | */ 178 | public void setType(String type) { 179 | this.type = type; 180 | } 181 | /** 182 | * 获取:类型(1:收藏,21:赞,22:踩) 183 | */ 184 | public String getType() { 185 | return type; 186 | } 187 | /** 188 | * 设置:推荐类型 189 | */ 190 | public void setInteltype(String inteltype) { 191 | this.inteltype = inteltype; 192 | } 193 | /** 194 | * 获取:推荐类型 195 | */ 196 | public String getInteltype() { 197 | return inteltype; 198 | } 199 | 200 | } 201 | -------------------------------------------------------------------------------- /src/main/java/com/entity/YonghuEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import com.baomidou.mybatisplus.annotations.TableId; 4 | import com.baomidou.mybatisplus.annotations.TableName; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | import java.lang.reflect.InvocationTargetException; 11 | 12 | import java.io.Serializable; 13 | import java.util.Date; 14 | import java.util.List; 15 | 16 | import org.springframework.format.annotation.DateTimeFormat; 17 | import com.fasterxml.jackson.annotation.JsonFormat; 18 | import org.apache.commons.beanutils.BeanUtils; 19 | import com.baomidou.mybatisplus.annotations.TableField; 20 | import com.baomidou.mybatisplus.enums.FieldFill; 21 | import com.baomidou.mybatisplus.enums.IdType; 22 | 23 | 24 | /** 25 | * 用户 26 | * 数据库通用操作实体类(普通增删改查) 27 | * @author 28 | * @email 29 | * @date 2022-04-20 17:40:05 30 | */ 31 | @TableName("yonghu") 32 | public class YonghuEntity implements Serializable { 33 | private static final long serialVersionUID = 1L; 34 | 35 | 36 | public YonghuEntity() { 37 | 38 | } 39 | 40 | public YonghuEntity(T t) { 41 | try { 42 | BeanUtils.copyProperties(this, t); 43 | } catch (IllegalAccessException | InvocationTargetException e) { 44 | // TODO Auto-generated catch block 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | /** 50 | * 主键id 51 | */ 52 | @TableId 53 | private Long id; 54 | /** 55 | * 账号 56 | */ 57 | 58 | private String zhanghao; 59 | 60 | /** 61 | * 密码 62 | */ 63 | 64 | private String mima; 65 | 66 | /** 67 | * 姓名 68 | */ 69 | 70 | private String xingming; 71 | 72 | /** 73 | * 性别 74 | */ 75 | 76 | private String xingbie; 77 | 78 | /** 79 | * 邮箱 80 | */ 81 | 82 | private String youxiang; 83 | 84 | /** 85 | * 手机号码 86 | */ 87 | 88 | private String shoujihaoma; 89 | 90 | /** 91 | * 相片 92 | */ 93 | 94 | private String xiangpian; 95 | 96 | 97 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 98 | @DateTimeFormat 99 | private Date addtime; 100 | 101 | public Date getAddtime() { 102 | return addtime; 103 | } 104 | public void setAddtime(Date addtime) { 105 | this.addtime = addtime; 106 | } 107 | 108 | public Long getId() { 109 | return id; 110 | } 111 | 112 | public void setId(Long id) { 113 | this.id = id; 114 | } 115 | /** 116 | * 设置:账号 117 | */ 118 | public void setZhanghao(String zhanghao) { 119 | this.zhanghao = zhanghao; 120 | } 121 | /** 122 | * 获取:账号 123 | */ 124 | public String getZhanghao() { 125 | return zhanghao; 126 | } 127 | /** 128 | * 设置:密码 129 | */ 130 | public void setMima(String mima) { 131 | this.mima = mima; 132 | } 133 | /** 134 | * 获取:密码 135 | */ 136 | public String getMima() { 137 | return mima; 138 | } 139 | /** 140 | * 设置:姓名 141 | */ 142 | public void setXingming(String xingming) { 143 | this.xingming = xingming; 144 | } 145 | /** 146 | * 获取:姓名 147 | */ 148 | public String getXingming() { 149 | return xingming; 150 | } 151 | /** 152 | * 设置:性别 153 | */ 154 | public void setXingbie(String xingbie) { 155 | this.xingbie = xingbie; 156 | } 157 | /** 158 | * 获取:性别 159 | */ 160 | public String getXingbie() { 161 | return xingbie; 162 | } 163 | /** 164 | * 设置:邮箱 165 | */ 166 | public void setYouxiang(String youxiang) { 167 | this.youxiang = youxiang; 168 | } 169 | /** 170 | * 获取:邮箱 171 | */ 172 | public String getYouxiang() { 173 | return youxiang; 174 | } 175 | /** 176 | * 设置:手机号码 177 | */ 178 | public void setShoujihaoma(String shoujihaoma) { 179 | this.shoujihaoma = shoujihaoma; 180 | } 181 | /** 182 | * 获取:手机号码 183 | */ 184 | public String getShoujihaoma() { 185 | return shoujihaoma; 186 | } 187 | /** 188 | * 设置:相片 189 | */ 190 | public void setXiangpian(String xiangpian) { 191 | this.xiangpian = xiangpian; 192 | } 193 | /** 194 | * 获取:相片 195 | */ 196 | public String getXiangpian() { 197 | return xiangpian; 198 | } 199 | 200 | } 201 | -------------------------------------------------------------------------------- /src/main/java/com/entity/FuwurenyuanEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import com.baomidou.mybatisplus.annotations.TableId; 4 | import com.baomidou.mybatisplus.annotations.TableName; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | import java.lang.reflect.InvocationTargetException; 11 | 12 | import java.io.Serializable; 13 | import java.util.Date; 14 | import java.util.List; 15 | 16 | import org.springframework.format.annotation.DateTimeFormat; 17 | import com.fasterxml.jackson.annotation.JsonFormat; 18 | import org.apache.commons.beanutils.BeanUtils; 19 | import com.baomidou.mybatisplus.annotations.TableField; 20 | import com.baomidou.mybatisplus.enums.FieldFill; 21 | import com.baomidou.mybatisplus.enums.IdType; 22 | 23 | 24 | /** 25 | * 服务人员 26 | * 数据库通用操作实体类(普通增删改查) 27 | * @author 28 | * @email 29 | * @date 2022-04-20 17:40:05 30 | */ 31 | @TableName("fuwurenyuan") 32 | public class FuwurenyuanEntity implements Serializable { 33 | private static final long serialVersionUID = 1L; 34 | 35 | 36 | public FuwurenyuanEntity() { 37 | 38 | } 39 | 40 | public FuwurenyuanEntity(T t) { 41 | try { 42 | BeanUtils.copyProperties(this, t); 43 | } catch (IllegalAccessException | InvocationTargetException e) { 44 | // TODO Auto-generated catch block 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | /** 50 | * 主键id 51 | */ 52 | @TableId 53 | private Long id; 54 | /** 55 | * 工号 56 | */ 57 | 58 | private String gonghao; 59 | 60 | /** 61 | * 密码 62 | */ 63 | 64 | private String mima; 65 | 66 | /** 67 | * 员工姓名 68 | */ 69 | 70 | private String yuangongxingming; 71 | 72 | /** 73 | * 性别 74 | */ 75 | 76 | private String xingbie; 77 | 78 | /** 79 | * 邮箱 80 | */ 81 | 82 | private String youxiang; 83 | 84 | /** 85 | * 联系手机 86 | */ 87 | 88 | private String lianxishouji; 89 | 90 | /** 91 | * 相片 92 | */ 93 | 94 | private String xiangpian; 95 | 96 | 97 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 98 | @DateTimeFormat 99 | private Date addtime; 100 | 101 | public Date getAddtime() { 102 | return addtime; 103 | } 104 | public void setAddtime(Date addtime) { 105 | this.addtime = addtime; 106 | } 107 | 108 | public Long getId() { 109 | return id; 110 | } 111 | 112 | public void setId(Long id) { 113 | this.id = id; 114 | } 115 | /** 116 | * 设置:工号 117 | */ 118 | public void setGonghao(String gonghao) { 119 | this.gonghao = gonghao; 120 | } 121 | /** 122 | * 获取:工号 123 | */ 124 | public String getGonghao() { 125 | return gonghao; 126 | } 127 | /** 128 | * 设置:密码 129 | */ 130 | public void setMima(String mima) { 131 | this.mima = mima; 132 | } 133 | /** 134 | * 获取:密码 135 | */ 136 | public String getMima() { 137 | return mima; 138 | } 139 | /** 140 | * 设置:员工姓名 141 | */ 142 | public void setYuangongxingming(String yuangongxingming) { 143 | this.yuangongxingming = yuangongxingming; 144 | } 145 | /** 146 | * 获取:员工姓名 147 | */ 148 | public String getYuangongxingming() { 149 | return yuangongxingming; 150 | } 151 | /** 152 | * 设置:性别 153 | */ 154 | public void setXingbie(String xingbie) { 155 | this.xingbie = xingbie; 156 | } 157 | /** 158 | * 获取:性别 159 | */ 160 | public String getXingbie() { 161 | return xingbie; 162 | } 163 | /** 164 | * 设置:邮箱 165 | */ 166 | public void setYouxiang(String youxiang) { 167 | this.youxiang = youxiang; 168 | } 169 | /** 170 | * 获取:邮箱 171 | */ 172 | public String getYouxiang() { 173 | return youxiang; 174 | } 175 | /** 176 | * 设置:联系手机 177 | */ 178 | public void setLianxishouji(String lianxishouji) { 179 | this.lianxishouji = lianxishouji; 180 | } 181 | /** 182 | * 获取:联系手机 183 | */ 184 | public String getLianxishouji() { 185 | return lianxishouji; 186 | } 187 | /** 188 | * 设置:相片 189 | */ 190 | public void setXiangpian(String xiangpian) { 191 | this.xiangpian = xiangpian; 192 | } 193 | /** 194 | * 获取:相片 195 | */ 196 | public String getXiangpian() { 197 | return xiangpian; 198 | } 199 | 200 | } 201 | -------------------------------------------------------------------------------- /src/main/java/com/controller/FileController.java: -------------------------------------------------------------------------------- 1 | package com.controller; 2 | 3 | import java.io.File; 4 | import java.io.FileNotFoundException; 5 | import java.io.IOException; 6 | import java.util.Arrays; 7 | import java.util.Date; 8 | import java.util.HashMap; 9 | import java.util.List; 10 | import java.util.Map; 11 | import java.util.Random; 12 | import java.util.UUID; 13 | 14 | import org.apache.commons.io.FileUtils; 15 | import org.apache.commons.lang3.StringUtils; 16 | import org.springframework.beans.factory.annotation.Autowired; 17 | import org.springframework.http.HttpHeaders; 18 | import org.springframework.http.HttpStatus; 19 | import org.springframework.http.MediaType; 20 | import org.springframework.http.ResponseEntity; 21 | import org.springframework.util.ResourceUtils; 22 | import org.springframework.web.bind.annotation.PathVariable; 23 | import org.springframework.web.bind.annotation.RequestBody; 24 | import org.springframework.web.bind.annotation.RequestMapping; 25 | import org.springframework.web.bind.annotation.RequestParam; 26 | import org.springframework.web.bind.annotation.RestController; 27 | import org.springframework.web.multipart.MultipartFile; 28 | 29 | import com.annotation.IgnoreAuth; 30 | import com.baomidou.mybatisplus.mapper.EntityWrapper; 31 | import com.entity.ConfigEntity; 32 | import com.entity.EIException; 33 | import com.service.ConfigService; 34 | import com.utils.R; 35 | 36 | /** 37 | * 上传文件映射表 38 | */ 39 | @RestController 40 | @RequestMapping("file") 41 | @SuppressWarnings({"unchecked","rawtypes"}) 42 | public class FileController{ 43 | @Autowired 44 | private ConfigService configService; 45 | /** 46 | * 上传文件 47 | */ 48 | @RequestMapping("/upload") 49 | public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception { 50 | if (file.isEmpty()) { 51 | throw new EIException("上传文件不能为空"); 52 | } 53 | String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1); 54 | File path = new File(ResourceUtils.getURL("classpath:static").getPath()); 55 | if(!path.exists()) { 56 | path = new File(""); 57 | } 58 | File upload = new File(path.getAbsolutePath(),"/upload/"); 59 | if(!upload.exists()) { 60 | upload.mkdirs(); 61 | } 62 | String fileName = new Date().getTime()+"."+fileExt; 63 | File dest = new File(upload.getAbsolutePath()+"/"+fileName); 64 | file.transferTo(dest); 65 | /** 66 | * 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开 67 | * 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径, 68 | * 并且项目路径不能存在中文、空格等特殊字符 69 | */ 70 | // FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/ 71 | if(StringUtils.isNotBlank(type) && type.equals("1")) { 72 | ConfigEntity configEntity = configService.selectOne(new EntityWrapper().eq("name", "faceFile")); 73 | if(configEntity==null) { 74 | configEntity = new ConfigEntity(); 75 | configEntity.setName("faceFile"); 76 | configEntity.setValue(fileName); 77 | } else { 78 | configEntity.setValue(fileName); 79 | } 80 | configService.insertOrUpdate(configEntity); 81 | } 82 | return R.ok().put("file", fileName); 83 | } 84 | 85 | /** 86 | * 下载文件 87 | */ 88 | @IgnoreAuth 89 | @RequestMapping("/download") 90 | public ResponseEntity download(@RequestParam String fileName) { 91 | try { 92 | File path = new File(ResourceUtils.getURL("classpath:static").getPath()); 93 | if(!path.exists()) { 94 | path = new File(""); 95 | } 96 | File upload = new File(path.getAbsolutePath(),"/upload/"); 97 | if(!upload.exists()) { 98 | upload.mkdirs(); 99 | } 100 | File file = new File(upload.getAbsolutePath()+"/"+fileName); 101 | if(file.exists()){ 102 | /*if(!fileService.canRead(file, SessionManager.getSessionUser())){ 103 | getResponse().sendError(403); 104 | }*/ 105 | HttpHeaders headers = new HttpHeaders(); 106 | headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); 107 | headers.setContentDispositionFormData("attachment", fileName); 108 | return new ResponseEntity(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED); 109 | } 110 | } catch (IOException e) { 111 | e.printStackTrace(); 112 | } 113 | return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); 114 | } 115 | 116 | } 117 | -------------------------------------------------------------------------------- /src/main/resources/front/front/modules/tinymce/tinymce/readme.md: -------------------------------------------------------------------------------- 1 | # TinyMCE 2 | 3 | TinyMCE is the world’s most popular open source web-based WYSIWYG editor. 4 | 5 | Trusted and loved by millions of developers, and integrated into thousands of applications, such as: 6 | 7 | - Content management systems (CMSs) 8 | - Learning management systems (LMSs) 9 | - Customer relationship management (CRM) and marketing automation systems 10 | - Email marketing systems 11 | - Content creation in SaaS systems 12 | 13 |

14 | Screenshot of the TinyMCE Editor 15 |

16 | 17 | ## Our Tiny contribution 18 | 19 | Content is powerful. It can be used to inform, educate, connect, learn, and inspire change. 20 | 21 | More online applications are providing a platform for people to benefit from the transformational power of content. 22 | 23 | With this in mind, as technology continues to advance and evolve, we want to make sure people will always have access to the best tools for creating content, enabling them to participate freely and seamlessly without barriers. 24 | 25 | TinyMCE easily integrates into applications of all types and sizes, to provide the best content creation experience possible. 26 | 27 |

28 | Tiny Technologies Logo 29 |

30 | 31 | ## Try the demo 32 | 33 | You can access a [full featured demo of TinyMCE](https://www.tiny.cloud/docs/demo/full-featured/) in the docs on the Tiny website. 34 | 35 | ## Get started with TinyMCE 36 | 37 | Get an instance of TinyMCE up and running quickly with the [TinyMCE quick start guide](https://www.tiny.cloud/docs/quick-start/). 38 | 39 | TinyMCE provides a range of configuration options that allow you to integrate it into your application. Start customizing with a [basic setup](https://www.tiny.cloud/docs/general-configuration-guide/basic-setup/). 40 | 41 | Configure it for one of three modes of editing: 42 | 43 | - [TinyMCE classic editing mode](https://www.tiny.cloud/docs/general-configuration-guide/use-tinymce-classic/). 44 | - [TinyMCE inline editing mode](https://www.tiny.cloud/docs/general-configuration-guide/use-tinymce-inline/). 45 | - [TinyMCE distraction-free editing mode](https://www.tiny.cloud/docs/general-configuration-guide/use-tinymce-distraction-free/). 46 | 47 | ## Features 48 | 49 | ### Integration 50 | 51 | TinyMCE is easily integrated into your projects with the help of components such as: 52 | 53 | - [tinymce-react](https://github.com/tinymce/tinymce-react) 54 | - [tinymce-vue](https://github.com/tinymce/tinymce-vue) 55 | - [tinymce-angular](https://github.com/tinymce/tinymce-angular) 56 | 57 | See the Tiny docs for a full list of [integration components](https://www.tiny.cloud/docs/integrations/). 58 | 59 | ### Customization 60 | 61 | It is easy to [configure the UI](https://www.tiny.cloud/docs/general-configuration-guide/customize-ui/) to match the design of your site and applications, and you can [configure the editor](https://www.tiny.cloud/docs/general-configuration-guide/basic-setup/) with as much or as little functionality as you like, depending on your users and requirements. 62 | 63 | With [50+ powerful plugins available](https://www.tiny.cloud/apps/), adding additional functionality is as simple as including a single line of code. Realizing the full power of most plugins requires only a few lines more. 64 | 65 | ### Extensibility 66 | 67 | Sometimes your business requirements can be quite unique, and you need the freedom and flexibility to innovate. View the source code and develop your own extensions for custom functionality to meet your own requirements. The [API](https://www.tiny.cloud/docs/api/) is exposed to make it easier for you to write custom functionality that fits within the existing framework of TinyMCE [UI components](https://www.tiny.cloud/docs/ui-components/). 68 | 69 | ## Compiling and contributing 70 | 71 | As TinyMCE transitioned to a modern codebase through 2017 and 2018, many external dependencies were added from previously closed-source projects. This became unwieldy to develop, so in June 2019 the decision was made to bring those projects together in a monorepo. 72 | 73 | For information on compiling and contributing, see: [contribution guidelines](https://github.com/tinymce/tinymce/blob/master/CONTRIBUTING.md). 74 | 75 | ## Want more information? 76 | 77 | Visit the [TinyMCE home page](https://tiny.cloud/) and check out the [TinyMCE documentation](https://www.tiny.cloud/docs/). 78 | -------------------------------------------------------------------------------- /src/main/java/com/entity/vo/FuwuyuyueVO.java: -------------------------------------------------------------------------------- 1 | package com.entity.vo; 2 | 3 | import com.entity.FuwuyuyueEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务预约 15 | * 手机端接口返回实体辅助类 16 | * (主要作用去除一些不必要的字段) 17 | * @author 18 | * @email 19 | * @date 2022-04-20 17:40:05 20 | */ 21 | public class FuwuyuyueVO implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | 25 | /** 26 | * 服务类型 27 | */ 28 | 29 | private String fuwuleixing; 30 | 31 | /** 32 | * 服务价格 33 | */ 34 | 35 | private String fuwujiage; 36 | 37 | /** 38 | * 预约时间 39 | */ 40 | 41 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 42 | @DateTimeFormat 43 | private Date yuyueshijian; 44 | 45 | /** 46 | * 账号 47 | */ 48 | 49 | private String zhanghao; 50 | 51 | /** 52 | * 姓名 53 | */ 54 | 55 | private String xingming; 56 | 57 | /** 58 | * 手机号码 59 | */ 60 | 61 | private String shoujihaoma; 62 | 63 | /** 64 | * 地址 65 | */ 66 | 67 | private String dizhi; 68 | 69 | /** 70 | * 下单时间 71 | */ 72 | 73 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 74 | @DateTimeFormat 75 | private Date xiadanshijian; 76 | 77 | /** 78 | * 是否审核 79 | */ 80 | 81 | private String sfsh; 82 | 83 | /** 84 | * 审核回复 85 | */ 86 | 87 | private String shhf; 88 | 89 | /** 90 | * 是否支付 91 | */ 92 | 93 | private String ispay; 94 | 95 | 96 | /** 97 | * 设置:服务类型 98 | */ 99 | 100 | public void setFuwuleixing(String fuwuleixing) { 101 | this.fuwuleixing = fuwuleixing; 102 | } 103 | 104 | /** 105 | * 获取:服务类型 106 | */ 107 | public String getFuwuleixing() { 108 | return fuwuleixing; 109 | } 110 | 111 | 112 | /** 113 | * 设置:服务价格 114 | */ 115 | 116 | public void setFuwujiage(String fuwujiage) { 117 | this.fuwujiage = fuwujiage; 118 | } 119 | 120 | /** 121 | * 获取:服务价格 122 | */ 123 | public String getFuwujiage() { 124 | return fuwujiage; 125 | } 126 | 127 | 128 | /** 129 | * 设置:预约时间 130 | */ 131 | 132 | public void setYuyueshijian(Date yuyueshijian) { 133 | this.yuyueshijian = yuyueshijian; 134 | } 135 | 136 | /** 137 | * 获取:预约时间 138 | */ 139 | public Date getYuyueshijian() { 140 | return yuyueshijian; 141 | } 142 | 143 | 144 | /** 145 | * 设置:账号 146 | */ 147 | 148 | public void setZhanghao(String zhanghao) { 149 | this.zhanghao = zhanghao; 150 | } 151 | 152 | /** 153 | * 获取:账号 154 | */ 155 | public String getZhanghao() { 156 | return zhanghao; 157 | } 158 | 159 | 160 | /** 161 | * 设置:姓名 162 | */ 163 | 164 | public void setXingming(String xingming) { 165 | this.xingming = xingming; 166 | } 167 | 168 | /** 169 | * 获取:姓名 170 | */ 171 | public String getXingming() { 172 | return xingming; 173 | } 174 | 175 | 176 | /** 177 | * 设置:手机号码 178 | */ 179 | 180 | public void setShoujihaoma(String shoujihaoma) { 181 | this.shoujihaoma = shoujihaoma; 182 | } 183 | 184 | /** 185 | * 获取:手机号码 186 | */ 187 | public String getShoujihaoma() { 188 | return shoujihaoma; 189 | } 190 | 191 | 192 | /** 193 | * 设置:地址 194 | */ 195 | 196 | public void setDizhi(String dizhi) { 197 | this.dizhi = dizhi; 198 | } 199 | 200 | /** 201 | * 获取:地址 202 | */ 203 | public String getDizhi() { 204 | return dizhi; 205 | } 206 | 207 | 208 | /** 209 | * 设置:下单时间 210 | */ 211 | 212 | public void setXiadanshijian(Date xiadanshijian) { 213 | this.xiadanshijian = xiadanshijian; 214 | } 215 | 216 | /** 217 | * 获取:下单时间 218 | */ 219 | public Date getXiadanshijian() { 220 | return xiadanshijian; 221 | } 222 | 223 | 224 | /** 225 | * 设置:是否审核 226 | */ 227 | 228 | public void setSfsh(String sfsh) { 229 | this.sfsh = sfsh; 230 | } 231 | 232 | /** 233 | * 获取:是否审核 234 | */ 235 | public String getSfsh() { 236 | return sfsh; 237 | } 238 | 239 | 240 | /** 241 | * 设置:审核回复 242 | */ 243 | 244 | public void setShhf(String shhf) { 245 | this.shhf = shhf; 246 | } 247 | 248 | /** 249 | * 获取:审核回复 250 | */ 251 | public String getShhf() { 252 | return shhf; 253 | } 254 | 255 | 256 | /** 257 | * 设置:是否支付 258 | */ 259 | 260 | public void setIspay(String ispay) { 261 | this.ispay = ispay; 262 | } 263 | 264 | /** 265 | * 获取:是否支付 266 | */ 267 | public String getIspay() { 268 | return ispay; 269 | } 270 | 271 | } 272 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/FuwuyuyueModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.FuwuyuyueEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务预约 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class FuwuyuyueModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 服务类型 28 | */ 29 | 30 | private String fuwuleixing; 31 | 32 | /** 33 | * 服务价格 34 | */ 35 | 36 | private String fuwujiage; 37 | 38 | /** 39 | * 预约时间 40 | */ 41 | 42 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 43 | @DateTimeFormat 44 | private Date yuyueshijian; 45 | 46 | /** 47 | * 账号 48 | */ 49 | 50 | private String zhanghao; 51 | 52 | /** 53 | * 姓名 54 | */ 55 | 56 | private String xingming; 57 | 58 | /** 59 | * 手机号码 60 | */ 61 | 62 | private String shoujihaoma; 63 | 64 | /** 65 | * 地址 66 | */ 67 | 68 | private String dizhi; 69 | 70 | /** 71 | * 下单时间 72 | */ 73 | 74 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 75 | @DateTimeFormat 76 | private Date xiadanshijian; 77 | 78 | /** 79 | * 是否审核 80 | */ 81 | 82 | private String sfsh; 83 | 84 | /** 85 | * 审核回复 86 | */ 87 | 88 | private String shhf; 89 | 90 | /** 91 | * 是否支付 92 | */ 93 | 94 | private String ispay; 95 | 96 | 97 | /** 98 | * 设置:服务类型 99 | */ 100 | 101 | public void setFuwuleixing(String fuwuleixing) { 102 | this.fuwuleixing = fuwuleixing; 103 | } 104 | 105 | /** 106 | * 获取:服务类型 107 | */ 108 | public String getFuwuleixing() { 109 | return fuwuleixing; 110 | } 111 | 112 | 113 | /** 114 | * 设置:服务价格 115 | */ 116 | 117 | public void setFuwujiage(String fuwujiage) { 118 | this.fuwujiage = fuwujiage; 119 | } 120 | 121 | /** 122 | * 获取:服务价格 123 | */ 124 | public String getFuwujiage() { 125 | return fuwujiage; 126 | } 127 | 128 | 129 | /** 130 | * 设置:预约时间 131 | */ 132 | 133 | public void setYuyueshijian(Date yuyueshijian) { 134 | this.yuyueshijian = yuyueshijian; 135 | } 136 | 137 | /** 138 | * 获取:预约时间 139 | */ 140 | public Date getYuyueshijian() { 141 | return yuyueshijian; 142 | } 143 | 144 | 145 | /** 146 | * 设置:账号 147 | */ 148 | 149 | public void setZhanghao(String zhanghao) { 150 | this.zhanghao = zhanghao; 151 | } 152 | 153 | /** 154 | * 获取:账号 155 | */ 156 | public String getZhanghao() { 157 | return zhanghao; 158 | } 159 | 160 | 161 | /** 162 | * 设置:姓名 163 | */ 164 | 165 | public void setXingming(String xingming) { 166 | this.xingming = xingming; 167 | } 168 | 169 | /** 170 | * 获取:姓名 171 | */ 172 | public String getXingming() { 173 | return xingming; 174 | } 175 | 176 | 177 | /** 178 | * 设置:手机号码 179 | */ 180 | 181 | public void setShoujihaoma(String shoujihaoma) { 182 | this.shoujihaoma = shoujihaoma; 183 | } 184 | 185 | /** 186 | * 获取:手机号码 187 | */ 188 | public String getShoujihaoma() { 189 | return shoujihaoma; 190 | } 191 | 192 | 193 | /** 194 | * 设置:地址 195 | */ 196 | 197 | public void setDizhi(String dizhi) { 198 | this.dizhi = dizhi; 199 | } 200 | 201 | /** 202 | * 获取:地址 203 | */ 204 | public String getDizhi() { 205 | return dizhi; 206 | } 207 | 208 | 209 | /** 210 | * 设置:下单时间 211 | */ 212 | 213 | public void setXiadanshijian(Date xiadanshijian) { 214 | this.xiadanshijian = xiadanshijian; 215 | } 216 | 217 | /** 218 | * 获取:下单时间 219 | */ 220 | public Date getXiadanshijian() { 221 | return xiadanshijian; 222 | } 223 | 224 | 225 | /** 226 | * 设置:是否审核 227 | */ 228 | 229 | public void setSfsh(String sfsh) { 230 | this.sfsh = sfsh; 231 | } 232 | 233 | /** 234 | * 获取:是否审核 235 | */ 236 | public String getSfsh() { 237 | return sfsh; 238 | } 239 | 240 | 241 | /** 242 | * 设置:审核回复 243 | */ 244 | 245 | public void setShhf(String shhf) { 246 | this.shhf = shhf; 247 | } 248 | 249 | /** 250 | * 获取:审核回复 251 | */ 252 | public String getShhf() { 253 | return shhf; 254 | } 255 | 256 | 257 | /** 258 | * 设置:是否支付 259 | */ 260 | 261 | public void setIspay(String ispay) { 262 | this.ispay = ispay; 263 | } 264 | 265 | /** 266 | * 获取:是否支付 267 | */ 268 | public String getIspay() { 269 | return ispay; 270 | } 271 | 272 | } 273 | -------------------------------------------------------------------------------- /src/main/java/com/entity/FuwuxinxiEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import com.baomidou.mybatisplus.annotations.TableId; 4 | import com.baomidou.mybatisplus.annotations.TableName; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | import java.lang.reflect.InvocationTargetException; 11 | 12 | import java.io.Serializable; 13 | import java.util.Date; 14 | import java.util.List; 15 | 16 | import org.springframework.format.annotation.DateTimeFormat; 17 | import com.fasterxml.jackson.annotation.JsonFormat; 18 | import org.apache.commons.beanutils.BeanUtils; 19 | import com.baomidou.mybatisplus.annotations.TableField; 20 | import com.baomidou.mybatisplus.enums.FieldFill; 21 | import com.baomidou.mybatisplus.enums.IdType; 22 | 23 | 24 | /** 25 | * 服务信息 26 | * 数据库通用操作实体类(普通增删改查) 27 | * @author 28 | * @email 29 | * @date 2022-04-20 17:40:05 30 | */ 31 | @TableName("fuwuxinxi") 32 | public class FuwuxinxiEntity implements Serializable { 33 | private static final long serialVersionUID = 1L; 34 | 35 | 36 | public FuwuxinxiEntity() { 37 | 38 | } 39 | 40 | public FuwuxinxiEntity(T t) { 41 | try { 42 | BeanUtils.copyProperties(this, t); 43 | } catch (IllegalAccessException | InvocationTargetException e) { 44 | // TODO Auto-generated catch block 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | /** 50 | * 主键id 51 | */ 52 | @TableId 53 | private Long id; 54 | /** 55 | * 服务名称 56 | */ 57 | 58 | private String fuwumingcheng; 59 | 60 | /** 61 | * 服务图片 62 | */ 63 | 64 | private String fuwutupian; 65 | 66 | /** 67 | * 服务类型 68 | */ 69 | 70 | private String fuwuleixing; 71 | 72 | /** 73 | * 合同信息 74 | */ 75 | 76 | private String hetongxinxi; 77 | 78 | /** 79 | * 服务价格 80 | */ 81 | 82 | private String fuwujiage; 83 | 84 | /** 85 | * 服务简介 86 | */ 87 | 88 | private String fuwujianjie; 89 | 90 | /** 91 | * 服务详情 92 | */ 93 | 94 | private String fuwuxiangqing; 95 | 96 | /** 97 | * 发布日期 98 | */ 99 | 100 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd") 101 | @DateTimeFormat 102 | private Date faburiqi; 103 | 104 | 105 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 106 | @DateTimeFormat 107 | private Date addtime; 108 | 109 | public Date getAddtime() { 110 | return addtime; 111 | } 112 | public void setAddtime(Date addtime) { 113 | this.addtime = addtime; 114 | } 115 | 116 | public Long getId() { 117 | return id; 118 | } 119 | 120 | public void setId(Long id) { 121 | this.id = id; 122 | } 123 | /** 124 | * 设置:服务名称 125 | */ 126 | public void setFuwumingcheng(String fuwumingcheng) { 127 | this.fuwumingcheng = fuwumingcheng; 128 | } 129 | /** 130 | * 获取:服务名称 131 | */ 132 | public String getFuwumingcheng() { 133 | return fuwumingcheng; 134 | } 135 | /** 136 | * 设置:服务图片 137 | */ 138 | public void setFuwutupian(String fuwutupian) { 139 | this.fuwutupian = fuwutupian; 140 | } 141 | /** 142 | * 获取:服务图片 143 | */ 144 | public String getFuwutupian() { 145 | return fuwutupian; 146 | } 147 | /** 148 | * 设置:服务类型 149 | */ 150 | public void setFuwuleixing(String fuwuleixing) { 151 | this.fuwuleixing = fuwuleixing; 152 | } 153 | /** 154 | * 获取:服务类型 155 | */ 156 | public String getFuwuleixing() { 157 | return fuwuleixing; 158 | } 159 | /** 160 | * 设置:合同信息 161 | */ 162 | public void setHetongxinxi(String hetongxinxi) { 163 | this.hetongxinxi = hetongxinxi; 164 | } 165 | /** 166 | * 获取:合同信息 167 | */ 168 | public String getHetongxinxi() { 169 | return hetongxinxi; 170 | } 171 | /** 172 | * 设置:服务价格 173 | */ 174 | public void setFuwujiage(String fuwujiage) { 175 | this.fuwujiage = fuwujiage; 176 | } 177 | /** 178 | * 获取:服务价格 179 | */ 180 | public String getFuwujiage() { 181 | return fuwujiage; 182 | } 183 | /** 184 | * 设置:服务简介 185 | */ 186 | public void setFuwujianjie(String fuwujianjie) { 187 | this.fuwujianjie = fuwujianjie; 188 | } 189 | /** 190 | * 获取:服务简介 191 | */ 192 | public String getFuwujianjie() { 193 | return fuwujianjie; 194 | } 195 | /** 196 | * 设置:服务详情 197 | */ 198 | public void setFuwuxiangqing(String fuwuxiangqing) { 199 | this.fuwuxiangqing = fuwuxiangqing; 200 | } 201 | /** 202 | * 获取:服务详情 203 | */ 204 | public String getFuwuxiangqing() { 205 | return fuwuxiangqing; 206 | } 207 | /** 208 | * 设置:发布日期 209 | */ 210 | public void setFaburiqi(Date faburiqi) { 211 | this.faburiqi = faburiqi; 212 | } 213 | /** 214 | * 获取:发布日期 215 | */ 216 | public Date getFaburiqi() { 217 | return faburiqi; 218 | } 219 | 220 | } 221 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/PingjiaxinxiModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.PingjiaxinxiEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 评价信息 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class PingjiaxinxiModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 服务类型 28 | */ 29 | 30 | private String fuwuleixing; 31 | 32 | /** 33 | * 服务价格 34 | */ 35 | 36 | private String fuwujiage; 37 | 38 | /** 39 | * 账号 40 | */ 41 | 42 | private String zhanghao; 43 | 44 | /** 45 | * 姓名 46 | */ 47 | 48 | private String xingming; 49 | 50 | /** 51 | * 手机号码 52 | */ 53 | 54 | private String shoujihaoma; 55 | 56 | /** 57 | * 地址 58 | */ 59 | 60 | private String dizhi; 61 | 62 | /** 63 | * 工号 64 | */ 65 | 66 | private String gonghao; 67 | 68 | /** 69 | * 员工姓名 70 | */ 71 | 72 | private String yuangongxingming; 73 | 74 | /** 75 | * 联系手机 76 | */ 77 | 78 | private String lianxishouji; 79 | 80 | /** 81 | * 评价内容 82 | */ 83 | 84 | private String pingjianeirong; 85 | 86 | /** 87 | * 评价日期 88 | */ 89 | 90 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 91 | @DateTimeFormat 92 | private Date pingjiariqi; 93 | 94 | 95 | /** 96 | * 设置:服务类型 97 | */ 98 | 99 | public void setFuwuleixing(String fuwuleixing) { 100 | this.fuwuleixing = fuwuleixing; 101 | } 102 | 103 | /** 104 | * 获取:服务类型 105 | */ 106 | public String getFuwuleixing() { 107 | return fuwuleixing; 108 | } 109 | 110 | 111 | /** 112 | * 设置:服务价格 113 | */ 114 | 115 | public void setFuwujiage(String fuwujiage) { 116 | this.fuwujiage = fuwujiage; 117 | } 118 | 119 | /** 120 | * 获取:服务价格 121 | */ 122 | public String getFuwujiage() { 123 | return fuwujiage; 124 | } 125 | 126 | 127 | /** 128 | * 设置:账号 129 | */ 130 | 131 | public void setZhanghao(String zhanghao) { 132 | this.zhanghao = zhanghao; 133 | } 134 | 135 | /** 136 | * 获取:账号 137 | */ 138 | public String getZhanghao() { 139 | return zhanghao; 140 | } 141 | 142 | 143 | /** 144 | * 设置:姓名 145 | */ 146 | 147 | public void setXingming(String xingming) { 148 | this.xingming = xingming; 149 | } 150 | 151 | /** 152 | * 获取:姓名 153 | */ 154 | public String getXingming() { 155 | return xingming; 156 | } 157 | 158 | 159 | /** 160 | * 设置:手机号码 161 | */ 162 | 163 | public void setShoujihaoma(String shoujihaoma) { 164 | this.shoujihaoma = shoujihaoma; 165 | } 166 | 167 | /** 168 | * 获取:手机号码 169 | */ 170 | public String getShoujihaoma() { 171 | return shoujihaoma; 172 | } 173 | 174 | 175 | /** 176 | * 设置:地址 177 | */ 178 | 179 | public void setDizhi(String dizhi) { 180 | this.dizhi = dizhi; 181 | } 182 | 183 | /** 184 | * 获取:地址 185 | */ 186 | public String getDizhi() { 187 | return dizhi; 188 | } 189 | 190 | 191 | /** 192 | * 设置:工号 193 | */ 194 | 195 | public void setGonghao(String gonghao) { 196 | this.gonghao = gonghao; 197 | } 198 | 199 | /** 200 | * 获取:工号 201 | */ 202 | public String getGonghao() { 203 | return gonghao; 204 | } 205 | 206 | 207 | /** 208 | * 设置:员工姓名 209 | */ 210 | 211 | public void setYuangongxingming(String yuangongxingming) { 212 | this.yuangongxingming = yuangongxingming; 213 | } 214 | 215 | /** 216 | * 获取:员工姓名 217 | */ 218 | public String getYuangongxingming() { 219 | return yuangongxingming; 220 | } 221 | 222 | 223 | /** 224 | * 设置:联系手机 225 | */ 226 | 227 | public void setLianxishouji(String lianxishouji) { 228 | this.lianxishouji = lianxishouji; 229 | } 230 | 231 | /** 232 | * 获取:联系手机 233 | */ 234 | public String getLianxishouji() { 235 | return lianxishouji; 236 | } 237 | 238 | 239 | /** 240 | * 设置:评价内容 241 | */ 242 | 243 | public void setPingjianeirong(String pingjianeirong) { 244 | this.pingjianeirong = pingjianeirong; 245 | } 246 | 247 | /** 248 | * 获取:评价内容 249 | */ 250 | public String getPingjianeirong() { 251 | return pingjianeirong; 252 | } 253 | 254 | 255 | /** 256 | * 设置:评价日期 257 | */ 258 | 259 | public void setPingjiariqi(Date pingjiariqi) { 260 | this.pingjiariqi = pingjiariqi; 261 | } 262 | 263 | /** 264 | * 获取:评价日期 265 | */ 266 | public Date getPingjiariqi() { 267 | return pingjiariqi; 268 | } 269 | 270 | } 271 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.2.2.RELEASE 9 | 10 | 11 | com.jlwl 12 | 13 | springbootm7qt4 14 | 0.0.1-SNAPSHOT 15 | springboot-schema 16 | springboot学习框架 17 | 18 | 19 | 1.8 20 | 1.2.8 21 | 3.1.1 22 | 23 | 24 | 25 | 26 | org.springframework.boot 27 | spring-boot-starter-web 28 | 29 | 30 | org.mybatis.spring.boot 31 | mybatis-spring-boot-starter 32 | 2.1.1 33 | 34 | 35 | org.springframework.boot 36 | spring-boot-starter-jdbc 37 | 38 | 39 | 40 | mysql 41 | mysql-connector-java 42 | 43 | 44 | org.apache.shiro 45 | shiro-spring 46 | 1.3.2 47 | 48 | 49 | 50 | com.baomidou 51 | mybatis-plus 52 | 2.3 53 | 54 | 55 | com.baomidou 56 | mybatisplus-spring-boot-starter 57 | 1.0.5 58 | 59 | 60 | com.google.protobuf 61 | protobuf-java 62 | 3.10.0 63 | 64 | 65 | 66 | org.apache.commons 67 | commons-lang3 68 | 3.0 69 | 70 | 71 | 72 | javax.validation 73 | validation-api 74 | 2.0.1.Final 75 | 76 | 77 | 78 | commons-io 79 | commons-io 80 | 2.5 81 | 82 | 83 | 84 | 85 | cn.hutool 86 | hutool-all 87 | 4.0.12 88 | 89 | 90 | 91 | 92 | com.alibaba 93 | fastjson 94 | ${fastjson.version} 95 | 96 | 97 | com.microsoft.sqlserver 98 | sqljdbc4 99 | 4.0 100 | 4.0 101 | 102 | 103 | 104 | com.microsoft.sqlserver 105 | mssql-jdbc 106 | 6.2.0.jre8 107 | runtime 108 | 109 | 110 | 111 | com.baidu.aip 112 | java-sdk 113 | 4.4.1 114 | 115 | 116 | 117 | org.apache.poi 118 | poi 119 | 3.11 120 | 121 | 122 | 123 | org.apache.poi 124 | poi-ooxml 125 | 3.9 126 | 127 | 128 | 129 | 130 | org.springframework.boot 131 | spring-boot-starter-test 132 | test 133 | 134 | 135 | org.junit.vintage 136 | junit-vintage-engine 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | org.springframework.boot 146 | spring-boot-maven-plugin 147 | 148 | 149 | 150 | 151 | 152 | -------------------------------------------------------------------------------- /src/main/java/com/entity/PeixuntixiEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import com.baomidou.mybatisplus.annotations.TableId; 4 | import com.baomidou.mybatisplus.annotations.TableName; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | import java.lang.reflect.InvocationTargetException; 11 | 12 | import java.io.Serializable; 13 | import java.util.Date; 14 | import java.util.List; 15 | 16 | import org.springframework.format.annotation.DateTimeFormat; 17 | import com.fasterxml.jackson.annotation.JsonFormat; 18 | import org.apache.commons.beanutils.BeanUtils; 19 | import com.baomidou.mybatisplus.annotations.TableField; 20 | import com.baomidou.mybatisplus.enums.FieldFill; 21 | import com.baomidou.mybatisplus.enums.IdType; 22 | 23 | 24 | /** 25 | * 培训体系 26 | * 数据库通用操作实体类(普通增删改查) 27 | * @author 28 | * @email 29 | * @date 2022-04-20 17:40:05 30 | */ 31 | @TableName("peixuntixi") 32 | public class PeixuntixiEntity implements Serializable { 33 | private static final long serialVersionUID = 1L; 34 | 35 | 36 | public PeixuntixiEntity() { 37 | 38 | } 39 | 40 | public PeixuntixiEntity(T t) { 41 | try { 42 | BeanUtils.copyProperties(this, t); 43 | } catch (IllegalAccessException | InvocationTargetException e) { 44 | // TODO Auto-generated catch block 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | /** 50 | * 主键id 51 | */ 52 | @TableId 53 | private Long id; 54 | /** 55 | * 培训名称 56 | */ 57 | 58 | private String peixunmingcheng; 59 | 60 | /** 61 | * 培训图片 62 | */ 63 | 64 | private String peixuntupian; 65 | 66 | /** 67 | * 基本流程 68 | */ 69 | 70 | private String jibenliucheng; 71 | 72 | /** 73 | * 师资力量 74 | */ 75 | 76 | private String shizililiang; 77 | 78 | /** 79 | * 联系人 80 | */ 81 | 82 | private String lianxiren; 83 | 84 | /** 85 | * 联系方式 86 | */ 87 | 88 | private String lianxifangshi; 89 | 90 | /** 91 | * 培训视频 92 | */ 93 | 94 | private String peixunshipin; 95 | 96 | /** 97 | * 发布日期 98 | */ 99 | 100 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd") 101 | @DateTimeFormat 102 | private Date faburiqi; 103 | 104 | 105 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 106 | @DateTimeFormat 107 | private Date addtime; 108 | 109 | public Date getAddtime() { 110 | return addtime; 111 | } 112 | public void setAddtime(Date addtime) { 113 | this.addtime = addtime; 114 | } 115 | 116 | public Long getId() { 117 | return id; 118 | } 119 | 120 | public void setId(Long id) { 121 | this.id = id; 122 | } 123 | /** 124 | * 设置:培训名称 125 | */ 126 | public void setPeixunmingcheng(String peixunmingcheng) { 127 | this.peixunmingcheng = peixunmingcheng; 128 | } 129 | /** 130 | * 获取:培训名称 131 | */ 132 | public String getPeixunmingcheng() { 133 | return peixunmingcheng; 134 | } 135 | /** 136 | * 设置:培训图片 137 | */ 138 | public void setPeixuntupian(String peixuntupian) { 139 | this.peixuntupian = peixuntupian; 140 | } 141 | /** 142 | * 获取:培训图片 143 | */ 144 | public String getPeixuntupian() { 145 | return peixuntupian; 146 | } 147 | /** 148 | * 设置:基本流程 149 | */ 150 | public void setJibenliucheng(String jibenliucheng) { 151 | this.jibenliucheng = jibenliucheng; 152 | } 153 | /** 154 | * 获取:基本流程 155 | */ 156 | public String getJibenliucheng() { 157 | return jibenliucheng; 158 | } 159 | /** 160 | * 设置:师资力量 161 | */ 162 | public void setShizililiang(String shizililiang) { 163 | this.shizililiang = shizililiang; 164 | } 165 | /** 166 | * 获取:师资力量 167 | */ 168 | public String getShizililiang() { 169 | return shizililiang; 170 | } 171 | /** 172 | * 设置:联系人 173 | */ 174 | public void setLianxiren(String lianxiren) { 175 | this.lianxiren = lianxiren; 176 | } 177 | /** 178 | * 获取:联系人 179 | */ 180 | public String getLianxiren() { 181 | return lianxiren; 182 | } 183 | /** 184 | * 设置:联系方式 185 | */ 186 | public void setLianxifangshi(String lianxifangshi) { 187 | this.lianxifangshi = lianxifangshi; 188 | } 189 | /** 190 | * 获取:联系方式 191 | */ 192 | public String getLianxifangshi() { 193 | return lianxifangshi; 194 | } 195 | /** 196 | * 设置:培训视频 197 | */ 198 | public void setPeixunshipin(String peixunshipin) { 199 | this.peixunshipin = peixunshipin; 200 | } 201 | /** 202 | * 获取:培训视频 203 | */ 204 | public String getPeixunshipin() { 205 | return peixunshipin; 206 | } 207 | /** 208 | * 设置:发布日期 209 | */ 210 | public void setFaburiqi(Date faburiqi) { 211 | this.faburiqi = faburiqi; 212 | } 213 | /** 214 | * 获取:发布日期 215 | */ 216 | public Date getFaburiqi() { 217 | return faburiqi; 218 | } 219 | 220 | } 221 | -------------------------------------------------------------------------------- /src/main/java/com/entity/vo/FuwufenpeiVO.java: -------------------------------------------------------------------------------- 1 | package com.entity.vo; 2 | 3 | import com.entity.FuwufenpeiEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务分配 15 | * 手机端接口返回实体辅助类 16 | * (主要作用去除一些不必要的字段) 17 | * @author 18 | * @email 19 | * @date 2022-04-20 17:40:05 20 | */ 21 | public class FuwufenpeiVO implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | 25 | /** 26 | * 服务类型 27 | */ 28 | 29 | private String fuwuleixing; 30 | 31 | /** 32 | * 服务价格 33 | */ 34 | 35 | private String fuwujiage; 36 | 37 | /** 38 | * 预约时间 39 | */ 40 | 41 | private String yuyueshijian; 42 | 43 | /** 44 | * 账号 45 | */ 46 | 47 | private String zhanghao; 48 | 49 | /** 50 | * 姓名 51 | */ 52 | 53 | private String xingming; 54 | 55 | /** 56 | * 手机号码 57 | */ 58 | 59 | private String shoujihaoma; 60 | 61 | /** 62 | * 地址 63 | */ 64 | 65 | private String dizhi; 66 | 67 | /** 68 | * 下单时间 69 | */ 70 | 71 | private String xiadanshijian; 72 | 73 | /** 74 | * 工号 75 | */ 76 | 77 | private String gonghao; 78 | 79 | /** 80 | * 员工姓名 81 | */ 82 | 83 | private String yuangongxingming; 84 | 85 | /** 86 | * 联系手机 87 | */ 88 | 89 | private String lianxishouji; 90 | 91 | /** 92 | * 分配日期 93 | */ 94 | 95 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 96 | @DateTimeFormat 97 | private Date fenpeiriqi; 98 | 99 | 100 | /** 101 | * 设置:服务类型 102 | */ 103 | 104 | public void setFuwuleixing(String fuwuleixing) { 105 | this.fuwuleixing = fuwuleixing; 106 | } 107 | 108 | /** 109 | * 获取:服务类型 110 | */ 111 | public String getFuwuleixing() { 112 | return fuwuleixing; 113 | } 114 | 115 | 116 | /** 117 | * 设置:服务价格 118 | */ 119 | 120 | public void setFuwujiage(String fuwujiage) { 121 | this.fuwujiage = fuwujiage; 122 | } 123 | 124 | /** 125 | * 获取:服务价格 126 | */ 127 | public String getFuwujiage() { 128 | return fuwujiage; 129 | } 130 | 131 | 132 | /** 133 | * 设置:预约时间 134 | */ 135 | 136 | public void setYuyueshijian(String yuyueshijian) { 137 | this.yuyueshijian = yuyueshijian; 138 | } 139 | 140 | /** 141 | * 获取:预约时间 142 | */ 143 | public String getYuyueshijian() { 144 | return yuyueshijian; 145 | } 146 | 147 | 148 | /** 149 | * 设置:账号 150 | */ 151 | 152 | public void setZhanghao(String zhanghao) { 153 | this.zhanghao = zhanghao; 154 | } 155 | 156 | /** 157 | * 获取:账号 158 | */ 159 | public String getZhanghao() { 160 | return zhanghao; 161 | } 162 | 163 | 164 | /** 165 | * 设置:姓名 166 | */ 167 | 168 | public void setXingming(String xingming) { 169 | this.xingming = xingming; 170 | } 171 | 172 | /** 173 | * 获取:姓名 174 | */ 175 | public String getXingming() { 176 | return xingming; 177 | } 178 | 179 | 180 | /** 181 | * 设置:手机号码 182 | */ 183 | 184 | public void setShoujihaoma(String shoujihaoma) { 185 | this.shoujihaoma = shoujihaoma; 186 | } 187 | 188 | /** 189 | * 获取:手机号码 190 | */ 191 | public String getShoujihaoma() { 192 | return shoujihaoma; 193 | } 194 | 195 | 196 | /** 197 | * 设置:地址 198 | */ 199 | 200 | public void setDizhi(String dizhi) { 201 | this.dizhi = dizhi; 202 | } 203 | 204 | /** 205 | * 获取:地址 206 | */ 207 | public String getDizhi() { 208 | return dizhi; 209 | } 210 | 211 | 212 | /** 213 | * 设置:下单时间 214 | */ 215 | 216 | public void setXiadanshijian(String xiadanshijian) { 217 | this.xiadanshijian = xiadanshijian; 218 | } 219 | 220 | /** 221 | * 获取:下单时间 222 | */ 223 | public String getXiadanshijian() { 224 | return xiadanshijian; 225 | } 226 | 227 | 228 | /** 229 | * 设置:工号 230 | */ 231 | 232 | public void setGonghao(String gonghao) { 233 | this.gonghao = gonghao; 234 | } 235 | 236 | /** 237 | * 获取:工号 238 | */ 239 | public String getGonghao() { 240 | return gonghao; 241 | } 242 | 243 | 244 | /** 245 | * 设置:员工姓名 246 | */ 247 | 248 | public void setYuangongxingming(String yuangongxingming) { 249 | this.yuangongxingming = yuangongxingming; 250 | } 251 | 252 | /** 253 | * 获取:员工姓名 254 | */ 255 | public String getYuangongxingming() { 256 | return yuangongxingming; 257 | } 258 | 259 | 260 | /** 261 | * 设置:联系手机 262 | */ 263 | 264 | public void setLianxishouji(String lianxishouji) { 265 | this.lianxishouji = lianxishouji; 266 | } 267 | 268 | /** 269 | * 获取:联系手机 270 | */ 271 | public String getLianxishouji() { 272 | return lianxishouji; 273 | } 274 | 275 | 276 | /** 277 | * 设置:分配日期 278 | */ 279 | 280 | public void setFenpeiriqi(Date fenpeiriqi) { 281 | this.fenpeiriqi = fenpeiriqi; 282 | } 283 | 284 | /** 285 | * 获取:分配日期 286 | */ 287 | public Date getFenpeiriqi() { 288 | return fenpeiriqi; 289 | } 290 | 291 | } 292 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/FuwufenpeiModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.FuwufenpeiEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务分配 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class FuwufenpeiModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 服务类型 28 | */ 29 | 30 | private String fuwuleixing; 31 | 32 | /** 33 | * 服务价格 34 | */ 35 | 36 | private String fuwujiage; 37 | 38 | /** 39 | * 预约时间 40 | */ 41 | 42 | private String yuyueshijian; 43 | 44 | /** 45 | * 账号 46 | */ 47 | 48 | private String zhanghao; 49 | 50 | /** 51 | * 姓名 52 | */ 53 | 54 | private String xingming; 55 | 56 | /** 57 | * 手机号码 58 | */ 59 | 60 | private String shoujihaoma; 61 | 62 | /** 63 | * 地址 64 | */ 65 | 66 | private String dizhi; 67 | 68 | /** 69 | * 下单时间 70 | */ 71 | 72 | private String xiadanshijian; 73 | 74 | /** 75 | * 工号 76 | */ 77 | 78 | private String gonghao; 79 | 80 | /** 81 | * 员工姓名 82 | */ 83 | 84 | private String yuangongxingming; 85 | 86 | /** 87 | * 联系手机 88 | */ 89 | 90 | private String lianxishouji; 91 | 92 | /** 93 | * 分配日期 94 | */ 95 | 96 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 97 | @DateTimeFormat 98 | private Date fenpeiriqi; 99 | 100 | 101 | /** 102 | * 设置:服务类型 103 | */ 104 | 105 | public void setFuwuleixing(String fuwuleixing) { 106 | this.fuwuleixing = fuwuleixing; 107 | } 108 | 109 | /** 110 | * 获取:服务类型 111 | */ 112 | public String getFuwuleixing() { 113 | return fuwuleixing; 114 | } 115 | 116 | 117 | /** 118 | * 设置:服务价格 119 | */ 120 | 121 | public void setFuwujiage(String fuwujiage) { 122 | this.fuwujiage = fuwujiage; 123 | } 124 | 125 | /** 126 | * 获取:服务价格 127 | */ 128 | public String getFuwujiage() { 129 | return fuwujiage; 130 | } 131 | 132 | 133 | /** 134 | * 设置:预约时间 135 | */ 136 | 137 | public void setYuyueshijian(String yuyueshijian) { 138 | this.yuyueshijian = yuyueshijian; 139 | } 140 | 141 | /** 142 | * 获取:预约时间 143 | */ 144 | public String getYuyueshijian() { 145 | return yuyueshijian; 146 | } 147 | 148 | 149 | /** 150 | * 设置:账号 151 | */ 152 | 153 | public void setZhanghao(String zhanghao) { 154 | this.zhanghao = zhanghao; 155 | } 156 | 157 | /** 158 | * 获取:账号 159 | */ 160 | public String getZhanghao() { 161 | return zhanghao; 162 | } 163 | 164 | 165 | /** 166 | * 设置:姓名 167 | */ 168 | 169 | public void setXingming(String xingming) { 170 | this.xingming = xingming; 171 | } 172 | 173 | /** 174 | * 获取:姓名 175 | */ 176 | public String getXingming() { 177 | return xingming; 178 | } 179 | 180 | 181 | /** 182 | * 设置:手机号码 183 | */ 184 | 185 | public void setShoujihaoma(String shoujihaoma) { 186 | this.shoujihaoma = shoujihaoma; 187 | } 188 | 189 | /** 190 | * 获取:手机号码 191 | */ 192 | public String getShoujihaoma() { 193 | return shoujihaoma; 194 | } 195 | 196 | 197 | /** 198 | * 设置:地址 199 | */ 200 | 201 | public void setDizhi(String dizhi) { 202 | this.dizhi = dizhi; 203 | } 204 | 205 | /** 206 | * 获取:地址 207 | */ 208 | public String getDizhi() { 209 | return dizhi; 210 | } 211 | 212 | 213 | /** 214 | * 设置:下单时间 215 | */ 216 | 217 | public void setXiadanshijian(String xiadanshijian) { 218 | this.xiadanshijian = xiadanshijian; 219 | } 220 | 221 | /** 222 | * 获取:下单时间 223 | */ 224 | public String getXiadanshijian() { 225 | return xiadanshijian; 226 | } 227 | 228 | 229 | /** 230 | * 设置:工号 231 | */ 232 | 233 | public void setGonghao(String gonghao) { 234 | this.gonghao = gonghao; 235 | } 236 | 237 | /** 238 | * 获取:工号 239 | */ 240 | public String getGonghao() { 241 | return gonghao; 242 | } 243 | 244 | 245 | /** 246 | * 设置:员工姓名 247 | */ 248 | 249 | public void setYuangongxingming(String yuangongxingming) { 250 | this.yuangongxingming = yuangongxingming; 251 | } 252 | 253 | /** 254 | * 获取:员工姓名 255 | */ 256 | public String getYuangongxingming() { 257 | return yuangongxingming; 258 | } 259 | 260 | 261 | /** 262 | * 设置:联系手机 263 | */ 264 | 265 | public void setLianxishouji(String lianxishouji) { 266 | this.lianxishouji = lianxishouji; 267 | } 268 | 269 | /** 270 | * 获取:联系手机 271 | */ 272 | public String getLianxishouji() { 273 | return lianxishouji; 274 | } 275 | 276 | 277 | /** 278 | * 设置:分配日期 279 | */ 280 | 281 | public void setFenpeiriqi(Date fenpeiriqi) { 282 | this.fenpeiriqi = fenpeiriqi; 283 | } 284 | 285 | /** 286 | * 获取:分配日期 287 | */ 288 | public Date getFenpeiriqi() { 289 | return fenpeiriqi; 290 | } 291 | 292 | } 293 | -------------------------------------------------------------------------------- /.mvn/wrapper/MavenWrapperDownloader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012-2019 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | import java.net.*; 17 | import java.io.*; 18 | import java.nio.channels.*; 19 | import java.util.Properties; 20 | 21 | public class MavenWrapperDownloader { 22 | 23 | private static final String WRAPPER_VERSION = "0.5.5"; 24 | /** 25 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. 26 | */ 27 | private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" 28 | + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; 29 | 30 | /** 31 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to 32 | * use instead of the default one. 33 | */ 34 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH = 35 | ".mvn/wrapper/maven-wrapper.properties"; 36 | 37 | /** 38 | * Path where the maven-wrapper.jar will be saved to. 39 | */ 40 | private static final String MAVEN_WRAPPER_JAR_PATH = 41 | ".mvn/wrapper/maven-wrapper.jar"; 42 | 43 | /** 44 | * Name of the property which should be used to override the default download url for the wrapper. 45 | */ 46 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; 47 | 48 | public static void main(String args[]) { 49 | System.out.println("- Downloader started"); 50 | File baseDirectory = new File(args[0]); 51 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); 52 | 53 | // If the maven-wrapper.properties exists, read it and check if it contains a custom 54 | // wrapperUrl parameter. 55 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); 56 | String url = DEFAULT_DOWNLOAD_URL; 57 | if(mavenWrapperPropertyFile.exists()) { 58 | FileInputStream mavenWrapperPropertyFileInputStream = null; 59 | try { 60 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); 61 | Properties mavenWrapperProperties = new Properties(); 62 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); 63 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); 64 | } catch (IOException e) { 65 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); 66 | } finally { 67 | try { 68 | if(mavenWrapperPropertyFileInputStream != null) { 69 | mavenWrapperPropertyFileInputStream.close(); 70 | } 71 | } catch (IOException e) { 72 | // Ignore ... 73 | } 74 | } 75 | } 76 | System.out.println("- Downloading from: " + url); 77 | 78 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); 79 | if(!outputFile.getParentFile().exists()) { 80 | if(!outputFile.getParentFile().mkdirs()) { 81 | System.out.println( 82 | "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); 83 | } 84 | } 85 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); 86 | try { 87 | downloadFileFromURL(url, outputFile); 88 | System.out.println("Done"); 89 | System.exit(0); 90 | } catch (Throwable e) { 91 | System.out.println("- Error downloading"); 92 | e.printStackTrace(); 93 | System.exit(1); 94 | } 95 | } 96 | 97 | private static void downloadFileFromURL(String urlString, File destination) throws Exception { 98 | if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { 99 | String username = System.getenv("MVNW_USERNAME"); 100 | char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); 101 | Authenticator.setDefault(new Authenticator() { 102 | @Override 103 | protected PasswordAuthentication getPasswordAuthentication() { 104 | return new PasswordAuthentication(username, password); 105 | } 106 | }); 107 | } 108 | URL website = new URL(urlString); 109 | ReadableByteChannel rbc; 110 | rbc = Channels.newChannel(website.openStream()); 111 | FileOutputStream fos = new FileOutputStream(destination); 112 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); 113 | fos.close(); 114 | rbc.close(); 115 | } 116 | 117 | } 118 | -------------------------------------------------------------------------------- /src/main/java/com/entity/vo/FuwuquxiaoVO.java: -------------------------------------------------------------------------------- 1 | package com.entity.vo; 2 | 3 | import com.entity.FuwuquxiaoEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务取消 15 | * 手机端接口返回实体辅助类 16 | * (主要作用去除一些不必要的字段) 17 | * @author 18 | * @email 19 | * @date 2022-04-20 17:40:05 20 | */ 21 | public class FuwuquxiaoVO implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | 25 | /** 26 | * 服务类型 27 | */ 28 | 29 | private String fuwuleixing; 30 | 31 | /** 32 | * 服务价格 33 | */ 34 | 35 | private String fuwujiage; 36 | 37 | /** 38 | * 预约时间 39 | */ 40 | 41 | private String yuyueshijian; 42 | 43 | /** 44 | * 账号 45 | */ 46 | 47 | private String zhanghao; 48 | 49 | /** 50 | * 姓名 51 | */ 52 | 53 | private String xingming; 54 | 55 | /** 56 | * 手机号码 57 | */ 58 | 59 | private String shoujihaoma; 60 | 61 | /** 62 | * 地址 63 | */ 64 | 65 | private String dizhi; 66 | 67 | /** 68 | * 下单时间 69 | */ 70 | 71 | private String xiadanshijian; 72 | 73 | /** 74 | * 取消原因 75 | */ 76 | 77 | private String quxiaoyuanyin; 78 | 79 | /** 80 | * 取消日期 81 | */ 82 | 83 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 84 | @DateTimeFormat 85 | private Date quxiaoriqi; 86 | 87 | /** 88 | * 跨表用户id 89 | */ 90 | 91 | private Long crossuserid; 92 | 93 | /** 94 | * 跨表主键id 95 | */ 96 | 97 | private Long crossrefid; 98 | 99 | /** 100 | * 是否审核 101 | */ 102 | 103 | private String sfsh; 104 | 105 | /** 106 | * 审核回复 107 | */ 108 | 109 | private String shhf; 110 | 111 | 112 | /** 113 | * 设置:服务类型 114 | */ 115 | 116 | public void setFuwuleixing(String fuwuleixing) { 117 | this.fuwuleixing = fuwuleixing; 118 | } 119 | 120 | /** 121 | * 获取:服务类型 122 | */ 123 | public String getFuwuleixing() { 124 | return fuwuleixing; 125 | } 126 | 127 | 128 | /** 129 | * 设置:服务价格 130 | */ 131 | 132 | public void setFuwujiage(String fuwujiage) { 133 | this.fuwujiage = fuwujiage; 134 | } 135 | 136 | /** 137 | * 获取:服务价格 138 | */ 139 | public String getFuwujiage() { 140 | return fuwujiage; 141 | } 142 | 143 | 144 | /** 145 | * 设置:预约时间 146 | */ 147 | 148 | public void setYuyueshijian(String yuyueshijian) { 149 | this.yuyueshijian = yuyueshijian; 150 | } 151 | 152 | /** 153 | * 获取:预约时间 154 | */ 155 | public String getYuyueshijian() { 156 | return yuyueshijian; 157 | } 158 | 159 | 160 | /** 161 | * 设置:账号 162 | */ 163 | 164 | public void setZhanghao(String zhanghao) { 165 | this.zhanghao = zhanghao; 166 | } 167 | 168 | /** 169 | * 获取:账号 170 | */ 171 | public String getZhanghao() { 172 | return zhanghao; 173 | } 174 | 175 | 176 | /** 177 | * 设置:姓名 178 | */ 179 | 180 | public void setXingming(String xingming) { 181 | this.xingming = xingming; 182 | } 183 | 184 | /** 185 | * 获取:姓名 186 | */ 187 | public String getXingming() { 188 | return xingming; 189 | } 190 | 191 | 192 | /** 193 | * 设置:手机号码 194 | */ 195 | 196 | public void setShoujihaoma(String shoujihaoma) { 197 | this.shoujihaoma = shoujihaoma; 198 | } 199 | 200 | /** 201 | * 获取:手机号码 202 | */ 203 | public String getShoujihaoma() { 204 | return shoujihaoma; 205 | } 206 | 207 | 208 | /** 209 | * 设置:地址 210 | */ 211 | 212 | public void setDizhi(String dizhi) { 213 | this.dizhi = dizhi; 214 | } 215 | 216 | /** 217 | * 获取:地址 218 | */ 219 | public String getDizhi() { 220 | return dizhi; 221 | } 222 | 223 | 224 | /** 225 | * 设置:下单时间 226 | */ 227 | 228 | public void setXiadanshijian(String xiadanshijian) { 229 | this.xiadanshijian = xiadanshijian; 230 | } 231 | 232 | /** 233 | * 获取:下单时间 234 | */ 235 | public String getXiadanshijian() { 236 | return xiadanshijian; 237 | } 238 | 239 | 240 | /** 241 | * 设置:取消原因 242 | */ 243 | 244 | public void setQuxiaoyuanyin(String quxiaoyuanyin) { 245 | this.quxiaoyuanyin = quxiaoyuanyin; 246 | } 247 | 248 | /** 249 | * 获取:取消原因 250 | */ 251 | public String getQuxiaoyuanyin() { 252 | return quxiaoyuanyin; 253 | } 254 | 255 | 256 | /** 257 | * 设置:取消日期 258 | */ 259 | 260 | public void setQuxiaoriqi(Date quxiaoriqi) { 261 | this.quxiaoriqi = quxiaoriqi; 262 | } 263 | 264 | /** 265 | * 获取:取消日期 266 | */ 267 | public Date getQuxiaoriqi() { 268 | return quxiaoriqi; 269 | } 270 | 271 | 272 | /** 273 | * 设置:跨表用户id 274 | */ 275 | 276 | public void setCrossuserid(Long crossuserid) { 277 | this.crossuserid = crossuserid; 278 | } 279 | 280 | /** 281 | * 获取:跨表用户id 282 | */ 283 | public Long getCrossuserid() { 284 | return crossuserid; 285 | } 286 | 287 | 288 | /** 289 | * 设置:跨表主键id 290 | */ 291 | 292 | public void setCrossrefid(Long crossrefid) { 293 | this.crossrefid = crossrefid; 294 | } 295 | 296 | /** 297 | * 获取:跨表主键id 298 | */ 299 | public Long getCrossrefid() { 300 | return crossrefid; 301 | } 302 | 303 | 304 | /** 305 | * 设置:是否审核 306 | */ 307 | 308 | public void setSfsh(String sfsh) { 309 | this.sfsh = sfsh; 310 | } 311 | 312 | /** 313 | * 获取:是否审核 314 | */ 315 | public String getSfsh() { 316 | return sfsh; 317 | } 318 | 319 | 320 | /** 321 | * 设置:审核回复 322 | */ 323 | 324 | public void setShhf(String shhf) { 325 | this.shhf = shhf; 326 | } 327 | 328 | /** 329 | * 获取:审核回复 330 | */ 331 | public String getShhf() { 332 | return shhf; 333 | } 334 | 335 | } 336 | -------------------------------------------------------------------------------- /src/main/java/com/controller/UserController.java: -------------------------------------------------------------------------------- 1 | 2 | package com.controller; 3 | 4 | 5 | import java.util.Arrays; 6 | import java.util.Calendar; 7 | import java.util.Date; 8 | import java.util.Map; 9 | 10 | import javax.servlet.http.HttpServletRequest; 11 | 12 | import org.springframework.beans.factory.annotation.Autowired; 13 | import org.springframework.stereotype.Controller; 14 | import org.springframework.web.bind.annotation.GetMapping; 15 | import org.springframework.web.bind.annotation.PathVariable; 16 | import org.springframework.web.bind.annotation.PostMapping; 17 | import org.springframework.web.bind.annotation.RequestBody; 18 | import org.springframework.web.bind.annotation.RequestMapping; 19 | import org.springframework.web.bind.annotation.RequestParam; 20 | import org.springframework.web.bind.annotation.ResponseBody; 21 | import org.springframework.web.bind.annotation.RestController; 22 | 23 | import com.annotation.IgnoreAuth; 24 | import com.baomidou.mybatisplus.mapper.EntityWrapper; 25 | import com.entity.TokenEntity; 26 | import com.entity.UserEntity; 27 | import com.service.TokenService; 28 | import com.service.UserService; 29 | import com.utils.CommonUtil; 30 | import com.utils.MPUtil; 31 | import com.utils.PageUtils; 32 | import com.utils.R; 33 | import com.utils.ValidatorUtils; 34 | 35 | /** 36 | * 登录相关 37 | */ 38 | @RequestMapping("users") 39 | @RestController 40 | public class UserController{ 41 | 42 | @Autowired 43 | private UserService userService; 44 | 45 | @Autowired 46 | private TokenService tokenService; 47 | 48 | /** 49 | * 登录 50 | */ 51 | @IgnoreAuth 52 | @PostMapping(value = "/login") 53 | public R login(String username, String password, String captcha, HttpServletRequest request) { 54 | UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username)); 55 | if(user==null || !user.getPassword().equals(password)) { 56 | return R.error("账号或密码不正确"); 57 | } 58 | String token = tokenService.generateToken(user.getId(),username, "users", user.getRole()); 59 | return R.ok().put("token", token); 60 | } 61 | 62 | /** 63 | * 注册 64 | */ 65 | @IgnoreAuth 66 | @PostMapping(value = "/register") 67 | public R register(@RequestBody UserEntity user){ 68 | // ValidatorUtils.validateEntity(user); 69 | if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) { 70 | return R.error("用户已存在"); 71 | } 72 | userService.insert(user); 73 | return R.ok(); 74 | } 75 | 76 | /** 77 | * 退出 78 | */ 79 | @GetMapping(value = "logout") 80 | public R logout(HttpServletRequest request) { 81 | request.getSession().invalidate(); 82 | return R.ok("退出成功"); 83 | } 84 | 85 | /** 86 | * 密码重置 87 | */ 88 | @IgnoreAuth 89 | @RequestMapping(value = "/resetPass") 90 | public R resetPass(String username, HttpServletRequest request){ 91 | UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username)); 92 | if(user==null) { 93 | return R.error("账号不存在"); 94 | } 95 | user.setPassword("123456"); 96 | userService.update(user,null); 97 | return R.ok("密码已重置为:123456"); 98 | } 99 | 100 | /** 101 | * 列表 102 | */ 103 | @RequestMapping("/page") 104 | public R page(@RequestParam Map params,UserEntity user){ 105 | EntityWrapper ew = new EntityWrapper(); 106 | PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params)); 107 | return R.ok().put("data", page); 108 | } 109 | 110 | /** 111 | * 列表 112 | */ 113 | @RequestMapping("/list") 114 | public R list( UserEntity user){ 115 | EntityWrapper ew = new EntityWrapper(); 116 | ew.allEq(MPUtil.allEQMapPre( user, "user")); 117 | return R.ok().put("data", userService.selectListView(ew)); 118 | } 119 | 120 | /** 121 | * 信息 122 | */ 123 | @RequestMapping("/info/{id}") 124 | public R info(@PathVariable("id") String id){ 125 | UserEntity user = userService.selectById(id); 126 | return R.ok().put("data", user); 127 | } 128 | 129 | /** 130 | * 获取用户的session用户信息 131 | */ 132 | @RequestMapping("/session") 133 | public R getCurrUser(HttpServletRequest request){ 134 | Long id = (Long)request.getSession().getAttribute("userId"); 135 | UserEntity user = userService.selectById(id); 136 | return R.ok().put("data", user); 137 | } 138 | 139 | /** 140 | * 保存 141 | */ 142 | @PostMapping("/save") 143 | public R save(@RequestBody UserEntity user){ 144 | // ValidatorUtils.validateEntity(user); 145 | if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) { 146 | return R.error("用户已存在"); 147 | } 148 | userService.insert(user); 149 | return R.ok(); 150 | } 151 | 152 | /** 153 | * 修改 154 | */ 155 | @RequestMapping("/update") 156 | public R update(@RequestBody UserEntity user){ 157 | // ValidatorUtils.validateEntity(user); 158 | UserEntity u = userService.selectOne(new EntityWrapper().eq("username", user.getUsername())); 159 | if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) { 160 | return R.error("用户名已存在。"); 161 | } 162 | userService.updateById(user);//全部更新 163 | return R.ok(); 164 | } 165 | 166 | /** 167 | * 删除 168 | */ 169 | @RequestMapping("/delete") 170 | public R delete(@RequestBody Long[] ids){ 171 | userService.deleteBatchIds(Arrays.asList(ids)); 172 | return R.ok(); 173 | } 174 | } 175 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/FuwuquxiaoModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.FuwuquxiaoEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务取消 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class FuwuquxiaoModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 服务类型 28 | */ 29 | 30 | private String fuwuleixing; 31 | 32 | /** 33 | * 服务价格 34 | */ 35 | 36 | private String fuwujiage; 37 | 38 | /** 39 | * 预约时间 40 | */ 41 | 42 | private String yuyueshijian; 43 | 44 | /** 45 | * 账号 46 | */ 47 | 48 | private String zhanghao; 49 | 50 | /** 51 | * 姓名 52 | */ 53 | 54 | private String xingming; 55 | 56 | /** 57 | * 手机号码 58 | */ 59 | 60 | private String shoujihaoma; 61 | 62 | /** 63 | * 地址 64 | */ 65 | 66 | private String dizhi; 67 | 68 | /** 69 | * 下单时间 70 | */ 71 | 72 | private String xiadanshijian; 73 | 74 | /** 75 | * 取消原因 76 | */ 77 | 78 | private String quxiaoyuanyin; 79 | 80 | /** 81 | * 取消日期 82 | */ 83 | 84 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 85 | @DateTimeFormat 86 | private Date quxiaoriqi; 87 | 88 | /** 89 | * 跨表用户id 90 | */ 91 | 92 | private Long crossuserid; 93 | 94 | /** 95 | * 跨表主键id 96 | */ 97 | 98 | private Long crossrefid; 99 | 100 | /** 101 | * 是否审核 102 | */ 103 | 104 | private String sfsh; 105 | 106 | /** 107 | * 审核回复 108 | */ 109 | 110 | private String shhf; 111 | 112 | 113 | /** 114 | * 设置:服务类型 115 | */ 116 | 117 | public void setFuwuleixing(String fuwuleixing) { 118 | this.fuwuleixing = fuwuleixing; 119 | } 120 | 121 | /** 122 | * 获取:服务类型 123 | */ 124 | public String getFuwuleixing() { 125 | return fuwuleixing; 126 | } 127 | 128 | 129 | /** 130 | * 设置:服务价格 131 | */ 132 | 133 | public void setFuwujiage(String fuwujiage) { 134 | this.fuwujiage = fuwujiage; 135 | } 136 | 137 | /** 138 | * 获取:服务价格 139 | */ 140 | public String getFuwujiage() { 141 | return fuwujiage; 142 | } 143 | 144 | 145 | /** 146 | * 设置:预约时间 147 | */ 148 | 149 | public void setYuyueshijian(String yuyueshijian) { 150 | this.yuyueshijian = yuyueshijian; 151 | } 152 | 153 | /** 154 | * 获取:预约时间 155 | */ 156 | public String getYuyueshijian() { 157 | return yuyueshijian; 158 | } 159 | 160 | 161 | /** 162 | * 设置:账号 163 | */ 164 | 165 | public void setZhanghao(String zhanghao) { 166 | this.zhanghao = zhanghao; 167 | } 168 | 169 | /** 170 | * 获取:账号 171 | */ 172 | public String getZhanghao() { 173 | return zhanghao; 174 | } 175 | 176 | 177 | /** 178 | * 设置:姓名 179 | */ 180 | 181 | public void setXingming(String xingming) { 182 | this.xingming = xingming; 183 | } 184 | 185 | /** 186 | * 获取:姓名 187 | */ 188 | public String getXingming() { 189 | return xingming; 190 | } 191 | 192 | 193 | /** 194 | * 设置:手机号码 195 | */ 196 | 197 | public void setShoujihaoma(String shoujihaoma) { 198 | this.shoujihaoma = shoujihaoma; 199 | } 200 | 201 | /** 202 | * 获取:手机号码 203 | */ 204 | public String getShoujihaoma() { 205 | return shoujihaoma; 206 | } 207 | 208 | 209 | /** 210 | * 设置:地址 211 | */ 212 | 213 | public void setDizhi(String dizhi) { 214 | this.dizhi = dizhi; 215 | } 216 | 217 | /** 218 | * 获取:地址 219 | */ 220 | public String getDizhi() { 221 | return dizhi; 222 | } 223 | 224 | 225 | /** 226 | * 设置:下单时间 227 | */ 228 | 229 | public void setXiadanshijian(String xiadanshijian) { 230 | this.xiadanshijian = xiadanshijian; 231 | } 232 | 233 | /** 234 | * 获取:下单时间 235 | */ 236 | public String getXiadanshijian() { 237 | return xiadanshijian; 238 | } 239 | 240 | 241 | /** 242 | * 设置:取消原因 243 | */ 244 | 245 | public void setQuxiaoyuanyin(String quxiaoyuanyin) { 246 | this.quxiaoyuanyin = quxiaoyuanyin; 247 | } 248 | 249 | /** 250 | * 获取:取消原因 251 | */ 252 | public String getQuxiaoyuanyin() { 253 | return quxiaoyuanyin; 254 | } 255 | 256 | 257 | /** 258 | * 设置:取消日期 259 | */ 260 | 261 | public void setQuxiaoriqi(Date quxiaoriqi) { 262 | this.quxiaoriqi = quxiaoriqi; 263 | } 264 | 265 | /** 266 | * 获取:取消日期 267 | */ 268 | public Date getQuxiaoriqi() { 269 | return quxiaoriqi; 270 | } 271 | 272 | 273 | /** 274 | * 设置:跨表用户id 275 | */ 276 | 277 | public void setCrossuserid(Long crossuserid) { 278 | this.crossuserid = crossuserid; 279 | } 280 | 281 | /** 282 | * 获取:跨表用户id 283 | */ 284 | public Long getCrossuserid() { 285 | return crossuserid; 286 | } 287 | 288 | 289 | /** 290 | * 设置:跨表主键id 291 | */ 292 | 293 | public void setCrossrefid(Long crossrefid) { 294 | this.crossrefid = crossrefid; 295 | } 296 | 297 | /** 298 | * 获取:跨表主键id 299 | */ 300 | public Long getCrossrefid() { 301 | return crossrefid; 302 | } 303 | 304 | 305 | /** 306 | * 设置:是否审核 307 | */ 308 | 309 | public void setSfsh(String sfsh) { 310 | this.sfsh = sfsh; 311 | } 312 | 313 | /** 314 | * 获取:是否审核 315 | */ 316 | public String getSfsh() { 317 | return sfsh; 318 | } 319 | 320 | 321 | /** 322 | * 设置:审核回复 323 | */ 324 | 325 | public void setShhf(String shhf) { 326 | this.shhf = shhf; 327 | } 328 | 329 | /** 330 | * 获取:审核回复 331 | */ 332 | public String getShhf() { 333 | return shhf; 334 | } 335 | 336 | } 337 | -------------------------------------------------------------------------------- /src/main/java/com/entity/vo/FuwujinduVO.java: -------------------------------------------------------------------------------- 1 | package com.entity.vo; 2 | 3 | import com.entity.FuwujinduEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务进度 15 | * 手机端接口返回实体辅助类 16 | * (主要作用去除一些不必要的字段) 17 | * @author 18 | * @email 19 | * @date 2022-04-20 17:40:05 20 | */ 21 | public class FuwujinduVO implements Serializable { 22 | private static final long serialVersionUID = 1L; 23 | 24 | 25 | /** 26 | * 服务类型 27 | */ 28 | 29 | private String fuwuleixing; 30 | 31 | /** 32 | * 服务价格 33 | */ 34 | 35 | private String fuwujiage; 36 | 37 | /** 38 | * 预约时间 39 | */ 40 | 41 | private String yuyueshijian; 42 | 43 | /** 44 | * 账号 45 | */ 46 | 47 | private String zhanghao; 48 | 49 | /** 50 | * 姓名 51 | */ 52 | 53 | private String xingming; 54 | 55 | /** 56 | * 手机号码 57 | */ 58 | 59 | private String shoujihaoma; 60 | 61 | /** 62 | * 地址 63 | */ 64 | 65 | private String dizhi; 66 | 67 | /** 68 | * 下单时间 69 | */ 70 | 71 | private String xiadanshijian; 72 | 73 | /** 74 | * 工号 75 | */ 76 | 77 | private String gonghao; 78 | 79 | /** 80 | * 员工姓名 81 | */ 82 | 83 | private String yuangongxingming; 84 | 85 | /** 86 | * 联系手机 87 | */ 88 | 89 | private String lianxishouji; 90 | 91 | /** 92 | * 服务进度 93 | */ 94 | 95 | private String fuwujindu; 96 | 97 | /** 98 | * 服务内容 99 | */ 100 | 101 | private String fuwuneirong; 102 | 103 | /** 104 | * 更新时间 105 | */ 106 | 107 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 108 | @DateTimeFormat 109 | private Date gengxinshijian; 110 | 111 | 112 | /** 113 | * 设置:服务类型 114 | */ 115 | 116 | public void setFuwuleixing(String fuwuleixing) { 117 | this.fuwuleixing = fuwuleixing; 118 | } 119 | 120 | /** 121 | * 获取:服务类型 122 | */ 123 | public String getFuwuleixing() { 124 | return fuwuleixing; 125 | } 126 | 127 | 128 | /** 129 | * 设置:服务价格 130 | */ 131 | 132 | public void setFuwujiage(String fuwujiage) { 133 | this.fuwujiage = fuwujiage; 134 | } 135 | 136 | /** 137 | * 获取:服务价格 138 | */ 139 | public String getFuwujiage() { 140 | return fuwujiage; 141 | } 142 | 143 | 144 | /** 145 | * 设置:预约时间 146 | */ 147 | 148 | public void setYuyueshijian(String yuyueshijian) { 149 | this.yuyueshijian = yuyueshijian; 150 | } 151 | 152 | /** 153 | * 获取:预约时间 154 | */ 155 | public String getYuyueshijian() { 156 | return yuyueshijian; 157 | } 158 | 159 | 160 | /** 161 | * 设置:账号 162 | */ 163 | 164 | public void setZhanghao(String zhanghao) { 165 | this.zhanghao = zhanghao; 166 | } 167 | 168 | /** 169 | * 获取:账号 170 | */ 171 | public String getZhanghao() { 172 | return zhanghao; 173 | } 174 | 175 | 176 | /** 177 | * 设置:姓名 178 | */ 179 | 180 | public void setXingming(String xingming) { 181 | this.xingming = xingming; 182 | } 183 | 184 | /** 185 | * 获取:姓名 186 | */ 187 | public String getXingming() { 188 | return xingming; 189 | } 190 | 191 | 192 | /** 193 | * 设置:手机号码 194 | */ 195 | 196 | public void setShoujihaoma(String shoujihaoma) { 197 | this.shoujihaoma = shoujihaoma; 198 | } 199 | 200 | /** 201 | * 获取:手机号码 202 | */ 203 | public String getShoujihaoma() { 204 | return shoujihaoma; 205 | } 206 | 207 | 208 | /** 209 | * 设置:地址 210 | */ 211 | 212 | public void setDizhi(String dizhi) { 213 | this.dizhi = dizhi; 214 | } 215 | 216 | /** 217 | * 获取:地址 218 | */ 219 | public String getDizhi() { 220 | return dizhi; 221 | } 222 | 223 | 224 | /** 225 | * 设置:下单时间 226 | */ 227 | 228 | public void setXiadanshijian(String xiadanshijian) { 229 | this.xiadanshijian = xiadanshijian; 230 | } 231 | 232 | /** 233 | * 获取:下单时间 234 | */ 235 | public String getXiadanshijian() { 236 | return xiadanshijian; 237 | } 238 | 239 | 240 | /** 241 | * 设置:工号 242 | */ 243 | 244 | public void setGonghao(String gonghao) { 245 | this.gonghao = gonghao; 246 | } 247 | 248 | /** 249 | * 获取:工号 250 | */ 251 | public String getGonghao() { 252 | return gonghao; 253 | } 254 | 255 | 256 | /** 257 | * 设置:员工姓名 258 | */ 259 | 260 | public void setYuangongxingming(String yuangongxingming) { 261 | this.yuangongxingming = yuangongxingming; 262 | } 263 | 264 | /** 265 | * 获取:员工姓名 266 | */ 267 | public String getYuangongxingming() { 268 | return yuangongxingming; 269 | } 270 | 271 | 272 | /** 273 | * 设置:联系手机 274 | */ 275 | 276 | public void setLianxishouji(String lianxishouji) { 277 | this.lianxishouji = lianxishouji; 278 | } 279 | 280 | /** 281 | * 获取:联系手机 282 | */ 283 | public String getLianxishouji() { 284 | return lianxishouji; 285 | } 286 | 287 | 288 | /** 289 | * 设置:服务进度 290 | */ 291 | 292 | public void setFuwujindu(String fuwujindu) { 293 | this.fuwujindu = fuwujindu; 294 | } 295 | 296 | /** 297 | * 获取:服务进度 298 | */ 299 | public String getFuwujindu() { 300 | return fuwujindu; 301 | } 302 | 303 | 304 | /** 305 | * 设置:服务内容 306 | */ 307 | 308 | public void setFuwuneirong(String fuwuneirong) { 309 | this.fuwuneirong = fuwuneirong; 310 | } 311 | 312 | /** 313 | * 获取:服务内容 314 | */ 315 | public String getFuwuneirong() { 316 | return fuwuneirong; 317 | } 318 | 319 | 320 | /** 321 | * 设置:更新时间 322 | */ 323 | 324 | public void setGengxinshijian(Date gengxinshijian) { 325 | this.gengxinshijian = gengxinshijian; 326 | } 327 | 328 | /** 329 | * 获取:更新时间 330 | */ 331 | public Date getGengxinshijian() { 332 | return gengxinshijian; 333 | } 334 | 335 | } 336 | -------------------------------------------------------------------------------- /src/main/java/com/entity/model/FuwujinduModel.java: -------------------------------------------------------------------------------- 1 | package com.entity.model; 2 | 3 | import com.entity.FuwujinduEntity; 4 | 5 | import com.baomidou.mybatisplus.annotations.TableName; 6 | import java.util.Date; 7 | import org.springframework.format.annotation.DateTimeFormat; 8 | 9 | import com.fasterxml.jackson.annotation.JsonFormat; 10 | import java.io.Serializable; 11 | 12 | 13 | /** 14 | * 服务进度 15 | * 接收传参的实体类 16 | *(实际开发中配合移动端接口开发手动去掉些没用的字段, 后端一般用entity就够用了) 17 | * 取自ModelAndView 的model名称 18 | * @author 19 | * @email 20 | * @date 2022-04-20 17:40:05 21 | */ 22 | public class FuwujinduModel implements Serializable { 23 | private static final long serialVersionUID = 1L; 24 | 25 | 26 | /** 27 | * 服务类型 28 | */ 29 | 30 | private String fuwuleixing; 31 | 32 | /** 33 | * 服务价格 34 | */ 35 | 36 | private String fuwujiage; 37 | 38 | /** 39 | * 预约时间 40 | */ 41 | 42 | private String yuyueshijian; 43 | 44 | /** 45 | * 账号 46 | */ 47 | 48 | private String zhanghao; 49 | 50 | /** 51 | * 姓名 52 | */ 53 | 54 | private String xingming; 55 | 56 | /** 57 | * 手机号码 58 | */ 59 | 60 | private String shoujihaoma; 61 | 62 | /** 63 | * 地址 64 | */ 65 | 66 | private String dizhi; 67 | 68 | /** 69 | * 下单时间 70 | */ 71 | 72 | private String xiadanshijian; 73 | 74 | /** 75 | * 工号 76 | */ 77 | 78 | private String gonghao; 79 | 80 | /** 81 | * 员工姓名 82 | */ 83 | 84 | private String yuangongxingming; 85 | 86 | /** 87 | * 联系手机 88 | */ 89 | 90 | private String lianxishouji; 91 | 92 | /** 93 | * 服务进度 94 | */ 95 | 96 | private String fuwujindu; 97 | 98 | /** 99 | * 服务内容 100 | */ 101 | 102 | private String fuwuneirong; 103 | 104 | /** 105 | * 更新时间 106 | */ 107 | 108 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 109 | @DateTimeFormat 110 | private Date gengxinshijian; 111 | 112 | 113 | /** 114 | * 设置:服务类型 115 | */ 116 | 117 | public void setFuwuleixing(String fuwuleixing) { 118 | this.fuwuleixing = fuwuleixing; 119 | } 120 | 121 | /** 122 | * 获取:服务类型 123 | */ 124 | public String getFuwuleixing() { 125 | return fuwuleixing; 126 | } 127 | 128 | 129 | /** 130 | * 设置:服务价格 131 | */ 132 | 133 | public void setFuwujiage(String fuwujiage) { 134 | this.fuwujiage = fuwujiage; 135 | } 136 | 137 | /** 138 | * 获取:服务价格 139 | */ 140 | public String getFuwujiage() { 141 | return fuwujiage; 142 | } 143 | 144 | 145 | /** 146 | * 设置:预约时间 147 | */ 148 | 149 | public void setYuyueshijian(String yuyueshijian) { 150 | this.yuyueshijian = yuyueshijian; 151 | } 152 | 153 | /** 154 | * 获取:预约时间 155 | */ 156 | public String getYuyueshijian() { 157 | return yuyueshijian; 158 | } 159 | 160 | 161 | /** 162 | * 设置:账号 163 | */ 164 | 165 | public void setZhanghao(String zhanghao) { 166 | this.zhanghao = zhanghao; 167 | } 168 | 169 | /** 170 | * 获取:账号 171 | */ 172 | public String getZhanghao() { 173 | return zhanghao; 174 | } 175 | 176 | 177 | /** 178 | * 设置:姓名 179 | */ 180 | 181 | public void setXingming(String xingming) { 182 | this.xingming = xingming; 183 | } 184 | 185 | /** 186 | * 获取:姓名 187 | */ 188 | public String getXingming() { 189 | return xingming; 190 | } 191 | 192 | 193 | /** 194 | * 设置:手机号码 195 | */ 196 | 197 | public void setShoujihaoma(String shoujihaoma) { 198 | this.shoujihaoma = shoujihaoma; 199 | } 200 | 201 | /** 202 | * 获取:手机号码 203 | */ 204 | public String getShoujihaoma() { 205 | return shoujihaoma; 206 | } 207 | 208 | 209 | /** 210 | * 设置:地址 211 | */ 212 | 213 | public void setDizhi(String dizhi) { 214 | this.dizhi = dizhi; 215 | } 216 | 217 | /** 218 | * 获取:地址 219 | */ 220 | public String getDizhi() { 221 | return dizhi; 222 | } 223 | 224 | 225 | /** 226 | * 设置:下单时间 227 | */ 228 | 229 | public void setXiadanshijian(String xiadanshijian) { 230 | this.xiadanshijian = xiadanshijian; 231 | } 232 | 233 | /** 234 | * 获取:下单时间 235 | */ 236 | public String getXiadanshijian() { 237 | return xiadanshijian; 238 | } 239 | 240 | 241 | /** 242 | * 设置:工号 243 | */ 244 | 245 | public void setGonghao(String gonghao) { 246 | this.gonghao = gonghao; 247 | } 248 | 249 | /** 250 | * 获取:工号 251 | */ 252 | public String getGonghao() { 253 | return gonghao; 254 | } 255 | 256 | 257 | /** 258 | * 设置:员工姓名 259 | */ 260 | 261 | public void setYuangongxingming(String yuangongxingming) { 262 | this.yuangongxingming = yuangongxingming; 263 | } 264 | 265 | /** 266 | * 获取:员工姓名 267 | */ 268 | public String getYuangongxingming() { 269 | return yuangongxingming; 270 | } 271 | 272 | 273 | /** 274 | * 设置:联系手机 275 | */ 276 | 277 | public void setLianxishouji(String lianxishouji) { 278 | this.lianxishouji = lianxishouji; 279 | } 280 | 281 | /** 282 | * 获取:联系手机 283 | */ 284 | public String getLianxishouji() { 285 | return lianxishouji; 286 | } 287 | 288 | 289 | /** 290 | * 设置:服务进度 291 | */ 292 | 293 | public void setFuwujindu(String fuwujindu) { 294 | this.fuwujindu = fuwujindu; 295 | } 296 | 297 | /** 298 | * 获取:服务进度 299 | */ 300 | public String getFuwujindu() { 301 | return fuwujindu; 302 | } 303 | 304 | 305 | /** 306 | * 设置:服务内容 307 | */ 308 | 309 | public void setFuwuneirong(String fuwuneirong) { 310 | this.fuwuneirong = fuwuneirong; 311 | } 312 | 313 | /** 314 | * 获取:服务内容 315 | */ 316 | public String getFuwuneirong() { 317 | return fuwuneirong; 318 | } 319 | 320 | 321 | /** 322 | * 设置:更新时间 323 | */ 324 | 325 | public void setGengxinshijian(Date gengxinshijian) { 326 | this.gengxinshijian = gengxinshijian; 327 | } 328 | 329 | /** 330 | * 获取:更新时间 331 | */ 332 | public Date getGengxinshijian() { 333 | return gengxinshijian; 334 | } 335 | 336 | } 337 | -------------------------------------------------------------------------------- /src/main/java/com/entity/FuwuyuyueEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import com.baomidou.mybatisplus.annotations.TableId; 4 | import com.baomidou.mybatisplus.annotations.TableName; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | import java.lang.reflect.InvocationTargetException; 11 | 12 | import java.io.Serializable; 13 | import java.util.Date; 14 | import java.util.List; 15 | 16 | import org.springframework.format.annotation.DateTimeFormat; 17 | import com.fasterxml.jackson.annotation.JsonFormat; 18 | import org.apache.commons.beanutils.BeanUtils; 19 | import com.baomidou.mybatisplus.annotations.TableField; 20 | import com.baomidou.mybatisplus.enums.FieldFill; 21 | import com.baomidou.mybatisplus.enums.IdType; 22 | 23 | 24 | /** 25 | * 服务预约 26 | * 数据库通用操作实体类(普通增删改查) 27 | * @author 28 | * @email 29 | * @date 2022-04-20 17:40:05 30 | */ 31 | @TableName("fuwuyuyue") 32 | public class FuwuyuyueEntity implements Serializable { 33 | private static final long serialVersionUID = 1L; 34 | 35 | 36 | public FuwuyuyueEntity() { 37 | 38 | } 39 | 40 | public FuwuyuyueEntity(T t) { 41 | try { 42 | BeanUtils.copyProperties(this, t); 43 | } catch (IllegalAccessException | InvocationTargetException e) { 44 | // TODO Auto-generated catch block 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | /** 50 | * 主键id 51 | */ 52 | @TableId 53 | private Long id; 54 | /** 55 | * 服务名称 56 | */ 57 | 58 | private String fuwumingcheng; 59 | 60 | /** 61 | * 服务类型 62 | */ 63 | 64 | private String fuwuleixing; 65 | 66 | /** 67 | * 服务价格 68 | */ 69 | 70 | private String fuwujiage; 71 | 72 | /** 73 | * 预约时间 74 | */ 75 | 76 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 77 | @DateTimeFormat 78 | private Date yuyueshijian; 79 | 80 | /** 81 | * 账号 82 | */ 83 | 84 | private String zhanghao; 85 | 86 | /** 87 | * 姓名 88 | */ 89 | 90 | private String xingming; 91 | 92 | /** 93 | * 手机号码 94 | */ 95 | 96 | private String shoujihaoma; 97 | 98 | /** 99 | * 地址 100 | */ 101 | 102 | private String dizhi; 103 | 104 | /** 105 | * 下单时间 106 | */ 107 | 108 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 109 | @DateTimeFormat 110 | private Date xiadanshijian; 111 | 112 | /** 113 | * 是否审核 114 | */ 115 | 116 | private String sfsh; 117 | 118 | /** 119 | * 审核回复 120 | */ 121 | 122 | private String shhf; 123 | 124 | /** 125 | * 是否支付 126 | */ 127 | 128 | private String ispay; 129 | 130 | 131 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 132 | @DateTimeFormat 133 | private Date addtime; 134 | 135 | public Date getAddtime() { 136 | return addtime; 137 | } 138 | public void setAddtime(Date addtime) { 139 | this.addtime = addtime; 140 | } 141 | 142 | public Long getId() { 143 | return id; 144 | } 145 | 146 | public void setId(Long id) { 147 | this.id = id; 148 | } 149 | /** 150 | * 设置:服务名称 151 | */ 152 | public void setFuwumingcheng(String fuwumingcheng) { 153 | this.fuwumingcheng = fuwumingcheng; 154 | } 155 | /** 156 | * 获取:服务名称 157 | */ 158 | public String getFuwumingcheng() { 159 | return fuwumingcheng; 160 | } 161 | /** 162 | * 设置:服务类型 163 | */ 164 | public void setFuwuleixing(String fuwuleixing) { 165 | this.fuwuleixing = fuwuleixing; 166 | } 167 | /** 168 | * 获取:服务类型 169 | */ 170 | public String getFuwuleixing() { 171 | return fuwuleixing; 172 | } 173 | /** 174 | * 设置:服务价格 175 | */ 176 | public void setFuwujiage(String fuwujiage) { 177 | this.fuwujiage = fuwujiage; 178 | } 179 | /** 180 | * 获取:服务价格 181 | */ 182 | public String getFuwujiage() { 183 | return fuwujiage; 184 | } 185 | /** 186 | * 设置:预约时间 187 | */ 188 | public void setYuyueshijian(Date yuyueshijian) { 189 | this.yuyueshijian = yuyueshijian; 190 | } 191 | /** 192 | * 获取:预约时间 193 | */ 194 | public Date getYuyueshijian() { 195 | return yuyueshijian; 196 | } 197 | /** 198 | * 设置:账号 199 | */ 200 | public void setZhanghao(String zhanghao) { 201 | this.zhanghao = zhanghao; 202 | } 203 | /** 204 | * 获取:账号 205 | */ 206 | public String getZhanghao() { 207 | return zhanghao; 208 | } 209 | /** 210 | * 设置:姓名 211 | */ 212 | public void setXingming(String xingming) { 213 | this.xingming = xingming; 214 | } 215 | /** 216 | * 获取:姓名 217 | */ 218 | public String getXingming() { 219 | return xingming; 220 | } 221 | /** 222 | * 设置:手机号码 223 | */ 224 | public void setShoujihaoma(String shoujihaoma) { 225 | this.shoujihaoma = shoujihaoma; 226 | } 227 | /** 228 | * 获取:手机号码 229 | */ 230 | public String getShoujihaoma() { 231 | return shoujihaoma; 232 | } 233 | /** 234 | * 设置:地址 235 | */ 236 | public void setDizhi(String dizhi) { 237 | this.dizhi = dizhi; 238 | } 239 | /** 240 | * 获取:地址 241 | */ 242 | public String getDizhi() { 243 | return dizhi; 244 | } 245 | /** 246 | * 设置:下单时间 247 | */ 248 | public void setXiadanshijian(Date xiadanshijian) { 249 | this.xiadanshijian = xiadanshijian; 250 | } 251 | /** 252 | * 获取:下单时间 253 | */ 254 | public Date getXiadanshijian() { 255 | return xiadanshijian; 256 | } 257 | /** 258 | * 设置:是否审核 259 | */ 260 | public void setSfsh(String sfsh) { 261 | this.sfsh = sfsh; 262 | } 263 | /** 264 | * 获取:是否审核 265 | */ 266 | public String getSfsh() { 267 | return sfsh; 268 | } 269 | /** 270 | * 设置:审核回复 271 | */ 272 | public void setShhf(String shhf) { 273 | this.shhf = shhf; 274 | } 275 | /** 276 | * 获取:审核回复 277 | */ 278 | public String getShhf() { 279 | return shhf; 280 | } 281 | /** 282 | * 设置:是否支付 283 | */ 284 | public void setIspay(String ispay) { 285 | this.ispay = ispay; 286 | } 287 | /** 288 | * 获取:是否支付 289 | */ 290 | public String getIspay() { 291 | return ispay; 292 | } 293 | 294 | } 295 | -------------------------------------------------------------------------------- /src/main/java/com/entity/PingjiaxinxiEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import com.baomidou.mybatisplus.annotations.TableId; 4 | import com.baomidou.mybatisplus.annotations.TableName; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | import java.lang.reflect.InvocationTargetException; 11 | 12 | import java.io.Serializable; 13 | import java.util.Date; 14 | import java.util.List; 15 | 16 | import org.springframework.format.annotation.DateTimeFormat; 17 | import com.fasterxml.jackson.annotation.JsonFormat; 18 | import org.apache.commons.beanutils.BeanUtils; 19 | import com.baomidou.mybatisplus.annotations.TableField; 20 | import com.baomidou.mybatisplus.enums.FieldFill; 21 | import com.baomidou.mybatisplus.enums.IdType; 22 | 23 | 24 | /** 25 | * 评价信息 26 | * 数据库通用操作实体类(普通增删改查) 27 | * @author 28 | * @email 29 | * @date 2022-04-20 17:40:05 30 | */ 31 | @TableName("pingjiaxinxi") 32 | public class PingjiaxinxiEntity implements Serializable { 33 | private static final long serialVersionUID = 1L; 34 | 35 | 36 | public PingjiaxinxiEntity() { 37 | 38 | } 39 | 40 | public PingjiaxinxiEntity(T t) { 41 | try { 42 | BeanUtils.copyProperties(this, t); 43 | } catch (IllegalAccessException | InvocationTargetException e) { 44 | // TODO Auto-generated catch block 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | /** 50 | * 主键id 51 | */ 52 | @TableId 53 | private Long id; 54 | /** 55 | * 服务名称 56 | */ 57 | 58 | private String fuwumingcheng; 59 | 60 | /** 61 | * 服务类型 62 | */ 63 | 64 | private String fuwuleixing; 65 | 66 | /** 67 | * 服务价格 68 | */ 69 | 70 | private String fuwujiage; 71 | 72 | /** 73 | * 账号 74 | */ 75 | 76 | private String zhanghao; 77 | 78 | /** 79 | * 姓名 80 | */ 81 | 82 | private String xingming; 83 | 84 | /** 85 | * 手机号码 86 | */ 87 | 88 | private String shoujihaoma; 89 | 90 | /** 91 | * 地址 92 | */ 93 | 94 | private String dizhi; 95 | 96 | /** 97 | * 工号 98 | */ 99 | 100 | private String gonghao; 101 | 102 | /** 103 | * 员工姓名 104 | */ 105 | 106 | private String yuangongxingming; 107 | 108 | /** 109 | * 联系手机 110 | */ 111 | 112 | private String lianxishouji; 113 | 114 | /** 115 | * 评价内容 116 | */ 117 | 118 | private String pingjianeirong; 119 | 120 | /** 121 | * 评价日期 122 | */ 123 | 124 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd") 125 | @DateTimeFormat 126 | private Date pingjiariqi; 127 | 128 | 129 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 130 | @DateTimeFormat 131 | private Date addtime; 132 | 133 | public Date getAddtime() { 134 | return addtime; 135 | } 136 | public void setAddtime(Date addtime) { 137 | this.addtime = addtime; 138 | } 139 | 140 | public Long getId() { 141 | return id; 142 | } 143 | 144 | public void setId(Long id) { 145 | this.id = id; 146 | } 147 | /** 148 | * 设置:服务名称 149 | */ 150 | public void setFuwumingcheng(String fuwumingcheng) { 151 | this.fuwumingcheng = fuwumingcheng; 152 | } 153 | /** 154 | * 获取:服务名称 155 | */ 156 | public String getFuwumingcheng() { 157 | return fuwumingcheng; 158 | } 159 | /** 160 | * 设置:服务类型 161 | */ 162 | public void setFuwuleixing(String fuwuleixing) { 163 | this.fuwuleixing = fuwuleixing; 164 | } 165 | /** 166 | * 获取:服务类型 167 | */ 168 | public String getFuwuleixing() { 169 | return fuwuleixing; 170 | } 171 | /** 172 | * 设置:服务价格 173 | */ 174 | public void setFuwujiage(String fuwujiage) { 175 | this.fuwujiage = fuwujiage; 176 | } 177 | /** 178 | * 获取:服务价格 179 | */ 180 | public String getFuwujiage() { 181 | return fuwujiage; 182 | } 183 | /** 184 | * 设置:账号 185 | */ 186 | public void setZhanghao(String zhanghao) { 187 | this.zhanghao = zhanghao; 188 | } 189 | /** 190 | * 获取:账号 191 | */ 192 | public String getZhanghao() { 193 | return zhanghao; 194 | } 195 | /** 196 | * 设置:姓名 197 | */ 198 | public void setXingming(String xingming) { 199 | this.xingming = xingming; 200 | } 201 | /** 202 | * 获取:姓名 203 | */ 204 | public String getXingming() { 205 | return xingming; 206 | } 207 | /** 208 | * 设置:手机号码 209 | */ 210 | public void setShoujihaoma(String shoujihaoma) { 211 | this.shoujihaoma = shoujihaoma; 212 | } 213 | /** 214 | * 获取:手机号码 215 | */ 216 | public String getShoujihaoma() { 217 | return shoujihaoma; 218 | } 219 | /** 220 | * 设置:地址 221 | */ 222 | public void setDizhi(String dizhi) { 223 | this.dizhi = dizhi; 224 | } 225 | /** 226 | * 获取:地址 227 | */ 228 | public String getDizhi() { 229 | return dizhi; 230 | } 231 | /** 232 | * 设置:工号 233 | */ 234 | public void setGonghao(String gonghao) { 235 | this.gonghao = gonghao; 236 | } 237 | /** 238 | * 获取:工号 239 | */ 240 | public String getGonghao() { 241 | return gonghao; 242 | } 243 | /** 244 | * 设置:员工姓名 245 | */ 246 | public void setYuangongxingming(String yuangongxingming) { 247 | this.yuangongxingming = yuangongxingming; 248 | } 249 | /** 250 | * 获取:员工姓名 251 | */ 252 | public String getYuangongxingming() { 253 | return yuangongxingming; 254 | } 255 | /** 256 | * 设置:联系手机 257 | */ 258 | public void setLianxishouji(String lianxishouji) { 259 | this.lianxishouji = lianxishouji; 260 | } 261 | /** 262 | * 获取:联系手机 263 | */ 264 | public String getLianxishouji() { 265 | return lianxishouji; 266 | } 267 | /** 268 | * 设置:评价内容 269 | */ 270 | public void setPingjianeirong(String pingjianeirong) { 271 | this.pingjianeirong = pingjianeirong; 272 | } 273 | /** 274 | * 获取:评价内容 275 | */ 276 | public String getPingjianeirong() { 277 | return pingjianeirong; 278 | } 279 | /** 280 | * 设置:评价日期 281 | */ 282 | public void setPingjiariqi(Date pingjiariqi) { 283 | this.pingjiariqi = pingjiariqi; 284 | } 285 | /** 286 | * 获取:评价日期 287 | */ 288 | public Date getPingjiariqi() { 289 | return pingjiariqi; 290 | } 291 | 292 | } 293 | -------------------------------------------------------------------------------- /src/main/java/com/entity/FuwufenpeiEntity.java: -------------------------------------------------------------------------------- 1 | package com.entity; 2 | 3 | import com.baomidou.mybatisplus.annotations.TableId; 4 | import com.baomidou.mybatisplus.annotations.TableName; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | import java.lang.reflect.InvocationTargetException; 11 | 12 | import java.io.Serializable; 13 | import java.util.Date; 14 | import java.util.List; 15 | 16 | import org.springframework.format.annotation.DateTimeFormat; 17 | import com.fasterxml.jackson.annotation.JsonFormat; 18 | import org.apache.commons.beanutils.BeanUtils; 19 | import com.baomidou.mybatisplus.annotations.TableField; 20 | import com.baomidou.mybatisplus.enums.FieldFill; 21 | import com.baomidou.mybatisplus.enums.IdType; 22 | 23 | 24 | /** 25 | * 服务分配 26 | * 数据库通用操作实体类(普通增删改查) 27 | * @author 28 | * @email 29 | * @date 2022-04-20 17:40:05 30 | */ 31 | @TableName("fuwufenpei") 32 | public class FuwufenpeiEntity implements Serializable { 33 | private static final long serialVersionUID = 1L; 34 | 35 | 36 | public FuwufenpeiEntity() { 37 | 38 | } 39 | 40 | public FuwufenpeiEntity(T t) { 41 | try { 42 | BeanUtils.copyProperties(this, t); 43 | } catch (IllegalAccessException | InvocationTargetException e) { 44 | // TODO Auto-generated catch block 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | /** 50 | * 主键id 51 | */ 52 | @TableId 53 | private Long id; 54 | /** 55 | * 服务名称 56 | */ 57 | 58 | private String fuwumingcheng; 59 | 60 | /** 61 | * 服务类型 62 | */ 63 | 64 | private String fuwuleixing; 65 | 66 | /** 67 | * 服务价格 68 | */ 69 | 70 | private String fuwujiage; 71 | 72 | /** 73 | * 预约时间 74 | */ 75 | 76 | private String yuyueshijian; 77 | 78 | /** 79 | * 账号 80 | */ 81 | 82 | private String zhanghao; 83 | 84 | /** 85 | * 姓名 86 | */ 87 | 88 | private String xingming; 89 | 90 | /** 91 | * 手机号码 92 | */ 93 | 94 | private String shoujihaoma; 95 | 96 | /** 97 | * 地址 98 | */ 99 | 100 | private String dizhi; 101 | 102 | /** 103 | * 下单时间 104 | */ 105 | 106 | private String xiadanshijian; 107 | 108 | /** 109 | * 工号 110 | */ 111 | 112 | private String gonghao; 113 | 114 | /** 115 | * 员工姓名 116 | */ 117 | 118 | private String yuangongxingming; 119 | 120 | /** 121 | * 联系手机 122 | */ 123 | 124 | private String lianxishouji; 125 | 126 | /** 127 | * 分配日期 128 | */ 129 | 130 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd") 131 | @DateTimeFormat 132 | private Date fenpeiriqi; 133 | 134 | 135 | @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") 136 | @DateTimeFormat 137 | private Date addtime; 138 | 139 | public Date getAddtime() { 140 | return addtime; 141 | } 142 | public void setAddtime(Date addtime) { 143 | this.addtime = addtime; 144 | } 145 | 146 | public Long getId() { 147 | return id; 148 | } 149 | 150 | public void setId(Long id) { 151 | this.id = id; 152 | } 153 | /** 154 | * 设置:服务名称 155 | */ 156 | public void setFuwumingcheng(String fuwumingcheng) { 157 | this.fuwumingcheng = fuwumingcheng; 158 | } 159 | /** 160 | * 获取:服务名称 161 | */ 162 | public String getFuwumingcheng() { 163 | return fuwumingcheng; 164 | } 165 | /** 166 | * 设置:服务类型 167 | */ 168 | public void setFuwuleixing(String fuwuleixing) { 169 | this.fuwuleixing = fuwuleixing; 170 | } 171 | /** 172 | * 获取:服务类型 173 | */ 174 | public String getFuwuleixing() { 175 | return fuwuleixing; 176 | } 177 | /** 178 | * 设置:服务价格 179 | */ 180 | public void setFuwujiage(String fuwujiage) { 181 | this.fuwujiage = fuwujiage; 182 | } 183 | /** 184 | * 获取:服务价格 185 | */ 186 | public String getFuwujiage() { 187 | return fuwujiage; 188 | } 189 | /** 190 | * 设置:预约时间 191 | */ 192 | public void setYuyueshijian(String yuyueshijian) { 193 | this.yuyueshijian = yuyueshijian; 194 | } 195 | /** 196 | * 获取:预约时间 197 | */ 198 | public String getYuyueshijian() { 199 | return yuyueshijian; 200 | } 201 | /** 202 | * 设置:账号 203 | */ 204 | public void setZhanghao(String zhanghao) { 205 | this.zhanghao = zhanghao; 206 | } 207 | /** 208 | * 获取:账号 209 | */ 210 | public String getZhanghao() { 211 | return zhanghao; 212 | } 213 | /** 214 | * 设置:姓名 215 | */ 216 | public void setXingming(String xingming) { 217 | this.xingming = xingming; 218 | } 219 | /** 220 | * 获取:姓名 221 | */ 222 | public String getXingming() { 223 | return xingming; 224 | } 225 | /** 226 | * 设置:手机号码 227 | */ 228 | public void setShoujihaoma(String shoujihaoma) { 229 | this.shoujihaoma = shoujihaoma; 230 | } 231 | /** 232 | * 获取:手机号码 233 | */ 234 | public String getShoujihaoma() { 235 | return shoujihaoma; 236 | } 237 | /** 238 | * 设置:地址 239 | */ 240 | public void setDizhi(String dizhi) { 241 | this.dizhi = dizhi; 242 | } 243 | /** 244 | * 获取:地址 245 | */ 246 | public String getDizhi() { 247 | return dizhi; 248 | } 249 | /** 250 | * 设置:下单时间 251 | */ 252 | public void setXiadanshijian(String xiadanshijian) { 253 | this.xiadanshijian = xiadanshijian; 254 | } 255 | /** 256 | * 获取:下单时间 257 | */ 258 | public String getXiadanshijian() { 259 | return xiadanshijian; 260 | } 261 | /** 262 | * 设置:工号 263 | */ 264 | public void setGonghao(String gonghao) { 265 | this.gonghao = gonghao; 266 | } 267 | /** 268 | * 获取:工号 269 | */ 270 | public String getGonghao() { 271 | return gonghao; 272 | } 273 | /** 274 | * 设置:员工姓名 275 | */ 276 | public void setYuangongxingming(String yuangongxingming) { 277 | this.yuangongxingming = yuangongxingming; 278 | } 279 | /** 280 | * 获取:员工姓名 281 | */ 282 | public String getYuangongxingming() { 283 | return yuangongxingming; 284 | } 285 | /** 286 | * 设置:联系手机 287 | */ 288 | public void setLianxishouji(String lianxishouji) { 289 | this.lianxishouji = lianxishouji; 290 | } 291 | /** 292 | * 获取:联系手机 293 | */ 294 | public String getLianxishouji() { 295 | return lianxishouji; 296 | } 297 | /** 298 | * 设置:分配日期 299 | */ 300 | public void setFenpeiriqi(Date fenpeiriqi) { 301 | this.fenpeiriqi = fenpeiriqi; 302 | } 303 | /** 304 | * 获取:分配日期 305 | */ 306 | public Date getFenpeiriqi() { 307 | return fenpeiriqi; 308 | } 309 | 310 | } 311 | -------------------------------------------------------------------------------- /src/main/resources/front/front/modules/tinymce/tinymce.js: -------------------------------------------------------------------------------- 1 | // 菜单显示异常修改tinymce/skins/ui/oxide/skin.min.css:96 .tox-silver-sink的z-index值 2 | // http://tinymce.ax-z.cn/ 中文文档 3 | 4 | layui.define(['jquery'],function (exports) { 5 | var $ = layui.$ 6 | 7 | var modFile = layui.cache.modules['tinymce']; 8 | 9 | var modPath = modFile.substr(0, modFile.lastIndexOf('.')) 10 | 11 | var setter = layui.setter || {}//兼容layuiadmin 12 | 13 | var response = setter.response || {}//兼容layuiadmin 14 | 15 | // ---------------- 以上代码无需修改 ---------------- 16 | 17 | var settings = { 18 | base_url: modPath 19 | , images_upload_url: '/rest/upload'//图片上传接口,可在option传入,也可在这里修改,option的值优先 20 | , language: 'zh_CN'//语言,可在option传入,也可在这里修改,option的值优先 21 | , response: {//后台返回数据格式设置 22 | statusName: response.statusName || 'code'//返回状态字段 23 | , msgName: response.msgName || 'msg'//返回消息字段 24 | , dataName: response.dataName || 'data'//返回的数据 25 | , statusCode: response.statusCode || { 26 | ok: 0//数据正常 27 | } 28 | } 29 | , success: function (res, succFun, failFun) {//图片上传完成回调 根据自己需要修改 30 | if (res[this.response.statusName] == this.response.statusCode.ok) { 31 | succFun(res[this.response.dataName]); 32 | } else { 33 | failFun(res[this.response.msgName]); 34 | } 35 | } 36 | }; 37 | 38 | // ---------------- 以下代码无需修改 ---------------- 39 | 40 | var t = {}; 41 | 42 | //初始化 43 | t.render = function (option,callback) { 44 | 45 | var admin = layui.admin || {} 46 | 47 | option.base_url = option.base_url ? option.base_url : settings.base_url 48 | 49 | option.language = option.language ? option.language : settings.language 50 | 51 | option.selector = option.selector ? option.selector : option.elem 52 | 53 | option.quickbars_selection_toolbar = option.quickbars_selection_toolbar ? option.quickbars_selection_toolbar : 'cut copy | bold italic underline strikethrough ' 54 | 55 | option.plugins = option.plugins ? option.plugins : 'quickbars print preview searchreplace autolink fullscreen image link media codesample table charmap hr advlist lists wordcount imagetools indent2em'; 56 | 57 | option.toolbar = option.toolbar ? option.toolbar : 'undo redo | forecolor backcolor bold italic underline strikethrough | indent2em alignleft aligncenter alignright alignjustify outdent indent | link bullist numlist image table codesample | formatselect fontselect fontsizeselect'; 58 | 59 | option.resize = false; 60 | 61 | option.elementpath = false 62 | 63 | option.branding = false; 64 | 65 | option.contextmenu_never_use_native = true; 66 | 67 | option.menubar = option.menubar ? option.menubar : 'file edit insert format table'; 68 | 69 | option.images_upload_url = option.images_upload_url ? option.images_upload_url : settings.images_upload_url; 70 | 71 | option.images_upload_handler = option.images_upload_handler? option.images_upload_handler : function (blobInfo, succFun, failFun) { 72 | 73 | var formData = new FormData(); 74 | 75 | formData.append('target', 'edit'); 76 | 77 | formData.append('edit', blobInfo.blob()); 78 | 79 | var ajaxOpt = { 80 | 81 | url: option.images_upload_url, 82 | 83 | dataType: 'json', 84 | 85 | type: 'POST', 86 | 87 | data: formData, 88 | 89 | processData: false, 90 | 91 | contentType: false, 92 | 93 | success: function (res) { 94 | 95 | settings.success(res, succFun, failFun) 96 | 97 | }, 98 | error: function (res) { 99 | 100 | failFun("网络错误:" + res.status); 101 | 102 | } 103 | }; 104 | 105 | if (typeof admin.req == 'function') { 106 | 107 | admin.req(ajaxOpt); 108 | 109 | } else { 110 | 111 | $.ajax(ajaxOpt); 112 | 113 | } 114 | } 115 | 116 | option.menu = option.menu ? option.menu : { 117 | file: {title: '文件', items: 'newdocument | print preview fullscreen | wordcount'}, 118 | edit: {title: '编辑', items: 'undo redo | cut copy paste pastetext selectall | searchreplace'}, 119 | format: { 120 | title: '格式', 121 | items: 'bold italic underline strikethrough superscript subscript | formats | forecolor backcolor | removeformat' 122 | }, 123 | table: {title: '表格', items: 'inserttable tableprops deletetable | cell row column'}, 124 | }; 125 | if(typeof tinymce == 'undefined'){ 126 | 127 | $.ajax({//获取插件 128 | url: option.base_url + '/tinymce.js', 129 | 130 | dataType: 'script', 131 | 132 | cache: true, 133 | 134 | async: false, 135 | }); 136 | 137 | } 138 | 139 | layui.sessionData('layui-tinymce',{ 140 | 141 | key:option.selector, 142 | 143 | value:option 144 | 145 | }) 146 | 147 | tinymce.init(option); 148 | 149 | if(typeof callback == 'function'){ 150 | 151 | callback.call(option) 152 | 153 | } 154 | 155 | return tinymce.activeEditor; 156 | }; 157 | 158 | t.init = t.render 159 | 160 | // 获取ID对应的编辑器对象 161 | t.get = (elem) => { 162 | 163 | if(elem && /^#|\./.test(elem)){ 164 | 165 | var id = elem.substr(1) 166 | 167 | var edit = tinymce.editors[id]; 168 | 169 | if(!edit){ 170 | 171 | return console.error("编辑器未加载") 172 | 173 | } 174 | 175 | return edit 176 | 177 | } else { 178 | 179 | return console.error("elem错误") 180 | 181 | } 182 | } 183 | 184 | //重载 185 | t.reload = (option,callback) => { 186 | option = option || {} 187 | 188 | var edit = t.get(option.elem); 189 | 190 | var optionCache = layui.sessionData('layui-tinymce')[option.elem] 191 | 192 | edit.destroy() 193 | 194 | $.extend(optionCache,option) 195 | 196 | tinymce.init(optionCache) 197 | 198 | if(typeof callback == 'function'){ 199 | 200 | callback.call(optionCache) 201 | 202 | } 203 | 204 | return tinymce.activeEditor; 205 | } 206 | 207 | 208 | exports('tinymce', t); 209 | }); 210 | --------------------------------------------------------------------------------