From 4d50a05ed771793f5db2a95fd9e654cd13183a1d Mon Sep 17 00:00:00 2001 From: yang <2119157836@qq.com> Date: Thu, 10 Apr 2025 17:02:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(memberCenter):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E6=9D=83=E7=9B=8A=E5=8A=9F=E8=83=BD=E5=B9=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A4=BE=E5=8C=BA=E6=96=87=E4=BB=B6=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommunityFileController.java | 51 ++++++++++++++ .../communityCenter/PublishController.java | 62 ++++++++++------- .../memberCenter/BenefitController.java | 41 +++++++++-- .../communityCenter/domain/CommunityFile.java | 64 +++++++++++++++++ .../domain/CommunityFileLog.java | 45 ++++++++++++ .../domain/dto/CommunityFilePageListRes.java | 36 ++++++++++ .../domain/dto/CommunityUploadFileRes.java | 40 +++++++++++ .../domain/dto/PublishPageRes.java | 4 ++ .../domain/vo/CommunityFileVo.java | 69 +++++++++++++++++++ .../domain/vo/DownloadFileUserVo.java | 24 +++++++ .../communityCenter/domain/vo/PublishVo.java | 5 ++ .../mapper/CommunityFileLogMapper.java | 11 +++ .../mapper/CommunityFileMapper.java | 22 ++++++ .../communityCenter/mapper/PublishMapper.java | 20 ++++-- .../service/CommunityFileLogService.java | 9 +++ .../service/CommunityFileService.java | 14 ++++ .../service/PublishService.java | 4 ++ .../impl/CommunityFileLogServiceImpl.java | 20 ++++++ .../impl/CommunityFileServiceImpl.java | 60 ++++++++++++++++ .../service/impl/PublishServiceImpl.java | 28 +++++--- .../service/impl/QuestionServiceImpl.java | 14 ++-- .../communityCenter/CommunityFileMapper.xml | 16 +++++ .../mapper/communityCenter/PublishMapper.xml | 21 ++++++ .../com/mcwl/memberCenter/domain/Benefit.java | 2 +- .../memberCenter/domain/BenefitValue.java | 30 ++++++++ .../mapper/BenefitValueMapper.java | 17 +++++ .../service/BenefitValueService.java | 12 ++++ .../service/impl/BenefitValueServiceImpl.java | 20 ++++++ .../service/impl/MemberServiceImpl.java | 5 +- .../memberCenter/task/UserMemberTask.java | 16 +++-- 30 files changed, 723 insertions(+), 59 deletions(-) create mode 100644 mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityFileController.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityFile.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityFileLog.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityFilePageListRes.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityUploadFileRes.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/CommunityFileVo.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/DownloadFileUserVo.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileMapper.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileLogService.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileService.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileLogServiceImpl.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileServiceImpl.java create mode 100644 mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileMapper.xml create mode 100644 mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/BenefitValue.java create mode 100644 mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/BenefitValueMapper.java create mode 100644 mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/BenefitValueService.java create mode 100644 mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/BenefitValueServiceImpl.java diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityFileController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityFileController.java new file mode 100644 index 0000000..52856bc --- /dev/null +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityFileController.java @@ -0,0 +1,51 @@ +package com.mcwl.web.controller.communityCenter; + + +import com.mcwl.common.core.domain.R; +import com.mcwl.common.core.page.PageDomain; +import com.mcwl.common.core.page.TableDataInfo; +import com.mcwl.communityCenter.domain.dto.*; +import com.mcwl.communityCenter.service.CommunityFileLogService; +import com.mcwl.communityCenter.service.CommunityFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + * 社区文件 + */ +@Api(tags = "社区文件") +@RestController +@RequestMapping("communityFile") +@RequiredArgsConstructor +public class CommunityFileController { + + private final CommunityFileService communityFileService; + + private final CommunityFileLogService communityFileLogService; + + /** + * 社区文件上传 + */ + @ApiOperation(value = "社区文件上传") + @PostMapping("/upload") + public R upload(@RequestBody @Valid CommunityUploadFileRes communityUploadFileRes) { + communityFileService.upload(communityUploadFileRes); + return R.ok(); + } + + /** + * 社区文件列表 + */ + @ApiOperation(value = "社区文件列表") + @PostMapping("/list") + public TableDataInfo getCommunityFileList(@RequestBody @Valid CommunityFilePageListRes communityFilePageListRes) { + return communityFileService.getCommunityFileList(communityFilePageListRes); + } + + + +} diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java index d993a54..a691a60 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java @@ -31,16 +31,6 @@ public class PublishController { private final PublishService publishService; - - /** - * 获取发布列表 - */ - @ApiOperation(value = "获取发布列表") - @PostMapping("list") - public TableDataInfo list(@RequestBody @Valid PublishPageRes publishPageRes) { - return publishService.getPublishList(publishPageRes); - } - /** * 获取发布详情 */ @@ -50,7 +40,7 @@ public class PublishController { PublishVo publishVo = publishService.getDetail(publishDetailRes); if (Objects.isNull(publishVo)) { - return R.fail(HttpStatus.SHOW_ERROR_MSG,"获取详情失败"); + return R.fail(HttpStatus.SHOW_ERROR_MSG, "获取详情失败"); } return R.ok(publishVo); } @@ -65,22 +55,31 @@ public class PublishController { } /** - * 获取发布图片列表 + * 获取发布列表 */ - @ApiOperation(value = "获取发布图片列表") - @PostMapping("publishImage") - public TableDataInfo publishImage(@RequestBody @Valid PublishPageRes publishPageRes) { - return publishService.publishImage(publishPageRes); + @ApiOperation(value = "获取发布列表") + @PostMapping("publishList") + public TableDataInfo publishList(@RequestBody @Valid PublishPageRes publishPageRes) { + return publishService.publishList(publishPageRes); } - /** - * 获取发布文件列表 - */ - @ApiOperation(value = "获取发布文件列表") - @PostMapping("publishFile") - public TableDataInfo publishFile(@RequestBody @Valid PublishPageRes publishPageRes) { - return publishService.publishFile(publishPageRes); - } +// /** +// * 获取发布图片列表 +// */ +// @ApiOperation(value = "获取发布图片列表") +// @PostMapping("publishImage") +// public TableDataInfo publishImage(@RequestBody @Valid PublishPageRes publishPageRes) { +// return publishService.publishImage(publishPageRes); +// } +// +// /** +// * 获取发布文件列表 +// */ +// @ApiOperation(value = "获取发布文件列表") +// @PostMapping("publishFile") +// public TableDataInfo publishFile(@RequestBody @Valid PublishPageRes publishPageRes) { +// return publishService.publishFile(publishPageRes); +// } /** * 删除 @@ -92,4 +91,19 @@ public class PublishController { return R.ok(); } + /** + * 精选/取消精选 + */ + @ApiOperation(value = "精选/取消精选") + @GetMapping("elite") + public R elitePublish(@NotNull(message = "社区id不能为空") + @ApiParam(value = "社区id") + @Valid Long communityId, + @NotNull(message = "发布文章id不能为空") + @ApiParam(value = "发布文章id") + @Valid Long publishId) { + publishService.elitePublish(communityId, publishId); + return R.ok(); + } + } diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/BenefitController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/BenefitController.java index 3e9fb13..4dd5dee 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/BenefitController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/BenefitController.java @@ -3,21 +3,26 @@ package com.mcwl.web.controller.memberCenter; import cn.hutool.core.bean.BeanUtil; import com.mcwl.common.core.domain.R; import com.mcwl.memberCenter.domain.Benefit; +import com.mcwl.memberCenter.domain.BenefitValue; import com.mcwl.memberCenter.domain.dto.BenefitDto; import com.mcwl.memberCenter.domain.vo.BenefitVo; import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum; import com.mcwl.memberCenter.service.BenefitService; +import com.mcwl.memberCenter.service.BenefitValueService; import com.mcwl.memberCenter.service.MemberBenefitService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /*** * 权益 @@ -30,6 +35,8 @@ public class BenefitController { private final BenefitService benefitService; + private final BenefitValueService benefitValueService; + /** * 权益列表 */ @@ -38,10 +45,16 @@ public class BenefitController { @GetMapping("list") public R> list() { List benefitList = benefitService.list(); + Map benefitValueMap = benefitValueService.list() + .stream() + .collect(Collectors.toMap(BenefitValue::getId, BenefitValue::getBenefitValue)); + List benefitVoList = new ArrayList<>(); for (Benefit benefit : benefitList) { BenefitVo benefitVo = BeanUtil.copyProperties(benefit, BenefitVo.class); + Double value = benefitValueMap.get(benefit.getBenefitDiscountId()); benefitVo.setBenefitType(benefit.getBenefitType().getValue()); + benefitVo.setBenefitDiscount(value); benefitVoList.add(benefitVo); } @@ -54,12 +67,19 @@ public class BenefitController { // @PreAuthorize("@ss.hasPermi('system:benefit:add')") @ApiOperation(value = "添加权益") @PostMapping("add") - public void add(@RequestBody @Valid BenefitDto benefitDto) { + @Transactional(rollbackFor = Exception.class) + public R add(@RequestBody @Valid BenefitDto benefitDto) { + Double value = benefitDto.getBenefitDiscount(); + BenefitValue benefitValue = new BenefitValue(); + benefitValue.setBenefitValue(value); + benefitValueService.save(benefitValue); benefitDto.setId(null); Benefit benefit = BeanUtil.copyProperties(benefitDto, Benefit.class); + benefit.setBenefitDiscountId(benefitValue.getId()); benefitService.save(benefit); + return R.ok(); } /** @@ -72,6 +92,10 @@ public class BenefitController { Benefit benefit = benefitService.getById(id); BenefitVo benefitVo = BeanUtil.copyProperties(benefit, BenefitVo.class); benefitVo.setBenefitType(benefit.getBenefitType().getValue()); + + BenefitValue benefitValue = benefitValueService.lambdaQuery().eq(BenefitValue::getId, benefit.getBenefitDiscountId()).one(); + benefitVo.setBenefitDiscount(benefitValue.getBenefitValue()); + return R.ok(benefitVo); } @@ -81,20 +105,27 @@ public class BenefitController { // @PreAuthorize("@ss.hasPermi('system:benefit:edit')") @ApiOperation(value = "修改权益") @PostMapping("update") - public void update(@RequestBody @Valid BenefitDto benefitDto) { + public R update(@RequestBody @Valid BenefitDto benefitDto) { Benefit benefit = BeanUtil.copyProperties(benefitDto, Benefit.class); benefitService.updateById(benefit); + BenefitValue benefitValue = benefitValueService.lambdaQuery().eq(BenefitValue::getId, benefit.getBenefitDiscountId()).one(); + benefitValue.setBenefitValue(benefitDto.getBenefitDiscount()); + benefitValueService.updateById(benefitValue); + + + return R.ok(); + } -// @PreAuthorize("@ss.hasPermi('system:benefit:remove')") + // @PreAuthorize("@ss.hasPermi('system:benefit:remove')") @ApiOperation(value = "删除权益") @GetMapping("delete") - public void delete(@NotNull(message = "id不能为空") Long id) { + public R delete(@NotNull(message = "id不能为空") Long id) { benefitService.removeById(id); + return R.ok(); } - } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityFile.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityFile.java new file mode 100644 index 0000000..96dd8f9 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityFile.java @@ -0,0 +1,64 @@ +package com.mcwl.communityCenter.domain; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mcwl.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 社区文件表 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("cc_community_file") +@Builder +public class CommunityFile extends BaseEntity { + + @TableId + private Long id; + + /** + * 租户id + */ + @TableField(fill = FieldFill.INSERT) + private Long tenantId; + + /** + * 社区id + */ + private Long communityId; + + /** + * 用户id + */ + private Long userId; + + /** + * 文件地址 + */ + private String fileUrl; + + /** + * 文件名 + */ + private String fileName; + + /** + * 文件对象key + */ + private String objectKey; + + /** + * 文件大小 + */ + private Long fileSize; + + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityFileLog.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityFileLog.java new file mode 100644 index 0000000..5b768a9 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityFileLog.java @@ -0,0 +1,45 @@ +package com.mcwl.communityCenter.domain; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mcwl.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 社区文件表 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("cc_community_file_log") +public class CommunityFileLog extends BaseEntity { + + @TableId + private Long id; + + /** + * 租户id + */ + @TableField(fill = FieldFill.INSERT) + private Long tenantId; + + /** + * 社区id + */ + private Long communityId; + + /** + * 社区文件id + */ + private Long communityFileId; + + /** + * 下载用户id + */ + private Long downloadUserId; + + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityFilePageListRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityFilePageListRes.java new file mode 100644 index 0000000..93e53e9 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityFilePageListRes.java @@ -0,0 +1,36 @@ +package com.mcwl.communityCenter.domain.dto; + +import com.mcwl.common.core.page.PageDomain; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.web.multipart.MultipartFile; + +import javax.validation.constraints.NotNull; + +/** + * 社区请求参数 + */ +@Data +@ApiModel(value = "社区请求参数") +@EqualsAndHashCode(callSuper = true) +public class CommunityFilePageListRes extends PageDomain { + + /** + * 租户id + */ + @ApiModelProperty(value = "租户id", required = true) + @NotNull(message = "租户id不能为空") + private Long tenantId; + + /** + * 社区id + */ + @ApiModelProperty(value = "社区id", required = true) + @NotNull(message = "社区id不能为空") + private Long communityId; + + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityUploadFileRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityUploadFileRes.java new file mode 100644 index 0000000..1dcc50e --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityUploadFileRes.java @@ -0,0 +1,40 @@ +package com.mcwl.communityCenter.domain.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import javax.validation.constraints.NotNull; + +/** + * 社区请求参数 + */ +@Data +@ApiModel(value = "社区请求参数") +public class CommunityUploadFileRes { + + /** + * 租户id + */ + @ApiModelProperty(value = "租户id", required = true) + @NotNull(message = "租户id不能为空") + private Long tenantId; + + /** + * 社区id + */ + @ApiModelProperty(value = "社区id", required = true) + @NotNull(message = "社区id不能为空") + private Long communityId; + + /** + * 文件 + */ + @ApiModelProperty(value = "文件", required = true) + @NotNull(message = "文件不能为空") + private MultipartFile file; + + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishPageRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishPageRes.java index ef159c8..cb87f18 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishPageRes.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishPageRes.java @@ -22,4 +22,8 @@ public class PublishPageRes extends PageDomain { @ApiParam(value = "租户id", required = true) private Long tenantId; + @NotNull(message = "类型不能为空") + @ApiParam(value = "类型 0只看星主 1精选 2问答", required = true) + private Integer type; + } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/CommunityFileVo.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/CommunityFileVo.java new file mode 100644 index 0000000..6cdb25b --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/CommunityFileVo.java @@ -0,0 +1,69 @@ +package com.mcwl.communityCenter.domain.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 社区文件返回数据 + */ +@Data +@ApiModel(value = "社区文件返回数据") +public class CommunityFileVo { + + /** + * 社区文件id + */ + @ApiModelProperty(value = "社区文件id") + private Long id; + + /** + * 租户id + */ + @ApiModelProperty(value = "租户id") + private Long tenantId; + + /** + * 社区id + */ + @ApiModelProperty(value = "社区id") + private Long communityId; + + /** + * 文件路径 + */ + @ApiModelProperty(value = "文件路径") + private String fileUrl; + + /** + * 文件名称 + */ + @ApiModelProperty(value = "文件名称") + private String fileName; + + /** + * 上传人 + */ + @ApiModelProperty(value = "上传人") + private String uploadUserName; + + + /** + * 上传时间 + */ + @ApiModelProperty(value = "上传时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + /** + * 下载记录 + */ + @ApiModelProperty(value = "用户下载记录") + private DownloadFileUserVo downloadFileUser; + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/DownloadFileUserVo.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/DownloadFileUserVo.java new file mode 100644 index 0000000..81b0b03 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/DownloadFileUserVo.java @@ -0,0 +1,24 @@ +package com.mcwl.communityCenter.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 用户下载记录 + */ +@Data +@ApiModel(value = "用户下载记录") +public class DownloadFileUserVo { + + @ApiModelProperty(value = "用户头像") + private List avatarUrlList; + + @ApiModelProperty(value = "下载用户数") + private Integer count; + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/PublishVo.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/PublishVo.java index fb9aeca..48aa510 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/PublishVo.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/PublishVo.java @@ -86,6 +86,11 @@ public class PublishVo { @ApiModelProperty(value = "评论数") private Integer commentNum; + /** + * 精选 + */ + @ApiModelProperty(value = "精选") + private Integer isElite; diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java new file mode 100644 index 0000000..59ed934 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java @@ -0,0 +1,11 @@ +package com.mcwl.communityCenter.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mcwl.communityCenter.domain.CommunityFile; +import com.mcwl.communityCenter.domain.CommunityFileLog; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CommunityFileLogMapper extends BaseMapper { + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileMapper.java new file mode 100644 index 0000000..297388a --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileMapper.java @@ -0,0 +1,22 @@ +package com.mcwl.communityCenter.mapper; + +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mcwl.communityCenter.domain.Community; +import com.mcwl.communityCenter.domain.CommunityFile; +import com.mcwl.communityCenter.domain.dto.CommunityFilePageListRes; +import org.apache.ibatis.annotations.MapKey; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import javax.validation.constraints.NotNull; +import java.util.List; +import java.util.Map; + +@Mapper +public interface CommunityFileMapper extends BaseMapper { + + @InterceptorIgnore(tenantLine = "true") + List getCommunityFileList(Page page, @Param("communityFilePageListRes") CommunityFilePageListRes communityFilePageListRes); +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishMapper.java index 61aa019..0708181 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishMapper.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishMapper.java @@ -5,11 +5,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mcwl.communityCenter.domain.Publish; +import com.mcwl.communityCenter.domain.dto.PublishPageRes; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.security.core.parameters.P; import javax.validation.constraints.NotNull; +import java.util.List; @Mapper public interface PublishMapper extends BaseMapper { @@ -27,16 +29,20 @@ public interface PublishMapper extends BaseMapper { @InterceptorIgnore(tenantLine = "true") Page selectByTenantIdAndCommunityIdAndNotNullImagePage(Page page, - @Param("tenantId") - Long tenantId, - @Param("communityId") - Long communityId); - - @InterceptorIgnore(tenantLine = "true") - Page selectByTenantIdAndCommunityIdAndNotNullFilePage(Page page, @Param("tenantId") Long tenantId, @Param("communityId") Long communityId); + @InterceptorIgnore(tenantLine = "true") + Page selectByTenantIdAndCommunityIdAndNotNullFilePage(Page page, + @Param("tenantId") + Long tenantId, + @Param("communityId") + Long communityId); + + void elitePublish(@Param("communityId") Long communityId, @Param("publishId") Long publishId); + + @InterceptorIgnore(tenantLine = "true") + List publishList(Page page,@Param("publishPageRes") PublishPageRes publishPageRes); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileLogService.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileLogService.java new file mode 100644 index 0000000..cadf0a3 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileLogService.java @@ -0,0 +1,9 @@ +package com.mcwl.communityCenter.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.mcwl.communityCenter.domain.CommunityFile; +import com.mcwl.communityCenter.domain.CommunityFileLog; + +public interface CommunityFileLogService extends IService { + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileService.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileService.java new file mode 100644 index 0000000..70fd7ed --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileService.java @@ -0,0 +1,14 @@ +package com.mcwl.communityCenter.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.mcwl.common.core.page.PageDomain; +import com.mcwl.common.core.page.TableDataInfo; +import com.mcwl.communityCenter.domain.CommunityFile; +import com.mcwl.communityCenter.domain.dto.*; + +public interface CommunityFileService extends IService { + + void upload(CommunityUploadFileRes communityUploadFileRes); + + TableDataInfo getCommunityFileList(CommunityFilePageListRes communityFilePageListRes); +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishService.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishService.java index 1cad04b..b45b473 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishService.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishService.java @@ -31,4 +31,8 @@ public interface PublishService extends IService { TableDataInfo publishImage(@Valid PublishPageRes publishPageRes); TableDataInfo publishFile(@Valid PublishPageRes publishPageRes); + + void elitePublish(Long communityId, Long publishId); + + TableDataInfo publishList(PublishPageRes publishPageRes); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileLogServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileLogServiceImpl.java new file mode 100644 index 0000000..799372e --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileLogServiceImpl.java @@ -0,0 +1,20 @@ +package com.mcwl.communityCenter.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mcwl.communityCenter.domain.CommunityFile; +import com.mcwl.communityCenter.domain.CommunityFileLog; +import com.mcwl.communityCenter.mapper.CommunityFileLogMapper; +import com.mcwl.communityCenter.mapper.CommunityFileMapper; +import com.mcwl.communityCenter.service.CommunityFileLogService; +import com.mcwl.communityCenter.service.CommunityFileService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class CommunityFileLogServiceImpl extends ServiceImpl implements CommunityFileLogService { + + + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileServiceImpl.java new file mode 100644 index 0000000..be4fa90 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileServiceImpl.java @@ -0,0 +1,60 @@ +package com.mcwl.communityCenter.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mcwl.common.constant.HttpStatus; +import com.mcwl.common.core.page.PageDomain; +import com.mcwl.common.core.page.TableDataInfo; +import com.mcwl.common.utils.SecurityUtils; +import com.mcwl.common.utils.obs.ObsUtils; +import com.mcwl.communityCenter.domain.CommunityFile; +import com.mcwl.communityCenter.domain.dto.*; +import com.mcwl.communityCenter.mapper.CommunityFileMapper; +import com.mcwl.communityCenter.service.CommunityFileService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.util.*; + +@Service +@RequiredArgsConstructor +public class CommunityFileServiceImpl extends ServiceImpl implements CommunityFileService { + + private final ObsUtils obsUtils; + @Override + public void upload(CommunityUploadFileRes communityUploadFileRes) { + Long tenantId = communityUploadFileRes.getTenantId(); + Long communityId = communityUploadFileRes.getCommunityId(); + MultipartFile file = communityUploadFileRes.getFile(); + Map map = obsUtils.uploadFile(file); + String filename = file.getOriginalFilename(); + long fileSize = file.getSize(); + + CommunityFile communityFile = CommunityFile.builder() + .tenantId(tenantId) + .communityId(communityId) + .userId(SecurityUtils.getUserId()) + .fileUrl(map.get("path")) + .objectKey(map.get("objectKey")) + .fileName(filename) + .fileSize(fileSize) + .build(); + baseMapper.insert(communityFile); + } + + @Override + public TableDataInfo getCommunityFileList(CommunityFilePageListRes communityFilePageListRes) { + Page page = new Page<>(communityFilePageListRes.getPageNum(), communityFilePageListRes.getPageSize()); + List publishList = baseMapper.getCommunityFileList(page, communityFilePageListRes); + + // 封装返回 + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setRows(publishList); + tableDataInfo.setTotal(page.getTotal()); + tableDataInfo.setCode(HttpStatus.SUCCESS); + tableDataInfo.setMsg("查询成功"); + return tableDataInfo; + } +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishServiceImpl.java index faa8dba..beeaf6e 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishServiceImpl.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishServiceImpl.java @@ -186,16 +186,28 @@ public class PublishServiceImpl extends ServiceImpl impl return tableDataInfo; } + @Override + public void elitePublish(Long communityId, Long publishId) { + baseMapper.elitePublish(communityId, publishId); + } + + @Override + public TableDataInfo publishList(PublishPageRes publishPageRes) { + Page page = this.initPage(publishPageRes); + List publishList = baseMapper.publishList(page, publishPageRes); + + // 封装返回 + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setRows(publishList); + tableDataInfo.setTotal(page.getTotal()); + tableDataInfo.setCode(HttpStatus.SUCCESS); + tableDataInfo.setMsg("查询成功"); + return tableDataInfo; + } + private Page initPage(PublishPageRes publishPageRes) { Page page = new Page<>(publishPageRes.getPageNum(), publishPageRes.getPageSize()); - - if (StringUtils.isBlank(publishPageRes.getOrderByColumn())) { - publishPageRes.setOrderByColumn("create_time"); - } - boolean isAsc = Objects.equals(publishPageRes.getIsAsc(), "asc"); - OrderItem orderItem = new OrderItem(publishPageRes.getOrderByColumn(), isAsc); - - page.addOrder(orderItem); + page.addOrder(new OrderItem("create_time", false)); return page; } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionServiceImpl.java index 96c0137..bfaa27b 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionServiceImpl.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionServiceImpl.java @@ -72,15 +72,15 @@ public class QuestionServiceImpl extends ServiceImpl i return R.fail(HttpStatus.SHOW_ERROR_MSG,"租户或社区不存在"); } -// if (Objects.equals(tenantId, userId)) { -// return AjaxResult.error("您不能提问自己的问题"); -// } + if (Objects.equals(tenantId, userId)) { + return R.fail(HttpStatus.SHOW_ERROR_MSG,"您不能提问自己的问题"); + } //提问人(userId)是否在社区中 -// Invite invite = inviteMapper.selectByTenantIdAndCommunityIdAndInviteeUserId(tenantId, communityId, userId); -// if (Objects.isNull(invite)) { -// return AjaxResult.error("您不是该社区成员,不能提问"); -// } + Invite invite = inviteMapper.selectByTenantIdAndCommunityIdAndInviteeUserId(tenantId, communityId, userId); + if (Objects.isNull(invite)) { + return R.fail(HttpStatus.SHOW_ERROR_MSG,"您不是该社区成员,不能提问"); + } Question question = new Question(); BeanUtil.copyProperties(questionRes, question); diff --git a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileMapper.xml b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileMapper.xml new file mode 100644 index 0000000..9c7d051 --- /dev/null +++ b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileMapper.xml @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishMapper.xml b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishMapper.xml index 4630d62..fe3eecb 100644 --- a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishMapper.xml +++ b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishMapper.xml @@ -3,6 +3,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + update cc_publish + set is_elite = !is_elite + where community_id = #{communityId} + and id = #{publishId} + + \ No newline at end of file diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Benefit.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Benefit.java index 915b1a2..074cd50 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Benefit.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Benefit.java @@ -32,7 +32,7 @@ public class Benefit extends BaseEntity { /** * 权益折扣,当权益类型为折扣时,记录折扣具体数值 */ - private Double benefitDiscount; + private Long benefitDiscountId; /** * 权益排序 */ diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/BenefitValue.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/BenefitValue.java new file mode 100644 index 0000000..28f41e4 --- /dev/null +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/BenefitValue.java @@ -0,0 +1,30 @@ +package com.mcwl.memberCenter.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mcwl.common.core.domain.BaseEntity; +import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 权益值表 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("mem_benefit_value") +public class BenefitValue extends BaseEntity { + + @TableId + private Long id; + /** + * 会员权益值 + */ + private Double benefitValue; + /** + * 单位 + */ + private String benefitUnit; + + +} diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/BenefitValueMapper.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/BenefitValueMapper.java new file mode 100644 index 0000000..fb09cc8 --- /dev/null +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/BenefitValueMapper.java @@ -0,0 +1,17 @@ +package com.mcwl.memberCenter.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mcwl.memberCenter.domain.Benefit; +import com.mcwl.memberCenter.domain.BenefitValue; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 权益 Mapper + */ +@Mapper +public interface BenefitValueMapper extends BaseMapper { + +} diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/BenefitValueService.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/BenefitValueService.java new file mode 100644 index 0000000..0dbe003 --- /dev/null +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/BenefitValueService.java @@ -0,0 +1,12 @@ +package com.mcwl.memberCenter.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.mcwl.memberCenter.domain.Benefit; +import com.mcwl.memberCenter.domain.BenefitValue; +import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum; + +import java.util.List; + +public interface BenefitValueService extends IService { + +} diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/BenefitValueServiceImpl.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/BenefitValueServiceImpl.java new file mode 100644 index 0000000..32ef60d --- /dev/null +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/BenefitValueServiceImpl.java @@ -0,0 +1,20 @@ +package com.mcwl.memberCenter.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mcwl.memberCenter.domain.Benefit; +import com.mcwl.memberCenter.domain.BenefitValue; +import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum; +import com.mcwl.memberCenter.mapper.BenefitMapper; +import com.mcwl.memberCenter.mapper.BenefitValueMapper; +import com.mcwl.memberCenter.service.BenefitService; +import com.mcwl.memberCenter.service.BenefitValueService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class BenefitValueServiceImpl extends ServiceImpl implements BenefitValueService { + +} diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java index 2cb6647..0aa908b 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java @@ -48,6 +48,8 @@ public class MemberServiceImpl extends ServiceImpl impleme private final BenefitService benefitService; + private final BenefitValueService benefitValueService; + private final RechargeRecordService rechargeRecordService; private static final Map memberLevelMap = new HashMap<>(); @@ -108,7 +110,8 @@ public class MemberServiceImpl extends ServiceImpl impleme // 设置积分 Benefit benefit = benefitService.getBenefitByType(memberLevelId, MemberBenefitTypeEnum.POINTS); if (Objects.nonNull(benefit)) { - Double points = benefit.getBenefitDiscount(); + BenefitValue benefitValue = benefitValueService.lambdaQuery().eq(BenefitValue::getId, benefit.getBenefitDiscountId()).one(); + Double points = benefitValue.getBenefitValue(); // 根据活动id查询活动类型,如果为积分,则积分加成 if (promotionId != null) { Promotion promotion = promotionMapper.selectById(promotionId); diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java index cda25a9..f8773f7 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java @@ -16,10 +16,8 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @Component("userMemberTask") @RequiredArgsConstructor @@ -35,6 +33,8 @@ public class UserMemberTask { private final BenefitService benefitService; + private final BenefitValueService benefitValueService; + private final PromotionService promotionService; private final MemberPromotionService memberPromotionService; @@ -175,6 +175,10 @@ public class UserMemberTask { */ public Double getPointsByMemberLevelId(Long memberLevelId) { + Map benefitValueMap = benefitValueService.list() + .stream() + .collect(Collectors.toMap(BenefitValue::getId, BenefitValue::getBenefitValue)); + // 根据会员等级id获取会员权益 List memberBenefitList = memberBenefitService.lambdaQuery() .eq(MemberBenefit::getMemberLevelId, memberLevelId) @@ -190,8 +194,8 @@ public class UserMemberTask { .in(Benefit::getId, benefitIdList) .list(); for (Benefit benefit : benefitList) { - if (benefit.getBenefitType().equals(MemberBenefitTypeEnum.POINTS.getValue())) { - return benefit.getBenefitDiscount(); + if (benefit.getBenefitType().getValue().equals(MemberBenefitTypeEnum.POINTS.getValue())) { + return benefitValueMap.getOrDefault(benefit.getBenefitDiscountId(), 0.0); } }