From af897152039691a062fd4c73aebcb09e64a967ee Mon Sep 17 00:00:00 2001 From: zengtao01 Date: Wed, 3 Apr 2024 16:45:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E5=81=8F=E5=A5=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/enums/ErrorCodeConstants.java | 4 +- .../admin/alloc/AllocController.java | 100 +++++++++++ .../admin/alloc/vo/AllocPageReqVO.java | 33 ++++ .../admin/alloc/vo/AllocRespVO.java | 35 ++++ .../admin/alloc/vo/AllocSaveReqVO.java | 22 +++ .../controller/admin/card/vo/CardRespVO.java | 2 + .../RechargeAmountController.java | 52 +++--- .../StoreComplainController.java | 95 ++++++++++ .../vo/StoreComplainPageReqVO.java | 43 +++++ .../storecomplain/vo/StoreComplainRespVO.java | 52 ++++++ .../vo/StoreComplainSaveReqVO.java | 36 ++++ .../StoreEvaluateController.java | 95 ++++++++++ .../vo/StoreEvaluatePageReqVO.java | 49 +++++ .../storeevaluate/vo/StoreEvaluateRespVO.java | 59 +++++++ .../vo/StoreEvaluateSaveReqVO.java | 40 +++++ .../vo/UserPreferenceSaveReqVO.java | 6 +- .../app/alloc/AppAllocController.java | 90 ++++++++++ .../app/alloc/vo/AppAllocPageReqVO.java | 33 ++++ .../app/alloc/vo/AppAllocRespVO.java | 35 ++++ .../app/alloc/vo/AppAllocSaveReqVO.java | 24 +++ .../app/card/AppCardController.java | 10 ++ .../app/card/vo/AppCardMonthVO.java | 21 +++ .../app/card/vo/AppCardPageReqVO.java | 3 + .../app/order/vo/AppOrderRespVO.java | 10 ++ .../AppStoreComplainController.java | 83 +++++++++ .../vo/AppStoreComplainSaveReqVO.java | 34 ++++ .../AppStoreEvaluateController.java | 95 ++++++++++ .../vo/AppStoreEvaluateSaveReqVO.java | 37 ++++ .../app/user/AppMemberUserController.java | 20 ++- .../app/user/vo/AppNutritionWeekVO.java | 2 +- .../AppUserPreferenceController.java | 43 +++-- .../vo/AppUserPreferenceSaveReqVO.java | 7 +- .../member/dal/dataobject/alloc/AllocDO.java | 47 +++++ .../storecomplain/StoreComplainDO.java | 63 +++++++ .../storeevaluate/StoreEvaluateDO.java | 71 ++++++++ .../member/dal/mysql/alloc/AllocMapper.java | 27 +++ .../member/dal/mysql/card/CardMapper.java | 8 + .../storecomplain/StoreComplainMapper.java | 31 ++++ .../storeevaluate/StoreEvaluateMapper.java | 33 ++++ .../member/service/alloc/AllocService.java | 57 ++++++ .../service/alloc/AllocServiceImpl.java | 78 ++++++++ .../member/service/card/CardService.java | 3 + .../member/service/card/CardServiceImpl.java | 31 ++++ .../service/order/OrderServiceImpl.java | 22 +++ .../storecomplain/StoreComplainService.java | 66 +++++++ .../StoreComplainServiceImpl.java | 81 +++++++++ .../storeevaluate/StoreEvaluateService.java | 61 +++++++ .../StoreEvaluateServiceImpl.java | 104 +++++++++++ .../service/user/MemberUserService.java | 6 +- .../service/user/MemberUserServiceImpl.java | 167 ++++++------------ .../service/userexpand/UserExpandService.java | 3 + .../userexpand/UserExpandServiceImpl.java | 37 ++-- .../userpreference/UserPreferenceService.java | 12 ++ .../UserPreferenceServiceImpl.java | 47 +++-- 54 files changed, 2139 insertions(+), 186 deletions(-) create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/AllocController.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocPageReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocRespVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocSaveReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/StoreComplainController.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainPageReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainRespVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainSaveReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/StoreEvaluateController.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluatePageReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluateRespVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluateSaveReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/AppAllocController.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocPageReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocRespVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocSaveReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardMonthVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storecomplain/AppStoreComplainController.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storecomplain/vo/AppStoreComplainSaveReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeevaluate/AppStoreEvaluateController.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeevaluate/vo/AppStoreEvaluateSaveReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/alloc/AllocDO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storecomplain/StoreComplainDO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storeevaluate/StoreEvaluateDO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/alloc/AllocMapper.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storecomplain/StoreComplainMapper.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeevaluate/StoreEvaluateMapper.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/alloc/AllocService.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/alloc/AllocServiceImpl.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storecomplain/StoreComplainService.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storecomplain/StoreComplainServiceImpl.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateService.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateServiceImpl.java diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java index ceebd261..576ac2b4 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java @@ -63,5 +63,7 @@ public interface ErrorCodeConstants { ErrorCode DINING_PLATES_NOT_EXISTS = new ErrorCode(1_004_013_004, "订单明细不存在"); ErrorCode USER_EXPAND_NOT_EXISTS = new ErrorCode(1_004_013_005, "订单明细不存在"); ErrorCode USER_PREFERENCE_NOT_EXISTS = new ErrorCode(1_004_013_006, "订单明细不存在"); - + ErrorCode ALLOC_NOT_EXISTS = new ErrorCode(1_004_013_007, "订单明细不存在"); + ErrorCode STORE_EVALUATE_NOT_EXISTS = new ErrorCode(1_004_013_008, "订单明细不存在"); + ErrorCode STORE_COMPLAIN_NOT_EXISTS = new ErrorCode(1_004_013_009, "订单明细不存在"); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/AllocController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/AllocController.java new file mode 100644 index 00000000..226741ab --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/AllocController.java @@ -0,0 +1,100 @@ +package cn.iocoder.yudao.module.member.controller.admin.alloc; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.member.controller.admin.alloc.vo.AllocPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.alloc.vo.AllocRespVO; +import cn.iocoder.yudao.module.member.controller.admin.alloc.vo.AllocSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.alloc.AllocDO; +import cn.iocoder.yudao.module.member.service.alloc.AllocService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 配置") +@RestController +@RequestMapping("/member/alloc") +@Validated +public class AllocController { + + @Resource + private AllocService allocService; + + @PostMapping("/create") + @Operation(summary = "创建配置") + @PreAuthorize("@ss.hasPermission('member:alloc:create')") + public CommonResult createAlloc(@Valid @RequestBody AllocSaveReqVO createReqVO) { + return success(allocService.createAlloc(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新配置") + @PreAuthorize("@ss.hasPermission('member:alloc:update')") + public CommonResult updateAlloc(@Valid @RequestBody AllocSaveReqVO updateReqVO) { + allocService.updateAlloc(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除配置") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('member:alloc:delete')") + public CommonResult deleteAlloc(@RequestParam("id") Long id) { + allocService.deleteAlloc(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('member:alloc:query')") + public CommonResult getAlloc(@RequestParam("id") Long id) { + AllocDO alloc = allocService.getAlloc(id); + return success(BeanUtils.toBean(alloc, AllocRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得配置分页") + @PreAuthorize("@ss.hasPermission('member:alloc:query')") + public CommonResult> getAllocPage(@Valid AllocPageReqVO pageReqVO) { + PageResult pageResult = allocService.getAllocPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, AllocRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出配置 Excel") + @PreAuthorize("@ss.hasPermission('member:alloc:export')") + @OperateLog(type = EXPORT) + public void exportAllocExcel(@Valid AllocPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = allocService.getAllocPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "配置.xls", "数据", AllocRespVO.class, + BeanUtils.toBean(list, AllocRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocPageReqVO.java new file mode 100644 index 00000000..fb5f29c7 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocPageReqVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.member.controller.admin.alloc.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 配置分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AllocPageReqVO extends PageParam { + + @Schema(description = "所属模块") + private String moudle; + + @Schema(description = "配置名", example = "张三") + private String allocName; + + @Schema(description = "配置值") + private String allocValue; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocRespVO.java new file mode 100644 index 00000000..e6cc9328 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocRespVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.member.controller.admin.alloc.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 配置 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AllocRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31174") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "所属模块") + @ExcelProperty("所属模块") + private String moudle; + + @Schema(description = "配置名", example = "张三") + @ExcelProperty("配置名") + private String allocName; + + @Schema(description = "配置值") + @ExcelProperty("配置值") + private String allocValue; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocSaveReqVO.java new file mode 100644 index 00000000..d9401986 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/alloc/vo/AllocSaveReqVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.member.controller.admin.alloc.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 配置新增/修改 Request VO") +@Data +public class AllocSaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31174") + private Long id; + + @Schema(description = "所属模块") + private String moudle; + + @Schema(description = "配置名", example = "张三") + private String allocName; + + @Schema(description = "配置值") + private String allocValue; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/card/vo/CardRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/card/vo/CardRespVO.java index ae9770fd..9b46d609 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/card/vo/CardRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/card/vo/CardRespVO.java @@ -37,4 +37,6 @@ public class CardRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "消费类型") + private String type; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/rechargeamount/RechargeAmountController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/rechargeamount/RechargeAmountController.java index 4c653c59..5a7e4c5d 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/rechargeamount/RechargeAmountController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/rechargeamount/RechargeAmountController.java @@ -1,33 +1,38 @@ package cn.iocoder.yudao.module.member.controller.admin.rechargeamount; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; - import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; -import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; - -import cn.iocoder.yudao.module.member.controller.admin.rechargeamount.vo.*; +import cn.iocoder.yudao.module.member.controller.admin.rechargeamount.vo.RechargeAmountPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.rechargeamount.vo.RechargeAmountRespVO; +import cn.iocoder.yudao.module.member.controller.admin.rechargeamount.vo.RechargeAmountSaveReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.rechargeamount.RechargeAmountDO; import cn.iocoder.yudao.module.member.service.rechargeamount.RechargeAmountService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 充值金额配置") @RestController @@ -40,14 +45,12 @@ public class RechargeAmountController { @PostMapping("/create") @Operation(summary = "创建充值金额配置") - @PreAuthorize("@ss.hasPermission('member:recharge-amount:create')") public CommonResult createRechargeAmount(@Valid @RequestBody RechargeAmountSaveReqVO createReqVO) { return success(rechargeAmountService.createRechargeAmount(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新充值金额配置") - @PreAuthorize("@ss.hasPermission('member:recharge-amount:update')") public CommonResult updateRechargeAmount(@Valid @RequestBody RechargeAmountSaveReqVO updateReqVO) { rechargeAmountService.updateRechargeAmount(updateReqVO); return success(true); @@ -56,7 +59,6 @@ public class RechargeAmountController { @DeleteMapping("/delete") @Operation(summary = "删除充值金额配置") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('member:recharge-amount:delete')") public CommonResult deleteRechargeAmount(@RequestParam("id") Long id) { rechargeAmountService.deleteRechargeAmount(id); return success(true); @@ -65,7 +67,6 @@ public class RechargeAmountController { @GetMapping("/get") @Operation(summary = "获得充值金额配置") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('member:recharge-amount:query')") public CommonResult getRechargeAmount(@RequestParam("id") Long id) { RechargeAmountDO rechargeAmount = rechargeAmountService.getRechargeAmount(id); return success(BeanUtils.toBean(rechargeAmount, RechargeAmountRespVO.class)); @@ -73,7 +74,6 @@ public class RechargeAmountController { @GetMapping("/page") @Operation(summary = "获得充值金额配置分页") - @PreAuthorize("@ss.hasPermission('member:recharge-amount:query')") public CommonResult> getRechargeAmountPage(@Valid RechargeAmountPageReqVO pageReqVO) { PageResult pageResult = rechargeAmountService.getRechargeAmountPage(pageReqVO); return success(BeanUtils.toBean(pageResult, RechargeAmountRespVO.class)); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/StoreComplainController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/StoreComplainController.java new file mode 100644 index 00000000..238792ef --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/StoreComplainController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.member.controller.admin.storecomplain; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.member.controller.admin.storecomplain.vo.*; +import cn.iocoder.yudao.module.member.dal.dataobject.storecomplain.StoreComplainDO; +import cn.iocoder.yudao.module.member.service.storecomplain.StoreComplainService; + +@Tag(name = "管理后台 - 投诉") +@RestController +@RequestMapping("/member/store-complain") +@Validated +public class StoreComplainController { + + @Resource + private StoreComplainService storeComplainService; + + @PostMapping("/create") + @Operation(summary = "创建投诉") + @PreAuthorize("@ss.hasPermission('member:store-complain:create')") + public CommonResult createStoreComplain(@Valid @RequestBody StoreComplainSaveReqVO createReqVO) { + return success(storeComplainService.createStoreComplain(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新投诉") + @PreAuthorize("@ss.hasPermission('member:store-complain:update')") + public CommonResult updateStoreComplain(@Valid @RequestBody StoreComplainSaveReqVO updateReqVO) { + storeComplainService.updateStoreComplain(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除投诉") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('member:store-complain:delete')") + public CommonResult deleteStoreComplain(@RequestParam("id") Long id) { + storeComplainService.deleteStoreComplain(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得投诉") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('member:store-complain:query')") + public CommonResult getStoreComplain(@RequestParam("id") Long id) { + StoreComplainDO storeComplain = storeComplainService.getStoreComplain(id); + return success(BeanUtils.toBean(storeComplain, StoreComplainRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得投诉分页") + @PreAuthorize("@ss.hasPermission('member:store-complain:query')") + public CommonResult> getStoreComplainPage(@Valid StoreComplainPageReqVO pageReqVO) { + PageResult pageResult = storeComplainService.getStoreComplainPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, StoreComplainRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出投诉 Excel") + @PreAuthorize("@ss.hasPermission('member:store-complain:export')") + @OperateLog(type = EXPORT) + public void exportStoreComplainExcel(@Valid StoreComplainPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = storeComplainService.getStoreComplainPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "投诉.xls", "数据", StoreComplainRespVO.class, + BeanUtils.toBean(list, StoreComplainRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainPageReqVO.java new file mode 100644 index 00000000..deaec6e1 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainPageReqVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.member.controller.admin.storecomplain.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 投诉分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class StoreComplainPageReqVO extends PageParam { + + @Schema(description = "用户ID", example = "14476") + private Long userId; + + @Schema(description = "门店Id", example = "18179") + private Long storeId; + + @Schema(description = "门店名", example = "芋艿") + private String storeName; + + @Schema(description = "主题") + private String topic; + + @Schema(description = "描述") + private String describe; + + @Schema(description = "上传照片", example = "https://www.iocoder.cn") + private String url; + + @Schema(description = "电话") + private String phone; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainRespVO.java new file mode 100644 index 00000000..b54bc42e --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainRespVO.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.member.controller.admin.storecomplain.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 投诉 Response VO") +@Data +@ExcelIgnoreUnannotated +public class StoreComplainRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21372") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "用户ID", example = "14476") + @ExcelProperty("用户ID") + private Long userId; + + @Schema(description = "门店Id", example = "18179") + @ExcelProperty("门店Id") + private Long storeId; + + @Schema(description = "门店名", example = "芋艿") + @ExcelProperty("门店名") + private String storeName; + + @Schema(description = "主题") + @ExcelProperty("主题") + private String topic; + + @Schema(description = "描述") + @ExcelProperty("描述") + private String describe; + + @Schema(description = "上传照片", example = "https://www.iocoder.cn") + @ExcelProperty("上传照片") + private String url; + + @Schema(description = "电话") + @ExcelProperty("电话") + private String phone; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainSaveReqVO.java new file mode 100644 index 00000000..1aa8f74b --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storecomplain/vo/StoreComplainSaveReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.member.controller.admin.storecomplain.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 投诉新增/修改 Request VO") +@Data +public class StoreComplainSaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21372") + private Long id; + + @Schema(description = "用户ID", example = "14476") + private Long userId; + + @Schema(description = "门店Id", example = "18179") + private Long storeId; + + @Schema(description = "门店名", example = "芋艿") + private String storeName; + + @Schema(description = "主题") + private String topic; + + @Schema(description = "描述") + private String describe; + + @Schema(description = "上传照片", example = "https://www.iocoder.cn") + private String url; + + @Schema(description = "电话") + private String phone; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/StoreEvaluateController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/StoreEvaluateController.java new file mode 100644 index 00000000..54da3ec1 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/StoreEvaluateController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.member.controller.admin.storeevaluate; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.member.controller.admin.storeevaluate.vo.*; +import cn.iocoder.yudao.module.member.dal.dataobject.storeevaluate.StoreEvaluateDO; +import cn.iocoder.yudao.module.member.service.storeevaluate.StoreEvaluateService; + +@Tag(name = "管理后台 - 店铺评价") +@RestController +@RequestMapping("/member/store-evaluate") +@Validated +public class StoreEvaluateController { + + @Resource + private StoreEvaluateService storeEvaluateService; + + @PostMapping("/create") + @Operation(summary = "创建店铺评价") + @PreAuthorize("@ss.hasPermission('member:store-evaluate:create')") + public CommonResult createStoreEvaluate(@Valid @RequestBody StoreEvaluateSaveReqVO createReqVO) { + return success(storeEvaluateService.createStoreEvaluate(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新店铺评价") + @PreAuthorize("@ss.hasPermission('member:store-evaluate:update')") + public CommonResult updateStoreEvaluate(@Valid @RequestBody StoreEvaluateSaveReqVO updateReqVO) { + storeEvaluateService.updateStoreEvaluate(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除店铺评价") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('member:store-evaluate:delete')") + public CommonResult deleteStoreEvaluate(@RequestParam("id") Long id) { + storeEvaluateService.deleteStoreEvaluate(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得店铺评价") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('member:store-evaluate:query')") + public CommonResult getStoreEvaluate(@RequestParam("id") Long id) { + StoreEvaluateDO storeEvaluate = storeEvaluateService.getStoreEvaluate(id); + return success(BeanUtils.toBean(storeEvaluate, StoreEvaluateRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得店铺评价分页") + @PreAuthorize("@ss.hasPermission('member:store-evaluate:query')") + public CommonResult> getStoreEvaluatePage(@Valid StoreEvaluatePageReqVO pageReqVO) { + PageResult pageResult = storeEvaluateService.getStoreEvaluatePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, StoreEvaluateRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出店铺评价 Excel") + @PreAuthorize("@ss.hasPermission('member:store-evaluate:export')") + @OperateLog(type = EXPORT) + public void exportStoreEvaluateExcel(@Valid StoreEvaluatePageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = storeEvaluateService.getStoreEvaluatePage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "店铺评价.xls", "数据", StoreEvaluateRespVO.class, + BeanUtils.toBean(list, StoreEvaluateRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluatePageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluatePageReqVO.java new file mode 100644 index 00000000..95edb161 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluatePageReqVO.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.member.controller.admin.storeevaluate.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 店铺评价分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class StoreEvaluatePageReqVO extends PageParam { + + @Schema(description = "用户ID", example = "15939") + private Long userId; + + @Schema(description = "门店Id", example = "5445") + private Long storeId; + + @Schema(description = "门店名", example = "赵六") + private String storeName; + + @Schema(description = "评价") + private String evaluate; + + @Schema(description = "菜品评价") + private String dishEvaluate; + + @Schema(description = "服务评价") + private String serEvaluate; + + @Schema(description = "环境评价") + private String envEvaluate; + + @Schema(description = "文字评价", example = "随便") + private String remark; + + @Schema(description = "上传照片", example = "https://www.iocoder.cn") + private String url; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluateRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluateRespVO.java new file mode 100644 index 00000000..cdeb97fe --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluateRespVO.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.member.controller.admin.storeevaluate.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 店铺评价 Response VO") +@Data +@ExcelIgnoreUnannotated +public class StoreEvaluateRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "30065") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "用户ID", example = "15939") + @ExcelProperty("用户ID") + private Long userId; + + @Schema(description = "门店Id", example = "5445") + @ExcelProperty("门店Id") + private Long storeId; + + @Schema(description = "门店名", example = "赵六") + @ExcelProperty("门店名") + private String storeName; + + @Schema(description = "评价") + @ExcelProperty("评价") + private String evaluate; + + @Schema(description = "菜品评价") + @ExcelProperty("菜品评价") + private String dishEvaluate; + + @Schema(description = "服务评价") + @ExcelProperty("服务评价") + private String serEvaluate; + + @Schema(description = "环境评价") + @ExcelProperty("环境评价") + private String envEvaluate; + + @Schema(description = "文字评价", example = "随便") + @ExcelProperty("文字评价") + private String remark; + + @Schema(description = "上传照片", example = "https://www.iocoder.cn") + @ExcelProperty("上传照片") + private String url; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluateSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluateSaveReqVO.java new file mode 100644 index 00000000..64a5c9a7 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeevaluate/vo/StoreEvaluateSaveReqVO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.member.controller.admin.storeevaluate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 店铺评价新增/修改 Request VO") +@Data +public class StoreEvaluateSaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "30065") + private Long id; + + @Schema(description = "用户ID", example = "15939") + private Long userId; + + @Schema(description = "门店Id", example = "5445") + private Long storeId; + + @Schema(description = "门店名", example = "赵六") + private String storeName; + + @Schema(description = "评价") + private String evaluate; + + @Schema(description = "菜品评价") + private String dishEvaluate; + + @Schema(description = "服务评价") + private String serEvaluate; + + @Schema(description = "环境评价") + private String envEvaluate; + + @Schema(description = "文字评价", example = "随便") + private String remark; + + @Schema(description = "上传照片", example = "https://www.iocoder.cn") + private String url; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/userpreference/vo/UserPreferenceSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/userpreference/vo/UserPreferenceSaveReqVO.java index 1cd55e7a..2858c633 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/userpreference/vo/UserPreferenceSaveReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/userpreference/vo/UserPreferenceSaveReqVO.java @@ -1,9 +1,7 @@ package cn.iocoder.yudao.module.member.controller.admin.userpreference.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; +import lombok.Data; @Schema(description = "管理后台 - 用户偏好新增/修改 Request VO") @Data @@ -24,7 +22,7 @@ public class UserPreferenceSaveReqVO { @Schema(description = "健康状态") private String health; - @Schema(description = "食物类型", example = "1") + @Schema(description = "食物类型") private String foodType; @Schema(description = "过敏食物") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/AppAllocController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/AppAllocController.java new file mode 100644 index 00000000..069251e5 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/AppAllocController.java @@ -0,0 +1,90 @@ +package cn.iocoder.yudao.module.member.controller.app.alloc; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.member.controller.app.alloc.vo.AppAllocRespVO; +import cn.iocoder.yudao.module.member.dal.dataobject.alloc.AllocDO; +import cn.iocoder.yudao.module.member.service.alloc.AllocService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 配置") +@RestController +@RequestMapping("/member/alloc") +@Validated +public class AppAllocController { + + @Resource + private AllocService allocService; + + //@PostMapping("/create") + //@Operation(summary = "创建配置") + //@PreAuthorize("@ss.hasPermission('member:alloc:create')") + //public CommonResult createAlloc(@Valid @RequestBody AllocSaveReqVO createReqVO) { + // return success(allocService.createAlloc(createReqVO)); + //} + // + //@PutMapping("/update") + //@Operation(summary = "更新配置") + //@PreAuthorize("@ss.hasPermission('member:alloc:update')") + //public CommonResult updateAlloc(@Valid @RequestBody AllocSaveReqVO updateReqVO) { + // allocService.updateAlloc(updateReqVO); + // return success(true); + //} + // + //@DeleteMapping("/delete") + //@Operation(summary = "删除配置") + //@Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('member:alloc:delete')") + //public CommonResult deleteAlloc(@RequestParam("id") Long id) { + // allocService.deleteAlloc(id); + // return success(true); + //} + // + //@GetMapping("/get") + //@Operation(summary = "获得配置") + //@Parameter(name = "id", description = "编号", required = true, example = "1024") + //@PreAuthorize("@ss.hasPermission('member:alloc:query')") + //public CommonResult getAlloc(@RequestParam("id") Long id) { + // AllocDO alloc = allocService.getAlloc(id); + // return success(BeanUtils.toBean(alloc, AllocRespVO.class)); + //} + // + //@GetMapping("/page") + //@Operation(summary = "获得配置分页") + //@PreAuthorize("@ss.hasPermission('member:alloc:query')") + //public CommonResult> getAllocPage(@Valid AllocPageReqVO pageReqVO) { + // PageResult pageResult = allocService.getAllocPage(pageReqVO); + // return success(BeanUtils.toBean(pageResult, AllocRespVO.class)); + //} + // + //@GetMapping("/export-excel") + //@Operation(summary = "导出配置 Excel") + //@PreAuthorize("@ss.hasPermission('member:alloc:export')") + //@OperateLog(type = EXPORT) + //public void exportAllocExcel(@Valid AllocPageReqVO pageReqVO, + // HttpServletResponse response) throws IOException { + // pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + // List list = allocService.getAllocPage(pageReqVO).getList(); + // // 导出 Excel + // ExcelUtils.write(response, "配置.xls", "数据", AllocRespVO.class, + // BeanUtils.toBean(list, AllocRespVO.class)); + //} + + @GetMapping("/list") + @Operation(summary = "联系我们配置列表") + public CommonResult> getAllocList() { + List allocList = allocService.getAllocList(); + return success(BeanUtils.toBean(allocList, AppAllocRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocPageReqVO.java new file mode 100644 index 00000000..6081348f --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocPageReqVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.member.controller.app.alloc.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 配置分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AppAllocPageReqVO extends PageParam { + + @Schema(description = "所属模块") + private String moudle; + + @Schema(description = "配置名", example = "张三") + private String allocName; + + @Schema(description = "配置值") + private String allocValue; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocRespVO.java new file mode 100644 index 00000000..0cc21f6b --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocRespVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.member.controller.app.alloc.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 配置 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AppAllocRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31174") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "所属模块") + @ExcelProperty("所属模块") + private Long moudle; + + @Schema(description = "配置名", example = "张三") + @ExcelProperty("配置名") + private Long allocName; + + @Schema(description = "配置值") + @ExcelProperty("配置值") + private String allocValue; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocSaveReqVO.java new file mode 100644 index 00000000..fb52e132 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/alloc/vo/AppAllocSaveReqVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.member.controller.app.alloc.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 配置新增/修改 Request VO") +@Data +public class AppAllocSaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31174") + private Long id; + + @Schema(description = "所属模块") + private Long moudle; + + @Schema(description = "配置名", example = "张三") + private Long allocName; + + @Schema(description = "配置值") + private String allocValue; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/AppCardController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/AppCardController.java index 5f802728..2971fb45 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/AppCardController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/AppCardController.java @@ -4,10 +4,12 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.member.controller.admin.card.vo.CardRespVO; +import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardMonthVO; import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardPageReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO; import cn.iocoder.yudao.module.member.service.card.CardService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; @@ -97,4 +99,12 @@ public class AppCardController { return success(cardService.getMoney()); } + @GetMapping("/month") + @Operation(summary = "获取本月支出或充值金额") + @Parameter(name = "flag", description = "0-支出,1-充值", required = true, example = "1") + public CommonResult getMonthMoney(Long userId, String flag, String time) { + return success(cardService.getMonthMoney(userId,flag,time)); + } + + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardMonthVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardMonthVO.java new file mode 100644 index 00000000..8797ddd5 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardMonthVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.member.controller.app.card.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Schema(description = "用户 APP - 余额变动明细 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AppCardMonthVO { + + + @Schema(description = "钱") + private BigDecimal money; + + @Schema(description = "笔数") + private Integer count; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardPageReqVO.java index a076c5e7..4568974b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardPageReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardPageReqVO.java @@ -30,6 +30,9 @@ public class AppCardPageReqVO extends PageParam { @Schema(description = "变动金额") private BigDecimal changeMoney; + @Schema(description = "消费类型") + private String type; + @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/order/vo/AppOrderRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/order/vo/AppOrderRespVO.java index 2ccd4c6f..3e6051e7 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/order/vo/AppOrderRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/order/vo/AppOrderRespVO.java @@ -45,4 +45,14 @@ public class AppOrderRespVO { @Schema(description = "菜品") private List detailList; + @Schema(description = "推荐摄入量") + private Double proposeIntake; + + @Schema(description = "摄入量") + private Double intake; + + @Schema(description = "差值") + private Double difference; + + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storecomplain/AppStoreComplainController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storecomplain/AppStoreComplainController.java new file mode 100644 index 00000000..0358d246 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storecomplain/AppStoreComplainController.java @@ -0,0 +1,83 @@ +package cn.iocoder.yudao.module.member.controller.app.storecomplain; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.member.controller.app.storecomplain.vo.AppStoreComplainSaveReqVO; +import cn.iocoder.yudao.module.member.service.storecomplain.StoreComplainService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 投诉") +@RestController +@RequestMapping("/member/store-complain") +@Validated +public class AppStoreComplainController { + + @Resource + private StoreComplainService storeComplainService; + + @PostMapping("/create") + @Operation(summary = "创建投诉") + @PreAuthorize("@ss.hasPermission('member:store-complain:create')") + public CommonResult createStoreComplain(@Valid @RequestBody AppStoreComplainSaveReqVO createReqVO) { + return success(storeComplainService.createStoreComplainApp(createReqVO)); + } + + //@PutMapping("/update") + //@Operation(summary = "更新投诉") + //@PreAuthorize("@ss.hasPermission('member:store-complain:update')") + //public CommonResult updateStoreComplain(@Valid @RequestBody StoreComplainSaveReqVO updateReqVO) { + // storeComplainService.updateStoreComplain(updateReqVO); + // return success(true); + //} + // + //@DeleteMapping("/delete") + //@Operation(summary = "删除投诉") + //@Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('member:store-complain:delete')") + //public CommonResult deleteStoreComplain(@RequestParam("id") Long id) { + // storeComplainService.deleteStoreComplain(id); + // return success(true); + //} + // + //@GetMapping("/get") + //@Operation(summary = "获得投诉") + //@Parameter(name = "id", description = "编号", required = true, example = "1024") + //@PreAuthorize("@ss.hasPermission('member:store-complain:query')") + //public CommonResult getStoreComplain(@RequestParam("id") Long id) { + // StoreComplainDO storeComplain = storeComplainService.getStoreComplain(id); + // return success(BeanUtils.toBean(storeComplain, StoreComplainRespVO.class)); + //} + // + //@GetMapping("/page") + //@Operation(summary = "获得投诉分页") + //@PreAuthorize("@ss.hasPermission('member:store-complain:query')") + //public CommonResult> getStoreComplainPage(@Valid StoreComplainPageReqVO pageReqVO) { + // PageResult pageResult = storeComplainService.getStoreComplainPage(pageReqVO); + // return success(BeanUtils.toBean(pageResult, StoreComplainRespVO.class)); + //} + // + //@GetMapping("/export-excel") + //@Operation(summary = "导出投诉 Excel") + //@PreAuthorize("@ss.hasPermission('member:store-complain:export')") + //@OperateLog(type = EXPORT) + //public void exportStoreComplainExcel(@Valid StoreComplainPageReqVO pageReqVO, + // HttpServletResponse response) throws IOException { + // pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + // List list = storeComplainService.getStoreComplainPage(pageReqVO).getList(); + // // 导出 Excel + // ExcelUtils.write(response, "投诉.xls", "数据", StoreComplainRespVO.class, + // BeanUtils.toBean(list, StoreComplainRespVO.class)); + //} + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storecomplain/vo/AppStoreComplainSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storecomplain/vo/AppStoreComplainSaveReqVO.java new file mode 100644 index 00000000..7843c46e --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storecomplain/vo/AppStoreComplainSaveReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.member.controller.app.storecomplain.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 投诉新增/修改 Request VO") +@Data +public class AppStoreComplainSaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21372") + private Long id; + + @Schema(description = "用户ID", example = "14476") + private Long userId; + + @Schema(description = "门店Id", example = "18179") + private Long storeId; + + @Schema(description = "门店名", example = "芋艿") + private String storeName; + + @Schema(description = "主题") + private String topic; + + @Schema(description = "描述") + private String describe; + + @Schema(description = "上传照片") + private String url; + + @Schema(description = "电话") + private String phone; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeevaluate/AppStoreEvaluateController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeevaluate/AppStoreEvaluateController.java new file mode 100644 index 00000000..ec3012a1 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeevaluate/AppStoreEvaluateController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.member.controller.app.storeevaluate; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.member.controller.app.storeevaluate.vo.AppStoreEvaluateSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.storeevaluate.StoreEvaluateDO; +import cn.iocoder.yudao.module.member.service.storeevaluate.StoreEvaluateService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 店铺评价") +@RestController +@RequestMapping("/member/store-evaluate") +@Validated +public class AppStoreEvaluateController { + + @Resource + private StoreEvaluateService storeEvaluateService; + // + //@PostMapping("/create") + //@Operation(summary = "创建店铺评价") + //@PreAuthorize("@ss.hasPermission('member:store-evaluate:create')") + //public CommonResult createStoreEvaluate(@Valid @RequestBody StoreEvaluateSaveReqVO createReqVO) { + // return success(storeEvaluateService.createStoreEvaluate(createReqVO)); + //} + // + //@PutMapping("/update") + //@Operation(summary = "更新店铺评价") + //@PreAuthorize("@ss.hasPermission('member:store-evaluate:update')") + //public CommonResult updateStoreEvaluate(@Valid @RequestBody StoreEvaluateSaveReqVO updateReqVO) { + // storeEvaluateService.updateStoreEvaluate(updateReqVO); + // return success(true); + //} + // + //@DeleteMapping("/delete") + //@Operation(summary = "删除店铺评价") + //@Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('member:store-evaluate:delete')") + //public CommonResult deleteStoreEvaluate(@RequestParam("id") Long id) { + // storeEvaluateService.deleteStoreEvaluate(id); + // return success(true); + //} + // + //@GetMapping("/get") + //@Operation(summary = "获得店铺评价") + //@Parameter(name = "id", description = "编号", required = true, example = "1024") + //@PreAuthorize("@ss.hasPermission('member:store-evaluate:query')") + //public CommonResult getStoreEvaluate(@RequestParam("id") Long id) { + // StoreEvaluateDO storeEvaluate = storeEvaluateService.getStoreEvaluate(id); + // return success(BeanUtils.toBean(storeEvaluate, StoreEvaluateRespVO.class)); + //} + // + //@GetMapping("/page") + //@Operation(summary = "获得店铺评价分页") + //@PreAuthorize("@ss.hasPermission('member:store-evaluate:query')") + //public CommonResult> getStoreEvaluatePage(@Valid StoreEvaluatePageReqVO pageReqVO) { + // PageResult pageResult = storeEvaluateService.getStoreEvaluatePage(pageReqVO); + // return success(BeanUtils.toBean(pageResult, StoreEvaluateRespVO.class)); + //} + // + //@GetMapping("/export-excel") + //@Operation(summary = "导出店铺评价 Excel") + //@PreAuthorize("@ss.hasPermission('member:store-evaluate:export')") + //@OperateLog(type = EXPORT) + //public void exportStoreEvaluateExcel(@Valid StoreEvaluatePageReqVO pageReqVO, + // HttpServletResponse response) throws IOException { + // pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + // List list = storeEvaluateService.getStoreEvaluatePage(pageReqVO).getList(); + // // 导出 Excel + // ExcelUtils.write(response, "店铺评价.xls", "数据", StoreEvaluateRespVO.class, + // BeanUtils.toBean(list, StoreEvaluateRespVO.class)); + //} + + @PostMapping("/saveOrUpdate") + @Operation(summary = "创建或更新店铺评价") + public CommonResult saveOrUpdate(@Valid @RequestBody AppStoreEvaluateSaveReqVO createReqVO) { + return success(storeEvaluateService.saveOrUpdate(createReqVO)); + } + + @GetMapping("/get") + @Operation(summary = "创建或更新店铺评价") + public CommonResult saveOrUpdate(Long storeId) { + return success(storeEvaluateService.selectByUserId(storeId)); + } +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeevaluate/vo/AppStoreEvaluateSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeevaluate/vo/AppStoreEvaluateSaveReqVO.java new file mode 100644 index 00000000..dfe7eb36 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeevaluate/vo/AppStoreEvaluateSaveReqVO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.member.controller.app.storeevaluate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 店铺评价新增/修改 Request VO") +@Data +public class AppStoreEvaluateSaveReqVO { + + @Schema(description = "用户ID", example = "15939") + private Long userId; + + @Schema(description = "门店Id", example = "5445") + private Long storeId; + + @Schema(description = "门店名", example = "赵六") + private String storeName; + + @Schema(description = "评价") + private String evaluate; + + @Schema(description = "菜品评价") + private String dishEvaluate; + + @Schema(description = "服务评价") + private String serEvaluate; + + @Schema(description = "环境评价") + private String envEvaluate; + + @Schema(description = "文字评价", example = "随便") + private String remark; + + @Schema(description = "上传照片", example = "https://www.iocoder.cn") + private String url; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.java index 5cff6d8d..a5f35df3 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.java @@ -9,6 +9,8 @@ import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdate import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateMobileReqVO; import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdatePasswordReqVO; import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO; +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppNutritionDayVo; +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppNutritionWeekVO; import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert; import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; @@ -28,6 +30,8 @@ import java.time.LocalDateTime; import java.util.List; import java.util.Map; +import java.util.List; + import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @@ -97,16 +101,24 @@ public class AppMemberUserController { return success(userService.bindCard(vo.getCardId())); } + @GetMapping("/checkCard") + @Operation(summary = "判定有无绑卡") + public CommonResult checkCard(Long userId){ + return success(userService.checkCard(userId)); + } + @GetMapping("/nutritionDay") @Operation(summary = "营养日报") - public CommonResult nutritionDay(String time){ - return success(true); + public CommonResult> nutritionDay(String time){ + List appNutritionDayVos = userService.nutritionDay(time); + return success(appNutritionDayVos); } @GetMapping("/NutritionWeek") @Operation(summary = "营养周报") - public CommonResult NutritionWeek(@Valid @RequestBody AppBindCardVO vo){ - return success(userService.bindCard(vo.getCardId())); + public CommonResult> NutritionWeek(String start, String end){ + List appNutritionWeekVOS = userService.NutritionWeek(start, end); + return success(appNutritionWeekVOS); } @GetMapping("/heat") @Operation(summary = "获得会员热量分析") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppNutritionWeekVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppNutritionWeekVO.java index c47ea01d..a3927ddd 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppNutritionWeekVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppNutritionWeekVO.java @@ -18,7 +18,7 @@ public class AppNutritionWeekVO { private String time; @Schema(description = "摄入量") - private Double intake; + private Double intake = 0D; @Schema(description = "菜品") private List detailList; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/userpreference/AppUserPreferenceController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/userpreference/AppUserPreferenceController.java index 1f98bcee..a1dc384d 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/userpreference/AppUserPreferenceController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/userpreference/AppUserPreferenceController.java @@ -1,18 +1,35 @@ package cn.iocoder.yudao.module.member.controller.app.userpreference; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.member.controller.app.userpreference.vo.AppUserPreferenceRespVO; +import cn.iocoder.yudao.module.member.controller.app.userpreference.vo.AppUserPreferenceSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.userpreference.UserPreferenceDO; +import cn.iocoder.yudao.module.member.service.userpreference.UserPreferenceService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + @Tag(name = "用户 APP - 用户偏好") @RestController @RequestMapping("/member/user-preference") @Validated public class AppUserPreferenceController { - //@Resource - //private UserPreferenceService userPreferenceService; + @Resource + private UserPreferenceService userPreferenceService; // //@PostMapping("/create") //@Operation(summary = "创建用户偏好") @@ -38,14 +55,13 @@ public class AppUserPreferenceController { // return success(true); //} // - //@GetMapping("/get") - //@Operation(summary = "获得用户偏好") - //@Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('member:user-preference:query')") - //public CommonResult getUserPreference(@RequestParam("id") Long id) { - // UserPreferenceDO userPreference = userPreferenceService.getUserPreference(id); - // return success(BeanUtils.toBean(userPreference, UserPreferenceRespVO.class)); - //} + @GetMapping("/get") + @Operation(summary = "获得用户偏好") + @Parameter(name = "userId", description = "用户Id", required = true, example = "1024") + public CommonResult getUserPreference(@RequestParam("userId") Long userId) { + UserPreferenceDO userPreference = userPreferenceService.getUserPreferenceByUserId(userId); + return success(BeanUtils.toBean(userPreference, AppUserPreferenceRespVO.class)); + } // //@GetMapping("/page") //@Operation(summary = "获得用户偏好分页") @@ -67,5 +83,12 @@ public class AppUserPreferenceController { // ExcelUtils.write(response, "用户偏好.xls", "数据", UserPreferenceRespVO.class, // BeanUtils.toBean(list, UserPreferenceRespVO.class)); //} + @PutMapping("/saveOrUpdate") + @Operation(summary = "设置用户偏好") + public CommonResult updateUserPreference(@Valid @RequestBody AppUserPreferenceSaveReqVO updateReqVO) { + return success( userPreferenceService.saveOrUpdate(updateReqVO)); + } + + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/userpreference/vo/AppUserPreferenceSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/userpreference/vo/AppUserPreferenceSaveReqVO.java index f95a5a72..c2c8b087 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/userpreference/vo/AppUserPreferenceSaveReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/userpreference/vo/AppUserPreferenceSaveReqVO.java @@ -1,17 +1,12 @@ package cn.iocoder.yudao.module.member.controller.app.userpreference.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; +import lombok.Data; @Schema(description = "管理后台 - 用户偏好新增/修改 Request VO") @Data public class AppUserPreferenceSaveReqVO { - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "14844") - private Long id; - @Schema(description = "用户ID", example = "11807") private Long userId; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/alloc/AllocDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/alloc/AllocDO.java new file mode 100644 index 00000000..d23527be --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/alloc/AllocDO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.member.dal.dataobject.alloc; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** + * 配置 DO + * + * @author 开发账号 + */ +@TableName("member_alloc") +@KeySequence("member_alloc_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AllocDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 所属模块 + */ + private Long moudle; + /** + * 配置名 + */ + private Long allocName; + /** + * 配置值 + */ + private String allocValue; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storecomplain/StoreComplainDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storecomplain/StoreComplainDO.java new file mode 100644 index 00000000..cbd52794 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storecomplain/StoreComplainDO.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.member.dal.dataobject.storecomplain; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** + * 投诉 DO + * + * @author 开发账号 + */ +@TableName("member_store_complain") +@KeySequence("member_store_complain_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class StoreComplainDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 用户ID + */ + private Long userId; + /** + * 门店Id + */ + private Long storeId; + /** + * 门店名 + */ + private String storeName; + /** + * 主题 + */ + private String topic; + /** + * 描述 + */ + private String describe; + /** + * 上传照片 + */ + private String url; + /** + * 电话 + */ + private String phone; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storeevaluate/StoreEvaluateDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storeevaluate/StoreEvaluateDO.java new file mode 100644 index 00000000..35d474c2 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storeevaluate/StoreEvaluateDO.java @@ -0,0 +1,71 @@ +package cn.iocoder.yudao.module.member.dal.dataobject.storeevaluate; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** + * 店铺评价 DO + * + * @author 开发账号 + */ +@TableName("member_store_evaluate") +@KeySequence("member_store_evaluate_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class StoreEvaluateDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 用户ID + */ + private Long userId; + /** + * 门店Id + */ + private Long storeId; + /** + * 门店名 + */ + private String storeName; + /** + * 评价 + */ + private String evaluate; + /** + * 菜品评价 + */ + private String dishEvaluate; + /** + * 服务评价 + */ + private String serEvaluate; + /** + * 环境评价 + */ + private String envEvaluate; + /** + * 文字评价 + */ + private String remark; + /** + * 上传照片 + */ + private String url; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/alloc/AllocMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/alloc/AllocMapper.java new file mode 100644 index 00000000..8f148ad4 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/alloc/AllocMapper.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.member.dal.mysql.alloc; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.member.controller.admin.alloc.vo.AllocPageReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.alloc.AllocDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 配置 Mapper + * + * @author 开发账号 + */ +@Mapper +public interface AllocMapper extends BaseMapperX { + + default PageResult selectPage(AllocPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(AllocDO::getMoudle, reqVO.getMoudle()) + .likeIfPresent(AllocDO::getAllocName, reqVO.getAllocName()) + .eqIfPresent(AllocDO::getAllocValue, reqVO.getAllocValue()) + .betweenIfPresent(AllocDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(AllocDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/card/CardMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/card/CardMapper.java index b016143e..04d592e0 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/card/CardMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/card/CardMapper.java @@ -4,9 +4,14 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.member.controller.admin.card.vo.CardPageReqVO; +import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardMonthVO; import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardPageReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.time.LocalDateTime; /** * 余额变动明细 Mapper @@ -35,4 +40,7 @@ public interface CardMapper extends BaseMapperX { .betweenIfPresent(CardDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(CardDO::getId)); } + + @Select("select IFNULL(sum(money),0) as money,count(*) as count FROM member_card where user_id = #{userId} and flag = #{flag} and create_time BETWEEN #{startTime} and #{endTime}") + AppCardMonthVO selectMonth(@Param("userId") Long userId,@Param("flag") String flag, @Param("startTime") LocalDateTime startTime, @Param("endTime")LocalDateTime endTime); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storecomplain/StoreComplainMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storecomplain/StoreComplainMapper.java new file mode 100644 index 00000000..72b27e07 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storecomplain/StoreComplainMapper.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.member.dal.mysql.storecomplain; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.member.controller.admin.storecomplain.vo.StoreComplainPageReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.storecomplain.StoreComplainDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 投诉 Mapper + * + * @author 开发账号 + */ +@Mapper +public interface StoreComplainMapper extends BaseMapperX { + + default PageResult selectPage(StoreComplainPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(StoreComplainDO::getUserId, reqVO.getUserId()) + .eqIfPresent(StoreComplainDO::getStoreId, reqVO.getStoreId()) + .likeIfPresent(StoreComplainDO::getStoreName, reqVO.getStoreName()) + .eqIfPresent(StoreComplainDO::getTopic, reqVO.getTopic()) + .eqIfPresent(StoreComplainDO::getDescribe, reqVO.getDescribe()) + .eqIfPresent(StoreComplainDO::getUrl, reqVO.getUrl()) + .eqIfPresent(StoreComplainDO::getPhone, reqVO.getPhone()) + .betweenIfPresent(StoreComplainDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(StoreComplainDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeevaluate/StoreEvaluateMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeevaluate/StoreEvaluateMapper.java new file mode 100644 index 00000000..18d37230 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeevaluate/StoreEvaluateMapper.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.member.dal.mysql.storeevaluate; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.member.controller.admin.storeevaluate.vo.StoreEvaluatePageReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.storeevaluate.StoreEvaluateDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 店铺评价 Mapper + * + * @author 开发账号 + */ +@Mapper +public interface StoreEvaluateMapper extends BaseMapperX { + + default PageResult selectPage(StoreEvaluatePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(StoreEvaluateDO::getUserId, reqVO.getUserId()) + .eqIfPresent(StoreEvaluateDO::getStoreId, reqVO.getStoreId()) + .likeIfPresent(StoreEvaluateDO::getStoreName, reqVO.getStoreName()) + .eqIfPresent(StoreEvaluateDO::getEvaluate, reqVO.getEvaluate()) + .eqIfPresent(StoreEvaluateDO::getDishEvaluate, reqVO.getDishEvaluate()) + .eqIfPresent(StoreEvaluateDO::getSerEvaluate, reqVO.getSerEvaluate()) + .eqIfPresent(StoreEvaluateDO::getEnvEvaluate, reqVO.getEnvEvaluate()) + .eqIfPresent(StoreEvaluateDO::getRemark, reqVO.getRemark()) + .eqIfPresent(StoreEvaluateDO::getUrl, reqVO.getUrl()) + .betweenIfPresent(StoreEvaluateDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(StoreEvaluateDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/alloc/AllocService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/alloc/AllocService.java new file mode 100644 index 00000000..84699b0a --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/alloc/AllocService.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.member.service.alloc; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.member.controller.admin.alloc.vo.AllocPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.alloc.vo.AllocSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.alloc.AllocDO; + +import javax.validation.Valid; +import java.util.List; + +/** + * 配置 Service 接口 + * + * @author 开发账号 + */ +public interface AllocService { + + /** + * 创建配置 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createAlloc(@Valid AllocSaveReqVO createReqVO); + + /** + * 更新配置 + * + * @param updateReqVO 更新信息 + */ + void updateAlloc(@Valid AllocSaveReqVO updateReqVO); + + /** + * 删除配置 + * + * @param id 编号 + */ + void deleteAlloc(Long id); + + /** + * 获得配置 + * + * @param id 编号 + * @return 配置 + */ + AllocDO getAlloc(Long id); + + /** + * 获得配置分页 + * + * @param pageReqVO 分页查询 + * @return 配置分页 + */ + PageResult getAllocPage(AllocPageReqVO pageReqVO); + + List getAllocList(); +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/alloc/AllocServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/alloc/AllocServiceImpl.java new file mode 100644 index 00000000..c35b11ea --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/alloc/AllocServiceImpl.java @@ -0,0 +1,78 @@ +package cn.iocoder.yudao.module.member.service.alloc; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.member.controller.admin.alloc.vo.AllocPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.alloc.vo.AllocSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.alloc.AllocDO; +import cn.iocoder.yudao.module.member.dal.mysql.alloc.AllocMapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.ALLOC_NOT_EXISTS; + +/** + * 配置 Service 实现类 + * + * @author 开发账号 + */ +@Service +@Validated +public class AllocServiceImpl implements AllocService { + + @Resource + private AllocMapper allocMapper; + + @Override + public Long createAlloc(AllocSaveReqVO createReqVO) { + // 插入 + AllocDO alloc = BeanUtils.toBean(createReqVO, AllocDO.class); + allocMapper.insert(alloc); + // 返回 + return alloc.getId(); + } + + @Override + public void updateAlloc(AllocSaveReqVO updateReqVO) { + // 校验存在 + validateAllocExists(updateReqVO.getId()); + // 更新 + AllocDO updateObj = BeanUtils.toBean(updateReqVO, AllocDO.class); + allocMapper.updateById(updateObj); + } + + @Override + public void deleteAlloc(Long id) { + // 校验存在 + validateAllocExists(id); + // 删除 + allocMapper.deleteById(id); + } + + private void validateAllocExists(Long id) { + if (allocMapper.selectById(id) == null) { + throw exception(ALLOC_NOT_EXISTS); + } + } + + @Override + public AllocDO getAlloc(Long id) { + return allocMapper.selectById(id); + } + + @Override + public PageResult getAllocPage(AllocPageReqVO pageReqVO) { + return allocMapper.selectPage(pageReqVO); + } + + @Override + public List getAllocList() { + List allocDOS = allocMapper.selectList(Wrappers.lambdaQuery().eq(AllocDO::getMoudle, "1")); + return allocDOS; + } +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/card/CardService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/card/CardService.java index b1c346f1..ccf0e1bf 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/card/CardService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/card/CardService.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.service.card; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.controller.admin.card.vo.CardPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.card.vo.CardSaveReqVO; +import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardMonthVO; import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardPageReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO; @@ -83,4 +84,6 @@ public interface CardService { */ void insertBatch(List list); + AppCardMonthVO getMonthMoney(Long userId,String flag, String time); + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/card/CardServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/card/CardServiceImpl.java index 525acfdd..4d0f138a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/card/CardServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/card/CardServiceImpl.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.member.controller.admin.card.vo.CardPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.card.vo.CardSaveReqVO; +import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardMonthVO; import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardPageReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO; import cn.iocoder.yudao.module.member.dal.mysql.card.CardMapper; @@ -17,6 +18,11 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.YearMonth; +import java.time.format.DateTimeFormatter; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -138,4 +144,29 @@ public class CardServiceImpl implements CardService { public void insertBatch(List list) { cardMapper.insertBatch(list); } + + @Override + public AppCardMonthVO getMonthMoney(Long userId,String flag, String time) { + + DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); + LocalDate parse = LocalDate.parse(time, dateFormatter); + + // 获取指定日期所在月份的第一天 + LocalDate firstDayOfMonth = parse.withDayOfMonth(1); + + // 获取指定日期所在月份的最后一天 + YearMonth yearMonth = YearMonth.from(parse); + LocalDate lastDayOfMonth = yearMonth.atEndOfMonth(); + + // 获取所在月份的第一天的开始时间 + LocalDateTime firstDayOfMonthStart = firstDayOfMonth.atStartOfDay(); + + // 获取所在月份的最后一天的结束时间 + LocalDateTime lastDayOfMonthEnd = lastDayOfMonth.atTime(LocalTime.MAX); + AppCardMonthVO appCardMonthVO = cardMapper.selectMonth(userId, flag, firstDayOfMonthStart, lastDayOfMonthEnd); + + return appCardMonthVO; + + + } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java index f04c4967..17236612 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java @@ -20,6 +20,7 @@ import cn.iocoder.yudao.module.member.enums.CostTypeEnum; import cn.iocoder.yudao.module.member.enums.TimePeriodEnum; import cn.iocoder.yudao.module.member.service.orderdetail.OrderDetailService; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -51,6 +52,14 @@ public class OrderServiceImpl implements OrderService { private OrderDetailService orderDetailService; @Resource private MemberUserMapper memberUserMapper; + + @Value("${propose.morning}") + private Double proposeMorning; + @Value("${propose.noon}") + private Double proposeNoon; + @Value("${propose.night}") + private Double proposeNight; + @Override public Long createOrder(AppOrderSaveReqVO createReqVO) { // 插入 @@ -96,6 +105,18 @@ public class OrderServiceImpl implements OrderService { AppOrderRespVO appOrderRespVO = BeanUtils.toBean(order, AppOrderRespVO.class); List appOrderDetailRespVOS = orderDetailService.selectListByOrderId(id); appOrderRespVO.setDetailList(appOrderDetailRespVOS); + Double reduce = appOrderDetailRespVOS.stream().map(AppOrderDetailRespVO::getHeat).reduce(0d, Double::sum); + appOrderRespVO.setIntake(reduce); + //判断时间 + int hour = order.getCreateTime().getHour(); + if(TimePeriodEnum.MORNING.getStartInt()<=hour && hour<=TimePeriodEnum.MORNING.getEndInt()){ + appOrderRespVO.setProposeIntake(proposeMorning); + } else if (TimePeriodEnum.MIDDAY.getStartInt()<=hour && hour<=TimePeriodEnum.MIDDAY.getEndInt()){ + appOrderRespVO.setProposeIntake(proposeNoon); + }else{ + appOrderRespVO.setProposeIntake(proposeNight); + } + appOrderRespVO.setDifference(reduce-appOrderRespVO.getProposeIntake()); return appOrderRespVO; } @@ -187,6 +208,7 @@ public class OrderServiceImpl implements OrderService { @Override public List getDishOrderByTime(LocalDateTime startTime, LocalDateTime endTime) { List dishOrderDOS = dishOrderMapper.selectList(Wrappers.lambdaQuery() + .eq(DishOrderDO::getUserId,SecurityFrameworkUtils.getLoginUserId()) .between(DishOrderDO::getCreateTime, startTime, endTime)); return dishOrderDOS; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storecomplain/StoreComplainService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storecomplain/StoreComplainService.java new file mode 100644 index 00000000..8fa9f430 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storecomplain/StoreComplainService.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.module.member.service.storecomplain; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.member.controller.admin.storecomplain.vo.StoreComplainPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storecomplain.vo.StoreComplainSaveReqVO; +import cn.iocoder.yudao.module.member.controller.app.storecomplain.vo.AppStoreComplainSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.storecomplain.StoreComplainDO; + +import javax.validation.Valid; + +/** + * 投诉 Service 接口 + * + * @author 开发账号 + */ +public interface StoreComplainService { + + /** + * 创建投诉 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createStoreComplain(@Valid StoreComplainSaveReqVO createReqVO); + + /** + * 更新投诉 + * + * @param updateReqVO 更新信息 + */ + void updateStoreComplain(@Valid StoreComplainSaveReqVO updateReqVO); + + /** + * 删除投诉 + * + * @param id 编号 + */ + void deleteStoreComplain(Long id); + + /** + * 获得投诉 + * + * @param id 编号 + * @return 投诉 + */ + StoreComplainDO getStoreComplain(Long id); + + /** + * 获得投诉分页 + * + * @param pageReqVO 分页查询 + * @return 投诉分页 + */ + PageResult getStoreComplainPage(StoreComplainPageReqVO pageReqVO); + + + + /** + * 创建投诉 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createStoreComplainApp(@Valid AppStoreComplainSaveReqVO createReqVO); + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storecomplain/StoreComplainServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storecomplain/StoreComplainServiceImpl.java new file mode 100644 index 00000000..41166a44 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storecomplain/StoreComplainServiceImpl.java @@ -0,0 +1,81 @@ +package cn.iocoder.yudao.module.member.service.storecomplain; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.member.controller.admin.storecomplain.vo.StoreComplainPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storecomplain.vo.StoreComplainSaveReqVO; +import cn.iocoder.yudao.module.member.controller.app.storecomplain.vo.AppStoreComplainSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.storecomplain.StoreComplainDO; +import cn.iocoder.yudao.module.member.dal.mysql.storecomplain.StoreComplainMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_COMPLAIN_NOT_EXISTS; + +/** + * 投诉 Service 实现类 + * + * @author 开发账号 + */ +@Service +@Validated +public class StoreComplainServiceImpl implements StoreComplainService { + + @Resource + private StoreComplainMapper storeComplainMapper; + + @Override + public Long createStoreComplain(StoreComplainSaveReqVO createReqVO) { + // 插入 + StoreComplainDO storeComplain = BeanUtils.toBean(createReqVO, StoreComplainDO.class); + storeComplainMapper.insert(storeComplain); + // 返回 + return storeComplain.getId(); + } + + @Override + public void updateStoreComplain(StoreComplainSaveReqVO updateReqVO) { + // 校验存在 + validateStoreComplainExists(updateReqVO.getId()); + // 更新 + StoreComplainDO updateObj = BeanUtils.toBean(updateReqVO, StoreComplainDO.class); + storeComplainMapper.updateById(updateObj); + } + + @Override + public void deleteStoreComplain(Long id) { + // 校验存在 + validateStoreComplainExists(id); + // 删除 + storeComplainMapper.deleteById(id); + } + + private void validateStoreComplainExists(Long id) { + if (storeComplainMapper.selectById(id) == null) { + throw exception(STORE_COMPLAIN_NOT_EXISTS); + } + } + + @Override + public StoreComplainDO getStoreComplain(Long id) { + return storeComplainMapper.selectById(id); + } + + @Override + public PageResult getStoreComplainPage(StoreComplainPageReqVO pageReqVO) { + return storeComplainMapper.selectPage(pageReqVO); + } + + @Override + public Long createStoreComplainApp(@Valid AppStoreComplainSaveReqVO createReqVO) { + // 插入 + StoreComplainDO storeComplain = BeanUtils.toBean(createReqVO, StoreComplainDO.class); + storeComplainMapper.insert(storeComplain); + // 返回 + return storeComplain.getId(); + } +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateService.java new file mode 100644 index 00000000..6e110c3f --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateService.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.module.member.service.storeevaluate; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.member.controller.admin.storeevaluate.vo.StoreEvaluatePageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storeevaluate.vo.StoreEvaluateSaveReqVO; +import cn.iocoder.yudao.module.member.controller.app.storeevaluate.vo.AppStoreEvaluateSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.storeevaluate.StoreEvaluateDO; + +import javax.validation.Valid; + +/** + * 店铺评价 Service 接口 + * + * @author 开发账号 + */ +public interface StoreEvaluateService { + + /** + * 创建店铺评价 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createStoreEvaluate(@Valid StoreEvaluateSaveReqVO createReqVO); + + /** + * 更新店铺评价 + * + * @param updateReqVO 更新信息 + */ + void updateStoreEvaluate(@Valid StoreEvaluateSaveReqVO updateReqVO); + + /** + * 删除店铺评价 + * + * @param id 编号 + */ + void deleteStoreEvaluate(Long id); + + /** + * 获得店铺评价 + * + * @param id 编号 + * @return 店铺评价 + */ + StoreEvaluateDO getStoreEvaluate(Long id); + + /** + * 获得店铺评价分页 + * + * @param pageReqVO 分页查询 + * @return 店铺评价分页 + */ + PageResult getStoreEvaluatePage(StoreEvaluatePageReqVO pageReqVO); + + + Boolean saveOrUpdate(AppStoreEvaluateSaveReqVO createReqVO); + + StoreEvaluateDO selectByUserId(Long storeId); + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateServiceImpl.java new file mode 100644 index 00000000..fc71a78a --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateServiceImpl.java @@ -0,0 +1,104 @@ +package cn.iocoder.yudao.module.member.service.storeevaluate; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.member.controller.admin.storeevaluate.vo.StoreEvaluatePageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storeevaluate.vo.StoreEvaluateSaveReqVO; +import cn.iocoder.yudao.module.member.controller.app.storeevaluate.vo.AppStoreEvaluateSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.storeevaluate.StoreEvaluateDO; +import cn.iocoder.yudao.module.member.dal.mysql.storeevaluate.StoreEvaluateMapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_EVALUATE_NOT_EXISTS; + +/** + * 店铺评价 Service 实现类 + * + * @author 开发账号 + */ +@Service +@Validated +public class StoreEvaluateServiceImpl implements StoreEvaluateService { + + @Resource + private StoreEvaluateMapper storeEvaluateMapper; + + @Override + public Long createStoreEvaluate(StoreEvaluateSaveReqVO createReqVO) { + // 插入 + StoreEvaluateDO storeEvaluate = BeanUtils.toBean(createReqVO, StoreEvaluateDO.class); + storeEvaluateMapper.insert(storeEvaluate); + // 返回 + return storeEvaluate.getId(); + } + + @Override + public void updateStoreEvaluate(StoreEvaluateSaveReqVO updateReqVO) { + // 校验存在 + validateStoreEvaluateExists(updateReqVO.getId()); + // 更新 + StoreEvaluateDO updateObj = BeanUtils.toBean(updateReqVO, StoreEvaluateDO.class); + storeEvaluateMapper.updateById(updateObj); + } + + @Override + public void deleteStoreEvaluate(Long id) { + // 校验存在 + validateStoreEvaluateExists(id); + // 删除 + storeEvaluateMapper.deleteById(id); + } + + private void validateStoreEvaluateExists(Long id) { + if (storeEvaluateMapper.selectById(id) == null) { + throw exception(STORE_EVALUATE_NOT_EXISTS); + } + } + + @Override + public StoreEvaluateDO getStoreEvaluate(Long id) { + return storeEvaluateMapper.selectById(id); + } + + @Override + public PageResult getStoreEvaluatePage(StoreEvaluatePageReqVO pageReqVO) { + return storeEvaluateMapper.selectPage(pageReqVO); + } + + @Override + public Boolean saveOrUpdate(AppStoreEvaluateSaveReqVO createReqVO) { + StoreEvaluateDO storeEvaluateDO = storeEvaluateMapper.selectOne(Wrappers.lambdaQuery() + .eq(StoreEvaluateDO::getUserId, createReqVO.getUserId()) + .eq(createReqVO.getStoreId() != null,StoreEvaluateDO::getStoreId,createReqVO.getStoreId()) + .last("limit 1")); + if(storeEvaluateDO == null){ + StoreEvaluateDO add = new StoreEvaluateDO(); + BeanUtil.copyProperties(createReqVO,add); + return storeEvaluateMapper.insert(add)>0; + }else { + BeanUtil.copyProperties(createReqVO,storeEvaluateDO); + return storeEvaluateMapper.updateById(storeEvaluateDO)>0; + } + } + + @Override + public StoreEvaluateDO selectByUserId(Long storeId) { + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); + if(loginUserId == null ){ + return new StoreEvaluateDO(); + } + StoreEvaluateDO storeEvaluateDO = storeEvaluateMapper.selectOne(Wrappers.lambdaQuery() + .eq(StoreEvaluateDO::getUserId, loginUserId) + .eq(storeId != null,StoreEvaluateDO::getStoreId,storeId) + .last("limit 1")); + return storeEvaluateDO; + } +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java index 5ccbb5be..ae6161d1 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java @@ -198,8 +198,12 @@ public interface MemberUserService { /** * 用户绑卡 */ - boolean bindCard(String cardId); + Boolean bindCard(String cardId); + /** + * 判定绑卡 + */ + Boolean checkCard(Long userId); /** * 营养日报 */ diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java index 61d6eee3..f4394005 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java @@ -4,15 +4,16 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; -import cn.hutool.core.date.DateField; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.lang.Assert; -import cn.hutool.core.map.MapBuilder; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.*; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.exception.ServerException; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -39,6 +40,7 @@ import cn.iocoder.yudao.module.member.enums.TimePeriodEnum; import cn.iocoder.yudao.module.member.mq.producer.user.MemberUserProducer; import cn.iocoder.yudao.module.member.service.order.OrderService; import cn.iocoder.yudao.module.member.service.orderdetail.OrderDetailService; +import cn.iocoder.yudao.module.member.service.userexpand.UserExpandService; import cn.iocoder.yudao.module.system.api.dishesnutrition.DishesNutritionApi; import cn.iocoder.yudao.module.system.api.dishesnutrition.dto.DishesNutritionRespDTO; import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; @@ -46,6 +48,7 @@ import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; import cn.iocoder.yudao.module.system.api.social.SocialClientApi; import cn.iocoder.yudao.module.system.api.social.dto.SocialWxPhoneNumberInfoRespDTO; import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.annotations.VisibleForTesting; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -58,11 +61,15 @@ import org.springframework.transaction.support.TransactionSynchronizationManager import javax.annotation.Resource; import javax.validation.Valid; import java.math.BigDecimal; -import java.time.DayOfWeek; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoUnit; -import java.util.*; +import java.time.temporal.WeekFields; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -108,6 +115,8 @@ public class MemberUserServiceImpl implements MemberUserService { @Resource private OrderDetailService orderDetailService; + @Resource + private UserExpandService userExpandService; @Value("${propose.morning}") private Double proposeMorning; @@ -194,9 +203,16 @@ public class MemberUserServiceImpl implements MemberUserService { } @Override + @Transactional(rollbackFor = Exception.class) public void updateUser(Long userId, AppMemberUserUpdateReqVO reqVO) { + // 校验存在 + validateUserExists(userId); + // 校验手机唯一 + validateMobileUnique(userId, reqVO.getMobile()); + MemberUserDO updateObj = BeanUtils.toBean(reqVO, MemberUserDO.class).setId(userId); memberUserMapper.updateById(updateObj); + userExpandService.updateUserExpandByuserId(userId,reqVO); } @Override @@ -368,19 +384,29 @@ public class MemberUserServiceImpl implements MemberUserService { } @Override - public boolean bindCard(String cardId) { + public Boolean bindCard(String cardId) { + List memberUserDOS = memberUserMapper.selectList(Wrappers.lambdaQuery().eq(MemberUserDO::getCardId, cardId)); + if(memberUserDOS.size()>0){ + throw new ServerException(600,"卡号已绑定"); + } MemberUserDO memberUserDO = memberUserMapper.selectById(SecurityFrameworkUtils.getLoginUserId()); memberUserDO.setCardId(cardId); return memberUserMapper.updateById(memberUserDO) > 0; } + @Override + public Boolean checkCard(Long userId) { + MemberUserDO memberUserDO = memberUserMapper.selectById(userId); + return StrUtil.isNotBlank(memberUserDO.getCardId()); + } + @Override public List nutritionDay(String time) { List result = new ArrayList<>(); //获取日期的订单 - String start = time+"00:00:00"; - String end = time+"23:59:59"; - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + String start = time+" 00:00:00"; + String end = time+" 23:59:59"; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); LocalDateTime startTime = LocalDateTime.parse(start, formatter); LocalDateTime endTime = LocalDateTime.parse(end, formatter); @@ -436,110 +462,29 @@ public class MemberUserServiceImpl implements MemberUserService { public List NutritionWeek(String start, String end) { List result = new ArrayList<>(); //获取日期的订单 - String newStart = start+"00:00:00"; - String newEnd = end+"23:59:59"; - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + String newStart = start + " 00:00:00"; + String newEnd = end + " 23:59:59"; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDateTime startTime = LocalDateTime.parse(newStart, formatter); LocalDateTime endTime = LocalDateTime.parse(newEnd, formatter); List dishOrderDOS = orderService.getDishOrderByTime(startTime, endTime); - //周一 - LocalDateTime monday = startTime.with(DayOfWeek.MONDAY); - String mondayString = monday.format(formatter1); - List mondayCollect = dishOrderDOS.stream().filter(orderDO -> mondayString.equals(orderDO.getCreateTime().format(formatter1))) - .collect(Collectors.toList()); - //获取当天的点的所有菜品 - List mondayOrderIds = mondayCollect.stream().map(DishOrderDO::getId).collect(Collectors.toList()); - List mondayOrderDetailDOS = orderDetailService.selectListByOrderIds(mondayOrderIds); - AppNutritionWeekVO mondayVO = new AppNutritionWeekVO(); - mondayVO.setDetailList(mondayOrderDetailDOS); - mondayVO.setIntake(mondayOrderDetailDOS.stream().map(OrderDetailDO::getHeat).reduce(0d,Double::sum)); - mondayVO.setTime(mondayString); - result.add(mondayVO); - //周二 - LocalDateTime tuesday = startTime.with(DayOfWeek.TUESDAY); - String tuesdayString = tuesday.format(formatter1); - List tuesdayCollect = dishOrderDOS.stream().filter(orderDO -> tuesdayString.equals(orderDO.getCreateTime().format(formatter1))) - .collect(Collectors.toList()); - //获取当天的点的所有菜品 - List tuesdayOrderIds = tuesdayCollect.stream().map(DishOrderDO::getId).collect(Collectors.toList()); - List tuesdayOrderDetailDOS = orderDetailService.selectListByOrderIds(tuesdayOrderIds); - AppNutritionWeekVO tuesdayVO = new AppNutritionWeekVO(); - tuesdayVO.setDetailList(tuesdayOrderDetailDOS); - tuesdayVO.setIntake(tuesdayOrderDetailDOS.stream().map(OrderDetailDO::getHeat).reduce(0d,Double::sum)); - tuesdayVO.setTime(tuesdayString); - result.add(tuesdayVO); - - //周三 - LocalDateTime wednesday = startTime.with(DayOfWeek.WEDNESDAY); - String wednesdayString = wednesday.format(formatter1); - List wednesdayCollect = dishOrderDOS.stream().filter(orderDO -> wednesdayString.equals(orderDO.getCreateTime().format(formatter1))) - .collect(Collectors.toList()); - //获取当天的点的所有菜品 - List wednesdayOrderIds = wednesdayCollect.stream().map(DishOrderDO::getId).collect(Collectors.toList()); - List wednesdayOrderDetailDOS = orderDetailService.selectListByOrderIds(wednesdayOrderIds); - AppNutritionWeekVO wednesdayVO = new AppNutritionWeekVO(); - wednesdayVO.setDetailList(wednesdayOrderDetailDOS); - wednesdayVO.setIntake(wednesdayOrderDetailDOS.stream().map(OrderDetailDO::getHeat).reduce(0d,Double::sum)); - wednesdayVO.setTime(wednesdayString); - result.add(wednesdayVO); - - //周四 - LocalDateTime thursday = startTime.with(DayOfWeek.THURSDAY); - String thursdayString = thursday.format(formatter1); - List thursdayCollect = dishOrderDOS.stream().filter(orderDO -> thursdayString.equals(orderDO.getCreateTime().format(formatter1))) - .collect(Collectors.toList()); - //获取当天的点的所有菜品 - List thursdayOrderIds = thursdayCollect.stream().map(DishOrderDO::getId).collect(Collectors.toList()); - List thursdayOrderDetailDOS = orderDetailService.selectListByOrderIds(thursdayOrderIds); - AppNutritionWeekVO thursdayVO = new AppNutritionWeekVO(); - thursdayVO.setDetailList(thursdayOrderDetailDOS); - thursdayVO.setIntake(thursdayOrderDetailDOS.stream().map(OrderDetailDO::getHeat).reduce(0d,Double::sum)); - thursdayVO.setTime(thursdayString); - result.add(thursdayVO); - - //周五 - LocalDateTime friday = startTime.with(DayOfWeek.FRIDAY); - String fridayString = friday.format(formatter1); - List fridayCollect = dishOrderDOS.stream().filter(orderDO -> fridayString.equals(orderDO.getCreateTime().format(formatter1))) - .collect(Collectors.toList()); - //获取当天的点的所有菜品 - List fridayOrderIds = fridayCollect.stream().map(DishOrderDO::getId).collect(Collectors.toList()); - List fridayOrderDetailDOS = orderDetailService.selectListByOrderIds(fridayOrderIds); - AppNutritionWeekVO fridayVO = new AppNutritionWeekVO(); - fridayVO.setDetailList(fridayOrderDetailDOS); - fridayVO.setIntake(fridayOrderDetailDOS.stream().map(OrderDetailDO::getHeat).reduce(0d,Double::sum)); - fridayVO.setTime(fridayString); - result.add(fridayVO); - - //周六 - LocalDateTime saturday = startTime.with(DayOfWeek.SATURDAY); - String saturdayString = saturday.format(formatter1); - List saturdayCollect = dishOrderDOS.stream().filter(orderDO -> saturdayString.equals(orderDO.getCreateTime().format(formatter1))) - .collect(Collectors.toList()); - //获取当天的点的所有菜品 - List saturdayOrderIds = saturdayCollect.stream().map(DishOrderDO::getId).collect(Collectors.toList()); - List saturdayOrderDetailDOS = orderDetailService.selectListByOrderIds(saturdayOrderIds); - AppNutritionWeekVO saturdayVO = new AppNutritionWeekVO(); - saturdayVO.setDetailList(saturdayOrderDetailDOS); - saturdayVO.setIntake(saturdayOrderDetailDOS.stream().map(OrderDetailDO::getHeat).reduce(0d,Double::sum)); - saturdayVO.setTime(saturdayString); - result.add(saturdayVO); - - //周日 - LocalDateTime sunday = startTime.with(DayOfWeek.SUNDAY); - String sundayString = sunday.format(formatter1); - List sundayCollect = dishOrderDOS.stream().filter(orderDO -> sundayString.equals(orderDO.getCreateTime().format(formatter1))) - .collect(Collectors.toList()); - //获取当天的点的所有菜品 - List sundayOrderIds = sundayCollect.stream().map(DishOrderDO::getId).collect(Collectors.toList()); - List sundayOrderDetailDOS = orderDetailService.selectListByOrderIds(sundayOrderIds); - AppNutritionWeekVO sundayVO = new AppNutritionWeekVO(); - sundayVO.setDetailList(sundayOrderDetailDOS); - sundayVO.setIntake(sundayOrderDetailDOS.stream().map(OrderDetailDO::getHeat).reduce(0d,Double::sum)); - sundayVO.setTime(sundayString); - result.add(sundayVO); + WeekFields weekFields = WeekFields.ISO; + for (Long i = 1L; i <= 7; i++) { + LocalDateTime mondayDate = startTime.with(weekFields.dayOfWeek(), i); + String format = mondayDate.format(formatter1); + List ids = dishOrderDOS.stream().filter(orderDO -> format.equals(orderDO.getCreateTime().format(formatter1))) + .map(DishOrderDO::getId).collect(Collectors.toList()); + AppNutritionWeekVO mondayVO = new AppNutritionWeekVO(); + mondayVO.setTime(format); + if (CollectionUtil.isNotEmpty(ids)) { + List orderDetailDOS = orderDetailService.selectListByOrderIds(ids); + mondayVO.setDetailList(orderDetailDOS); + mondayVO.setIntake(orderDetailDOS.stream().map(OrderDetailDO::getHeat).reduce(0d, Double::sum)); + } + result.add(mondayVO); + } return result; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userexpand/UserExpandService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userexpand/UserExpandService.java index 00275f4b..85c2b388 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userexpand/UserExpandService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userexpand/UserExpandService.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.service.userexpand; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.controller.admin.userexpand.vo.UserExpandPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.userexpand.vo.UserExpandSaveReqVO; +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.userexpand.UserExpandDO; import javax.validation.Valid; @@ -52,4 +53,6 @@ public interface UserExpandService { */ PageResult getUserExpandPage(UserExpandPageReqVO pageReqVO); + void updateUserExpandByuserId(Long userId, AppMemberUserUpdateReqVO reqVO); + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userexpand/UserExpandServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userexpand/UserExpandServiceImpl.java index 4987a7f3..cb41d2f2 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userexpand/UserExpandServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userexpand/UserExpandServiceImpl.java @@ -1,21 +1,21 @@ package cn.iocoder.yudao.module.member.service.userexpand; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import cn.iocoder.yudao.module.member.controller.admin.userexpand.vo.*; -import cn.iocoder.yudao.module.member.dal.dataobject.userexpand.UserExpandDO; +import cn.hutool.core.bean.BeanUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; - +import cn.iocoder.yudao.module.member.controller.admin.userexpand.vo.UserExpandPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.userexpand.vo.UserExpandSaveReqVO; +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.userexpand.UserExpandDO; import cn.iocoder.yudao.module.member.dal.mysql.userexpand.UserExpandMapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.USER_EXPAND_NOT_EXISTS; /** * 用户拓展属性 Service 实现类 @@ -71,4 +71,19 @@ public class UserExpandServiceImpl implements UserExpandService { return userExpandMapper.selectPage(pageReqVO); } + @Override + public void updateUserExpandByuserId(Long userId, AppMemberUserUpdateReqVO reqVO) { + UserExpandDO userExpandDO = userExpandMapper.selectOne(Wrappers.lambdaQuery() + .eq(UserExpandDO::getUserId, userId) + .last("limit 1")); + if(userExpandDO == null){ + UserExpandDO add = new UserExpandDO(); + BeanUtil.copyProperties(reqVO,add); + add.setUserId(userId); + userExpandMapper.insert(add); + }else { + BeanUtil.copyProperties(reqVO,userExpandDO); + userExpandMapper.updateById(userExpandDO); + } + } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userpreference/UserPreferenceService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userpreference/UserPreferenceService.java index abc339ca..aa4c4507 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userpreference/UserPreferenceService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userpreference/UserPreferenceService.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.service.userpreference; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.controller.admin.userpreference.vo.UserPreferencePageReqVO; import cn.iocoder.yudao.module.member.controller.admin.userpreference.vo.UserPreferenceSaveReqVO; +import cn.iocoder.yudao.module.member.controller.app.userpreference.vo.AppUserPreferenceSaveReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.userpreference.UserPreferenceDO; import javax.validation.Valid; @@ -52,4 +53,15 @@ public interface UserPreferenceService { */ PageResult getUserPreferencePage(UserPreferencePageReqVO pageReqVO); + + /** + * 设置用户偏好 + */ + Boolean saveOrUpdate(AppUserPreferenceSaveReqVO updateReqVO); + + + UserPreferenceDO getUserPreferenceByUserId(Long userId); + + + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userpreference/UserPreferenceServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userpreference/UserPreferenceServiceImpl.java index 3ea640d7..41825be3 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userpreference/UserPreferenceServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/userpreference/UserPreferenceServiceImpl.java @@ -1,21 +1,21 @@ package cn.iocoder.yudao.module.member.service.userpreference; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import cn.iocoder.yudao.module.member.controller.admin.userpreference.vo.*; -import cn.iocoder.yudao.module.member.dal.dataobject.userpreference.UserPreferenceDO; +import cn.hutool.core.bean.BeanUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; - +import cn.iocoder.yudao.module.member.controller.admin.userpreference.vo.UserPreferencePageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.userpreference.vo.UserPreferenceSaveReqVO; +import cn.iocoder.yudao.module.member.controller.app.userpreference.vo.AppUserPreferenceSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.userpreference.UserPreferenceDO; import cn.iocoder.yudao.module.member.dal.mysql.userpreference.UserPreferenceMapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.USER_PREFERENCE_NOT_EXISTS; /** * 用户偏好 Service 实现类 @@ -71,4 +71,29 @@ public class UserPreferenceServiceImpl implements UserPreferenceService { return userPreferenceMapper.selectPage(pageReqVO); } + @Override + public Boolean saveOrUpdate(AppUserPreferenceSaveReqVO updateReqVO) { + UserPreferenceDO userPreferenceDO = userPreferenceMapper.selectOne(Wrappers.lambdaQuery() + .eq(UserPreferenceDO::getUserId, updateReqVO.getUserId()) + .last("limit 1")); + Boolean result = true; + if(userPreferenceDO == null){ + UserPreferenceDO add = new UserPreferenceDO(); + BeanUtil.copyProperties(updateReqVO,add); + result = userPreferenceMapper.insert(add)>0; + }else { + BeanUtil.copyProperties(updateReqVO,userPreferenceDO); + result = userPreferenceMapper.updateById(userPreferenceDO)>0; + } + return result; + + } + + @Override + public UserPreferenceDO getUserPreferenceByUserId(Long userId) { + UserPreferenceDO userPreferenceDO = userPreferenceMapper.selectOne(Wrappers.lambdaQuery() + .eq(UserPreferenceDO::getUserId, userId) + .last("limit 1")); + return userPreferenceDO; + } } \ No newline at end of file