From 5a29a2146e4fa4505b919286d3805cf1b8e058c5 Mon Sep 17 00:00:00 2001 From: Cxx0822 <1556464090@qq.com> Date: Wed, 25 Jun 2025 16:27:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E7=BE=8E=E9=A3=9F?= =?UTF-8?q?=E6=9C=8B=E5=8F=8B=E5=9C=88=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cxx/food/controller/FoodController.java | 70 +++---- .../cxx/food/controller/MomentController.java | 40 ++++ src/main/java/com/cxx/food/dao/FoodDao.java | 32 ++-- src/main/java/com/cxx/food/dao/MomentDao.java | 14 ++ .../java/com/cxx/food/dto/CommentDto.java | 37 ++++ ...{FoodMaterialDto.java => MaterialDto.java} | 2 +- src/main/java/com/cxx/food/dto/MomentDto.java | 41 +++++ .../{FoodRecipeDto.java => RecipeDto.java} | 8 +- .../{FoodRecordDto.java => RecordDto.java} | 2 +- .../dto/{FoodStatsDto.java => StatsDto.java} | 2 +- .../dto/{FoodStepDto.java => StepDto.java} | 2 +- .../{FoodSummaryDto.java => SummaryDto.java} | 4 +- .../java/com/cxx/food/entity/Comment.java | 18 ++ src/main/java/com/cxx/food/entity/Like.java | 18 ++ .../{FoodMaterial.java => Material.java} | 2 +- src/main/java/com/cxx/food/entity/Moment.java | 15 ++ .../entity/{FoodRecipe.java => Recipe.java} | 4 +- .../entity/{FoodRecord.java => Record.java} | 4 +- .../food/entity/{FoodStep.java => Step.java} | 4 +- src/main/java/com/cxx/food/entity/User.java | 21 +++ ...FoodStepMapper.java => CommentMapper.java} | 4 +- ...{FoodRecipeMapper.java => LikeMapper.java} | 4 +- ...dRecordMapper.java => MaterialMapper.java} | 4 +- ...dMaterialMapper.java => MomentMapper.java} | 4 +- .../com/cxx/food/mapper/RecipeMapper.java | 9 + .../com/cxx/food/mapper/RecordMapper.java | 9 + .../java/com/cxx/food/mapper/StepMapper.java | 9 + .../java/com/cxx/food/mapper/UserMapper.java | 9 + .../com/cxx/food/service/FoodService.java | 30 +-- .../com/cxx/food/service/MomentService.java | 16 ++ .../food/service/impl/FoodServiceImpl.java | 172 +++++++++--------- .../food/service/impl/MomentServiceImpl.java | 53 ++++++ .../food/service/impl/SessionServiceImpl.java | 2 +- src/main/resources/application.yml | 2 +- src/main/resources/mapper/FoodMapper.xml | 78 ++++---- src/main/resources/mapper/MomentMapper.xml | 43 +++++ 36 files changed, 570 insertions(+), 218 deletions(-) create mode 100644 src/main/java/com/cxx/food/controller/MomentController.java create mode 100644 src/main/java/com/cxx/food/dao/MomentDao.java create mode 100644 src/main/java/com/cxx/food/dto/CommentDto.java rename src/main/java/com/cxx/food/dto/{FoodMaterialDto.java => MaterialDto.java} (93%) create mode 100644 src/main/java/com/cxx/food/dto/MomentDto.java rename src/main/java/com/cxx/food/dto/{FoodRecipeDto.java => RecipeDto.java} (85%) rename src/main/java/com/cxx/food/dto/{FoodRecordDto.java => RecordDto.java} (96%) rename src/main/java/com/cxx/food/dto/{FoodStatsDto.java => StatsDto.java} (92%) rename src/main/java/com/cxx/food/dto/{FoodStepDto.java => StepDto.java} (94%) rename src/main/java/com/cxx/food/dto/{FoodSummaryDto.java => SummaryDto.java} (86%) create mode 100644 src/main/java/com/cxx/food/entity/Comment.java create mode 100644 src/main/java/com/cxx/food/entity/Like.java rename src/main/java/com/cxx/food/entity/{FoodMaterial.java => Material.java} (90%) create mode 100644 src/main/java/com/cxx/food/entity/Moment.java rename src/main/java/com/cxx/food/entity/{FoodRecipe.java => Recipe.java} (87%) rename src/main/java/com/cxx/food/entity/{FoodRecord.java => Record.java} (87%) rename src/main/java/com/cxx/food/entity/{FoodStep.java => Step.java} (87%) create mode 100644 src/main/java/com/cxx/food/entity/User.java rename src/main/java/com/cxx/food/mapper/{FoodStepMapper.java => CommentMapper.java} (58%) rename src/main/java/com/cxx/food/mapper/{FoodRecipeMapper.java => LikeMapper.java} (57%) rename src/main/java/com/cxx/food/mapper/{FoodRecordMapper.java => MaterialMapper.java} (57%) rename src/main/java/com/cxx/food/mapper/{FoodMaterialMapper.java => MomentMapper.java} (55%) create mode 100644 src/main/java/com/cxx/food/mapper/RecipeMapper.java create mode 100644 src/main/java/com/cxx/food/mapper/RecordMapper.java create mode 100644 src/main/java/com/cxx/food/mapper/StepMapper.java create mode 100644 src/main/java/com/cxx/food/mapper/UserMapper.java create mode 100644 src/main/java/com/cxx/food/service/MomentService.java create mode 100644 src/main/java/com/cxx/food/service/impl/MomentServiceImpl.java create mode 100644 src/main/resources/mapper/MomentMapper.xml diff --git a/src/main/java/com/cxx/food/controller/FoodController.java b/src/main/java/com/cxx/food/controller/FoodController.java index 1c0a701..7698c5d 100644 --- a/src/main/java/com/cxx/food/controller/FoodController.java +++ b/src/main/java/com/cxx/food/controller/FoodController.java @@ -22,41 +22,41 @@ public class FoodController { @Operation(summary = "新增美食菜谱") @PostMapping("/recipe") - public Boolean addFoodRecipe(@RequestBody @JsonView(WriteView.class) @Validated FoodRecipeDto foodRecipeDto) { - return foodService.addFoodRecipe(foodRecipeDto); + public Boolean addRecipe(@RequestBody @JsonView(WriteView.class) @Validated RecipeDto recipeDto) { + return foodService.addRecipe(recipeDto); } @Operation(summary = "更新美食菜谱") @PutMapping("/recipe/{id}") - public Boolean updateFoodRecipe(@PathVariable("id") long id, - @RequestBody @JsonView(WriteView.class) FoodRecipeDto foodRecipeDto) { - return foodService.updateFoodRecipe(id, foodRecipeDto); + public Boolean updateRecipe(@PathVariable("id") long id, + @RequestBody @JsonView(WriteView.class) RecipeDto recipeDto) { + return foodService.updateRecipe(id, recipeDto); } @Operation(summary = "删除美食菜谱") @DeleteMapping("/recipe/{id}") - public Boolean deleteFoodRecipe(@PathVariable("id") long id) { - return foodService.deleteFoodRecipe(id); + public Boolean deleteRecipe(@PathVariable("id") long id) { + return foodService.deleteRecipe(id); } @Operation(summary = "查询美食菜谱") @GetMapping("/recipe") - public List queryFoodSummary(FoodQueryVo foodQueryVo) { - return foodService.queryFoodSummary(foodQueryVo); + public List querySummary(FoodQueryVo foodQueryVo) { + return foodService.querySummary(foodQueryVo); } @Operation(summary = "分页查询美食菜谱") @GetMapping("/recipe/page") - public IPage queryFoodSummaryByPage(@RequestParam("currentPage") Integer currentPage, - @RequestParam("pageSize") Integer pageSize, - FoodQueryVo foodQueryVo) { - return foodService.queryFoodSummaryByPage(currentPage, pageSize, foodQueryVo); + public IPage querySummaryByPage(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + FoodQueryVo foodQueryVo) { + return foodService.querySummaryByPage(currentPage, pageSize, foodQueryVo); } @Operation(summary = "查询美食") @GetMapping("/recipe/{id}") - public @JsonView(ReadView.class) FoodRecipeDto queryFoodRecipe(@PathVariable("id") long id) { - return foodService.queryFoodRecipe(id); + public @JsonView(ReadView.class) RecipeDto queryRecipe(@PathVariable("id") long id) { + return foodService.queryRecipe(id); } @Operation(summary = "查询所有美食名称") @@ -67,58 +67,58 @@ public class FoodController { @Operation(summary = "新增美食成果") @PostMapping("/record") - public Boolean addFoodRecord(@RequestBody @JsonView(WriteView.class) @Validated FoodRecordDto foodRecordDto) { - return foodService.addFoodRecord(foodRecordDto); + public Boolean addRecord(@RequestBody @JsonView(WriteView.class) @Validated RecordDto recordDto) { + return foodService.addRecord(recordDto); } @Operation(summary = "更新美食成果") @PutMapping("/record/{id}") - public Boolean updateFoodRecord(@PathVariable("id") long id, - @RequestBody @JsonView(WriteView.class) FoodRecordDto foodRecordDto) { - return foodService.updateFoodRecord(id, foodRecordDto); + public Boolean updateRecord(@PathVariable("id") long id, + @RequestBody @JsonView(WriteView.class) RecordDto recordDto) { + return foodService.updateRecord(id, recordDto); } @Operation(summary = "删除美食成果") @DeleteMapping("/record/{id}") - public Boolean deleteFoodRecord(@PathVariable("id") long id) { - return foodService.deleteFoodRecord(id); + public Boolean deleteRecord(@PathVariable("id") long id) { + return foodService.deleteRecord(id); } @Operation(summary = "查询美食记录") @GetMapping("/record") - public @JsonView(ReadView.class) List queryFoodRecord(@RequestParam("startDate") String startDate, - @RequestParam("endDate") String endDate) { - return foodService.queryFoodRecord(startDate, endDate); + public @JsonView(ReadView.class) List queryRecord(@RequestParam("startDate") String startDate, + @RequestParam("endDate") String endDate) { + return foodService.queryRecord(startDate, endDate); } @Operation(summary = "查询美食类别") @GetMapping("/category") - public List queryFoodCategory() { - return foodService.queryFoodCategory(); + public List queryCategory() { + return foodService.queryCategory(); } @Operation(summary = "查询美食统计") @GetMapping("/stats") - public FoodStatsDto queryFoodStats() { - return foodService.queryFoodStats(); + public StatsDto queryStats() { + return foodService.queryStats(); } @Operation(summary = "查询美食记录统计") @GetMapping("/stats/record") - public List queryFoodRecordStats() { - return foodService.queryFoodRecordStats(); + public List queryRecordStats() { + return foodService.queryRecordStats(); } @Operation(summary = "查询美食类别统计") @GetMapping("/stats/category") - public List queryFoodCategoryStats() { - return foodService.queryFoodCategoryStats(); + public List queryCategoryStats() { + return foodService.queryCategoryStats(); } @Operation(summary = "查询美食排行榜统计") @GetMapping("/stats/rank") - public List queryFoodRankStats() { - return foodService.queryFoodRankStats(); + public List queryRankStats() { + return foodService.queryRankStats(); } } \ No newline at end of file diff --git a/src/main/java/com/cxx/food/controller/MomentController.java b/src/main/java/com/cxx/food/controller/MomentController.java new file mode 100644 index 0000000..1216f8a --- /dev/null +++ b/src/main/java/com/cxx/food/controller/MomentController.java @@ -0,0 +1,40 @@ +package com.cxx.food.controller; + +import com.cxx.food.dto.*; +import com.cxx.food.service.MomentService; +import com.fasterxml.jackson.annotation.JsonView; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/moment") +@Tag(name = "美食朋友圈") +public class MomentController { + @Resource + private MomentService momentService; + + @Operation(summary = "新增朋友圈") + @PostMapping("") + public Boolean addMoment(@RequestBody @JsonView(WriteView.class) @Validated MomentDto momentDto) { + return momentService.addMoment(momentDto); + } + + @Operation(summary = "查询朋友圈") + @GetMapping("") + public @JsonView(ReadView.class) List queryMoment() { + return momentService.queryMoment(); + } + + @Operation(summary = "新增评论") + @PostMapping("/{id}/comment") + public Boolean addMoment(@PathVariable("id") long id, + @RequestBody @JsonView(WriteView.class) @Validated CommentDto commentDto) { + return momentService.addComment(id, commentDto); + } +} + \ No newline at end of file diff --git a/src/main/java/com/cxx/food/dao/FoodDao.java b/src/main/java/com/cxx/food/dao/FoodDao.java index 920503e..12f0fc1 100644 --- a/src/main/java/com/cxx/food/dao/FoodDao.java +++ b/src/main/java/com/cxx/food/dao/FoodDao.java @@ -10,32 +10,32 @@ import java.util.List; @Mapper public interface FoodDao { - FoodRecipeDto queryFoodRecipe(@Param("id") Long id); + RecipeDto queryRecipe(@Param("id") Long id); - IPage queryFoodSummaryByPage(IPage page, - @Param("query") FoodQueryVo foodQueryVo); + IPage querySummaryByPage(IPage page, + @Param("query") FoodQueryVo foodQueryVo); - List queryFoodSummary(@Param("query") FoodQueryVo foodQueryVo); + List querySummary(@Param("query") FoodQueryVo foodQueryVo); - List queryFoodRecordById(@Param("id") Long id); + List queryRecordById(@Param("id") Long id); - List queryFoodRecord(@Param("startDate") String startDate, - @Param("endDate") String endDate); + List queryRecord(@Param("startDate") String startDate, + @Param("endDate") String endDate); - FoodStatsDto queryFoodStats(); + StatsDto queryStats(); - List queryFoodRecordStats(); + List queryRecordStats(); - List queryFoodCategoryStats(); + List queryCategoryStats(); - List queryFoodRankStats(); + List queryRankStats(); - List queryFoodCategory(); + List queryCategory(); - void insertFoodMaterial(@Param("foodId") Long foodId, - @Param("list") List list); + void insertMaterial(@Param("foodId") Long foodId, + @Param("list") List list); - void insertFoodStep(@Param("foodId") Long foodId, - @Param("list") List list); + void insertStep(@Param("foodId") Long foodId, + @Param("list") List list); } diff --git a/src/main/java/com/cxx/food/dao/MomentDao.java b/src/main/java/com/cxx/food/dao/MomentDao.java new file mode 100644 index 0000000..ede9872 --- /dev/null +++ b/src/main/java/com/cxx/food/dao/MomentDao.java @@ -0,0 +1,14 @@ +package com.cxx.food.dao; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.cxx.food.dto.*; +import com.cxx.food.vo.FoodQueryVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface MomentDao { + List queryMoment(); +} diff --git a/src/main/java/com/cxx/food/dto/CommentDto.java b/src/main/java/com/cxx/food/dto/CommentDto.java new file mode 100644 index 0000000..2415021 --- /dev/null +++ b/src/main/java/com/cxx/food/dto/CommentDto.java @@ -0,0 +1,37 @@ + +package com.cxx.food.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonView; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +@JsonView(PlainView.class) +public class CommentDto { + @Schema(description = "id") + @JsonView(ReadView.class) + private Long id; + + @Schema(description = "姓名") + @JsonView(ReadView.class) + private String username; + + @Schema(description = "头像") + @JsonView(ReadView.class) + private String avatar; + + @Schema(description = "评论内容") + @NotBlank(message = "内容不能为空") + private String content; + + @Schema(description = "时间") + @JsonView(ReadView.class) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date date; +} diff --git a/src/main/java/com/cxx/food/dto/FoodMaterialDto.java b/src/main/java/com/cxx/food/dto/MaterialDto.java similarity index 93% rename from src/main/java/com/cxx/food/dto/FoodMaterialDto.java rename to src/main/java/com/cxx/food/dto/MaterialDto.java index 12c8d84..c6a7018 100644 --- a/src/main/java/com/cxx/food/dto/FoodMaterialDto.java +++ b/src/main/java/com/cxx/food/dto/MaterialDto.java @@ -8,7 +8,7 @@ import lombok.Setter; @Getter @Setter @JsonView(PlainView.class) -public class FoodMaterialDto { +public class MaterialDto { @Schema(description = "id") private Long id; diff --git a/src/main/java/com/cxx/food/dto/MomentDto.java b/src/main/java/com/cxx/food/dto/MomentDto.java new file mode 100644 index 0000000..2427ae5 --- /dev/null +++ b/src/main/java/com/cxx/food/dto/MomentDto.java @@ -0,0 +1,41 @@ +package com.cxx.food.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonView; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; +import java.util.List; + +@Getter +@Setter +@JsonView(PlainView.class) +public class MomentDto { + @Schema(description = "id") + @JsonView(ReadView.class) + private Long id; + + @Schema(description = "姓名") + @JsonView(ReadView.class) + private String username; + + @Schema(description = "头像") + @JsonView(ReadView.class) + private String avatar; + + @Schema(description = "朋友圈内容") + @NotBlank(message = "内容不能为空") + private String content; + + @Schema(description = "时间") + @JsonView(ReadView.class) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date date; + + @Schema(description = "评论内容") + @JsonView(ReadView.class) + private List commentList; +} diff --git a/src/main/java/com/cxx/food/dto/FoodRecipeDto.java b/src/main/java/com/cxx/food/dto/RecipeDto.java similarity index 85% rename from src/main/java/com/cxx/food/dto/FoodRecipeDto.java rename to src/main/java/com/cxx/food/dto/RecipeDto.java index 4b2075c..a21a55d 100644 --- a/src/main/java/com/cxx/food/dto/FoodRecipeDto.java +++ b/src/main/java/com/cxx/food/dto/RecipeDto.java @@ -12,7 +12,7 @@ import java.util.List; @Getter @Setter @JsonView(PlainView.class) -public class FoodRecipeDto { +public class RecipeDto { @Schema(description = "id") @JsonView(ReadView.class) private Long id; @@ -29,14 +29,14 @@ public class FoodRecipeDto { private Integer recommendRate; @Schema(description = "美食食材") - private List materialList; + private List materialList; @Schema(description = "美食步骤") - private List stepList; + private List stepList; @Schema(description = "美食成果") @JsonView(ReadView.class) - private List recordList; + private List recordList; @Schema(description = "备注") private String remark; diff --git a/src/main/java/com/cxx/food/dto/FoodRecordDto.java b/src/main/java/com/cxx/food/dto/RecordDto.java similarity index 96% rename from src/main/java/com/cxx/food/dto/FoodRecordDto.java rename to src/main/java/com/cxx/food/dto/RecordDto.java index dbd9483..ea5b202 100644 --- a/src/main/java/com/cxx/food/dto/FoodRecordDto.java +++ b/src/main/java/com/cxx/food/dto/RecordDto.java @@ -11,7 +11,7 @@ import java.util.Date; @Getter @Setter @JsonView(PlainView.class) -public class FoodRecordDto { +public class RecordDto { @Schema(description = "id") @JsonView(ReadView.class) private Long id; diff --git a/src/main/java/com/cxx/food/dto/FoodStatsDto.java b/src/main/java/com/cxx/food/dto/StatsDto.java similarity index 92% rename from src/main/java/com/cxx/food/dto/FoodStatsDto.java rename to src/main/java/com/cxx/food/dto/StatsDto.java index c97a0cd..85aea63 100644 --- a/src/main/java/com/cxx/food/dto/FoodStatsDto.java +++ b/src/main/java/com/cxx/food/dto/StatsDto.java @@ -7,7 +7,7 @@ import lombok.Setter; @Getter @Setter -public class FoodStatsDto { +public class StatsDto { @Schema(description = "菜谱总数") private Integer recipeCount; diff --git a/src/main/java/com/cxx/food/dto/FoodStepDto.java b/src/main/java/com/cxx/food/dto/StepDto.java similarity index 94% rename from src/main/java/com/cxx/food/dto/FoodStepDto.java rename to src/main/java/com/cxx/food/dto/StepDto.java index 12a5181..b10a1fd 100644 --- a/src/main/java/com/cxx/food/dto/FoodStepDto.java +++ b/src/main/java/com/cxx/food/dto/StepDto.java @@ -8,7 +8,7 @@ import lombok.Setter; @Getter @Setter @JsonView(PlainView.class) -public class FoodStepDto { +public class StepDto { @Schema(description = "id") private Long id; diff --git a/src/main/java/com/cxx/food/dto/FoodSummaryDto.java b/src/main/java/com/cxx/food/dto/SummaryDto.java similarity index 86% rename from src/main/java/com/cxx/food/dto/FoodSummaryDto.java rename to src/main/java/com/cxx/food/dto/SummaryDto.java index 415b965..506c856 100644 --- a/src/main/java/com/cxx/food/dto/FoodSummaryDto.java +++ b/src/main/java/com/cxx/food/dto/SummaryDto.java @@ -8,7 +8,7 @@ import java.util.List; @Getter @Setter -public class FoodSummaryDto { +public class SummaryDto { @Schema(description = "id") private Long id; @@ -22,5 +22,5 @@ public class FoodSummaryDto { private Integer recommendRate; @Schema(description = "美食记录") - private List recordList; + private List recordList; } diff --git a/src/main/java/com/cxx/food/entity/Comment.java b/src/main/java/com/cxx/food/entity/Comment.java new file mode 100644 index 0000000..88fbec0 --- /dev/null +++ b/src/main/java/com/cxx/food/entity/Comment.java @@ -0,0 +1,18 @@ +package com.cxx.food.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.cxx.framework.data.AbstractEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("comment") +public class Comment extends AbstractEntity { + @TableField("moment_id") + private Long momentId; + + @TableField("content") + private String content; +} diff --git a/src/main/java/com/cxx/food/entity/Like.java b/src/main/java/com/cxx/food/entity/Like.java new file mode 100644 index 0000000..4987d36 --- /dev/null +++ b/src/main/java/com/cxx/food/entity/Like.java @@ -0,0 +1,18 @@ +package com.cxx.food.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.cxx.framework.data.AbstractEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("moment") +public class Like extends AbstractEntity { + @TableField("moment_id") + private Long momentId; + + @TableField("is_delete") + private Integer isDelete; +} diff --git a/src/main/java/com/cxx/food/entity/FoodMaterial.java b/src/main/java/com/cxx/food/entity/Material.java similarity index 90% rename from src/main/java/com/cxx/food/entity/FoodMaterial.java rename to src/main/java/com/cxx/food/entity/Material.java index 586cec0..079b681 100644 --- a/src/main/java/com/cxx/food/entity/FoodMaterial.java +++ b/src/main/java/com/cxx/food/entity/Material.java @@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = true) @TableName("food_material") -public class FoodMaterial extends AbstractIdEntity { +public class Material extends AbstractIdEntity { @TableField("food_id") private Long foodId; diff --git a/src/main/java/com/cxx/food/entity/Moment.java b/src/main/java/com/cxx/food/entity/Moment.java new file mode 100644 index 0000000..22eeec2 --- /dev/null +++ b/src/main/java/com/cxx/food/entity/Moment.java @@ -0,0 +1,15 @@ +package com.cxx.food.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.cxx.framework.data.AbstractEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("moment") +public class Moment extends AbstractEntity { + @TableField("content") + private String content; +} diff --git a/src/main/java/com/cxx/food/entity/FoodRecipe.java b/src/main/java/com/cxx/food/entity/Recipe.java similarity index 87% rename from src/main/java/com/cxx/food/entity/FoodRecipe.java rename to src/main/java/com/cxx/food/entity/Recipe.java index 4da96a7..f06b41a 100644 --- a/src/main/java/com/cxx/food/entity/FoodRecipe.java +++ b/src/main/java/com/cxx/food/entity/Recipe.java @@ -8,8 +8,8 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = true) -@TableName("food_recipe") -public class FoodRecipe extends AbstractEntity { +@TableName("recipe") +public class Recipe extends AbstractEntity { @TableField("name") private String name; diff --git a/src/main/java/com/cxx/food/entity/FoodRecord.java b/src/main/java/com/cxx/food/entity/Record.java similarity index 87% rename from src/main/java/com/cxx/food/entity/FoodRecord.java rename to src/main/java/com/cxx/food/entity/Record.java index 9cc0b26..533d38f 100644 --- a/src/main/java/com/cxx/food/entity/FoodRecord.java +++ b/src/main/java/com/cxx/food/entity/Record.java @@ -10,8 +10,8 @@ import java.util.Date; @Data @EqualsAndHashCode(callSuper = true) -@TableName("food_record") -public class FoodRecord extends AbstractIdEntity { +@TableName("record") +public class Record extends AbstractIdEntity { @TableField("food_id") private Long foodId; diff --git a/src/main/java/com/cxx/food/entity/FoodStep.java b/src/main/java/com/cxx/food/entity/Step.java similarity index 87% rename from src/main/java/com/cxx/food/entity/FoodStep.java rename to src/main/java/com/cxx/food/entity/Step.java index 7943a7e..087ea1b 100644 --- a/src/main/java/com/cxx/food/entity/FoodStep.java +++ b/src/main/java/com/cxx/food/entity/Step.java @@ -8,8 +8,8 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = true) -@TableName("food_step") -public class FoodStep extends AbstractIdEntity { +@TableName("step") +public class Step extends AbstractIdEntity { @TableField("food_id") private Long foodId; diff --git a/src/main/java/com/cxx/food/entity/User.java b/src/main/java/com/cxx/food/entity/User.java new file mode 100644 index 0000000..621cb7a --- /dev/null +++ b/src/main/java/com/cxx/food/entity/User.java @@ -0,0 +1,21 @@ +package com.cxx.food.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.cxx.framework.data.AbstractEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("user") +public class User extends AbstractEntity { + @TableField("username") + private String username; + + @TableField("password") + private String password; + + @TableField("avatar") + private String avatar; +} diff --git a/src/main/java/com/cxx/food/mapper/FoodStepMapper.java b/src/main/java/com/cxx/food/mapper/CommentMapper.java similarity index 58% rename from src/main/java/com/cxx/food/mapper/FoodStepMapper.java rename to src/main/java/com/cxx/food/mapper/CommentMapper.java index d603630..0f75712 100644 --- a/src/main/java/com/cxx/food/mapper/FoodStepMapper.java +++ b/src/main/java/com/cxx/food/mapper/CommentMapper.java @@ -1,9 +1,9 @@ package com.cxx.food.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.cxx.food.entity.FoodStep; +import com.cxx.food.entity.Comment; import org.apache.ibatis.annotations.Mapper; @Mapper -public interface FoodStepMapper extends BaseMapper { +public interface CommentMapper extends BaseMapper { } \ No newline at end of file diff --git a/src/main/java/com/cxx/food/mapper/FoodRecipeMapper.java b/src/main/java/com/cxx/food/mapper/LikeMapper.java similarity index 57% rename from src/main/java/com/cxx/food/mapper/FoodRecipeMapper.java rename to src/main/java/com/cxx/food/mapper/LikeMapper.java index 6b326d8..543b386 100644 --- a/src/main/java/com/cxx/food/mapper/FoodRecipeMapper.java +++ b/src/main/java/com/cxx/food/mapper/LikeMapper.java @@ -1,9 +1,9 @@ package com.cxx.food.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.cxx.food.entity.FoodRecipe; +import com.cxx.food.entity.Like; import org.apache.ibatis.annotations.Mapper; @Mapper -public interface FoodRecipeMapper extends BaseMapper { +public interface LikeMapper extends BaseMapper { } \ No newline at end of file diff --git a/src/main/java/com/cxx/food/mapper/FoodRecordMapper.java b/src/main/java/com/cxx/food/mapper/MaterialMapper.java similarity index 57% rename from src/main/java/com/cxx/food/mapper/FoodRecordMapper.java rename to src/main/java/com/cxx/food/mapper/MaterialMapper.java index 65f27b1..dfdfe79 100644 --- a/src/main/java/com/cxx/food/mapper/FoodRecordMapper.java +++ b/src/main/java/com/cxx/food/mapper/MaterialMapper.java @@ -1,9 +1,9 @@ package com.cxx.food.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.cxx.food.entity.FoodRecord; +import com.cxx.food.entity.Material; import org.apache.ibatis.annotations.Mapper; @Mapper -public interface FoodRecordMapper extends BaseMapper { +public interface MaterialMapper extends BaseMapper { } \ No newline at end of file diff --git a/src/main/java/com/cxx/food/mapper/FoodMaterialMapper.java b/src/main/java/com/cxx/food/mapper/MomentMapper.java similarity index 55% rename from src/main/java/com/cxx/food/mapper/FoodMaterialMapper.java rename to src/main/java/com/cxx/food/mapper/MomentMapper.java index 4e75817..2b850d1 100644 --- a/src/main/java/com/cxx/food/mapper/FoodMaterialMapper.java +++ b/src/main/java/com/cxx/food/mapper/MomentMapper.java @@ -1,9 +1,9 @@ package com.cxx.food.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.cxx.food.entity.FoodMaterial; +import com.cxx.food.entity.Moment; import org.apache.ibatis.annotations.Mapper; @Mapper -public interface FoodMaterialMapper extends BaseMapper { +public interface MomentMapper extends BaseMapper { } \ No newline at end of file diff --git a/src/main/java/com/cxx/food/mapper/RecipeMapper.java b/src/main/java/com/cxx/food/mapper/RecipeMapper.java new file mode 100644 index 0000000..122ee02 --- /dev/null +++ b/src/main/java/com/cxx/food/mapper/RecipeMapper.java @@ -0,0 +1,9 @@ +package com.cxx.food.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cxx.food.entity.Recipe; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface RecipeMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/main/java/com/cxx/food/mapper/RecordMapper.java b/src/main/java/com/cxx/food/mapper/RecordMapper.java new file mode 100644 index 0000000..9a9ca3f --- /dev/null +++ b/src/main/java/com/cxx/food/mapper/RecordMapper.java @@ -0,0 +1,9 @@ +package com.cxx.food.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cxx.food.entity.Record; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface RecordMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/main/java/com/cxx/food/mapper/StepMapper.java b/src/main/java/com/cxx/food/mapper/StepMapper.java new file mode 100644 index 0000000..6bdec63 --- /dev/null +++ b/src/main/java/com/cxx/food/mapper/StepMapper.java @@ -0,0 +1,9 @@ +package com.cxx.food.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cxx.food.entity.Step; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface StepMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/main/java/com/cxx/food/mapper/UserMapper.java b/src/main/java/com/cxx/food/mapper/UserMapper.java new file mode 100644 index 0000000..59a88aa --- /dev/null +++ b/src/main/java/com/cxx/food/mapper/UserMapper.java @@ -0,0 +1,9 @@ +package com.cxx.food.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cxx.food.entity.User; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UserMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/main/java/com/cxx/food/service/FoodService.java b/src/main/java/com/cxx/food/service/FoodService.java index 0c0503b..f8ed04a 100644 --- a/src/main/java/com/cxx/food/service/FoodService.java +++ b/src/main/java/com/cxx/food/service/FoodService.java @@ -8,35 +8,35 @@ import com.cxx.food.vo.FoodQueryVo; import java.util.List; public interface FoodService { - Boolean addFoodRecipe(FoodRecipeDto foodRecipeDto); + Boolean addRecipe(RecipeDto recipeDto); - Boolean updateFoodRecipe(Long id, FoodRecipeDto foodRecipeDto); + Boolean updateRecipe(Long id, RecipeDto recipeDto); - Boolean deleteFoodRecipe(Long id); + Boolean deleteRecipe(Long id); - Boolean addFoodRecord(FoodRecordDto foodRecordDto); + Boolean addRecord(RecordDto foodRecordDto); - Boolean updateFoodRecord(Long id, FoodRecordDto foodRecordDto); + Boolean updateRecord(Long id, RecordDto recordDto); - Boolean deleteFoodRecord(Long id); + Boolean deleteRecord(Long id); - FoodRecipeDto queryFoodRecipe(Long id); + RecipeDto queryRecipe(Long id); - List queryFoodSummary(FoodQueryVo foodQueryVo); + List querySummary(FoodQueryVo foodQueryVo); - IPage queryFoodSummaryByPage(Integer currentPage, Integer pageSize, FoodQueryVo foodQueryVo); + IPage querySummaryByPage(Integer currentPage, Integer pageSize, FoodQueryVo foodQueryVo); - List queryFoodRecord(String startDate, String endDate); + List queryRecord(String startDate, String endDate); List queryFoodName(); - List queryFoodCategory(); + List queryCategory(); - FoodStatsDto queryFoodStats(); + StatsDto queryStats(); - List queryFoodRecordStats(); + List queryRecordStats(); - List queryFoodCategoryStats(); + List queryCategoryStats(); - List queryFoodRankStats(); + List queryRankStats(); } diff --git a/src/main/java/com/cxx/food/service/MomentService.java b/src/main/java/com/cxx/food/service/MomentService.java new file mode 100644 index 0000000..b376bc1 --- /dev/null +++ b/src/main/java/com/cxx/food/service/MomentService.java @@ -0,0 +1,16 @@ +package com.cxx.food.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.cxx.food.dto.*; +import com.cxx.food.vo.FoodQueryVo; + +import java.util.List; + +public interface MomentService { + Boolean addMoment(MomentDto momentDto); + + List queryMoment(); + + Boolean addComment(Long momentId, CommentDto commentDto); +} diff --git a/src/main/java/com/cxx/food/service/impl/FoodServiceImpl.java b/src/main/java/com/cxx/food/service/impl/FoodServiceImpl.java index 7373b45..9576b5c 100644 --- a/src/main/java/com/cxx/food/service/impl/FoodServiceImpl.java +++ b/src/main/java/com/cxx/food/service/impl/FoodServiceImpl.java @@ -6,14 +6,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cxx.food.dao.FoodDao; import com.cxx.food.dto.*; -import com.cxx.food.entity.FoodMaterial; -import com.cxx.food.entity.FoodRecipe; -import com.cxx.food.entity.FoodRecord; -import com.cxx.food.entity.FoodStep; -import com.cxx.food.mapper.FoodMaterialMapper; -import com.cxx.food.mapper.FoodRecipeMapper; -import com.cxx.food.mapper.FoodRecordMapper; -import com.cxx.food.mapper.FoodStepMapper; +import com.cxx.food.entity.Material; +import com.cxx.food.entity.Recipe; +import com.cxx.food.entity.Record; +import com.cxx.food.entity.Step; +import com.cxx.food.mapper.MaterialMapper; +import com.cxx.food.mapper.RecipeMapper; +import com.cxx.food.mapper.RecordMapper; +import com.cxx.food.mapper.StepMapper; import com.cxx.food.service.FoodService; import com.cxx.food.vo.FoodQueryVo; import com.cxx.framework.web.CustomException; @@ -32,189 +32,189 @@ public class FoodServiceImpl implements FoodService { private FoodDao foodDao; @Resource - private FoodRecipeMapper foodRecipeMapper; + private RecipeMapper recipeMapper; @Resource - private FoodMaterialMapper foodMaterialMapper; + private MaterialMapper materialMapper; @Resource - private FoodStepMapper foodStepMapper; + private StepMapper stepMapper; @Resource - private FoodRecordMapper foodRecordMapper; + private RecordMapper recordMapper; @Override @Transactional - public Boolean addFoodRecipe(FoodRecipeDto foodRecipeDto) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (foodRecipeMapper.exists(queryWrapper.eq(FoodRecipe::getName, foodRecipeDto.getName()))) { + public Boolean addRecipe(RecipeDto recipeDto) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (recipeMapper.exists(queryWrapper.eq(Recipe::getName, recipeDto.getName()))) { throw new CustomException("该菜谱已经存在"); } - FoodRecipe foodRecipe = new FoodRecipe(); - BeanUtils.copyProperties(foodRecipeDto, foodRecipe); - foodRecipeMapper.insert(foodRecipe); - resetFoodRecipe(foodRecipe.getId(), foodRecipeDto); + Recipe recipe = new Recipe(); + BeanUtils.copyProperties(recipeDto, recipe); + recipeMapper.insert(recipe); + resetFoodRecipe(recipe.getId(), recipeDto); return Boolean.TRUE; } @Override @Transactional - public Boolean updateFoodRecipe(Long id, FoodRecipeDto foodRecipeDto) { - if (foodRecipeMapper.selectById(id) == null) { + public Boolean updateRecipe(Long id, RecipeDto recipeDto) { + if (recipeMapper.selectById(id) == null) { throw new CustomException("该菜谱不存在"); } - FoodRecipe foodRecipe = new FoodRecipe(); - BeanUtils.copyProperties(foodRecipeDto, foodRecipe); - foodRecipe.setId(id); - foodRecipeMapper.updateById(foodRecipe); - resetFoodRecipe(foodRecipe.getId(), foodRecipeDto); + Recipe recipe = new Recipe(); + BeanUtils.copyProperties(recipeDto, recipe); + recipe.setId(id); + recipeMapper.updateById(recipe); + resetFoodRecipe(recipe.getId(), recipeDto); return Boolean.TRUE; } @Override @Transactional - public Boolean deleteFoodRecipe(Long id) { - foodRecipeMapper.deleteById(id); - foodMaterialMapper.delete(Wrappers.lambdaQuery(FoodMaterial.class).eq(FoodMaterial::getFoodId, id)); - foodStepMapper.delete(Wrappers.lambdaQuery(FoodStep.class).eq(FoodStep::getFoodId, id)); - foodRecordMapper.delete(Wrappers.lambdaQuery(FoodRecord.class).eq(FoodRecord::getFoodId, id)); + public Boolean deleteRecipe(Long id) { + recipeMapper.deleteById(id); + materialMapper.delete(Wrappers.lambdaQuery(Material.class).eq(Material::getFoodId, id)); + stepMapper.delete(Wrappers.lambdaQuery(Step.class).eq(Step::getFoodId, id)); + recordMapper.delete(Wrappers.lambdaQuery(Record.class).eq(Record::getFoodId, id)); return Boolean.TRUE; } @Override - public Boolean addFoodRecord(FoodRecordDto foodRecordDto) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - FoodRecipe foodRecipe = foodRecipeMapper.selectOne(queryWrapper.eq(FoodRecipe::getName, foodRecordDto.getName())); - if (foodRecipe == null) { + public Boolean addRecord(RecordDto recordDto) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Recipe recipe = recipeMapper.selectOne(queryWrapper.eq(Recipe::getName, recordDto.getName())); + if (recipe == null) { throw new CustomException("该菜谱不存在"); } - FoodRecord foodRecord = new FoodRecord(); - foodRecord.setFoodId(foodRecipe.getId()); - BeanUtils.copyProperties(foodRecordDto, foodRecord); - foodRecordMapper.insert(foodRecord); + Record record = new Record(); + record.setFoodId(recipe.getId()); + BeanUtils.copyProperties(recordDto, record); + recordMapper.insert(record); return Boolean.TRUE; } @Override - public Boolean updateFoodRecord(Long id, FoodRecordDto foodRecordDto) { - if (foodRecordMapper.selectById(id) == null) { + public Boolean updateRecord(Long id, RecordDto recordDto) { + if (recordMapper.selectById(id) == null) { throw new CustomException("该成果不存在"); } - FoodRecord foodRecord = new FoodRecord(); - BeanUtils.copyProperties(foodRecordDto, foodRecord); - foodRecord.setId(id); - foodRecordMapper.updateById(foodRecord); + Record record = new Record(); + BeanUtils.copyProperties(recordDto, record); + record.setId(id); + recordMapper.updateById(record); return Boolean.TRUE; } @Override - public Boolean deleteFoodRecord(Long id) { - foodRecordMapper.deleteById(id); + public Boolean deleteRecord(Long id) { + recordMapper.deleteById(id); return Boolean.TRUE; } - private void resetFoodRecipe(Long id, FoodRecipeDto foodRecipeDto) { - foodMaterialMapper.delete(Wrappers.lambdaQuery(FoodMaterial.class).eq(FoodMaterial::getFoodId, id)); - foodStepMapper.delete(Wrappers.lambdaQuery(FoodStep.class).eq(FoodStep::getFoodId, id)); + private void resetFoodRecipe(Long id, RecipeDto recipeDto) { + materialMapper.delete(Wrappers.lambdaQuery(Material.class).eq(Material::getFoodId, id)); + stepMapper.delete(Wrappers.lambdaQuery(Step.class).eq(Step::getFoodId, id)); - insertFoodMaterial(id, foodRecipeDto.getMaterialList()); - insertFoodStep(id, foodRecipeDto.getStepList()); + insertMaterial(id, recipeDto.getMaterialList()); + insertStep(id, recipeDto.getStepList()); } - private void insertFoodMaterial(Long foodId, List foodMaterialList) { - if (foodMaterialList.isEmpty()) { + private void insertMaterial(Long foodId, List materialDtoList) { + if (materialDtoList.isEmpty()) { return; } - foodMaterialList.forEach((item) -> { + materialDtoList.forEach((item) -> { item.setId(YitIdHelper.nextId()); }); - foodDao.insertFoodMaterial(foodId, foodMaterialList); + foodDao.insertMaterial(foodId, materialDtoList); } - private void insertFoodStep(Long foodId, List foodStepList) { - if (foodStepList.isEmpty()) { + private void insertStep(Long foodId, List stepDtoList) { + if (stepDtoList.isEmpty()) { return; } - foodStepList.forEach((item) -> { + stepDtoList.forEach((item) -> { item.setId(YitIdHelper.nextId()); }); - foodDao.insertFoodStep(foodId, foodStepList); + foodDao.insertStep(foodId, stepDtoList); } @Override - public FoodRecipeDto queryFoodRecipe(Long id) { - if (foodRecipeMapper.selectById(id) == null) { + public RecipeDto queryRecipe(Long id) { + if (recipeMapper.selectById(id) == null) { throw new CustomException("该美食不存在"); } - return foodDao.queryFoodRecipe(id); + return foodDao.queryRecipe(id); } @Override - public List queryFoodSummary(FoodQueryVo foodQueryVo) { - return foodDao.queryFoodSummary(foodQueryVo); + public List querySummary(FoodQueryVo foodQueryVo) { + return foodDao.querySummary(foodQueryVo); } @Override - public IPage queryFoodSummaryByPage(Integer currentPage, Integer pageSize, FoodQueryVo foodQueryVo) { + public IPage querySummaryByPage(Integer currentPage, Integer pageSize, FoodQueryVo foodQueryVo) { // 这里只能先对主表进行分页 然后在查询子表信息 // 不能使用Left Join关联表查询,因为这里是一对多数据,关联查询会导致数据有重复 // 从而导致page计算错误(会把重复的数据当成多条记录,实际上只有1条记录) - IPage foodSummaryPage = foodDao.queryFoodSummaryByPage(new Page<>(currentPage, pageSize), foodQueryVo); - List foodSummaryList = foodSummaryPage.getRecords(); - for (FoodSummaryDto foodSummary : foodSummaryList) { - foodSummary.setRecordList(foodDao.queryFoodRecordById(foodSummary.getId())); + IPage summaryPage = foodDao.querySummaryByPage(new Page<>(currentPage, pageSize), foodQueryVo); + List summaryList = summaryPage.getRecords(); + for (SummaryDto foodSummary : summaryList) { + foodSummary.setRecordList(foodDao.queryRecordById(foodSummary.getId())); } - foodSummaryPage.setRecords(foodSummaryList); - return foodSummaryPage; + summaryPage.setRecords(summaryList); + return summaryPage; } @Override - public List queryFoodRecord(String startDate, String endDate) { - return foodDao.queryFoodRecord(startDate, endDate); + public List queryRecord(String startDate, String endDate) { + return foodDao.queryRecord(startDate, endDate); } @Override public List queryFoodName() { - return foodRecipeMapper.selectList(null) - .stream().map(FoodRecipe::getName).collect(Collectors.toList()); + return recipeMapper.selectList(null) + .stream().map(Recipe::getName).collect(Collectors.toList()); } @Override - public List queryFoodCategory() { - return foodDao.queryFoodCategory(); + public List queryCategory() { + return foodDao.queryCategory(); } @Override - public FoodStatsDto queryFoodStats() { - return foodDao.queryFoodStats(); + public StatsDto queryStats() { + return foodDao.queryStats(); } @Override - public List queryFoodRecordStats() { - return foodDao.queryFoodRecordStats(); + public List queryRecordStats() { + return foodDao.queryRecordStats(); } @Override - public List queryFoodCategoryStats() { - return foodDao.queryFoodCategoryStats(); + public List queryCategoryStats() { + return foodDao.queryCategoryStats(); } @Override - public List queryFoodRankStats() { - return foodDao.queryFoodRankStats(); + public List queryRankStats() { + return foodDao.queryRankStats(); } } diff --git a/src/main/java/com/cxx/food/service/impl/MomentServiceImpl.java b/src/main/java/com/cxx/food/service/impl/MomentServiceImpl.java new file mode 100644 index 0000000..0718ae4 --- /dev/null +++ b/src/main/java/com/cxx/food/service/impl/MomentServiceImpl.java @@ -0,0 +1,53 @@ +package com.cxx.food.service.impl; + +import com.cxx.food.dao.MomentDao; +import com.cxx.food.dto.CommentDto; +import com.cxx.food.dto.MomentDto; +import com.cxx.food.entity.Comment; +import com.cxx.food.entity.Moment; +import com.cxx.food.mapper.CommentMapper; +import com.cxx.food.mapper.MomentMapper; +import com.cxx.food.service.MomentService; +import com.cxx.framework.web.CustomException; +import jakarta.annotation.Resource; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class MomentServiceImpl implements MomentService { + @Resource + private MomentDao momentDao; + + @Resource + private MomentMapper momentMapper; + + @Resource + private CommentMapper commentMapper; + + @Override + public Boolean addMoment(MomentDto momentDto) { + Moment moment = new Moment(); + BeanUtils.copyProperties(momentDto, moment); + return momentMapper.insert(moment) == 1; + } + + @Override + public List queryMoment() { + // TODO 只能查询好友的朋友圈 + return momentDao.queryMoment(); + } + + @Override + public Boolean addComment(Long momentId, CommentDto commentDto) { + if (momentMapper.selectById(momentId) == null) { + throw new CustomException("该朋友圈不存在"); + } + + Comment comment = new Comment(); + BeanUtils.copyProperties(commentDto, comment); + comment.setMomentId(momentId); + return commentMapper.insert(comment) == 1; + } +} diff --git a/src/main/java/com/cxx/food/service/impl/SessionServiceImpl.java b/src/main/java/com/cxx/food/service/impl/SessionServiceImpl.java index 132d4c7..b74c020 100644 --- a/src/main/java/com/cxx/food/service/impl/SessionServiceImpl.java +++ b/src/main/java/com/cxx/food/service/impl/SessionServiceImpl.java @@ -19,7 +19,7 @@ public class SessionServiceImpl implements SessionService { @Override public SessionDto create(String name, String password) { SessionDto sessionDto = new SessionDto(); - StpUtil.login(name); + StpUtil.login(645808454946885L); sessionDto.setSaToken(StpUtil.getTokenInfo()); return sessionDto; diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 9c560d5..cc9b1df 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -6,7 +6,7 @@ spring: name: @project.artifactId@ version: @project.version@ profiles: - active: dev + active: prod # mybatis plus mapper路径 mybatis-plus: diff --git a/src/main/resources/mapper/FoodMapper.xml b/src/main/resources/mapper/FoodMapper.xml index 039d8d8..e614206 100644 --- a/src/main/resources/mapper/FoodMapper.xml +++ b/src/main/resources/mapper/FoodMapper.xml @@ -1,50 +1,50 @@ - + - - - - + - + - + - + - + @@ -57,7 +57,7 @@ type AS type, name AS name, amount AS amount - FROM food_material + FROM material WHERE food_id = #{id} @@ -66,51 +66,51 @@ sort AS sort, content AS content, image_url AS imageUrl - FROM food_step + FROM step WHERE food_id = #{id} ORDER BY sort - SELECT id AS id, person AS person, date AS date, image_url AS imageUrl - FROM food_record + FROM record WHERE food_id = #{id} ORDER BY date DESC - SELECT a.id AS id, b.name AS name, b.category AS category, a.person AS person, a.date AS date, a.image_url AS imageUrl - FROM food_record AS a - LEFT JOIN food_recipe AS b ON a.food_id = b.id + FROM record AS a + LEFT JOIN recipe AS b ON a.food_id = b.id WHERE a.date =]]> STR_TO_DATE(#{startDate}, '%Y-%m-%d') AND a.date STR_TO_DATE(#{endDate}, '%Y-%m-%d') ORDER BY date DESC - SELECT a.id AS id, a.name AS name, a.category AS category, a.recommend_rate AS recommendRate, a.remark AS remake - FROM food_recipe a + FROM recipe a WHERE a.id = #{id} - SELECT a.id AS id, a.name AS name, a.category AS category, a.recommend_rate AS recommendRate - FROM food_recipe a + FROM recipe a a.category = #{query.category} @@ -118,7 +118,7 @@ - SELECT a.id AS id, a.name AS name, a.category AS category, @@ -126,8 +126,8 @@ b.person AS person, b.date AS recordDate, b.image_url AS workImageUrl - FROM food_recipe a - LEFT JOIN food_record b ON a.id = b.food_id + FROM recipe a + LEFT JOIN record b ON a.id = b.food_id a.category = #{query.category} @@ -135,54 +135,54 @@ - SELECT COUNT(DISTINCT a.name) AS recipeCount, COUNT(DISTINCT a.category) AS categoryCount, COUNT(b.id) AS workCount - FROM food_recipe a - LEFT JOIN food_record b ON a.id = b.food_id + FROM recipe a + LEFT JOIN record b ON a.id = b.food_id - SELECT DATE_FORMAT(date, '%Y-%m') AS name, COUNT(id) AS value - FROM food_record + FROM record GROUP BY DATE_FORMAT(date, '%Y-%m') ORDER BY name DESC; - SELECT category AS name, COUNT(id) AS value - FROM food_recipe + FROM recipe GROUP BY category ORDER BY value DESC; - SELECT a.name AS name, COUNT(b.id) AS value - FROM food_recipe a + FROM recipe a LEFT JOIN - food_record b ON a.id = b.food_id + record b ON a.id = b.food_id GROUP BY a.id, a.name ORDER BY value DESC; - SELECT DISTINCT a.category AS category - FROM food_recipe a + FROM recipe a - - INSERT INTO food_material (id, food_id, type, name, amount) VALUES + + INSERT INTO material (id, food_id, type, name, amount) VALUES (#{item.id}, #{foodId}, #{item.type}, #{item.name}, #{item.amount}) - - INSERT INTO food_step (id, food_id, sort, content, image_url) VALUES + + INSERT INTO step (id, food_id, sort, content, image_url) VALUES (#{item.id}, #{foodId}, #{item.sort}, #{item.content}, #{item.imageUrl}) diff --git a/src/main/resources/mapper/MomentMapper.xml b/src/main/resources/mapper/MomentMapper.xml new file mode 100644 index 0000000..b3339cc --- /dev/null +++ b/src/main/resources/mapper/MomentMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + +