From 68b182ab510ef8d323ab8cb5f5ebc8bd108d19ca Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期四, 29 八月 2024 13:52:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master-v2' into master-v2

---
 src/main/java/com/mzl/flower/service/point/impl/PointGoodServiceImpl.java |  163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 163 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/point/impl/PointGoodServiceImpl.java b/src/main/java/com/mzl/flower/service/point/impl/PointGoodServiceImpl.java
new file mode 100644
index 0000000..47b9113
--- /dev/null
+++ b/src/main/java/com/mzl/flower/service/point/impl/PointGoodServiceImpl.java
@@ -0,0 +1,163 @@
+package com.mzl.flower.service.point.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.mzl.flower.config.exception.ValidationException;
+import com.mzl.flower.config.security.SecurityUtils;
+import com.mzl.flower.constant.Constants;
+import com.mzl.flower.dto.BatchDTO;
+import com.mzl.flower.dto.request.menber.MemberDTO;
+import com.mzl.flower.dto.request.point.PointGoodDTO;
+import com.mzl.flower.dto.request.point.PointGoodQueryDTO;
+import com.mzl.flower.dto.response.content.AnnouncementDTO;
+import com.mzl.flower.dto.response.point.PointGoodVO;
+import com.mzl.flower.entity.content.Announcement;
+import com.mzl.flower.entity.menber.Member;
+import com.mzl.flower.entity.point.PointGood;
+import com.mzl.flower.mapper.member.MemberMapper;
+import com.mzl.flower.mapper.point.PointGoodMapper;
+import com.mzl.flower.service.menber.MemberService;
+import com.mzl.flower.service.point.PointGoodService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * @author fanghaowei
+ * @version version2.0
+ * @className MemberServiceImpl
+ * @date 2024/8/26
+ * @description 会员管理功能逻辑层
+ */
+@Service
+@Transactional
+@RequiredArgsConstructor
+public class PointGoodServiceImpl extends ServiceImpl<PointGoodMapper, PointGood> implements PointGoodService {
+
+    private final PointGoodMapper pointGoodMapper;
+
+    @Override
+    public void save(PointGoodDTO pointGoodDTO) {
+        if (pointGoodDTO.getId() != null) {
+            throw new ValidationException("id必须为空");
+        }
+        if (pointGoodDTO.getStock() < 0) {
+            throw new ValidationException("库存不能小于0");
+        }
+        if (pointGoodDTO.getPoint() < 0) {
+            throw new ValidationException("积分不能小于0");
+        }
+        PointGood pointGood = new PointGood();
+        BeanUtils.copyProperties(pointGoodDTO, pointGood);
+        pointGood.setStatus(Constants.POINT_GOOD_STATUS.off.name());
+        pointGood.create(SecurityUtils.getUserId());
+        pointGoodMapper.insert(pointGood);
+    }
+
+    @Override
+    public void update(PointGoodDTO pointGoodDTO) {
+        if (pointGoodDTO.getId() == null || pointGoodDTO.getId() == 0) {
+            throw new ValidationException("id不能为空");
+        }
+        if (pointGoodDTO.getStock() < 0) {
+            throw new ValidationException("库存不能小于0");
+        }
+        if (pointGoodDTO.getPoint() < 0) {
+            throw new ValidationException("积分不能小于0");
+        }
+        PointGood pointGood = pointGoodMapper.selectById(pointGoodDTO.getId());
+        if (pointGood == null) {
+            throw new ValidationException("找不到id为" + pointGood.getId() + "的商品");
+        }
+        BeanUtils.copyProperties(pointGoodDTO, pointGood, "id", "createTime", "createBy", "deleted", "status");
+        pointGood.update(SecurityUtils.getUserId());
+        pointGoodMapper.updateById(pointGood);
+    }
+
+    @Override
+    public void batchDelete(BatchDTO batchDTO) {
+        pointGoodMapper.deleteBatchIds(batchDTO.getIds());
+    }
+
+    @Override
+    public void batchPublish(BatchDTO batchDTO) {
+        List<PointGood> list = pointGoodMapper.selectList(new LambdaQueryWrapper<PointGood>().in(PointGood::getId, batchDTO.getIds()));
+        for (PointGood pointGood : list) {
+            pointGood.setStatus(Constants.POINT_GOOD_STATUS.up.name());
+            pointGoodMapper.updateById(pointGood);
+        }
+    }
+
+    @Override
+    public void batchOff(BatchDTO batchDTO) {
+        List<PointGood> list = pointGoodMapper.selectList(new LambdaQueryWrapper<PointGood>().in(PointGood::getId, batchDTO.getIds()));
+        for (PointGood pointGood : list) {
+            pointGood.setStatus(Constants.POINT_GOOD_STATUS.off.name());
+            pointGoodMapper.updateById(pointGood);
+        }
+    }
+
+    @Override
+    public void delete(Long id) {
+        PointGood pointGood = pointGoodMapper.selectById(id);
+        if (pointGood == null) {
+            throw new ValidationException("找不到id为" + id + "的商品");
+        }
+        pointGoodMapper.deleteById(id);
+
+    }
+
+    @Override
+    public void copy(Long id) {
+        PointGood pointGoodTmp = pointGoodMapper.selectById(id);
+        if (pointGoodTmp == null) {
+            throw new ValidationException("找不到id为" + id + "的商品");
+        }
+        PointGood pointGood = new PointGood();
+        BeanUtils.copyProperties(pointGoodTmp, pointGood,"id","createTime", "createBy", "deleted", "status");
+        pointGood.setStatus(Constants.POINT_GOOD_STATUS.off.name());
+        pointGood.create(SecurityUtils.getUserId());
+        pointGoodMapper.deleteById(id);
+
+    }
+
+    @Override
+    public void changeStatus(Long id) {
+        PointGood pointGood = pointGoodMapper.selectById(id);
+        if (pointGood == null) {
+            throw new ValidationException("找不到id为" + id + "的商品");
+        }
+        if (Constants.COMMON_PUBLISH_STATUS.published.name().equals(pointGood.getStatus())) {
+            pointGood.setStatus(Constants.COMMON_PUBLISH_STATUS.unpublished.name());
+        } else {
+            pointGood.setStatus(Constants.COMMON_PUBLISH_STATUS.published.name());
+        }
+        pointGoodMapper.updateById(pointGood);
+
+    }
+
+    @Override
+    public PointGoodVO detail(Long id) {
+        PointGood pointGood = pointGoodMapper.selectById(id);
+        if (pointGood == null) {
+            return null;
+        }
+        PointGoodVO vo = new PointGoodVO();
+        BeanUtils.copyProperties(pointGood, vo);
+        return vo;
+    }
+
+    @Override
+    public Page<PointGoodVO> queryPage(PointGoodQueryDTO pointGoodQueryDTO, Page page) {
+        List<PointGoodVO> list = pointGoodMapper.queryPage(pointGoodQueryDTO, page);
+        page.setRecords(list);
+        return page;
+    }
+}

--
Gitblit v1.9.3