mitao
2025-02-21 31573d6180d15ef65ed0df9c2732495f40b12663
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package com.panzhihua.service_equipment.service.impl;
 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.equipment.UnionExchangeRecordDto;
import com.panzhihua.common.model.dtos.equipment.UnionIntegralRecordDto;
import com.panzhihua.common.model.dtos.equipment.UnionIntegralSummarizeDto;
import com.panzhihua.common.model.dtos.equipment.UnionStoreDto;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_equipment.dao.UnionExchangeRecordMapper;
import com.panzhihua.service_equipment.model.dos.UnionExchangeRecord;
import com.panzhihua.service_equipment.model.dos.UnionIntegralSummarize;
import com.panzhihua.service_equipment.model.dos.UnionStore;
import com.panzhihua.service_equipment.service.UnionExchangeRecordService;
import com.panzhihua.service_equipment.service.UnionIntegralRecordService;
import com.panzhihua.service_equipment.service.UnionIntegralSummarizeService;
import com.panzhihua.service_equipment.service.UnionStoreService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
 
 
@Service
@Slf4j
public class UnionExchangeRecordServiceImpl extends ServiceImpl<UnionExchangeRecordMapper, UnionExchangeRecord>
        implements UnionExchangeRecordService
{
    @Resource
    private UnionStoreService unionStoreService;
 
    @Resource
    private UnionIntegralSummarizeService unionIntegralSummarizeService;
 
    @Resource
    private UnionIntegralRecordService unionIntegralRecordService;
 
    @Override
    public R getList(int pageNum,int pageSize, String communityId, String userId,String orderType)
    {
        Page page=new Page(pageNum,pageSize);
        return R.ok(baseMapper.getList(page,communityId,userId,orderType));
    }
 
    @Override
    public R getData(String id) {
        return R.ok(baseMapper.getData(id));
    }
 
    @Override
    public R insert(UnionExchangeRecordDto item)
    {
        if(StringUtils.isEmpty(item.getConsignee()))
        {
            return R.fail("收货信息不能为空");
        }
 
        R<UnionIntegralSummarize> unionIntegralSummarizeR=unionIntegralSummarizeService.getUserData(item.getUserId(),null);
        //设置站点id
        item.setCommunityId(unionIntegralSummarizeR.getData().getCommunityId());
 
        R<UnionStore> unionStoreR = unionStoreService.getData(item.getGoodsId());
        //库存
        int stock = Integer.valueOf(unionStoreR.getData().getStock());
        //购买数量
        int goodNum = Integer.valueOf(item.getGoodsNum());
        //单价
        int conversionPrice = Integer.valueOf(unionStoreR.getData().getConversionPrice());
 
        if (stock<goodNum)
        {
            return R.fail("商品库存不足!");
        }
 
        int allPrice=goodNum*conversionPrice;
 
        if(Integer.valueOf(unionIntegralSummarizeR.getData().getAllIntegral())<allPrice)
        {
            return R.fail("用户积分不足!");
        }
 
        //扣除用户积分
        int num1=Integer.valueOf(unionIntegralSummarizeR.getData().getAllIntegral())-allPrice;
        UnionIntegralSummarizeDto dto=new UnionIntegralSummarizeDto();
        dto.setId(unionIntegralSummarizeR.getData().getId());
        dto.setAllIntegral(num1+"");
        unionIntegralSummarizeService.update(dto);
 
 
        //修改商品库存
        UnionStoreDto unionStoreDto=new UnionStoreDto();
        unionStoreDto.setId(unionStoreR.getData().getId());
        stock=stock-goodNum;
        unionStoreDto.setStock(stock+"");
        unionStoreService.update(unionStoreDto);
 
        //新增积分明细记录
        UnionIntegralRecordDto unionIntegralRecordDto=new UnionIntegralRecordDto();
        unionIntegralRecordDto.setIntegral(allPrice+"");
        unionIntegralRecordDto.setIntegralType("2");
        unionIntegralRecordDto.setUserId(item.getUserId());
        unionIntegralRecordDto.setCommunityId(unionIntegralSummarizeR.getData().getCommunityId());
        unionIntegralRecordDto.setType("0");
        unionIntegralRecordService.insert(unionIntegralRecordDto);
 
 
        item.setOrderNum(Snowflake.getId()+"");
        //判断是否是邮寄
        if(StringUtils.equals("1",item.getPickUpMethod()))
        {
            item.setOrderType("1");
        }
        else
        {
            item.setOrderType("3");
        }
        item.setPlayIntegral(allPrice+"");
 
        int num= baseMapper.insert(item);
        if(num>0)
        {
            return R.ok();
        }
        return R.fail("操作失败");
    }
 
    @Override
    public R update(UnionExchangeRecordDto item)
    {
        int num= baseMapper.update(item);
        if(num>0)
        {
            return R.ok();
        }
        return R.fail("操作失败");
    }
 
    @Override
    public R delete(String id)
    {
        UnionExchangeRecord unionExchangeRecord=baseMapper.getData(id);
 
        if(StringUtils.equals("3",unionExchangeRecord.getOrderType())
                ||  StringUtils.equals("4",unionExchangeRecord.getOrderType()) )
        {
            return R.fail("订单不能删除");
        }
 
        int num= baseMapper.delete(id);
        if(num>0)
        {
            return R.ok();
        }
        return R.fail("操作失败");
    }
}