From 795ce45b126ff828852cb4d728d1d8d222d3ea75 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 24 Apr 2025 17:35:27 +0800
Subject: [PATCH] feat(mall): 添加门票核销功能

---
 src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
index 5188d8b..e244e5d 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
@@ -8,6 +8,7 @@
 import cc.mrbird.febs.common.utils.ShareCodeUtil;
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.dto.activity.ApiActivityOrderListDto;
+import cc.mrbird.febs.mall.dto.activity.ApiCheckOrderDto;
 import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
@@ -17,6 +18,7 @@
 import cc.mrbird.febs.mall.dto.ApiOperateDoDto;
 import cc.mrbird.febs.mall.vo.activity.ApiActivityOrderInfoVo;
 import cc.mrbird.febs.mall.vo.activity.ApiActivityOrderListVo;
+import cc.mrbird.febs.mall.vo.activity.ApiCheckOrderVo;
 import cc.mrbird.febs.mall.vo.activity.ApiVoteActivityHotVo;
 import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
 import cc.mrbird.febs.pay.service.IXcxPayService;
@@ -770,6 +772,48 @@
     }
 
     @Override
+    public FebsResponse checkOrder(ApiCheckOrderDto dto) {
+        // 获取当前登录用户的ID
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+
+        MallMember mallMember = mallMemberMapper.selectById(memberId);
+
+        if(StateUpDownEnum.UP.getCode() != mallMember.getCheckOrder()){
+            throw new FebsException("您不是核销员!");
+        }
+
+        String orderItemCode = dto.getOrderItemCode();
+
+        HappyActivityOrderItem happyActivityOrderItem = happyActivityOrderItemMapper.selectOne(
+                new LambdaQueryWrapper<HappyActivityOrderItem>()
+                        .eq(HappyActivityOrderItem::getCode, orderItemCode)
+                        .eq(HappyActivityOrderItem::getState, StateUpDownEnum.DOWN.getCode())
+                .last("limit 1")
+        );
+        if(happyActivityOrderItem != null){
+            happyActivityOrderItem.setState(StateUpDownEnum.UP.getCode());
+            happyActivityOrderItem.setTransferItemId(memberId);
+            happyActivityOrderItemMapper.updateById(happyActivityOrderItem);
+
+            HappyActivity happyActivity = this.baseMapper.selectById(happyActivityOrderItem.getActivityId());
+
+            ApiCheckOrderVo apiCheckOrderVo = new ApiCheckOrderVo();
+            apiCheckOrderVo.setActivityName(happyActivity.getName());
+            apiCheckOrderVo.setActivityStartTime(happyActivity.getStartTime());
+            apiCheckOrderVo.setActivityEndTime(happyActivity.getEndTime());
+            apiCheckOrderVo.setActivityAddress(happyActivity.getAddress());
+            apiCheckOrderVo.setCode(happyActivityOrderItem.getCode());
+            apiCheckOrderVo.setName(happyActivityOrderItem.getName());
+            apiCheckOrderVo.setPhone(happyActivityOrderItem.getPhone());
+            apiCheckOrderVo.setPrice(happyActivityOrderItem.getPrice());
+
+            return new FebsResponse().success().data(apiCheckOrderVo);
+        }
+
+        return new FebsResponse().fail().message("核销失败!");
+    }
+
+    @Override
     public FebsResponse voteActivityHot(Long id) {
 
         ApiVoteActivityHotVo apiVoteActivityHotVo = new ApiVoteActivityHotVo();

--
Gitblit v1.9.1