From 87b793dc328b8cd4a6263acc45bc7dcfdacf04d1 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 22 Jul 2025 10:52:05 +0800
Subject: [PATCH] feat(mall): 添加收藏、点赞、关注状态接口
---
src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java | 264 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 258 insertions(+), 6 deletions(-)
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 f52d65f..c585ba9 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
@@ -3,6 +3,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.enumerates.*;
+import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.properties.XcxProperties;
import cc.mrbird.febs.common.utils.SpringContextHolder;
import cc.mrbird.febs.common.utils.excl.ExcelSheetPO;
@@ -16,16 +17,14 @@
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo;
-import cc.mrbird.febs.mall.vo.clothes.AdminClothesLocationRemarkVo;
-import cc.mrbird.febs.mall.vo.clothes.AdminClothesOrderListVo;
-import cc.mrbird.febs.mall.vo.clothes.AdminClothesPatternRemarkVo;
-import cc.mrbird.febs.mall.vo.clothes.AdminClothesSocialListVo;
+import cc.mrbird.febs.mall.vo.clothes.*;
import cc.mrbird.febs.pay.util.WeixinServiceUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSON;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -44,6 +43,7 @@
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
@@ -66,14 +66,17 @@
private final ClothesTypePatternMapper clothesTypePatternMapper;
private final ClothesTypeLocationMapper clothesTypeLocationMapper;
private final ClothesOrderMapper clothesOrderMapper;
+ private final ClothesOrderItemMapper clothesOrderItemMapper;
private final MallExpressInfoMapper mallExpressInfoMapper;
private final ClothesSocialMapper clothesSocialMapper;
private final ClothesSocialFileMapper clothesSocialFileMapper;
private final ClothesSocialMuseMapper clothesSocialMuseMapper;
private final ClothesSocialCategoryMapper clothesSocialCategoryMapper;
+ private final ClothesMemberStatureMapper clothesMemberStatureMapper;
private final ClothesPatternRemarkMapper clothesPatternRemarkMapper;
private final ClothesLocationRemarkMapper clothesLocationRemarkMapper;
+ private final ClothesSocialCommentMapper clothesSocialCommentMapper;
private final IApiMallMemberWalletService memberWalletService;
private final IMallMoneyFlowService mallMoneyFlowService;
@@ -549,8 +552,8 @@
clothesOrderMapper.update(
null,
Wrappers.lambdaUpdate(ClothesOrder.class)
- .set(ClothesOrder::getStatus, ClothesOrderStatusEnum.CANCEL.getValue())
- .set(ClothesOrder::getUpdatedTime, new Date())
+ .set(ClothesOrder::getStatus, value)
+ .set(ClothesOrder::getUpdatedTime, date)
.eq(ClothesOrder::getId, id)
);
}
@@ -752,6 +755,13 @@
}
@Override
+ public IPage<AdminClothesSocialCommentVo> socialComment(ClothesSocialComment dto, QueryRequest request) {
+ Page<AdminClothesSocialCommentVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminClothesSocialCommentVo> vos = clothesSocialCommentMapper.selectSocialCommentListInPage(page, dto);
+ return vos;
+ }
+
+ @Override
public FebsResponse socialState(Long id, Integer state) {
ClothesSocial clothesSocial = clothesSocialMapper.selectById(id);
@@ -763,6 +773,39 @@
Wrappers.lambdaUpdate(ClothesSocial.class)
.set(ClothesSocial::getState, state)
.eq(ClothesSocial::getId, id)
+ );
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public FebsResponse commentStateSwitch(Long id, Integer state) {
+
+ ClothesSocial clothesSocial = clothesSocialMapper.selectById(id);
+ if(ObjectUtil.isNull(clothesSocial)){
+ throw new RuntimeException("内容不存在");
+ }
+ clothesSocialMapper.update(
+ null,
+ Wrappers.lambdaUpdate(ClothesSocial.class)
+ .set(ClothesSocial::getCommentState, state)
+ .eq(ClothesSocial::getId, id)
+ );
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public FebsResponse showStateSwitch(Long id, Integer state) {
+
+ ClothesSocialComment clothesSocialComment = clothesSocialCommentMapper.selectById(id);
+
+ if(ObjectUtil.isNull(clothesSocialComment)){
+ throw new RuntimeException("评论不存在");
+ }
+ clothesSocialCommentMapper.update(
+ null,
+ Wrappers.lambdaUpdate(ClothesSocialComment.class)
+ .set(ClothesSocialComment::getShowState, state)
+ .eq(ClothesSocialComment::getId, id)
);
return new FebsResponse().success().message("操作成功");
}
@@ -934,6 +977,8 @@
entity.setContent(dto.getContent());
entity.setIndexFile(dto.getIndexFile());
entity.setOrderCnt(dto.getOrderCnt());
+ entity.setLikeCnt(dto.getLikeCnt());
+ entity.setCollectCnt(dto.getCollectCnt());
clothesSocialMapper.updateById(entity);
@@ -1110,4 +1155,211 @@
return new FebsResponse().success().message("操作成功");
}
+ @Override
+ public FebsResponse printOrder(AdminClothesPrintOrderDto dto) {
+ HashMap<String, Object> objectObjectHashMap = new HashMap<>();
+ ClothesOrder order = clothesOrderMapper.selectById(dto.getId());
+ if (ObjectUtil.isNotNull(order)){
+ objectObjectHashMap.put("orderNo", order.getOrderNo());
+ }
+ ClothesType clothesType = clothesTypeMapper.selectById(order.getTypeId());
+ if (ObjectUtil.isNotNull(clothesType)) {
+ objectObjectHashMap.put("typeName", clothesType.getName());
+ objectObjectHashMap.put("typeFront", clothesType.getImageFront());
+ objectObjectHashMap.put("typeBack", clothesType.getImageBack());
+ }
+ List<ClothesOrderItem> clothesOrderItems = clothesOrderItemMapper.selectList(
+ Wrappers.lambdaQuery(ClothesOrderItem.class)
+ .eq(ClothesOrderItem::getOrderId, order.getId())
+ );
+ if(CollUtil.isNotEmpty(clothesOrderItems)){
+ for (ClothesOrderItem item : clothesOrderItems){
+ if (ClothesOrderItemEnum.CLOTH.getCode() == item.getType()) {
+ ClothesCloth cloth = clothesClothMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(cloth)) {
+ objectObjectHashMap.put("clothName", cloth.getName());
+ objectObjectHashMap.put("clothCode", cloth.getCode());
+ }
+ continue;
+ } else if (ClothesOrderItemEnum.SIZE.getCode() == item.getType()) {
+ ClothesSize size = clothesSizeMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(size)) {
+ objectObjectHashMap.put("sizeName", size.getName());
+ objectObjectHashMap.put("sizeCode", size.getCode());
+ }
+ continue;
+ } else if (ClothesOrderItemEnum.LOCATION.getCode() == item.getType()) {
+ ClothesLocation location = clothesLocationMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(location)) {
+ objectObjectHashMap.put("locationName", location.getName());
+ objectObjectHashMap.put("locationCode", location.getCode());
+
+ JSON parse = JSONUtil.parse(item.getRemark());
+ objectObjectHashMap.put("locationText", parse.getByPath("text", String.class));
+ objectObjectHashMap.put("locationImage", parse.getByPath("file", String.class));
+ }else{
+ objectObjectHashMap.put("locationName", "");
+ objectObjectHashMap.put("locationCode", "");
+ objectObjectHashMap.put("locationText", "");
+ objectObjectHashMap.put("locationImage", "");
+ }
+ continue;
+ } else if (ClothesOrderItemEnum.PATTERN.getCode() == item.getType()) {
+ ClothesPattern pattern = clothesPatternMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(pattern)) {
+ objectObjectHashMap.put("patternName", pattern.getName());
+ objectObjectHashMap.put("patternCode", pattern.getCode());
+
+ JSON parse = JSONUtil.parse(item.getRemark());
+ objectObjectHashMap.put("patternText", parse.getByPath("text", String.class));
+ objectObjectHashMap.put("patternImage", parse.getByPath("file", String.class));
+ }else{
+ objectObjectHashMap.put("patternName", "");
+ objectObjectHashMap.put("patternCode", "");
+ objectObjectHashMap.put("patternText", "");
+ objectObjectHashMap.put("patternImage", "");
+ }
+ continue;
+ } else if (ClothesOrderItemEnum.ART.getCode() == item.getType()) {
+ ClothesArt art = clothesArtMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(art)) {
+ objectObjectHashMap.put("artName", art.getName());
+ objectObjectHashMap.put("artCode", art.getCode());
+ }
+ continue;
+ } else if (ClothesOrderItemEnum.CUSTOMIZE.getCode() == item.getType()) {
+ ClothesMemberStature clothesMemberStature = clothesMemberStatureMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(clothesMemberStature)) {
+ objectObjectHashMap.put("statureName", clothesMemberStature.getName());
+ }
+ continue;
+ } else {
+ continue;
+ }
+ }
+ }
+ return new FebsResponse().success().data(objectObjectHashMap);
+ }
+
+ @Override
+ public AdminClothesPrintOrderVo printOrderEvent(AdminClothesPrintOrderDto dto) {
+
+ AdminClothesPrintOrderVo vo = new AdminClothesPrintOrderVo();
+
+ ClothesOrder order = clothesOrderMapper.selectById(dto.getId());
+ if (ObjectUtil.isNotNull(order)){
+ vo.setOrderNo(order.getOrderNo());
+ }
+ ClothesType clothesType = clothesTypeMapper.selectById(order.getTypeId());
+ if (ObjectUtil.isNotNull(clothesType)) {
+ vo.setTypeName(clothesType.getName());
+ vo.setTypeFront(clothesType.getImageFront());
+ vo.setTypeBack(clothesType.getImageBack());
+ }
+ List<ClothesOrderItem> clothesOrderItems = clothesOrderItemMapper.selectList(
+ Wrappers.lambdaQuery(ClothesOrderItem.class)
+ .eq(ClothesOrderItem::getOrderId, order.getId())
+ );
+ if(CollUtil.isNotEmpty(clothesOrderItems)){
+ String nullStr = "暂无";
+ List<AdminClothesPrintLocationVo> locations = new ArrayList<>();
+ List<AdminClothesPrintPatternVo> patterns = new ArrayList<>();
+ for (ClothesOrderItem item : clothesOrderItems){
+ if (ClothesOrderItemEnum.CLOTH.getCode() == item.getType()) {
+ ClothesCloth cloth = clothesClothMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(cloth)) {
+ vo.setClothCode(cloth.getCode());
+ vo.setClothName(cloth.getName());
+ }else{
+ vo.setClothCode(nullStr);
+ vo.setClothName(nullStr);
+ }
+ continue;
+ } else if (ClothesOrderItemEnum.SIZE.getCode() == item.getType()) {
+ ClothesSize size = clothesSizeMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(size)) {
+ vo.setSizeName(size.getName());
+ vo.setSizeCode(size.getCode());
+ }else {
+ vo.setSizeName(nullStr);
+ vo.setSizeCode(nullStr);
+ }
+ continue;
+ } else if (ClothesOrderItemEnum.LOCATION.getCode() == item.getType()) {
+ AdminClothesPrintLocationVo locationVo = new AdminClothesPrintLocationVo();
+ ClothesLocation location = clothesLocationMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(location)) {
+ locationVo.setLocationName(location.getName());
+ locationVo.setLocationCode(location.getCode());
+
+ JSON parse = JSONUtil.parse(item.getRemark());
+ locationVo.setLocationText(parse.getByPath("text", String.class));
+ locationVo.setLocationImage(parse.getByPath("file", String.class));
+ }else{
+ locationVo.setLocationName(nullStr);
+ locationVo.setLocationCode(nullStr);
+ locationVo.setLocationText(nullStr);
+ locationVo.setLocationImage(nullStr);
+ }
+ locations.add(locationVo);
+ vo.setLocations( locations);
+ continue;
+ } else if (ClothesOrderItemEnum.PATTERN.getCode() == item.getType()) {
+ AdminClothesPrintPatternVo patternVo = new AdminClothesPrintPatternVo();
+
+ ClothesPattern pattern = clothesPatternMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(pattern)) {
+ patternVo.setPatternName(pattern.getName());
+ patternVo.setPatternCode(pattern.getCode());
+
+ JSON parse = JSONUtil.parse(item.getRemark());
+ patternVo.setPatternText(parse.getByPath("text", String.class));
+ patternVo.setPatternImage(parse.getByPath("file", String.class));
+ }else{
+ patternVo.setPatternName(nullStr);
+ patternVo.setPatternCode(nullStr);
+ patternVo.setPatternText(nullStr);
+ patternVo.setPatternImage(nullStr);
+ }
+ patterns.add(patternVo);
+ vo.setPatterns( patterns);
+ continue;
+ } else if (ClothesOrderItemEnum.ART.getCode() == item.getType()) {
+ ClothesArt art = clothesArtMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(art)) {
+ vo.setArtName(art.getName());
+ vo.setArtCode(art.getCode());
+ }else{
+ vo.setArtName(nullStr);
+ vo.setArtCode(nullStr);
+ }
+ continue;
+ } else if (ClothesOrderItemEnum.CUSTOMIZE.getCode() == item.getType()) {
+ AdminClothesPrintMemberStatureVo memberStature = new AdminClothesPrintMemberStatureVo();
+ ClothesMemberStature clothesMemberStature = clothesMemberStatureMapper.selectById(item.getItemId());
+ if (ObjectUtil.isNotNull(clothesMemberStature)) {
+ memberStature.setName(clothesMemberStature.getName());
+ memberStature.setHeightLine(clothesMemberStature.getHeightLine());
+ memberStature.setBustLine(clothesMemberStature.getBustLine());
+ memberStature.setWaistLine(clothesMemberStature.getWaistLine());
+ memberStature.setWideLine(clothesMemberStature.getWideLine());
+ memberStature.setHipLine(clothesMemberStature.getHipLine());
+ }else{
+ memberStature.setName(nullStr);
+ memberStature.setHeightLine(BigDecimal.ZERO);
+ memberStature.setBustLine(BigDecimal.ZERO);
+ memberStature.setWaistLine(BigDecimal.ZERO);
+ memberStature.setWideLine(BigDecimal.ZERO);
+ memberStature.setHipLine(BigDecimal.ZERO);
+ }
+ vo.setMemberStature(memberStature);
+ continue;
+ } else {
+ continue;
+ }
+ }
+ }
+ return vo;
+ }
+
}
--
Gitblit v1.9.1