From 44aa87717297bb4fca4bb83ba631646a87749174 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 09 Jul 2025 11:37:58 +0800
Subject: [PATCH] feat(mall): 新增社区功能相关接口和数据结构
---
src/main/java/cc/mrbird/febs/mall/service/ApiClothesSocialService.java | 15
src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialFollowMapper.java | 7
src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java | 374 +++++++++++++++++++++
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiSocialInfoVo.java | 36 ++
src/main/java/cc/mrbird/febs/mall/entity/ClothesOrderItem.java | 1
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiSocialMuseVo.java | 39 ++
src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java | 10
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesSocialMuseDto.java | 16
src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialMuse.java | 9
src/main/resources/mapper/modules/ClothesSocialCommentMapper.xml | 6
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiAllSocialDto.java | 26 +
src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java | 6
src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialCommentMapper.java | 7
src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialFollow.java | 23 +
src/main/resources/mapper/modules/ClothesSocialFollowMapper.xml | 6
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesSocialMuseVo.java | 63 +++
src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialComment.java | 24 +
src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java | 7
src/main/resources/templates/febs/views/modules/clothesType/socialMuseUpdate.html | 55 +++
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialInfoDto.java | 17 +
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiAllSocialVo.java | 22 +
src/main/java/cc/mrbird/febs/common/enumerates/SocialSourceTypeEnum.java | 25 +
src/main/resources/mapper/modules/ClothesSocialMapper.xml | 21 +
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialCollectAddDto.java | 16
src/main/java/cc/mrbird/febs/common/enumerates/SocialTypeEnum.java | 25 +
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialAddDto.java | 33 +
src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialMapper.java | 4
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialCommentLikeAddDto.java | 20 +
src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesSocialController.java | 58 +++
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialLikeAddDto.java | 16
30 files changed, 979 insertions(+), 8 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/SocialSourceTypeEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/SocialSourceTypeEnum.java
new file mode 100644
index 0000000..b22e4b1
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/SocialSourceTypeEnum.java
@@ -0,0 +1,25 @@
+package cc.mrbird.febs.common.enumerates;
+
+import lombok.Getter;
+
+/**
+ *
+ **/
+@Getter
+public enum SocialSourceTypeEnum {
+
+ /**
+ * 来源类型 1-社区 2-评论
+ */
+
+ COMMENT(2),
+ SOCIAL(1),
+
+ ;
+
+ private final int value;
+
+ SocialSourceTypeEnum(int value) {
+ this.value = value;
+ }
+}
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/SocialTypeEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/SocialTypeEnum.java
new file mode 100644
index 0000000..bc93414
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/SocialTypeEnum.java
@@ -0,0 +1,25 @@
+package cc.mrbird.febs.common.enumerates;
+
+import lombok.Getter;
+
+/**
+ *
+ **/
+@Getter
+public enum SocialTypeEnum {
+
+ /**
+ * 操作类型 1-点赞 2-收藏
+ */
+
+ COLLECT(2),
+ LIKE(1),
+
+ ;
+
+ private final int value;
+
+ SocialTypeEnum(int value) {
+ this.value = value;
+ }
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesSocialController.java b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesSocialController.java
index 655e778..3f7f8a8 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesSocialController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesSocialController.java
@@ -45,6 +45,64 @@
return apiClothesSocialService.indexCategory();
}
+ @ApiOperation(value = "社区列表", notes = "社区列表")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = ApiAllSocialVo.class)
+ })
+ @PostMapping(value = "/allSocial")
+ public FebsResponse allSocial(@RequestBody @Validated ApiAllSocialDto dto) {
+
+ return apiClothesSocialService.allSocial(dto);
+ }
+
+ @ApiOperation(value = "社区详情", notes = "社区详情")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = ApiSocialInfoVo.class)
+ })
+ @PostMapping(value = "/socialInfo")
+ public FebsResponse socialInfo(@RequestBody @Validated ApiSocialInfoDto dto) {
+
+ return apiClothesSocialService.socialInfo(dto);
+ }
+
+ @ApiOperation(value = "分享到社区", notes = "分享到社区")
+ @PostMapping(value = "/socialAdd")
+ public FebsResponse socialAdd(@RequestBody @Validated ApiSocialAddDto dto) {
+
+ return apiClothesSocialService.socialAdd(dto);
+ }
+
+ @ApiOperation(value = "点赞(心形)", notes = "点赞(心形)")
+ @PostMapping(value = "/addLike")
+ public FebsResponse addLike(@RequestBody @Validated ApiSocialLikeAddDto dto) {
+
+ return apiClothesSocialService.addLike(dto);
+ }
+
+ @ApiOperation(value = "评论点赞(心形)", notes = "点赞(心形)")
+ @PostMapping(value = "/addCommentLike")
+ public FebsResponse addCommentLike(@RequestBody @Validated ApiSocialCommentLikeAddDto dto) {
+
+ return apiClothesSocialService.addCommentLike(dto);
+ }
+
+ @ApiOperation(value = "收藏(五角星)", notes = "收藏(五角星)")
+ @PostMapping(value = "/addCollect")
+ public FebsResponse addCollect(@RequestBody @Validated ApiSocialCollectAddDto dto) {
+
+ return apiClothesSocialService.addCollect(dto);
+ }
+
+ @ApiOperation(value = "我的灵感-跳转到开始设计", notes = "我的灵感-跳转到开始设计")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = ApiClothesSocialMuseVo.class)
+ })
+ @PostMapping(value = "/museToDesign")
+ public FebsResponse museToDesign(@RequestBody @Validated ApiClothesSocialMuseDto dto) {
+
+ return apiClothesSocialService.museToDesign(dto);
+ }
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java
index 5163636..1884665 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java
@@ -13,6 +13,9 @@
import cc.mrbird.febs.mall.vo.clothes.AdminClothesTypeInfoVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSON;
+import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
@@ -147,6 +150,13 @@
.eq(ClothesSocialMuse::getSocialId, clothesSocial.getId())
.last("LIMIT 1")
);
+
+ String patternRemark = clothesSocialMuse.getPatternRemark();
+ if(StrUtil.isNotBlank(patternRemark)){
+ JSON parse = JSONUtil.parse(patternRemark);
+ clothesSocialMuse.setPatternText(parse.getByPath("text", String.class));
+ clothesSocialMuse.setPatternImage(parse.getByPath("file", String.class));
+ }
model.addAttribute("socialMuse", clothesSocialMuse);
return FebsUtil.view("modules/clothesType/socialMuseUpdate");
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiAllSocialDto.java b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiAllSocialDto.java
new file mode 100644
index 0000000..6c68862
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiAllSocialDto.java
@@ -0,0 +1,26 @@
+package cc.mrbird.febs.mall.dto.clothes;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiAllSocialDto", description = "参数")
+public class ApiAllSocialDto {
+
+ @NotNull(message = "页码不能为空")
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer pageNow;
+
+ @NotNull(message = "每页数量不能为空")
+ @ApiModelProperty(value = "每页数量", example = "10")
+ private Integer pageSize;
+
+
+ @NotNull(message = "分类不能为空")
+ @ApiModelProperty(value = "分类ID,查询全部传0")
+ private Long categoryId;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesSocialMuseDto.java b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesSocialMuseDto.java
new file mode 100644
index 0000000..9c9d881
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesSocialMuseDto.java
@@ -0,0 +1,16 @@
+package cc.mrbird.febs.mall.dto.clothes;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+@Data
+@ApiModel(value = "ApiClothesSocialMuseDto", description = "参数")
+public class ApiClothesSocialMuseDto {
+
+ @NotNull(message = "灵感不能为空")
+ @ApiModelProperty(value = "灵感ID")
+ private Long museId;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialAddDto.java b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialAddDto.java
new file mode 100644
index 0000000..f047d86
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialAddDto.java
@@ -0,0 +1,33 @@
+package cc.mrbird.febs.mall.dto.clothes;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.util.List;
+
+@Data
+@ApiModel(value = "ApiSocialAddDto", description = "参数")
+public class ApiSocialAddDto {
+
+ @NotNull(message = "订单不能为空")
+ @ApiModelProperty(value = "订单ID")
+ private Long orderId;
+ @NotBlank(message = "标题不能为空")
+ @ApiModelProperty(value = "标题")
+ private String title;
+ @NotBlank(message = "封面不能为空")
+ @ApiModelProperty(value = "封面")
+ private String indexFile;
+ @Size(min = 1, message = "正文图片最少一张")
+ @Size(max = 6, message = "正文图片最多六张")
+ @ApiModelProperty(value = "正文图片")
+ private List<String> contentFile;
+ @NotEmpty(message = "正文不能为空")
+ @ApiModelProperty(value = "正文")
+ private String content;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialCollectAddDto.java b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialCollectAddDto.java
new file mode 100644
index 0000000..e74aef5
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialCollectAddDto.java
@@ -0,0 +1,16 @@
+package cc.mrbird.febs.mall.dto.clothes;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiSocialCollectAddDto", description = "参数")
+public class ApiSocialCollectAddDto {
+
+ @NotNull(message = "社区不能为空")
+ @ApiModelProperty(value = "社区ID")
+ private Long socialId;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialCommentLikeAddDto.java b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialCommentLikeAddDto.java
new file mode 100644
index 0000000..0acc51a
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialCommentLikeAddDto.java
@@ -0,0 +1,20 @@
+package cc.mrbird.febs.mall.dto.clothes;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiSocialCommentLikeAddDto", description = "参数")
+public class ApiSocialCommentLikeAddDto {
+
+ @NotNull(message = "社区不能为空")
+ @ApiModelProperty(value = "社区ID")
+ private Long socialId;
+
+ @NotNull(message = "评论ID不能为空")
+ @ApiModelProperty(value = "评论ID")
+ private Long commentId;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialInfoDto.java
new file mode 100644
index 0000000..fda9a9a
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialInfoDto.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.mall.dto.clothes;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiMyDraftSaveDto", description = "参数")
+public class ApiSocialInfoDto {
+
+ @NotNull(message = "社区不能为空")
+ @ApiModelProperty(value = "社区ID")
+ private Long socialId;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialLikeAddDto.java b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialLikeAddDto.java
new file mode 100644
index 0000000..0cccdf1
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialLikeAddDto.java
@@ -0,0 +1,16 @@
+package cc.mrbird.febs.mall.dto.clothes;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiSocialLikeAddDto", description = "参数")
+public class ApiSocialLikeAddDto {
+
+ @NotNull(message = "社区不能为空")
+ @ApiModelProperty(value = "社区ID")
+ private Long socialId;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/ClothesOrderItem.java b/src/main/java/cc/mrbird/febs/mall/entity/ClothesOrderItem.java
index 5f3b7db..4772d8c 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/ClothesOrderItem.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/ClothesOrderItem.java
@@ -22,6 +22,7 @@
*/
private Long memberId;
private Long orderId;
+ private Long itemId;
private String name;
private BigDecimal price;
private Integer itemCnt;
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialComment.java b/src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialComment.java
new file mode 100644
index 0000000..fad2d91
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialComment.java
@@ -0,0 +1,24 @@
+package cc.mrbird.febs.mall.entity;
+
+import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("clothes_social_comment")
+public class ClothesSocialComment extends BaseEntity {
+ /**
+ *
+ `member_id` bigint(20) DEFAULT NULL,
+ `social_id` bigint(20) DEFAULT NULL COMMENT '来源ID',
+ `parent_id` bigint(20) DEFAULT NULL COMMENT '来源选项ID',
+ `comment` text COMMENT '评论',
+ `show_state` int(11) DEFAULT '0' COMMENT '展示状态 1:显示 0:隐藏',
+ */
+
+ private Long memberId;
+ private Long socialId;
+ private Long parentId;
+ private String comment;
+ private Integer showState;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialFollow.java b/src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialFollow.java
new file mode 100644
index 0000000..5db2fa3
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialFollow.java
@@ -0,0 +1,23 @@
+package cc.mrbird.febs.mall.entity;
+
+import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("clothes_social_follow")
+public class ClothesSocialFollow extends BaseEntity {
+ /**
+ *
+ `member_id` bigint(20) DEFAULT NULL,
+ `source_type` int(11) DEFAULT NULL COMMENT '来源类型 1-社区 2-评论',
+ `source_id` bigint(20) DEFAULT NULL COMMENT '来源ID',
+ `source_option_id` bigint(20) DEFAULT NULL COMMENT '来源选项ID',
+ `type` int(11) DEFAULT NULL COMMENT '操作类型 1-关注 2-点赞',
+ */
+ private Long memberId;
+ private Integer sourceType;
+ private Long sourceId;
+ private Long sourceOptionId;
+ private Integer type;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialMuse.java b/src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialMuse.java
index f36051d..f1baea9 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialMuse.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/ClothesSocialMuse.java
@@ -1,6 +1,7 @@
package cc.mrbird.febs.mall.entity;
import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -24,6 +25,14 @@
private Long statureId;
private Long sizeId;
private Long patternId;
+ private String patternRemark;
private Long locationId;
private Long clothId;
+
+
+
+ @TableField(exist = false)
+ private String patternText;
+ @TableField(exist = false)
+ private String patternImage;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialCommentMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialCommentMapper.java
new file mode 100644
index 0000000..46e2bc6
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialCommentMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.mall.mapper;
+
+import cc.mrbird.febs.mall.entity.ClothesSocialComment;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface ClothesSocialCommentMapper extends BaseMapper<ClothesSocialComment> {
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialFollowMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialFollowMapper.java
new file mode 100644
index 0000000..46b89a5
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialFollowMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.mall.mapper;
+
+import cc.mrbird.febs.mall.entity.ClothesSocialFollow;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface ClothesSocialFollowMapper extends BaseMapper<ClothesSocialFollow> {
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialMapper.java
index 049fa25..a8b57a6 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/ClothesSocialMapper.java
@@ -1,8 +1,10 @@
package cc.mrbird.febs.mall.mapper;
import cc.mrbird.febs.mall.dto.clothes.AdminClothesSocialListDto;
+import cc.mrbird.febs.mall.dto.clothes.ApiAllSocialDto;
import cc.mrbird.febs.mall.entity.ClothesSocial;
import cc.mrbird.febs.mall.vo.clothes.AdminClothesSocialListVo;
+import cc.mrbird.febs.mall.vo.clothes.ApiAllSocialVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,4 +13,6 @@
public interface ClothesSocialMapper extends BaseMapper<ClothesSocial> {
IPage<AdminClothesSocialListVo> selectSocialListInPage(Page<AdminClothesSocialListVo> page, @Param("record")AdminClothesSocialListDto dto);
+
+ Page<ApiAllSocialVo> selectPageInSocial(Page<ApiAllSocialVo> page, @Param("record")ApiAllSocialDto dto);
}
\ No newline at end of file
diff --git a/src/main/java/cc/mrbird/febs/mall/service/ApiClothesSocialService.java b/src/main/java/cc/mrbird/febs/mall/service/ApiClothesSocialService.java
index 4549801..48ae8c6 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/ApiClothesSocialService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/ApiClothesSocialService.java
@@ -1,6 +1,7 @@
package cc.mrbird.febs.mall.service;
import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.mall.dto.clothes.*;
import cc.mrbird.febs.mall.entity.ClothesSocial;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -8,4 +9,18 @@
FebsResponse allCategory();
FebsResponse indexCategory();
+
+ FebsResponse allSocial(ApiAllSocialDto dto);
+
+ FebsResponse socialInfo(ApiSocialInfoDto dto);
+
+ FebsResponse socialAdd(ApiSocialAddDto dto);
+
+ FebsResponse addLike(ApiSocialLikeAddDto dto);
+
+ FebsResponse addCommentLike(ApiSocialCommentLikeAddDto dto);
+
+ FebsResponse addCollect(ApiSocialCollectAddDto dto);
+
+ FebsResponse museToDesign(ApiClothesSocialMuseDto dto);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java
index e4df4fe..d5beead 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java
@@ -387,6 +387,7 @@
if (ObjectUtil.isNull(cloth)) {
throw new FebsException("请选择布料");
}
+ orderItem.setItemId(cloth.getId());
orderItem.setName(cloth.getName());
orderItem.setPrice(cloth.getPrice());
orderItem.setItemCnt(item.getCnt());
@@ -400,6 +401,7 @@
if (ObjectUtil.isNull(size)) {
throw new FebsException("请选择尺寸");
}
+ orderItem.setItemId(size.getId());
orderItem.setName(size.getName());
orderItem.setPrice(size.getPrice());
orderItem.setItemCnt(item.getCnt());
@@ -413,6 +415,7 @@
if (ObjectUtil.isNull(location)) {
throw new FebsException("请选择图案位置");
}
+ orderItem.setItemId(location.getId());
orderItem.setName(location.getName());
orderItem.setPrice(location.getPrice());
orderItem.setItemCnt(item.getCnt());
@@ -426,6 +429,7 @@
if (ObjectUtil.isNull(pattern)) {
throw new FebsException("请选择图案");
}
+ orderItem.setItemId(pattern.getId());
orderItem.setRemark(item.getPatternRemark());
orderItem.setName(pattern.getName());
orderItem.setPrice(pattern.getPrice());
@@ -440,6 +444,7 @@
if (ObjectUtil.isNull(art)) {
throw new FebsException("请选择工艺");
}
+ orderItem.setItemId(art.getId());
orderItem.setName(art.getName());
orderItem.setPrice(art.getPrice());
orderItem.setItemCnt(item.getCnt());
@@ -450,6 +455,7 @@
continue;
} else if (ClothesOrderItemEnum.CUSTOMIZE.getCode() == item.getType()) {
ClothesMemberStature clothesMemberStature = clothesMemberStatureMapper.selectById(item.getSkuId());
+ orderItem.setItemId(clothesMemberStature.getId());
orderItem.setName(clothesMemberStature.getName());
orderItem.setPrice(BigDecimal.ZERO);
orderItem.setItemCnt(item.getCnt());
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java
index cad4aab..69b2836 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java
@@ -1,26 +1,35 @@
package cc.mrbird.febs.mall.service.impl;
import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.common.enumerates.ClothesEnum;
-import cc.mrbird.febs.common.enumerates.StateUpDownEnum;
-import cc.mrbird.febs.mall.entity.ClothesSocial;
-import cc.mrbird.febs.mall.entity.ClothesSocialCategory;
-import cc.mrbird.febs.mall.entity.HappySocialCircleCategory;
-import cc.mrbird.febs.mall.mapper.ClothesSocialCategoryMapper;
-import cc.mrbird.febs.mall.mapper.ClothesSocialMapper;
+import cc.mrbird.febs.common.enumerates.*;
+import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.common.utils.LoginUserUtil;
+import cc.mrbird.febs.mall.dto.clothes.*;
+import cc.mrbird.febs.mall.entity.*;
+import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.ApiClothesSocialService;
import cc.mrbird.febs.mall.vo.activity.ApiScCategoryInfoVo;
-import cc.mrbird.febs.mall.vo.clothes.ApiClothesCategoryInfoVo;
+import cc.mrbird.febs.mall.vo.clothes.*;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSON;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
@Slf4j
@Service
@@ -28,7 +37,29 @@
public class ApiClothesSocialServiceImpl extends ServiceImpl<ClothesSocialMapper, ClothesSocial> implements ApiClothesSocialService {
private final ClothesSocialMapper clothesSocialMapper;
+ private final ClothesSocialFileMapper clothesSocialFileMapper;
+ private final ClothesSocialMuseMapper clothesSocialMuseMapper;
private final ClothesSocialCategoryMapper clothesSocialCategoryMapper;
+ private final MallMemberMapper mallMemberMapper;
+
+
+ private final ClothesTypeMapper clothesTypeMapper;
+ private final ClothesSizeMapper clothesSizeMapper;
+ private final ClothesPatternMapper clothesPatternMapper;
+ private final ClothesLocationMapper clothesLocationMapper;
+ private final ClothesClothMapper clothesClothMapper;
+ private final ClothesArtMapper clothesArtMapper;
+ private final ClothesOrderMapper clothesOrderMapper;
+ private final ClothesOrderItemMapper clothesOrderItemMapper;
+ private final ClothesSocialFollowMapper clothesSocialFollowMapper;
+
+
+ private final ClothesTypeClothMapper clothesTypeClothMapper;
+ private final ClothesTypePatternMapper clothesTypePatternMapper;
+ private final ClothesTypeSizeMapper clothesTypeSizeMapper;
+ private final ClothesTypeLocationMapper clothesTypeLocationMapper;
+ private final ClothesTypeArtMapper clothesTypeArtMapper;
+
@Override
public FebsResponse allCategory() {
@@ -72,4 +103,331 @@
}
return new FebsResponse().success().data(vos);
}
+
+ @Override
+ public FebsResponse allSocial(ApiAllSocialDto dto) {
+ // 创建分页对象,传入当前页和每页大小
+ Page<ApiAllSocialVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
+ // 调用Mapper方法获取活动分页数据
+ Page<ApiAllSocialVo> voPage = clothesSocialMapper.selectPageInSocial(page, dto);
+
+ return new FebsResponse().success().data(voPage);
+ }
+
+ @Override
+ public FebsResponse socialInfo(ApiSocialInfoDto dto) {
+ ApiSocialInfoVo apiSocialInfoVo = new ApiSocialInfoVo();
+ Long socialId = dto.getSocialId();
+ ClothesSocial clothesSocial = clothesSocialMapper.selectById(socialId);
+ if(ObjectUtil.isNotNull(clothesSocial)){
+ MallMember mallMember = mallMemberMapper.selectById(clothesSocial.getMemberId());
+ apiSocialInfoVo.setId(clothesSocial.getId());
+ apiSocialInfoVo.setMemberName(mallMember.getName());
+ apiSocialInfoVo.setMemberAvatar(mallMember.getAvatar());
+ apiSocialInfoVo.setName(clothesSocial.getName());
+ apiSocialInfoVo.setContent(clothesSocial.getContent());
+ apiSocialInfoVo.setCreatedTime(clothesSocial.getCreatedTime());
+
+ List<ClothesSocialFile> clothesSocialFiles = clothesSocialFileMapper.selectList(
+ Wrappers.lambdaQuery(ClothesSocialFile.class)
+ .select(ClothesSocialFile::getFileUrl)
+ .eq(ClothesSocialFile::getSocialId, socialId)
+ .orderByAsc(ClothesSocialFile::getSeq)
+ );
+ if(CollUtil.isNotEmpty(clothesSocialFiles)){
+ apiSocialInfoVo.setImages(clothesSocialFiles.stream().map(ClothesSocialFile::getFileUrl).collect(Collectors.toList()));
+ }
+
+ ApiSocialMuseVo apiSocialMuseVo = new ApiSocialMuseVo();
+ ClothesSocialMuse clothesSocialMuse = clothesSocialMuseMapper.selectOne(
+ Wrappers.lambdaQuery(ClothesSocialMuse.class)
+ .eq(ClothesSocialMuse::getSocialId, socialId)
+ .last("LIMIT 1")
+ );
+ if(ObjectUtil.isNotNull(clothesSocialMuse)){
+ BigDecimal totalAmount = BigDecimal.ZERO;
+ apiSocialMuseVo.setMuseId(clothesSocialMuse.getId());
+
+ apiSocialMuseVo.setPatternImage(clothesSocialMuse.getPatternImage());
+ apiSocialMuseVo.setPatternText(clothesSocialMuse.getPatternText());
+
+ ClothesType clothesType = clothesTypeMapper.selectById(clothesSocialMuse.getTypeId());
+ if(ObjectUtil.isNotNull(clothesType)){
+ apiSocialMuseVo.setTypeName(clothesType.getName());
+ apiSocialMuseVo.setTypeImg(clothesType.getImage());
+ }
+ ClothesSize clothesSize = clothesSizeMapper.selectById(clothesSocialMuse.getSizeId());
+ if(ObjectUtil.isNotNull(clothesSize)){
+ apiSocialMuseVo.setSizeName(clothesSize.getName());
+ totalAmount = totalAmount.add(clothesSize.getPrice());
+ }
+ ClothesPattern clothesPattern = clothesPatternMapper.selectById(clothesSocialMuse.getPatternId());
+ if(ObjectUtil.isNotNull(clothesPattern)){
+ apiSocialMuseVo.setPatternName(clothesPattern.getName());
+ totalAmount = totalAmount.add(clothesPattern.getPrice());
+ }
+ ClothesLocation clothesLocation = clothesLocationMapper.selectById(clothesSocialMuse.getLocationId());
+ if(ObjectUtil.isNotNull(clothesLocation)){
+ apiSocialMuseVo.setLocationName(clothesLocation.getName());
+ totalAmount = totalAmount.add(clothesLocation.getPrice());
+ }
+ ClothesCloth clothesCloth = clothesClothMapper.selectById(clothesSocialMuse.getClothId());
+ if(ObjectUtil.isNotNull(clothesCloth)){
+ apiSocialMuseVo.setClothName(clothesCloth.getName());
+ totalAmount = totalAmount.add(clothesCloth.getPrice());
+ }
+ ClothesArt clothesArt = clothesArtMapper.selectById(clothesSocialMuse.getArtId());
+ if(ObjectUtil.isNotNull(clothesArt)){
+ apiSocialMuseVo.setArtName(clothesArt.getName());
+ totalAmount = totalAmount.add(clothesArt.getPrice());
+ }
+ apiSocialMuseVo.setTotalAmount(totalAmount.setScale(2, RoundingMode.DOWN));
+ }
+ }
+
+
+ return new FebsResponse().success().data(apiSocialInfoVo);
+ }
+
+ @Override
+ @Transactional
+ public FebsResponse socialAdd(ApiSocialAddDto dto) {
+
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ Long orderId = dto.getOrderId();
+ ClothesOrder order = clothesOrderMapper.selectOne(
+ Wrappers.lambdaQuery(ClothesOrder.class)
+ .eq(ClothesOrder::getId, orderId)
+ .eq(ClothesOrder::getMemberId, memberId)
+ );
+ if(ObjectUtil.isNull( order)){
+ throw new FebsException("请选择订单");
+ }
+ if(ClothesOrderStatusEnum.FINISH.getValue() != order.getStatus()){
+ throw new FebsException("订单未确认收货");
+ }
+
+ String content = dto.getContent();
+ List<String> contentFile = dto.getContentFile();
+ String indexFile = dto.getIndexFile();
+ String title = dto.getTitle();
+
+ ClothesSocial clothesSocial = new ClothesSocial();
+ clothesSocial.setMemberId(memberId);
+ clothesSocial.setName(title);
+ clothesSocial.setContent(content);
+ clothesSocial.setIndexFile(indexFile);
+ clothesSocialMapper.insert(clothesSocial);
+
+ if(CollUtil.isNotEmpty(contentFile)){
+ int i = 0;
+ for (String file : contentFile){
+ ClothesSocialFile clothesSocialFile = new ClothesSocialFile();
+ clothesSocialFile.setSocialId(clothesSocial.getId());
+ clothesSocialFile.setFileUrl(file);
+ clothesSocialFile.setSeq(i);
+ clothesSocialFileMapper.insert(clothesSocialFile);
+ i++;
+ }
+ }
+
+ ClothesSocialMuse clothesSocialMuse = new ClothesSocialMuse();
+ clothesSocialMuse.setSocialId(clothesSocial.getId());
+ clothesSocialMuse.setTypeId(order.getTypeId());
+
+ List<ClothesOrderItem> clothesOrderItems = clothesOrderItemMapper.selectList(
+ Wrappers.lambdaQuery(ClothesOrderItem.class)
+ .eq(ClothesOrderItem::getOrderId, orderId)
+ );
+ if(CollUtil.isEmpty(clothesOrderItems)){
+ for (ClothesOrderItem item : clothesOrderItems){
+ if (ClothesOrderItemEnum.CLOTH.getCode() == item.getType()) {
+ ClothesCloth cloth = clothesClothMapper.selectById(item.getItemId());
+ clothesSocialMuse.setClothId(cloth.getId());
+ continue;
+ } else if (ClothesOrderItemEnum.SIZE.getCode() == item.getType()) {
+ ClothesSize size = clothesSizeMapper.selectById(item.getItemId());
+ clothesSocialMuse.setSizeId(size.getId());
+ continue;
+ } else if (ClothesOrderItemEnum.LOCATION.getCode() == item.getType()) {
+ ClothesLocation location = clothesLocationMapper.selectById(item.getItemId());
+ clothesSocialMuse.setLocationId(location.getId());
+ continue;
+ } else if (ClothesOrderItemEnum.PATTERN.getCode() == item.getType()) {
+ ClothesPattern pattern = clothesPatternMapper.selectById(item.getItemId());
+ clothesSocialMuse.setPatternId(pattern.getId());
+ clothesSocialMuse.setPatternRemark(item.getRemark());
+ continue;
+ } else if (ClothesOrderItemEnum.ART.getCode() == item.getType()) {
+ ClothesArt art = clothesArtMapper.selectById(item.getItemId());
+ clothesSocialMuse.setArtId(art.getId());
+ continue;
+ }else{
+ continue;
+ }
+ }
+ }
+ clothesSocialMuseMapper.insert(clothesSocialMuse);
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public FebsResponse addLike(ApiSocialLikeAddDto dto) {
+
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ Long socialId = dto.getSocialId();
+ ClothesSocial clothesSocial = clothesSocialMapper.selectById(socialId);
+ if(ObjectUtil.isNotNull(clothesSocial)){
+ ClothesSocialFollow clothesSocialFollow = new ClothesSocialFollow();
+ clothesSocialFollow.setMemberId(memberId);
+ clothesSocialFollow.setSourceType(SocialSourceTypeEnum.SOCIAL.getValue());
+ clothesSocialFollow.setSourceId(socialId);
+ clothesSocialFollow.setType(SocialTypeEnum.LIKE.getValue());
+ clothesSocialFollowMapper.insert(clothesSocialFollow);
+ }
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public FebsResponse addCommentLike(ApiSocialCommentLikeAddDto dto) {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ Long socialId = dto.getSocialId();
+ ClothesSocial clothesSocial = clothesSocialMapper.selectById(socialId);
+ if(ObjectUtil.isNotNull(clothesSocial)){
+ ClothesSocialFollow clothesSocialFollow = new ClothesSocialFollow();
+ clothesSocialFollow.setMemberId(memberId);
+ clothesSocialFollow.setSourceType(SocialSourceTypeEnum.COMMENT.getValue());
+ clothesSocialFollow.setSourceId(socialId);
+ clothesSocialFollow.setSourceOptionId(dto.getCommentId());
+ clothesSocialFollow.setType(SocialTypeEnum.LIKE.getValue());
+ clothesSocialFollowMapper.insert(clothesSocialFollow);
+ }
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public FebsResponse addCollect(ApiSocialCollectAddDto dto) {
+
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ Long socialId = dto.getSocialId();
+ ClothesSocial clothesSocial = clothesSocialMapper.selectById(socialId);
+ if(ObjectUtil.isNotNull(clothesSocial)){
+ ClothesSocialFollow clothesSocialFollow = new ClothesSocialFollow();
+ clothesSocialFollow.setMemberId(memberId);
+ clothesSocialFollow.setSourceType(SocialSourceTypeEnum.SOCIAL.getValue());
+ clothesSocialFollow.setSourceId(socialId);
+ clothesSocialFollow.setType(SocialTypeEnum.COLLECT.getValue());
+ clothesSocialFollowMapper.insert(clothesSocialFollow);
+ }
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public FebsResponse museToDesign(ApiClothesSocialMuseDto dto) {
+
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ ApiClothesSocialMuseVo record = new ApiClothesSocialMuseVo();
+
+ Long id = dto.getMuseId();
+ ClothesSocialMuse entity = clothesSocialMuseMapper.selectById(id);
+
+
+ if (ObjectUtil.isNotNull(entity)){
+ Long typeId = entity.getTypeId();
+ ClothesType clothesType = clothesTypeMapper.selectById(typeId);
+ record.setTypeId(typeId);
+ record.setTypeName(clothesType.getName());
+ record.setTypeImage(clothesType.getImage());
+ record.setPatternRemark(entity.getPatternRemark());
+
+ Long sizeId = ObjectUtil.defaultIfNull(entity.getSizeId(),0L);
+ List<ClothesTypeSize> clothesTypeSizes = clothesTypeSizeMapper.selectList(Wrappers.<ClothesTypeSize>lambdaQuery().eq(ClothesTypeSize::getTypeId, typeId));
+ if (CollUtil.isNotEmpty(clothesTypeSizes)){
+ Set<Long> collect = clothesTypeSizes.stream().map(ClothesTypeSize::getSizeId).collect(Collectors.toSet());
+ if(CollUtil.isNotEmpty( collect) && collect.contains(sizeId)){
+ ClothesSize clothesSize = clothesSizeMapper.selectById(sizeId);
+ if(ObjectUtil.isNotNull(clothesSize)){
+ record.setSizeId(sizeId);
+ record.setSizeName(clothesSize.getName());
+ record.setSizePrice(clothesSize.getPrice());
+ }
+ }
+ }
+
+ Long patternId = ObjectUtil.defaultIfNull(entity.getPatternId(),0L);
+ List<ClothesTypePattern> clothesTypePatterns = clothesTypePatternMapper.selectList(Wrappers.<ClothesTypePattern>lambdaQuery().eq(ClothesTypePattern::getTypeId, typeId));
+ if (CollUtil.isNotEmpty(clothesTypePatterns)){
+ Set<Long> patternIds = clothesTypePatterns.stream().map(ClothesTypePattern::getPatternId).collect(Collectors.toSet());
+ if(CollUtil.isNotEmpty( patternIds) && patternIds.contains(patternId)){
+ ClothesPattern clothesPattern = clothesPatternMapper.selectById(patternId);
+ if (ObjectUtil.isNotNull(clothesPattern)){
+ record.setPatternId(patternId);
+ record.setPatternName(clothesPattern.getName());
+ record.setPatternPrice(clothesPattern.getPrice());
+ }
+ }
+ }
+
+ Long locationId = ObjectUtil.defaultIfNull(entity.getLocationId(),0L);
+ List<ClothesTypeLocation> clothesTypeLocations = clothesTypeLocationMapper.selectList(Wrappers.<ClothesTypeLocation>lambdaQuery().eq(ClothesTypeLocation::getTypeId, typeId));
+ if (CollUtil.isNotEmpty(clothesTypeLocations)){
+ Set<Long> locationIds = clothesTypeLocations.stream().map(ClothesTypeLocation::getLocationId).collect(Collectors.toSet());
+ if(CollUtil.isNotEmpty( locationIds) && locationIds.contains(locationId)){
+ ClothesLocation clothesLocation = clothesLocationMapper.selectById(locationId);
+ if (ObjectUtil.isNotNull(clothesLocation)){
+ record.setLocationId(locationId);
+ record.setLocationName(clothesLocation.getName());
+ record.setLocationPrice(clothesLocation.getPrice());
+ }
+ }
+ }
+
+ Long artId = ObjectUtil.defaultIfNull(entity.getArtId(),0L);
+ List<ClothesTypeArt> clothesTypeArts = clothesTypeArtMapper.selectList(Wrappers.lambdaQuery(ClothesTypeArt.class).eq(ClothesTypeArt::getTypeId, typeId));
+ if(CollUtil.isNotEmpty(clothesTypeArts)){
+ Set<Long> artIds = clothesTypeArts.stream().map(ClothesTypeArt::getArtId).collect(Collectors.toSet());
+ if (CollUtil.isNotEmpty(artIds) && artIds.contains(artId)){
+ ClothesArt clothesArt = clothesArtMapper.selectById(artId);
+ if (ObjectUtil.isNotNull(clothesArt)){
+ record.setArtId(artId);
+ record.setArtName(clothesArt.getName());
+ record.setArtPrice(clothesArt.getPrice());
+ }
+ }
+ }
+
+ Long clothId = ObjectUtil.defaultIfNull(entity.getClothId(),0L);
+ List<ClothesTypeCloth> clothesTypeCloths = clothesTypeClothMapper.selectList(Wrappers.lambdaQuery(ClothesTypeCloth.class).eq(ClothesTypeCloth::getTypeId, typeId));
+ if(CollUtil.isNotEmpty(clothesTypeCloths)){
+ Set<Long> clothIds = clothesTypeCloths.stream().map(ClothesTypeCloth::getClothId).collect(Collectors.toSet());
+ if (CollUtil.isNotEmpty(clothIds) && clothIds.contains(clothId)){
+ ClothesCloth clothesCloth = clothesClothMapper.selectById(clothId);
+ if (ObjectUtil.isNotNull(clothesCloth)){
+ record.setClothId(clothId);
+ record.setClothName(clothesCloth.getName());
+ record.setClothPrice(clothesCloth.getPrice());
+ }
+ }
+ }
+
+ BigDecimal amount =
+ record.getClothPrice()
+ .add(record.getLocationPrice())
+ .add(record.getArtPrice())
+ .add(record.getSizePrice())
+ .add(record.getPatternPrice()).setScale(2, RoundingMode.DOWN);
+ record.setAmount(amount);
+ }
+
+ return new FebsResponse().success().data(record);
+ }
+
+ public static void main(String[] args) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.putByPath("text", "123");
+ jsonObject.putByPath("file", "https://excoin.oss-cn-hangzhou.aliyuncs.com/hc/175196952995698f416e2e70648328d04364340c3a36d.png");
+
+ String jsonStr = jsonObject.toString();
+ System.out.println(jsonStr);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java
index 6d6c591..f84f1a6 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java
@@ -24,6 +24,7 @@
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -1049,6 +1050,12 @@
entity.setSizeId(dto.getSizeId());
entity.setPatternId(dto.getPatternId());
entity.setArtId(dto.getArtId());
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.putByPath("text", dto.getPatternText());
+ jsonObject.putByPath("file", dto.getPatternImage());
+ entity.setPatternRemark(jsonObject.toString());
+
clothesSocialMuseMapper.updateById(entity);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiAllSocialVo.java b/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiAllSocialVo.java
new file mode 100644
index 0000000..a3a617f
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiAllSocialVo.java
@@ -0,0 +1,22 @@
+package cc.mrbird.febs.mall.vo.clothes;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiAllSocialVo", description = "参数")
+public class ApiAllSocialVo {
+
+ @ApiModelProperty(value = "id")
+ private Long id;
+ @ApiModelProperty(value = "用户")
+ private String memberName;
+ @ApiModelProperty(value = "头像")
+ private String memberAvatar;
+ @ApiModelProperty(value = "标题")
+ private String name;
+ @ApiModelProperty(value = "封面")
+ private String indexFile;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesSocialMuseVo.java b/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesSocialMuseVo.java
new file mode 100644
index 0000000..dc9db5f
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesSocialMuseVo.java
@@ -0,0 +1,63 @@
+package cc.mrbird.febs.mall.vo.clothes;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "ApiClothesSocialMuseVo", description = "参数")
+public class ApiClothesSocialMuseVo {
+
+ @ApiModelProperty(value = "灵感ID")
+ private Long id;
+
+ @ApiModelProperty(value = "总价")
+ private BigDecimal amount = BigDecimal.ZERO;
+
+ @ApiModelProperty(value = "类型ID")
+ private Long typeId;
+ @ApiModelProperty(value = "类型名称")
+ private String typeName;
+ @ApiModelProperty(value = "类型图片")
+ private String typeImage;
+
+ @ApiModelProperty(value = "工艺ID")
+ private Long artId;
+ @ApiModelProperty(value = "工艺名称")
+ private String artName;
+ @ApiModelProperty(value = "工艺价格")
+ private BigDecimal artPrice = BigDecimal.ZERO;
+
+ @ApiModelProperty(value = "尺码ID")
+ private Long sizeId;
+ @ApiModelProperty(value = "尺码名称")
+ private String sizeName;
+ @ApiModelProperty(value = "尺码价格")
+ private BigDecimal sizePrice = BigDecimal.ZERO;
+
+ @ApiModelProperty(value = "图案ID")
+ private Long patternId;
+ @ApiModelProperty(value = "图案名称")
+ private String patternName;
+ @ApiModelProperty(value = "图案价格")
+ private BigDecimal patternPrice = BigDecimal.ZERO;
+ @ApiModelProperty(value = "自定义内容")
+ private String patternRemark;
+
+ @ApiModelProperty(value = "图案位置ID")
+ private Long locationId;
+ @ApiModelProperty(value = "图案位置")
+ private String locationName;
+ @ApiModelProperty(value = "图案位置价格")
+ private BigDecimal locationPrice = BigDecimal.ZERO;
+
+ @ApiModelProperty(value = "布料ID")
+ private Long clothId;
+ @ApiModelProperty(value = "布料名称")
+ private String clothName;
+ @ApiModelProperty(value = "布料价格")
+ private BigDecimal clothPrice = BigDecimal.ZERO;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiSocialInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiSocialInfoVo.java
new file mode 100644
index 0000000..4708498
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiSocialInfoVo.java
@@ -0,0 +1,36 @@
+package cc.mrbird.febs.mall.vo.clothes;
+
+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;
+import java.util.List;
+
+@Data
+@ApiModel(value = "ApiSocialInfoVo", description = "参数")
+public class ApiSocialInfoVo {
+
+ @ApiModelProperty(value = "社区ID")
+ private Long id;
+
+ @ApiModelProperty(value = "用户")
+ private String memberName;
+ @ApiModelProperty(value = "头像")
+ private String memberAvatar;
+ @ApiModelProperty(value = "标题")
+ private String name;
+ @ApiModelProperty(value = "内容")
+ private String content;
+ @ApiModelProperty(value = "创建时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createdTime;
+ @ApiModelProperty(value = "内容图集")
+ private List<String> images;
+
+ @ApiModelProperty(value = "我的灵感")
+ private ApiSocialMuseVo muse;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiSocialMuseVo.java b/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiSocialMuseVo.java
new file mode 100644
index 0000000..382c54f
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiSocialMuseVo.java
@@ -0,0 +1,39 @@
+package cc.mrbird.febs.mall.vo.clothes;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "ApiSocialMuseVo", description = "参数")
+public class ApiSocialMuseVo {
+
+
+ @ApiModelProperty(value = "灵感ID")
+ private Long museId ;
+
+ @ApiModelProperty(value = "价格")
+ private BigDecimal totalAmount;
+ @ApiModelProperty(value = "设计类型")
+ private String typeName;
+ @ApiModelProperty(value = "设计类型图片")
+ private String typeImg;
+
+ @ApiModelProperty(value = "工艺名称")
+ private String artName;
+ @ApiModelProperty(value = "尺码名称")
+ private String sizeName;
+ @ApiModelProperty(value = "图案名称")
+ private String patternName;
+
+ @ApiModelProperty(value = "图案图片内容")
+ private String patternImage;
+ @ApiModelProperty(value = "图案文案内容")
+ private String patternText;
+ @ApiModelProperty(value = "图案位置名称")
+ private String locationName;
+ @ApiModelProperty(value = "布料名称")
+ private String clothName;
+}
diff --git a/src/main/resources/mapper/modules/ClothesSocialCommentMapper.xml b/src/main/resources/mapper/modules/ClothesSocialCommentMapper.xml
new file mode 100644
index 0000000..6cb717c
--- /dev/null
+++ b/src/main/resources/mapper/modules/ClothesSocialCommentMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cc.mrbird.febs.mall.mapper.ClothesSocialCommentMapper">
+
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/ClothesSocialFollowMapper.xml b/src/main/resources/mapper/modules/ClothesSocialFollowMapper.xml
new file mode 100644
index 0000000..54aec4b
--- /dev/null
+++ b/src/main/resources/mapper/modules/ClothesSocialFollowMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cc.mrbird.febs.mall.mapper.ClothesSocialFollowMapper">
+
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/ClothesSocialMapper.xml b/src/main/resources/mapper/modules/ClothesSocialMapper.xml
index 32aa9e2..aedfcd4 100644
--- a/src/main/resources/mapper/modules/ClothesSocialMapper.xml
+++ b/src/main/resources/mapper/modules/ClothesSocialMapper.xml
@@ -31,4 +31,25 @@
order by a.order_cnt asc, a.created_time desc
</select>
+ <select id="selectPageInSocial" resultType="cc.mrbird.febs.mall.vo.clothes.ApiAllSocialVo">
+ select
+ b.name as memberName,
+ b.avatar as memberAvatar,
+ a.id as id,
+ a.name as name,
+ a.index_file as indexFile
+ from clothes_social a
+ left join mall_member b on a.member_id = b.id
+ <where>
+ and a.state = 1
+ and a.del_flag = 0
+ <if test="record != null">
+ <if test="record.categoryId != 0">
+ and a.category_id = #{record.categoryId}
+ </if>
+ </if>
+ </where>
+ order by a.hot_state desc, a.created_time desc
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/clothesType/socialMuseUpdate.html b/src/main/resources/templates/febs/views/modules/clothesType/socialMuseUpdate.html
index f155b26..735c7a6 100644
--- a/src/main/resources/templates/febs/views/modules/clothesType/socialMuseUpdate.html
+++ b/src/main/resources/templates/febs/views/modules/clothesType/socialMuseUpdate.html
@@ -36,6 +36,39 @@
</div>
</div>
+
+ <div class="layui-row layui-col-space10 layui-form-item">
+ <div class="layui-col-lg6">
+ <label class="layui-form-label">图案-文字:</label>
+ <div class="layui-input-block">
+ <input type="text" name="patternText"
+ placeholder="" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ </div>
+ <div class="layui-row layui-col-space10 layui-form-item">
+ <div class="layui-col-lg6">
+ <label class="layui-form-label">图案-图片:</label>
+ <div class="layui-input-block">
+ <div class="layui-upload">
+ <button type="button" class="layui-btn layui-btn-normal layui-btn" id="patternImageUploadButton">上传</button>
+ <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
+ <div class="layui-upload-list" id="patternImageUpload"></div>
+ </blockquote>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-row layui-col-space10 layui-form-item febs-hide">
+ <div class="layui-col-lg6">
+ <label class="layui-form-label">图案:</label>
+ <div class="layui-input-block">
+ <input type="text" id="patternImage" name="patternImage" autocomplete="off" class="layui-input" readonly>
+ </div>
+ </div>
+ </div>
+
<div class="layui-row layui-col-space10 layui-form-item">
<div class="layui-col-lg6">
<label class="layui-form-label febs-form-item-require">位置:</label>
@@ -107,6 +140,23 @@
formSelects.render();
+
+ //图片上传
+ upload.render({
+ elem: '#patternImageUploadButton'
+ ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+ ,accept: 'file' //普通文件
+ ,size: 10240 //限制文件大小,单位 KB
+ ,before: function(obj){
+ //预读本地文件示例,不支持ie8
+ obj.preview(function(index, file, result){
+ $('#patternImageUpload').html('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image" style="width: 130px">')
+ });
+ }
+ ,done: function(res){
+ $("#patternImage").val(res.data.src);
+ }
+ });
let scArt = xmSelect.render({
el: '#sc-art',
@@ -266,8 +316,13 @@
form.val("sc-muse-update-form", {
"id": socialMuse.id,
+ "patternImage": socialMuse.patternImage,
+ "patternText": socialMuse.patternText,
});
+ $('#patternImageUpload').append('<img src="' + socialMuse.patternImage + '" alt="" class="layui-upload-img single-image" style="width: 130px">');
+ $("#patternImage").val(socialMuse.patternImage);
+
var artList = [];
artList.push(socialMuse.artId);
scArt.setValue(artList);
--
Gitblit v1.9.1