From 53fcee7adad8f6554648f833465291b15701955c Mon Sep 17 00:00:00 2001 From: yang <2119157836@qq.com> Date: Thu, 27 Mar 2025 11:37:59 +0800 Subject: [PATCH] =?UTF-8?q?refactor(resource):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=A8=A1=E5=9D=97=E7=82=B9=E8=B5=9E=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resource/MallProductController.java | 21 ++++++ .../com/mcwl/myInvitation/domain/Consume.java | 2 +- .../pay/service/impl/AliPayServiceImpl.java | 8 +-- .../mcwl/resource/domain/ModelProduct.java | 8 +++ .../mcwl/resource/domain/vo/ModelLikeVo.java | 3 + .../resource/mapper/ModelImageMapper.java | 10 +++ .../com/mcwl/resource/mapper/ModelMapper.java | 8 ++- .../mcwl/resource/mapper/WorkFlowMapper.java | 7 ++ .../impl/ModelImageLikeServiceImpl.java | 59 ++++----------- .../service/impl/ModelLikeServiceImpl.java | 72 +++++-------------- .../service/impl/WorkFlowLikeServiceImpl.java | 54 +++++--------- .../mapper/resource/ModelImageMapper.xml | 33 +++++++++ .../resources/mapper/resource/ModelMapper.xml | 31 ++++++++ .../mapper/resource/WorkFlowMapper.xml | 31 ++++++++ 14 files changed, 201 insertions(+), 146 deletions(-) diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java index 4d2bdfc..a864cf8 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java @@ -8,6 +8,9 @@ import com.mcwl.common.core.domain.AjaxResult; import com.mcwl.common.core.domain.R; import com.mcwl.common.core.page.TableDataInfo; import com.mcwl.common.utils.SecurityUtils; +import com.mcwl.communityCenter.service.InviteService; +import com.mcwl.myInvitation.domain.Consume; +import com.mcwl.myInvitation.service.ConsumeService; import com.mcwl.resource.domain.ModelProduct; import com.mcwl.resource.domain.ModelVersion; import com.mcwl.resource.domain.dto.ModelImagePageRes; @@ -25,6 +28,10 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; /** @@ -52,6 +59,9 @@ public class MallProductController extends BaseController { @Autowired private SysUserServiceImpl sysUserService; + @Autowired + private ConsumeService consumeService; + /** * 模型列表 @@ -71,6 +81,17 @@ public class MallProductController extends BaseController { RequestModel requestModel = new RequestModel(); ModelProduct modelVersion1 = modelService.getById(id); + Set productIdSet = consumeService.lambdaQuery() + .eq(Consume::getUserId, SecurityUtils.getUserId()) + .eq(Consume::getType, 0) + .list() + .parallelStream() + .map(Consume::getProductId) + .collect(Collectors.toSet()); + + Optional.ofNullable(modelVersion1) + .filter(m -> productIdSet.contains(m.getId())) + .ifPresent(m -> m.setIsBuy(1)); LambdaQueryWrapper modelVersionLambdaQueryWrapper = new LambdaQueryWrapper<>(); modelVersionLambdaQueryWrapper.eq(ModelVersion::getModelId,id); diff --git a/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Consume.java b/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Consume.java index 5f6639f..be0ec28 100644 --- a/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Consume.java +++ b/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Consume.java @@ -29,7 +29,7 @@ public class Consume extends BaseEntity { // 商品id private Long productId; - // 商品类型 + // 商品类型 0模型 1工作流 2图片 private Integer type; // 消费时间 diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java b/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java index ebda538..ce09600 100644 --- a/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java +++ b/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java @@ -324,10 +324,6 @@ public class AliPayServiceImpl implements AliPayService { // 收款方信息 Participant payeeInfo = new Participant(); - // 沙箱环境 -// payeeInfo.setIdentity("2088722057445020"); -// payeeInfo.setIdentityType("ALIPAY_USER_ID"); - // 线上环境 payeeInfo.setIdentity(sysUserPayAccount.getOpenId()); payeeInfo.setIdentityType("ALIPAY_OPEN_ID"); @@ -550,9 +546,7 @@ public class AliPayServiceImpl implements AliPayService { // 设置支付宝公钥,因为配置了证书,所以不需要设置支付宝公钥 // config.setAlipayPublicKey(aliConfig.getPublicKey()); - // 设置应用公钥证书路径(线上) -// config.setAppCertPath(getClass().getResource("/cert/appCertPublicKey.crt").getPath()); - // 设置应用公钥证书路径(沙箱) + // 设置应用公钥证书路径 config.setAppCertPath(aliConfig.getAppCertPath()); // 设置支付宝公钥证书路径 diff --git a/mcwl-resource/src/main/java/com/mcwl/resource/domain/ModelProduct.java b/mcwl-resource/src/main/java/com/mcwl/resource/domain/ModelProduct.java index d55e3ea..c93821a 100644 --- a/mcwl-resource/src/main/java/com/mcwl/resource/domain/ModelProduct.java +++ b/mcwl-resource/src/main/java/com/mcwl/resource/domain/ModelProduct.java @@ -167,4 +167,12 @@ public class ModelProduct extends BaseEntity { private Integer isLike; + /** + * 是否购买 + */ + @ApiModelProperty(value = "是否购买 0未购买 1购买") + @TableField(exist = false) + private Integer isBuy; + + } diff --git a/mcwl-resource/src/main/java/com/mcwl/resource/domain/vo/ModelLikeVo.java b/mcwl-resource/src/main/java/com/mcwl/resource/domain/vo/ModelLikeVo.java index 8ad7303..3dc26dd 100644 --- a/mcwl-resource/src/main/java/com/mcwl/resource/domain/vo/ModelLikeVo.java +++ b/mcwl-resource/src/main/java/com/mcwl/resource/domain/vo/ModelLikeVo.java @@ -48,6 +48,9 @@ public class ModelLikeVo { @ApiModelProperty(value = "下载数") private Long downloadNumber; + @ApiModelProperty(value = "点赞数") + private Long likeNumber; + } diff --git a/mcwl-resource/src/main/java/com/mcwl/resource/mapper/ModelImageMapper.java b/mcwl-resource/src/main/java/com/mcwl/resource/mapper/ModelImageMapper.java index 70ecb98..e8ee2c8 100644 --- a/mcwl-resource/src/main/java/com/mcwl/resource/mapper/ModelImageMapper.java +++ b/mcwl-resource/src/main/java/com/mcwl/resource/mapper/ModelImageMapper.java @@ -1,8 +1,11 @@ package com.mcwl.resource.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.resource.domain.ModelImage; import com.mcwl.resource.domain.response.ResponseModelImage; +import com.mcwl.resource.domain.vo.ModelImageLikeVo; import com.mcwl.resource.domain.vo.PageVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,4 +24,11 @@ public interface ModelImageMapper extends BaseMapper { List imageList(PageVo pageVo); Long sumImageNumber(Long userId); + + + List selectLikedImagesByUser( + @Param("page") Page page, + @Param("userId") Long userId, + @Param("orderByColumn") String orderByColumn // 新增参数 + ); } diff --git a/mcwl-resource/src/main/java/com/mcwl/resource/mapper/ModelMapper.java b/mcwl-resource/src/main/java/com/mcwl/resource/mapper/ModelMapper.java index bf718b1..d109f1c 100644 --- a/mcwl-resource/src/main/java/com/mcwl/resource/mapper/ModelMapper.java +++ b/mcwl-resource/src/main/java/com/mcwl/resource/mapper/ModelMapper.java @@ -2,8 +2,11 @@ package com.mcwl.resource.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mcwl.resource.domain.ModelProduct; import com.mcwl.resource.domain.response.ResponseModelProduct; +import com.mcwl.resource.domain.vo.ModelImageLikeVo; +import com.mcwl.resource.domain.vo.ModelLikeVo; import com.mcwl.resource.domain.vo.PageVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,7 +25,6 @@ import java.util.List; public interface ModelMapper extends BaseMapper { - Long sumNumber(@Param("userId") Long userId); @@ -40,4 +42,8 @@ public interface ModelMapper extends BaseMapper { List modelSquare(PageVo pageVo); Long sumModelNumber(Long userId); + + List selectLikedModelsByUser(@Param("page") Page page, + @Param("userId") Long userId, + @Param("orderByColumn") String orderByColumn); } diff --git a/mcwl-resource/src/main/java/com/mcwl/resource/mapper/WorkFlowMapper.java b/mcwl-resource/src/main/java/com/mcwl/resource/mapper/WorkFlowMapper.java index 372f25d..6f17832 100644 --- a/mcwl-resource/src/main/java/com/mcwl/resource/mapper/WorkFlowMapper.java +++ b/mcwl-resource/src/main/java/com/mcwl/resource/mapper/WorkFlowMapper.java @@ -1,9 +1,12 @@ package com.mcwl.resource.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mcwl.resource.domain.WorkFlow; import com.mcwl.resource.domain.response.ResponseWorkFlow; +import com.mcwl.resource.domain.vo.ModelLikeVo; import com.mcwl.resource.domain.vo.PageVo; +import com.mcwl.resource.domain.vo.WorkFlowLikeVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -28,4 +31,8 @@ public interface WorkFlowMapper extends BaseMapper { List workFlowList(PageVo pageVo); Long sumWorkFlowNumber(Long userId); + + List selectLikedWorkFlowsByUser(@Param("page") Page page, + @Param("userId") Long userId, + @Param("orderByColumn") String orderByColumn); } diff --git a/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/ModelImageLikeServiceImpl.java b/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/ModelImageLikeServiceImpl.java index 47efa23..9873765 100644 --- a/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/ModelImageLikeServiceImpl.java +++ b/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/ModelImageLikeServiceImpl.java @@ -3,6 +3,7 @@ package com.mcwl.resource.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -33,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; +import java.util.stream.Collectors; /** * 图片点赞实现 @@ -62,7 +64,7 @@ public class ModelImageLikeServiceImpl extends ServiceImpl page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); if (StringUtils.isEmpty(pageDomain.getOrderByColumn())) { pageDomain.setOrderByColumn("create_time"); } - // 设置排序 - boolean isAsc = Objects.equals(pageDomain.getIsAsc(), "desc"); - OrderItem orderItem = new OrderItem(pageDomain.getOrderByColumn(), isAsc); - page.addOrder(orderItem); - baseMapper.selectPage(page, new LambdaQueryWrapper() - .eq(ModelImageLike::getUserId, SecurityUtils.getUserId())); - // 获取分页数据 - List modelImageList = page.getRecords(); + // 2. 构建分页对象并设置排序规则 + Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); - // ModelImage数据转为ModelImagePageVo - List modelImageLikeVoList = new ArrayList<>(); - for (ModelImageLike modelImageLike : modelImageList) { - ModelImageLikeVo modelImageLikeVo = new ModelImageLikeVo(); - BeanUtil.copyProperties(modelImageLike, modelImageLikeVo); + List modelImageLikeVoList = modelImageMapper.selectLikedImagesByUser( + page, + SecurityUtils.getUserIdMax(), + pageDomain.getOrderByColumn()); - // 获取用户信息 - SysUser sysUser = sysUserService.selectUserById(modelImageLike.getUserId()); - if (Objects.isNull(sysUser)) { - page.setTotal(page.getTotal() - 1); - continue; - } - modelImageLikeVo.setUserName(sysUser.getNickName()); - modelImageLikeVo.setUserAvatar(sysUser.getAvatar()); - - // 获取图片信息 - ModelImage modelImage = modelImageMapper.selectById(modelImageLike.getModelImageId()); - if (Objects.isNull(modelImage)) { - page.setTotal(page.getTotal() - 1); - continue; - } - modelImageLikeVo.setDownloadNumber(Long.valueOf(modelImage.getDownloadNum())); - modelImageLikeVo.setImagePaths(modelImage.getImagePaths()); - modelImageLikeVo.setLikeNum(modelImage.getLikeNum()); - - - modelImageLikeVoList.add(modelImageLikeVo); - - } - - // 封装分页数据 + // 4. 封装分页结果 TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("查询成功"); rspData.setRows(modelImageLikeVoList); rspData.setTotal(page.getTotal()); - return rspData; } @@ -139,7 +107,7 @@ public class ModelImageLikeServiceImpl extends ServiceImpl imageList(PageVo pageVo) { PageHelper pageHelper = new PageHelper(); - pageHelper.startPage(pageVo.getPageNumber(),pageVo.getPageSize()); + pageHelper.startPage(pageVo.getPageNumber(), pageVo.getPageSize()); List responseModelImageList = modelImageMapper.imageList(pageVo); @@ -158,9 +126,9 @@ public class ModelImageLikeServiceImpl extends ServiceImpl page = initPage(pageDomain); - - - baseMapper.selectPage(page, new LambdaQueryWrapper() - .eq(ModelLike::getUserId, SecurityUtils.getUserId())); - - List modelLikeList = page.getRecords(); - List modelLikeVoList = new ArrayList<>(); - for (ModelLike modelLike : modelLikeList) { - ModelLikeVo modelLikeVo = new ModelLikeVo(); - BeanUtil.copyProperties(modelLike, modelLikeVo); - - // 获取用户信息 - SysUser sysUser = sysUserService.selectUserById(modelLike.getUserId()); - if (Objects.isNull(sysUser)) { - page.setTotal(page.getTotal() - 1); - continue; - } - modelLikeVo.setUserName(sysUser.getNickName()); - modelLikeVo.setUserAvatar(sysUser.getAvatar()); - - // 获取模型信息 - ModelProduct modelProduct = modelMapper.selectById(modelLike.getModelId()); - if (Objects.isNull(modelProduct)) { - page.setTotal(page.getTotal() - 1); - continue; - } - modelLikeVo.setDownloadNumber(Long.valueOf(modelProduct.getNumbers())); - modelLikeVo.setSurfaceUrl(modelProduct.getSurfaceUrl()); - modelLikeVo.setModelName(modelProduct.getModelName()); - - modelLikeVoList.add(modelLikeVo); - } - - - TableDataInfo tableDataInfo = new TableDataInfo(); - tableDataInfo.setRows(modelLikeVoList); - tableDataInfo.setTotal(page.getTotal()); - tableDataInfo.setCode(HttpStatus.SUCCESS); - tableDataInfo.setMsg("查询成功"); - - return tableDataInfo; - - - } - - - private Page initPage(PageDomain pageDomain) { - Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); - if (StringUtils.isBlank(pageDomain.getOrderByColumn())) { + if (StringUtils.isEmpty(pageDomain.getOrderByColumn())) { pageDomain.setOrderByColumn("create_time"); } - OrderItem orderItem = OrderItem.desc(pageDomain.getOrderByColumn()); - page.addOrder(orderItem); - return page; + // 2. 构建分页对象并设置排序规则 + Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); + + List modelLikeVoList = modelMapper.selectLikedModelsByUser( + page, + SecurityUtils.getUserIdMax(), + pageDomain.getOrderByColumn()); + + // 4. 封装分页结果 + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(modelLikeVoList); + rspData.setTotal(page.getTotal()); + return rspData; + + } diff --git a/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/WorkFlowLikeServiceImpl.java b/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/WorkFlowLikeServiceImpl.java index 5cd3aea..4afd0e5 100644 --- a/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/WorkFlowLikeServiceImpl.java +++ b/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/WorkFlowLikeServiceImpl.java @@ -15,6 +15,7 @@ import com.mcwl.common.utils.SecurityUtils; import com.mcwl.common.utils.StringUtils; import com.mcwl.resource.domain.WorkFlow; import com.mcwl.resource.domain.WorkFlowLike; +import com.mcwl.resource.domain.vo.ModelLikeVo; import com.mcwl.resource.domain.vo.WorkFlowLikeVo; import com.mcwl.resource.mapper.WorkFlowLikeMapper; import com.mcwl.resource.mapper.WorkFlowMapper; @@ -65,48 +66,25 @@ public class WorkFlowLikeServiceImpl extends ServiceImpl page = initPage(pageDomain); - - - baseMapper.selectPage(page, new LambdaQueryWrapper() - .eq(WorkFlowLike::getUserId, SecurityUtils.getUserId())); - - List workFlowLikeList = page.getRecords(); - List modelLikeVoList = new ArrayList<>(); - for (WorkFlowLike workFlowLike : workFlowLikeList) { - WorkFlowLikeVo workFlowLikeVo = new WorkFlowLikeVo(); - BeanUtil.copyProperties(workFlowLike, workFlowLikeVo); - - // 获取用户信息 - SysUser sysUser = sysUserService.selectUserById(workFlowLike.getUserId()); - if (Objects.isNull(sysUser)) { - page.setTotal(page.getTotal() - 1); - continue; - } - workFlowLikeVo.setUserName(sysUser.getNickName()); - workFlowLikeVo.setUserAvatar(sysUser.getAvatar()); - - // 获取工作流信息 - WorkFlow workFlow = workFlowMapper.selectById(workFlowLike.getWorkFlowId()); - if (Objects.isNull(workFlow)) { - page.setTotal(page.getTotal() - 1); - continue; - } - workFlowLikeVo.setDownloadNumber(workFlow.getDownloadNumber()); - workFlowLikeVo.setCoverPath(workFlow.getCoverPath()); - workFlowLikeVo.setLikeNum(workFlow.getLikeNum()); - - modelLikeVoList.add(workFlowLikeVo); + if (StringUtils.isEmpty(pageDomain.getOrderByColumn())) { + pageDomain.setOrderByColumn("create_time"); } + // 2. 构建分页对象并设置排序规则 + Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); - TableDataInfo tableDataInfo = new TableDataInfo(); - tableDataInfo.setRows(modelLikeVoList); - tableDataInfo.setTotal(page.getTotal()); - tableDataInfo.setCode(HttpStatus.SUCCESS); - tableDataInfo.setMsg("查询成功"); + List workFlowLikeVoList = workFlowMapper.selectLikedWorkFlowsByUser( + page, + SecurityUtils.getUserIdMax(), + pageDomain.getOrderByColumn()); - return tableDataInfo; + // 4. 封装分页结果 + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(workFlowLikeVoList); + rspData.setTotal(page.getTotal()); + return rspData; } @Override diff --git a/mcwl-resource/src/main/resources/mapper/resource/ModelImageMapper.xml b/mcwl-resource/src/main/resources/mapper/resource/ModelImageMapper.xml index 84579c3..5e49fee 100644 --- a/mcwl-resource/src/main/resources/mapper/resource/ModelImageMapper.xml +++ b/mcwl-resource/src/main/resources/mapper/resource/ModelImageMapper.xml @@ -43,4 +43,37 @@ and status in (1, 2) + + diff --git a/mcwl-resource/src/main/resources/mapper/resource/ModelMapper.xml b/mcwl-resource/src/main/resources/mapper/resource/ModelMapper.xml index e59617a..992e223 100644 --- a/mcwl-resource/src/main/resources/mapper/resource/ModelMapper.xml +++ b/mcwl-resource/src/main/resources/mapper/resource/ModelMapper.xml @@ -115,5 +115,36 @@ and del_flag = 0 and audit_status in (1, 2) + diff --git a/mcwl-resource/src/main/resources/mapper/resource/WorkFlowMapper.xml b/mcwl-resource/src/main/resources/mapper/resource/WorkFlowMapper.xml index 41d13fe..297ffa1 100644 --- a/mcwl-resource/src/main/resources/mapper/resource/WorkFlowMapper.xml +++ b/mcwl-resource/src/main/resources/mapper/resource/WorkFlowMapper.xml @@ -71,4 +71,35 @@ and del_flag = '0' and audit_status in (1, 2) +