diff --git a/pom.xml b/pom.xml index 5ac910bf3ae76fad30df2b98974e3f64d0871593..e1b95b876537005b99ea882f2b0b99f26ea5f9f1 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,13 @@ 17 + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + org.springframework.boot diff --git a/src/main/java/com/dhu/common/R.java b/src/main/java/com/dhu/common/R.java index bcb7d39ca6e4ce4a1e00c98f92eb0b49f16e87a4..3813dd044a98d928a76e1a5d9ab66d5d31cc8e61 100644 --- a/src/main/java/com/dhu/common/R.java +++ b/src/main/java/com/dhu/common/R.java @@ -1,6 +1,9 @@ package com.dhu.common; +import io.swagger.annotations.ApiModel; import lombok.Data; + +import java.io.Serializable; import java.util.HashMap; import java.util.Map; @@ -9,7 +12,8 @@ import java.util.Map; * @param */ @Data -public class R { +@ApiModel("返回结果") +public class R implements Serializable { private Integer code; //编码:1成功,0和其它数字为失败 diff --git a/src/main/java/com/dhu/config/WebMvcConfig.java b/src/main/java/com/dhu/config/WebMvcConfig.java index ab2cfd3103359047a8e101166b39a73e39c0abd8..380fdd410dbd54ab96fdc69859f4e2dd6b0a4651 100644 --- a/src/main/java/com/dhu/config/WebMvcConfig.java +++ b/src/main/java/com/dhu/config/WebMvcConfig.java @@ -1,17 +1,28 @@ package com.dhu.config; import com.dhu.common.JacksonObjectMapper; +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.List; @Slf4j @Configuration +@EnableSwagger2 +@EnableKnife4j public class WebMvcConfig extends WebMvcConfigurationSupport { @Override @@ -19,6 +30,8 @@ public class WebMvcConfig extends WebMvcConfigurationSupport { log.info("开始进行静态资源映射"); registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/"); registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/"); + registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/"); + registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } /** @@ -35,4 +48,23 @@ public class WebMvcConfig extends WebMvcConfigurationSupport { //将消息转换器追加到mvc框架的转换器容器中 converters.add(0,messageConverter); } + + @Bean + public Docket createRestApi(){ + //文档类型 + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("com.dhu.controller")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo(){ + return new ApiInfoBuilder() + .title("瑞吉外卖") + .version("1.0") + .description("瑞吉外卖接口文档") + .build(); + } } diff --git a/src/main/java/com/dhu/controller/CategoryController.java b/src/main/java/com/dhu/controller/CategoryController.java index 917c88c7329a2f6a4ff8775c5e694e8710fbe63c..ca6bad81407fad4a035d21a2a9f780cdea4aa3b0 100644 --- a/src/main/java/com/dhu/controller/CategoryController.java +++ b/src/main/java/com/dhu/controller/CategoryController.java @@ -4,10 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dhu.common.R; import com.dhu.entity.Category; -import com.dhu.entity.Employee; import com.dhu.service.CategoryService; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; diff --git a/src/main/java/com/dhu/controller/CommonController.java b/src/main/java/com/dhu/controller/CommonController.java index 28a9454d46c254787d3e8bd099d2c4b1e2c093b7..b75763f7a5f98dbe690fb13378d12aad5d9922e2 100644 --- a/src/main/java/com/dhu/controller/CommonController.java +++ b/src/main/java/com/dhu/controller/CommonController.java @@ -45,7 +45,7 @@ public class CommonController { if (!dir.exists()) { dir.mkdirs(); } - file.transferTo(new File(dir + fileName)); + file.transferTo(new File(dir +"\\"+ fileName)); return R.success(fileName); } diff --git a/src/main/java/com/dhu/controller/DishController.java b/src/main/java/com/dhu/controller/DishController.java index 4bf64d4602b15fd87616518b1ab1204393dd57e3..865b1f4b9385d7b6170c041ca3dddcfb162b1bb1 100644 --- a/src/main/java/com/dhu/controller/DishController.java +++ b/src/main/java/com/dhu/controller/DishController.java @@ -18,7 +18,6 @@ import org.springframework.cache.CacheManager; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Set; diff --git a/src/main/java/com/dhu/controller/EmployeeController.java b/src/main/java/com/dhu/controller/EmployeeController.java index 6f7c0c30be18132d1d7ea0e2cae4c187da496c5a..cce605d88ab874d3a25bd78c72e23ff9cb0cf6a5 100644 --- a/src/main/java/com/dhu/controller/EmployeeController.java +++ b/src/main/java/com/dhu/controller/EmployeeController.java @@ -12,12 +12,6 @@ import org.springframework.util.DigestUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import java.time.LocalDateTime; -import java.util.Date; - -import static com.dhu.common.R.success; @Slf4j @RestController diff --git a/src/main/java/com/dhu/controller/OrderController.java b/src/main/java/com/dhu/controller/OrderController.java index bbcf7fa23dc26f6e009f071db51a2e540e76c879..0313d827c8c43df4a5e3a79ebe8e60bc7f805e68 100644 --- a/src/main/java/com/dhu/controller/OrderController.java +++ b/src/main/java/com/dhu/controller/OrderController.java @@ -4,22 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dhu.common.BaseContext; import com.dhu.common.R; -import com.dhu.dto.OrdersDto; -import com.dhu.entity.*; -import com.dhu.service.AddressBookService; -import com.dhu.service.OrderDetailService; +import com.dhu.entity.Orders; import com.dhu.service.OrderService; -import com.dhu.service.ShoppingCartService; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.time.LocalDateTime; -import java.util.List; -import java.util.stream.Collectors; - @Slf4j @RestController @RequestMapping("/order") @@ -34,11 +24,21 @@ public class OrderController { } @GetMapping("/page") - public R page(int page ,int pageSize, Long number){ + public R page(int page ,int pageSize){ + Page pageInfo = new Page(page, pageSize); + + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.orderByDesc(Orders::getCheckoutTime); + orderService.page(pageInfo, lqw); + return R.success(pageInfo); + } + @GetMapping("/userPage") + public R userPage(int page ,int pageSize, Long number){ Page pageInfo = new Page(page, pageSize); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.like(number != null, Orders::getNumber, number); + lqw.eq(Orders::getUserId, BaseContext.getCurrentId()); lqw.orderByDesc(Orders::getCheckoutTime); orderService.page(pageInfo, lqw); diff --git a/src/main/java/com/dhu/controller/SetmealController.java b/src/main/java/com/dhu/controller/SetmealController.java index 3481b32bfdf1cbcec1acbc33e7aa08ac88c32625..2426726de88002bcb11779d8fcc818e7ff7505e7 100644 --- a/src/main/java/com/dhu/controller/SetmealController.java +++ b/src/main/java/com/dhu/controller/SetmealController.java @@ -3,38 +3,35 @@ package com.dhu.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dhu.common.R; -import com.dhu.dto.DishDto; import com.dhu.dto.SetmealDto; import com.dhu.entity.Category; -import com.dhu.entity.Dish; -import com.dhu.entity.DishFlavor; import com.dhu.entity.Setmeal; import com.dhu.service.*; +import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @Slf4j @RestController @RequestMapping("/setmeal") +@Api(tags="套餐相关接口") public class SetmealController { @Autowired private SetmealService setmealService; @Autowired - private SetmealDishService setmealDishService; - @Autowired private CategoryService categoryService; + @Autowired - private DishService dishService; - @Autowired - private DishFlavorService dishFlavorService; + private RedisCacheManager redisCacheManager; /** * 新增套餐 @@ -43,6 +40,7 @@ public class SetmealController { * @return */ @PostMapping + @CacheEvict(value = "setmealCache", allEntries = true)//删除setmealCache所有数据 public R save(@RequestBody SetmealDto setmealDto) { setmealService.saveWithDish(setmealDto); return R.success("套餐新增成功"); @@ -91,6 +89,7 @@ public class SetmealController { * @return */ @DeleteMapping + @CacheEvict(value = "setmealCache", allEntries = true)//删除setmealCache所有数据 public R delete(@RequestParam List ids) { log.info("ids:{}", ids); setmealService.removeWithDIsh(ids); @@ -117,6 +116,7 @@ public class SetmealController { * @return */ @GetMapping("/list") + @Cacheable(value = "setmealCache", key= "#setmeal.categoryId+'_'+#setmeal.status") public R> list(Setmeal setmeal){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(null!=setmeal.getCategoryId(),Setmeal::getCategoryId,setmeal.getCategoryId()); diff --git a/src/main/java/com/dhu/controller/UserController.java b/src/main/java/com/dhu/controller/UserController.java index 47927db556e03d3a8f59a15b9e663d29ed81ac4d..86282beeda6278ae0d04651400f989e35133e987 100644 --- a/src/main/java/com/dhu/controller/UserController.java +++ b/src/main/java/com/dhu/controller/UserController.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.dhu.common.R; import com.dhu.entity.User; import com.dhu.service.UserService; -import com.dhu.utils.SMSUtils; import com.dhu.utils.ValidateCodeUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; diff --git a/src/main/java/com/dhu/dto/SetmealDto.java b/src/main/java/com/dhu/dto/SetmealDto.java index 7467bab7903cb8ca2c6ff0305c9f806364bd157a..e1cab2dec078c83a725e4e281933770ca63c8b17 100644 --- a/src/main/java/com/dhu/dto/SetmealDto.java +++ b/src/main/java/com/dhu/dto/SetmealDto.java @@ -2,10 +2,12 @@ package com.dhu.dto; import com.dhu.entity.Setmeal; import com.dhu.entity.SetmealDish; +import io.swagger.annotations.ApiModel; import lombok.Data; import java.util.List; @Data +@ApiModel("套餐Dto") public class SetmealDto extends Setmeal { private List setmealDishes; diff --git a/src/main/java/com/dhu/entity/Setmeal.java b/src/main/java/com/dhu/entity/Setmeal.java index c96f3174469da81b719e7f0199244febc15c6ad7..b347b6656408c75294e7c023654f9ec33b9ca721 100644 --- a/src/main/java/com/dhu/entity/Setmeal.java +++ b/src/main/java/com/dhu/entity/Setmeal.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; @@ -13,22 +15,27 @@ import java.time.LocalDateTime; * 套餐 */ @Data +@ApiModel("套餐") public class Setmeal implements Serializable { private static final long serialVersionUID = 1L; + @ApiModelProperty("主键") private Long id; //分类id + @ApiModelProperty("分类id") private Long categoryId; //套餐名称 + @ApiModelProperty("套餐名称") private String name; //套餐价格 + @ApiModelProperty("套餐价格") private BigDecimal price; diff --git a/src/main/java/com/dhu/filter/LoginCheckFilter.java b/src/main/java/com/dhu/filter/LoginCheckFilter.java index 0e97d0fdc55d247c6d660cde1d3c37a5ad889d61..0bf89e64e12d05f168aa2e1c5c87cefe74ce2976 100644 --- a/src/main/java/com/dhu/filter/LoginCheckFilter.java +++ b/src/main/java/com/dhu/filter/LoginCheckFilter.java @@ -33,7 +33,11 @@ public class LoginCheckFilter implements Filter { "/front/**", "/common/**", "/user/sendMsg", - "/user/login" + "/user/login", + "/doc.html", + "/webjars/**", + "/swagger-resources", + "/v2/api-docs" }; //判断本次请求是否需要处理 boolean check = check(urls, requestURI); diff --git a/src/main/java/com/dhu/mapper/OrderDetailMapper.java b/src/main/java/com/dhu/mapper/OrderDetailMapper.java index d1c72f9e36e017f89f800a32f7857e358747b972..6ae76b549b63ffe914fd33d306324034f9ceaa38 100644 --- a/src/main/java/com/dhu/mapper/OrderDetailMapper.java +++ b/src/main/java/com/dhu/mapper/OrderDetailMapper.java @@ -2,8 +2,9 @@ package com.dhu.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dhu.entity.OrderDetail; import org.apache.ibatis.annotations.Mapper; @Mapper -public interface OrderDetailMapper extends BaseMapper { +public interface OrderDetailMapper extends BaseMapper { } diff --git a/src/main/java/com/dhu/service/OrderService.java b/src/main/java/com/dhu/service/OrderService.java index 9ef705fea5e55129954d3777c394c098ef9da1a5..dd0147028c3516e29c03f3a8e02b1ae794b86fec 100644 --- a/src/main/java/com/dhu/service/OrderService.java +++ b/src/main/java/com/dhu/service/OrderService.java @@ -1,7 +1,6 @@ package com.dhu.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.dhu.common.R; import com.dhu.entity.Orders; public interface OrderService extends IService { diff --git a/src/main/java/com/dhu/service/impl/OrderServiceImpl.java b/src/main/java/com/dhu/service/impl/OrderServiceImpl.java index 82022be3443febe66403eaf2127409e34aa413d6..a5f822f0e5f01baeb9b72eb596ae31023774b479 100644 --- a/src/main/java/com/dhu/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/dhu/service/impl/OrderServiceImpl.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dhu.common.BaseContext; import com.dhu.common.CustomException; -import com.dhu.common.R; import com.dhu.entity.*; import com.dhu.mapper.OrderMapper; import com.dhu.service.*; diff --git a/src/main/java/com/dhu/service/impl/ShoppingCartServiceImpl.java b/src/main/java/com/dhu/service/impl/ShoppingCartServiceImpl.java index 8a3516268840f67d194855e2358ef0c534974d48..3d93b415d16670d43343d3b5c5b631e25616151e 100644 --- a/src/main/java/com/dhu/service/impl/ShoppingCartServiceImpl.java +++ b/src/main/java/com/dhu/service/impl/ShoppingCartServiceImpl.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dhu.entity.ShoppingCart; import com.dhu.mapper.ShoppingCartMapper; import com.dhu.service.ShoppingCartService; -import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Service; @Service diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 5ac7a79a32ffd4ef3b200dec7e1ad21ab1c5e250..b46431cca4ac7328522afb3fa60558723024f783 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,5 +1,5 @@ server: - port: 8888 + port: 8880 spring: application: name: reggie @@ -13,7 +13,7 @@ spring: default-encoding: utf-8 redis: password: a20011028 - host: 192.168.254.129 + host: 101.133.226.33 port: 6379 database: 0 # 操作的是0号数据库 jedis: @@ -26,9 +26,9 @@ spring: datasource: druid: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/db_reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + url: jdbc:mysql://101.133.226.33:3306/db_reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root - password: root + password: Aa.211028 mybatis-plus: configuration: #在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射