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
package com.java110.api.bmo.allocationUserStorehouse.impl;
 
import com.alibaba.fastjson.JSONObject;
import com.java110.api.bmo.ApiBaseBMO;
import com.java110.api.bmo.allocationUserStorehouse.IAllocationUserStorehouseBMO;
import com.java110.core.context.DataFlowContext;
import com.java110.dto.userStorehouse.UserStorehouseDto;
import com.java110.intf.store.IAllocationUserStorehouseInnerServiceSMO;
import com.java110.intf.store.IUserStorehouseInnerServiceSMO;
import com.java110.po.allocationUserStorehouse.AllocationUserStorehousePo;
import com.java110.po.userStorehouse.UserStorehousePo;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.Date;
import java.util.List;
 
@Service("allocationUserStorehouseBMOImpl")
public class AllocationUserStorehouseBMOImpl extends ApiBaseBMO implements IAllocationUserStorehouseBMO {
 
    @Autowired
    private IAllocationUserStorehouseInnerServiceSMO allocationUserStorehouseInnerServiceSMOImpl;
 
    @Autowired
    private IUserStorehouseInnerServiceSMO userStorehouseInnerServiceSMOImpl;
 
    /**
     * 添加小区信息
     *
     * @param paramInJson     接口调用放传入入参
     * @param dataFlowContext 数据上下文
     * @return 订单服务能够接受的报文
     */
    public void addAllocationUserStorehouse(JSONObject paramInJson, DataFlowContext dataFlowContext) {
        //获取库存数量
        String stock = paramInJson.getString("stock");
        //获取转增数量
        String giveQuantity = paramInJson.getString("giveQuantity");
        //获取当前用户id
        String userId = paramInJson.getString("userId");
        //获取接受转增用户id
        String acceptUserId = paramInJson.getString("acceptUserId");
        //获取物品id
        String resId = paramInJson.getString("resId");
        paramInJson.put("ausId", "-1");
        paramInJson.put("createTime", new Date());
        paramInJson.put("startUserId", userId);
        paramInJson.put("startUserName", paramInJson.getString("userName"));
        paramInJson.put("remark", paramInJson.getString("description"));
        AllocationUserStorehousePo allocationUserStorehousePo = BeanConvertUtil.covertBean(paramInJson, AllocationUserStorehousePo.class);
        super.insert(dataFlowContext, allocationUserStorehousePo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ALLOCATION_USER_STOREHOUSE);
        UserStorehouseDto userStorehouseDto = new UserStorehouseDto();
        userStorehouseDto.setUserId(userId);
        userStorehouseDto.setResId(resId);
        List<UserStorehouseDto> userStorehouseDtos = userStorehouseInnerServiceSMOImpl.queryUserStorehouses(userStorehouseDto);
        Assert.listOnlyOne(userStorehouseDtos, "查询个人物品信息错误!");
        //获取个人物品信息id
        String usId = userStorehouseDtos.get(0).getUsId();
        UserStorehousePo userStorehousePo = new UserStorehousePo();
        userStorehousePo.setUsId(usId);
        //获取转增后的库存数量
        int newStock = Integer.parseInt(stock) - Integer.parseInt(giveQuantity);
        userStorehousePo.setStock(String.valueOf(newStock));
        //更新当前用户库存数
        super.update(dataFlowContext, userStorehousePo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_USER_STOREHOUSE);
        UserStorehouseDto userStorehouse = new UserStorehouseDto();
        userStorehouse.setUserId(acceptUserId);
        userStorehouse.setResId(resId);
        List<UserStorehouseDto> userStorehouses = userStorehouseInnerServiceSMOImpl.queryUserStorehouses(userStorehouse);
        if (userStorehouses != null && userStorehouses.size() == 1) {
            //获取接受用户库存数
            String userStock = userStorehouses.get(0).getStock();
            //获取转增后的库存数量
            int myStock = Integer.parseInt(userStock) + Integer.parseInt(giveQuantity);
            UserStorehousePo userStorePo = new UserStorehousePo();
            userStorePo.setUsId(userStorehouses.get(0).getUsId());
            userStorePo.setStock(String.valueOf(myStock));
            //更新当前用户的库存数量
            super.update(dataFlowContext, userStorePo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_USER_STOREHOUSE);
        } else if (userStorehouses != null && userStorehouses.size() > 1) {
            throw new IllegalArgumentException("查询个人物品信息错误!");
        } else {
            UserStorehousePo userStorePo = new UserStorehousePo();
            userStorePo.setUsId("-1");
            userStorePo.setResId(resId);
            userStorePo.setResName(paramInJson.getString("resName"));
            userStorePo.setStoreId(paramInJson.getString("storeId"));
            userStorePo.setStock(giveQuantity);
            userStorePo.setUserId(acceptUserId);
            //保存接受转增用户个人物品信息
            super.insert(dataFlowContext, userStorePo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_USER_STOREHOUSE);
        }
    }
 
 
    /**
     * 添加活动信息
     *
     * @param paramInJson     接口调用放传入入参
     * @param dataFlowContext 数据上下文
     * @return 订单服务能够接受的报文
     */
    public void updateAllocationUserStorehouse(JSONObject paramInJson, DataFlowContext dataFlowContext) {
        AllocationUserStorehousePo allocationUserStorehousePo = BeanConvertUtil.covertBean(paramInJson, AllocationUserStorehousePo.class);
        super.update(dataFlowContext, allocationUserStorehousePo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_ALLOCATION_USER_STOREHOUSE);
    }
 
 
    /**
     * 添加小区信息
     *
     * @param paramInJson     接口调用放传入入参
     * @param dataFlowContext 数据上下文
     * @return 订单服务能够接受的报文
     */
    public void deleteAllocationUserStorehouse(JSONObject paramInJson, DataFlowContext dataFlowContext) {
 
        AllocationUserStorehousePo allocationUserStorehousePo = BeanConvertUtil.covertBean(paramInJson, AllocationUserStorehousePo.class);
        super.update(dataFlowContext, allocationUserStorehousePo, BusinessTypeConstant.BUSINESS_TYPE_DELETE_ALLOCATION_USER_STOREHOUSE);
    }
 
}