|
@@ -21,7 +21,7 @@ import ( |
|
@@ -21,7 +21,7 @@ import ( |
21
|
type CashPoolService struct {
|
21
|
type CashPoolService struct {
|
22
|
}
|
22
|
}
|
23
|
|
23
|
|
24
|
-// 新增现金池
|
24
|
+// 新增现金池,投入现金池总额
|
25
|
func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *command.CreateCashPoolCommand) (interface{}, error) {
|
25
|
func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *command.CreateCashPoolCommand) (interface{}, error) {
|
26
|
if err := createCashPoolCommand.ValidateCommand(); err != nil {
|
26
|
if err := createCashPoolCommand.ValidateCommand(); err != nil {
|
27
|
return nil, application.ThrowError(application.ARG_ERROR, err.Error())
|
27
|
return nil, application.ThrowError(application.ARG_ERROR, err.Error())
|
|
@@ -37,6 +37,7 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co |
|
@@ -37,6 +37,7 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co |
37
|
transactionContext.RollbackTransaction()
|
37
|
transactionContext.RollbackTransaction()
|
38
|
}()
|
38
|
}()
|
39
|
|
39
|
|
|
|
40
|
+ // 员工仓储初始化
|
40
|
var employeeRepository domain.EmployeeRepository
|
41
|
var employeeRepository domain.EmployeeRepository
|
41
|
if value, err := factory.CreateEmployeeRepository(map[string]interface{}{
|
42
|
if value, err := factory.CreateEmployeeRepository(map[string]interface{}{
|
42
|
"transactionContext": transactionContext,
|
43
|
"transactionContext": transactionContext,
|
|
@@ -46,17 +47,7 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co |
|
@@ -46,17 +47,7 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co |
46
|
employeeRepository = value
|
47
|
employeeRepository = value
|
47
|
}
|
48
|
}
|
48
|
|
49
|
|
49
|
- // 增加公司id判断
|
|
|
50
|
- count, _, err := employeeRepository.Find(map[string]interface{}{
|
|
|
51
|
- "companyId": createCashPoolCommand.CompanyId,
|
|
|
52
|
- })
|
|
|
53
|
- if err != nil {
|
|
|
54
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
55
|
- }
|
|
|
56
|
- if count == 0 {
|
|
|
57
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司id")
|
|
|
58
|
- }
|
|
|
59
|
-
|
50
|
+ // 员工DAO初始化
|
60
|
var employeeDao *dao.EmployeeDao
|
51
|
var employeeDao *dao.EmployeeDao
|
61
|
if value, err := factory.CreateEmployeeDao(map[string]interface{}{
|
52
|
if value, err := factory.CreateEmployeeDao(map[string]interface{}{
|
62
|
"transactionContext": transactionContext,
|
53
|
"transactionContext": transactionContext,
|
|
@@ -65,19 +56,8 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co |
|
@@ -65,19 +56,8 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co |
65
|
} else {
|
56
|
} else {
|
66
|
employeeDao = value
|
57
|
employeeDao = value
|
67
|
}
|
58
|
}
|
68
|
- // 获取平台素币兑换情况
|
|
|
69
|
- systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(createCashPoolCommand.CompanyId)
|
|
|
70
|
- if err != nil {
|
|
|
71
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
72
|
- }
|
|
|
73
|
- if systemSuMoneyStatistics == nil {
|
|
|
74
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
|
|
|
75
|
- }
|
|
|
76
|
|
59
|
|
77
|
- systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64) // 平台已兑换素币
|
|
|
78
|
- systemUnExchangeSuMoney := systemSuMoneyStatistics["systemUnExchangeSuMoney"].(float64) // 平台未兑换素币
|
|
|
79
|
-
|
|
|
80
|
- // 判断当前是否有现金池
|
60
|
+ // 现金池仓储初始化
|
81
|
var cashPoolRepository domain.CashPoolRepository
|
61
|
var cashPoolRepository domain.CashPoolRepository
|
82
|
if value, err := factory.CreateCashPoolRepository(map[string] interface{} {
|
62
|
if value, err := factory.CreateCashPoolRepository(map[string] interface{} {
|
83
|
"transactionContext": transactionContext,
|
63
|
"transactionContext": transactionContext,
|
|
@@ -87,48 +67,64 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co |
|
@@ -87,48 +67,64 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co |
87
|
cashPoolRepository = value
|
67
|
cashPoolRepository = value
|
88
|
}
|
68
|
}
|
89
|
|
69
|
|
90
|
- countCashPools, _, err := cashPoolRepository.Find(tool_funs.SimpleStructToMap(createCashPoolCommand))
|
70
|
+ //公司id判断
|
|
|
71
|
+ count, _, err := employeeRepository.Find(map[string]interface{}{
|
|
|
72
|
+ "companyId": createCashPoolCommand.CompanyId,
|
|
|
73
|
+ })
|
|
|
74
|
+ if err != nil {
|
|
|
75
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
76
|
+ }
|
|
|
77
|
+ if count == 0 {
|
|
|
78
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司id")
|
|
|
79
|
+ }
|
|
|
80
|
+
|
|
|
81
|
+ // 获取平台素币兑换情况
|
|
|
82
|
+ systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(createCashPoolCommand.CompanyId)
|
91
|
if err != nil {
|
83
|
if err != nil {
|
92
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
84
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
93
|
}
|
85
|
}
|
|
|
86
|
+ systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64) // 平台已兑换素币
|
|
|
87
|
+ systemUnExchangeSuMoney := systemSuMoneyStatistics["systemUnExchangeSuMoney"].(float64) // 平台未兑换素币
|
94
|
|
88
|
|
|
|
89
|
+ count, cashPools, err := cashPoolRepository.Find(tool_funs.SimpleStructToMap(createCashPoolCommand))
|
|
|
90
|
+ if err != nil {
|
|
|
91
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
92
|
+ }
|
|
|
93
|
+ fmt.Print(count, "\n")
|
|
|
94
|
+ if count == 0 { // 新增现金池
|
95
|
newCashPool := &domain.CashPool{
|
95
|
newCashPool := &domain.CashPool{
|
96
|
CompanyId: createCashPoolCommand.CompanyId,
|
96
|
CompanyId: createCashPoolCommand.CompanyId,
|
97
|
Cash: createCashPoolCommand.Cash,
|
97
|
Cash: createCashPoolCommand.Cash,
|
98
|
ExchangedCash: 0,
|
98
|
ExchangedCash: 0,
|
99
|
- UnExchangeCash: 0,
|
|
|
100
|
- ExchangedSuMoney: systemExchangedSuMoney,
|
99
|
+ UnExchangeCash: createCashPoolCommand.Cash,
|
|
|
100
|
+ ExchangedSuMoney: 0,
|
101
|
UnExchangeSuMoney: systemUnExchangeSuMoney,
|
101
|
UnExchangeSuMoney: systemUnExchangeSuMoney,
|
102
|
Rate: 0,
|
102
|
Rate: 0,
|
103
|
CreateTime: time.Now(),
|
103
|
CreateTime: time.Now(),
|
104
|
}
|
104
|
}
|
105
|
-
|
|
|
106
|
- if countCashPools == 0 { // 现金池为空时处理
|
|
|
107
|
- newCashPool.ExchangedCash = 0.0
|
|
|
108
|
- newCashPool.UnExchangeCash = createCashPoolCommand.Cash
|
|
|
109
|
- } else {
|
|
|
110
|
- systemCashStatistics, err := employeeDao.CalculateSystemCash(createCashPoolCommand.CompanyId)
|
|
|
111
|
- if err != nil {
|
105
|
+ if cashPool, err := cashPoolRepository.Save(newCashPool); err != nil {
|
112
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
106
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
107
|
+ } else {
|
|
|
108
|
+ if err := transactionContext.CommitTransaction(); err != nil {
|
|
|
109
|
+ return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
113
|
}
|
110
|
}
|
114
|
- if systemCashStatistics == nil {
|
|
|
115
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
|
111
|
+ return cashPool, nil
|
116
|
}
|
112
|
}
|
117
|
-
|
|
|
118
|
- newCashPool.ExchangedCash = systemCashStatistics["systemExchangedCash"].(float64)
|
|
|
119
|
- newCashPool.UnExchangeCash = systemCashStatistics["systemUnExchangeCash"].(float64) + createCashPoolCommand.Cash
|
|
|
120
|
-
|
|
|
121
|
- // 计算系统平均兑换汇率
|
|
|
122
|
- var rate float64
|
|
|
123
|
- if systemExchangedSuMoney == 0 {
|
|
|
124
|
- rate = 0
|
|
|
125
|
- } else {
|
|
|
126
|
- rate, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", newCashPool.ExchangedCash / systemExchangedSuMoney), 64) // 平均兑换汇率
|
113
|
+ } else { // 更新现金池
|
|
|
114
|
+ if createCashPoolCommand.Cash < cashPools[0].ExchangedCash {
|
|
|
115
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "投入的现金值必须大于当前已兑换现金值")
|
127
|
}
|
116
|
}
|
128
|
-
|
|
|
129
|
- newCashPool.Rate = rate
|
117
|
+ newCashPool := &domain.CashPool{
|
|
|
118
|
+ CashPoolId: cashPools[0].CashPoolId,
|
|
|
119
|
+ CompanyId: createCashPoolCommand.CompanyId,
|
|
|
120
|
+ Cash: createCashPoolCommand.Cash,
|
|
|
121
|
+ ExchangedCash: cashPools[0].ExchangedCash,
|
|
|
122
|
+ UnExchangeCash: cashPools[0].UnExchangeCash + (createCashPoolCommand.Cash - (cashPools[0].ExchangedCash + cashPools[0].UnExchangeCash)),
|
|
|
123
|
+ ExchangedSuMoney: systemExchangedSuMoney,
|
|
|
124
|
+ UnExchangeSuMoney: systemUnExchangeSuMoney,
|
|
|
125
|
+ Rate: cashPools[0].Rate,
|
|
|
126
|
+ CreateTime: time.Now(),
|
130
|
}
|
127
|
}
|
131
|
-
|
|
|
132
|
if cashPool, err := cashPoolRepository.Save(newCashPool); err != nil {
|
128
|
if cashPool, err := cashPoolRepository.Save(newCashPool); err != nil {
|
133
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
129
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
134
|
} else {
|
130
|
} else {
|
|
@@ -137,6 +133,7 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co |
|
@@ -137,6 +133,7 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co |
137
|
}
|
133
|
}
|
138
|
return cashPool, nil
|
134
|
return cashPool, nil
|
139
|
}
|
135
|
}
|
|
|
136
|
+ }
|
140
|
}
|
137
|
}
|
141
|
|
138
|
|
142
|
// 返回现金池
|
139
|
// 返回现金池
|
|
@@ -155,6 +152,7 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
|
@@ -155,6 +152,7 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
155
|
transactionContext.RollbackTransaction()
|
152
|
transactionContext.RollbackTransaction()
|
156
|
}()
|
153
|
}()
|
157
|
|
154
|
|
|
|
155
|
+ // 员工仓储初始化
|
158
|
var employeeRepository domain.EmployeeRepository
|
156
|
var employeeRepository domain.EmployeeRepository
|
159
|
if value, err := factory.CreateEmployeeRepository(map[string]interface{}{
|
157
|
if value, err := factory.CreateEmployeeRepository(map[string]interface{}{
|
160
|
"transactionContext": transactionContext,
|
158
|
"transactionContext": transactionContext,
|
|
@@ -164,6 +162,36 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
|
@@ -164,6 +162,36 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
164
|
employeeRepository = value
|
162
|
employeeRepository = value
|
165
|
}
|
163
|
}
|
166
|
|
164
|
|
|
|
165
|
+ // 兑换现金活动仓储初始化
|
|
|
166
|
+ var exchangeActivityRepository domain.ExchangeActivityRepository
|
|
|
167
|
+ if value, err := factory.CreateExchangeCashActivityRepository(map[string]interface{}{
|
|
|
168
|
+ "transactionContext": transactionContext,
|
|
|
169
|
+ }); err != nil {
|
|
|
170
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
171
|
+ } else {
|
|
|
172
|
+ exchangeActivityRepository = value
|
|
|
173
|
+ }
|
|
|
174
|
+
|
|
|
175
|
+ // 现金池仓储初始化
|
|
|
176
|
+ var cashPoolRepository domain.CashPoolRepository
|
|
|
177
|
+ if value, err := factory.CreateCashPoolRepository(map[string] interface{} {
|
|
|
178
|
+ "transactionContext": transactionContext,
|
|
|
179
|
+ }); err != nil {
|
|
|
180
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
181
|
+ } else {
|
|
|
182
|
+ cashPoolRepository = value
|
|
|
183
|
+ }
|
|
|
184
|
+
|
|
|
185
|
+ // 员工DAO初始化
|
|
|
186
|
+ var employeeDao *dao.EmployeeDao
|
|
|
187
|
+ if value, err := factory.CreateEmployeeDao(map[string]interface{}{
|
|
|
188
|
+ "transactionContext": transactionContext,
|
|
|
189
|
+ }); err != nil {
|
|
|
190
|
+ return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
191
|
+ } else {
|
|
|
192
|
+ employeeDao = value
|
|
|
193
|
+ }
|
|
|
194
|
+
|
167
|
// 增加公司id判断
|
195
|
// 增加公司id判断
|
168
|
count, _, err := employeeRepository.Find(map[string]interface{}{
|
196
|
count, _, err := employeeRepository.Find(map[string]interface{}{
|
169
|
"companyId": getCashPoolQuery.CompanyId,
|
197
|
"companyId": getCashPoolQuery.CompanyId,
|
|
@@ -175,21 +203,11 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
|
@@ -175,21 +203,11 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
175
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司id")
|
203
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司id")
|
176
|
}
|
204
|
}
|
177
|
|
205
|
|
178
|
- // 获取上次兑换活动兑换汇率
|
|
|
179
|
- var exchangeActivityRepository domain.ExchangeActivityRepository
|
|
|
180
|
- if value, err := factory.CreateExchangeCashActivityRepository(map[string]interface{}{
|
|
|
181
|
- "transactionContext": transactionContext,
|
|
|
182
|
- }); err != nil {
|
|
|
183
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
184
|
- } else {
|
|
|
185
|
- exchangeActivityRepository = value
|
|
|
186
|
- }
|
|
|
187
|
-
|
206
|
+ // 获取上次兑换活动兑换汇率查询
|
|
|
207
|
+ var lastActivityRate float64
|
188
|
listExchangeCashActivityQuery := map[string]interface{}{
|
208
|
listExchangeCashActivityQuery := map[string]interface{}{
|
189
|
"companyId": getCashPoolQuery.CompanyId,
|
209
|
"companyId": getCashPoolQuery.CompanyId,
|
190
|
}
|
210
|
}
|
191
|
-
|
|
|
192
|
- var lastActivityRate float64
|
|
|
193
|
if count, activities, err := exchangeActivityRepository.Find(listExchangeCashActivityQuery); err != nil {
|
211
|
if count, activities, err := exchangeActivityRepository.Find(listExchangeCashActivityQuery); err != nil {
|
194
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
212
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
195
|
} else {
|
213
|
} else {
|
|
@@ -200,15 +218,6 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
|
@@ -200,15 +218,6 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
200
|
}
|
218
|
}
|
201
|
}
|
219
|
}
|
202
|
|
220
|
|
203
|
- var employeeDao *dao.EmployeeDao
|
|
|
204
|
- if value, err := factory.CreateEmployeeDao(map[string]interface{}{
|
|
|
205
|
- "transactionContext": transactionContext,
|
|
|
206
|
- }); err != nil {
|
|
|
207
|
- return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
208
|
- } else {
|
|
|
209
|
- employeeDao = value
|
|
|
210
|
- }
|
|
|
211
|
-
|
|
|
212
|
// 计算系统素币
|
221
|
// 计算系统素币
|
213
|
systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(getCashPoolQuery.CompanyId)
|
222
|
systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(getCashPoolQuery.CompanyId)
|
214
|
if err != nil {
|
223
|
if err != nil {
|
|
@@ -217,19 +226,10 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
|
@@ -217,19 +226,10 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
217
|
if systemSuMoneyStatistics == nil {
|
226
|
if systemSuMoneyStatistics == nil {
|
218
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
|
227
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
|
219
|
}
|
228
|
}
|
220
|
-
|
|
|
221
|
- systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64) // 平台已兑换素币
|
229
|
+ //systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64) // 平台已兑换素币
|
222
|
systemUnExchangeSuMoney := systemSuMoneyStatistics["systemUnExchangeSuMoney"].(float64) // 平台未兑换素币
|
230
|
systemUnExchangeSuMoney := systemSuMoneyStatistics["systemUnExchangeSuMoney"].(float64) // 平台未兑换素币
|
223
|
|
231
|
|
224
|
- var cashPoolRepository domain.CashPoolRepository
|
|
|
225
|
- if value, err := factory.CreateCashPoolRepository(map[string] interface{} {
|
|
|
226
|
- "transactionContext": transactionContext,
|
|
|
227
|
- }); err != nil {
|
|
|
228
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
229
|
- } else {
|
|
|
230
|
- cashPoolRepository = value
|
|
|
231
|
- }
|
|
|
232
|
-
|
232
|
+ // 查找当前公司现金池
|
233
|
if count, cashPools, err := cashPoolRepository.Find(tool_funs.SimpleStructToMap(getCashPoolQuery)); err != nil {
|
233
|
if count, cashPools, err := cashPoolRepository.Find(tool_funs.SimpleStructToMap(getCashPoolQuery)); err != nil {
|
234
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
234
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
235
|
} else {
|
235
|
} else {
|
|
@@ -244,7 +244,7 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
|
@@ -244,7 +244,7 @@ func (cashPoolService *CashPoolService) GetCashPool(getCashPoolQuery *query.GetC |
244
|
"companyId": getCashPoolQuery.CompanyId,
|
244
|
"companyId": getCashPoolQuery.CompanyId,
|
245
|
"exchangedCash": 0,
|
245
|
"exchangedCash": 0,
|
246
|
"unExchangeCash": 0,
|
246
|
"unExchangeCash": 0,
|
247
|
- "exchangedSuMoney": systemExchangedSuMoney,
|
247
|
+ "exchangedSuMoney": 0,
|
248
|
"unExchangeSuMoney": systemUnExchangeSuMoney,
|
248
|
"unExchangeSuMoney": systemUnExchangeSuMoney,
|
249
|
"rate": 0, // 平均兑换汇率
|
249
|
"rate": 0, // 平均兑换汇率
|
250
|
"lastRate": 0, // 上期活动兑换汇率
|
250
|
"lastRate": 0, // 上期活动兑换汇率
|
|
@@ -1266,6 +1266,46 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
|
@@ -1266,6 +1266,46 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
1266
|
exchangeCashActivityRepository = value
|
1266
|
exchangeCashActivityRepository = value
|
1267
|
}
|
1267
|
}
|
1268
|
|
1268
|
|
|
|
1269
|
+ // 现金池仓储初始化
|
|
|
1270
|
+ var cashPoolRepository domain.CashPoolRepository
|
|
|
1271
|
+ if value, err := factory.CreateCashPoolRepository(map[string] interface{} {
|
|
|
1272
|
+ "transactionContext": transactionContext,
|
|
|
1273
|
+ }); err != nil {
|
|
|
1274
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1275
|
+ } else {
|
|
|
1276
|
+ cashPoolRepository = value
|
|
|
1277
|
+ }
|
|
|
1278
|
+
|
|
|
1279
|
+ // 操作素币服务初始化
|
|
|
1280
|
+ var operationSuMoneyService service.OperationSuMoneyService
|
|
|
1281
|
+ if value, err := factory.CreateOperationSuMoneyService(map[string]interface{}{
|
|
|
1282
|
+ "transactionContext": transactionContext,
|
|
|
1283
|
+ }); err != nil {
|
|
|
1284
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1285
|
+ } else {
|
|
|
1286
|
+ operationSuMoneyService = value
|
|
|
1287
|
+ }
|
|
|
1288
|
+
|
|
|
1289
|
+ // 现金池DAO初始化
|
|
|
1290
|
+ var cashPoolDao *dao.CashPoolDao
|
|
|
1291
|
+ if value, err := factory.CreateCashPoolDao(map[string]interface{}{
|
|
|
1292
|
+ "transactionContext": transactionContext,
|
|
|
1293
|
+ }); err != nil {
|
|
|
1294
|
+ return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
1295
|
+ } else {
|
|
|
1296
|
+ cashPoolDao = value
|
|
|
1297
|
+ }
|
|
|
1298
|
+
|
|
|
1299
|
+ // 用户DAO初始化
|
|
|
1300
|
+ var employeeDao *dao.EmployeeDao
|
|
|
1301
|
+ if value, err := factory.CreateEmployeeDao(map[string]interface{}{
|
|
|
1302
|
+ "transactionContext": transactionContext,
|
|
|
1303
|
+ }); err != nil {
|
|
|
1304
|
+ return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
1305
|
+ } else {
|
|
|
1306
|
+ employeeDao = value
|
|
|
1307
|
+ }
|
|
|
1308
|
+
|
1269
|
// 获取兑换清单
|
1309
|
// 获取兑换清单
|
1270
|
personFound, err := exchangeCashPersonListRepository.FindOne(map[string]interface{}{"listId": updateExchangeCashPersonCommand.ListId})
|
1310
|
personFound, err := exchangeCashPersonListRepository.FindOne(map[string]interface{}{"listId": updateExchangeCashPersonCommand.ListId})
|
1271
|
if err != nil {
|
1311
|
if err != nil {
|
|
@@ -1275,6 +1315,8 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
|
@@ -1275,6 +1315,8 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
1275
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateExchangeCashPersonCommand.ListId)))
|
1315
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateExchangeCashPersonCommand.ListId)))
|
1276
|
}
|
1316
|
}
|
1277
|
|
1317
|
|
|
|
1318
|
+ fmt.Printf("Person Found: %+v\n", personFound)
|
|
|
1319
|
+
|
1278
|
// 获取相关兑换活动
|
1320
|
// 获取相关兑换活动
|
1279
|
activityFound, err := exchangeCashActivityRepository.FindOne(map[string]interface{}{"activityId": personFound.ExchangeCashActivityId})
|
1321
|
activityFound, err := exchangeCashActivityRepository.FindOne(map[string]interface{}{"activityId": personFound.ExchangeCashActivityId})
|
1280
|
if err != nil {
|
1322
|
if err != nil {
|
|
@@ -1292,12 +1334,14 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
|
@@ -1292,12 +1334,14 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
1292
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
1334
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
1293
|
}
|
1335
|
}
|
1294
|
|
1336
|
|
1295
|
- // 保存兑换清单更新
|
1337
|
+ // 保存兑换素币清单更新
|
1296
|
personUpdated, err := exchangeCashPersonListRepository.Save(personFound)
|
1338
|
personUpdated, err := exchangeCashPersonListRepository.Save(personFound)
|
1297
|
if err != nil {
|
1339
|
if err != nil {
|
1298
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1340
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1299
|
}
|
1341
|
}
|
1300
|
|
1342
|
|
|
|
1343
|
+ fmt.Printf("Person Updated: %+v\n", personUpdated)
|
|
|
1344
|
+
|
1301
|
// 更新素币兑换活动命令
|
1345
|
// 更新素币兑换活动命令
|
1302
|
updateExchangeCashActivityCommand := &command.UpdateExchangeCashActivityCommand{
|
1346
|
updateExchangeCashActivityCommand := &command.UpdateExchangeCashActivityCommand{
|
1303
|
ExchangeCashActivityId: personFound.ExchangeCashActivityId,
|
1347
|
ExchangeCashActivityId: personFound.ExchangeCashActivityId,
|
|
@@ -1308,16 +1352,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
|
@@ -1308,16 +1352,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
1308
|
ExchangeRate: activityFound.Rate,
|
1352
|
ExchangeRate: activityFound.Rate,
|
1309
|
}
|
1353
|
}
|
1310
|
|
1354
|
|
1311
|
- // 更新员工素币,生成素币兑换流水记录
|
|
|
1312
|
- var operationSuMoneyService service.OperationSuMoneyService
|
|
|
1313
|
- if value, err := factory.CreateOperationSuMoneyService(map[string]interface{}{
|
|
|
1314
|
- "transactionContext": transactionContext,
|
|
|
1315
|
- }); err != nil {
|
|
|
1316
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1317
|
- } else {
|
|
|
1318
|
- operationSuMoneyService = value
|
|
|
1319
|
- }
|
|
|
1320
|
-
|
1355
|
+ // 操作素币服务以及生成素币兑换流水记录命令
|
1321
|
operationSuMoneyCommand := &command.OperationSuMoneyCommand{
|
1356
|
operationSuMoneyCommand := &command.OperationSuMoneyCommand{
|
1322
|
Uid: personFound.EmployeeInfo.Uid,
|
1357
|
Uid: personFound.EmployeeInfo.Uid,
|
1323
|
Operator: updateExchangeCashPersonCommand.Operator,
|
1358
|
Operator: updateExchangeCashPersonCommand.Operator,
|
|
@@ -1326,6 +1361,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
|
@@ -1326,6 +1361,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
1326
|
OperationDescription: activityFound.ExchangeActivityName + "素币调整",
|
1361
|
OperationDescription: activityFound.ExchangeActivityName + "素币调整",
|
1327
|
}
|
1362
|
}
|
1328
|
|
1363
|
|
|
|
1364
|
+ // 判断操作素币类型
|
1329
|
if updateExchangeCashActivityCommand.ExchangedSuMoney - personUpdated.ExchangedSuMoney > 0 {
|
1365
|
if updateExchangeCashActivityCommand.ExchangedSuMoney - personUpdated.ExchangedSuMoney > 0 {
|
1330
|
operationSuMoneyCommand.SuMoney = math.Abs(updateExchangeCashActivityCommand.ExchangedSuMoney - personUpdated.ExchangedSuMoney)
|
1366
|
operationSuMoneyCommand.SuMoney = math.Abs(updateExchangeCashActivityCommand.ExchangedSuMoney - personUpdated.ExchangedSuMoney)
|
1331
|
operationSuMoneyCommand.OperationType = 1
|
1367
|
operationSuMoneyCommand.OperationType = 1
|
|
@@ -1334,6 +1370,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
|
@@ -1334,6 +1370,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
1334
|
operationSuMoneyCommand.OperationType = 3
|
1370
|
operationSuMoneyCommand.OperationType = 3
|
1335
|
}
|
1371
|
}
|
1336
|
|
1372
|
|
|
|
1373
|
+ // 操作素币并生成素币流水
|
1337
|
task, err := operationSuMoneyService.Operation(operationSuMoneyCommand.Uid, operationSuMoneyCommand.Operator, operationSuMoneyCommand.SuMoney, operationSuMoneyCommand.OperationType, operationSuMoneyCommand.OperationDescription)
|
1374
|
task, err := operationSuMoneyService.Operation(operationSuMoneyCommand.Uid, operationSuMoneyCommand.Operator, operationSuMoneyCommand.SuMoney, operationSuMoneyCommand.OperationType, operationSuMoneyCommand.OperationDescription)
|
1338
|
if err != nil {
|
1375
|
if err != nil {
|
1339
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1376
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
@@ -1342,10 +1379,14 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
|
@@ -1342,10 +1379,14 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
1342
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(operationSuMoneyCommand.Uid)))
|
1379
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(operationSuMoneyCommand.Uid)))
|
1343
|
}
|
1380
|
}
|
1344
|
|
1381
|
|
|
|
1382
|
+ fmt.Printf("Activity Found: %+v\n", activityFound)
|
|
|
1383
|
+
|
1345
|
// 更新兑换活动
|
1384
|
// 更新兑换活动
|
1346
|
if err := activityFound.Update(tool_funs.SimpleStructToMap(updateExchangeCashActivityCommand)); err != nil {
|
1385
|
if err := activityFound.Update(tool_funs.SimpleStructToMap(updateExchangeCashActivityCommand)); err != nil {
|
1347
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
1386
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
1348
|
}
|
1387
|
}
|
|
|
1388
|
+
|
|
|
1389
|
+ // 保存兑换活动更新
|
1349
|
activityUpdated, err := exchangeCashActivityRepository.Save(activityFound)
|
1390
|
activityUpdated, err := exchangeCashActivityRepository.Save(activityFound)
|
1350
|
if err != nil {
|
1391
|
if err != nil {
|
1351
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1392
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
@@ -1354,86 +1395,59 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
|
@@ -1354,86 +1395,59 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
1354
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateExchangeCashActivityCommand.ExchangeCashActivityId)))
|
1395
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateExchangeCashActivityCommand.ExchangeCashActivityId)))
|
1355
|
}
|
1396
|
}
|
1356
|
|
1397
|
|
1357
|
- // 更新现金池
|
|
|
1358
|
- var cashPoolDao *dao.CashPoolDao
|
|
|
1359
|
- if value, err := factory.CreateCashPoolDao(map[string]interface{}{
|
|
|
1360
|
- "transactionContext": transactionContext,
|
|
|
1361
|
- }); err != nil {
|
|
|
1362
|
- return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
1363
|
- } else {
|
|
|
1364
|
- cashPoolDao = value
|
|
|
1365
|
- }
|
1398
|
+ fmt.Printf("Activity Updated: %+v\n", activityUpdated)
|
1366
|
|
1399
|
|
1367
|
// 统计活动已兑换素币
|
1400
|
// 统计活动已兑换素币
|
1368
|
- activitySuMoneyStatistics, err := cashPoolDao.CalculateActivityExchangedSuMoney(activityFound.ActivityId)
|
1401
|
+ activitySuMoneyStatistics, err := cashPoolDao.CalculateActivityExchangedSuMoney(activityUpdated.ActivityId)
|
1369
|
if err != nil {
|
1402
|
if err != nil {
|
1370
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1403
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1371
|
}
|
1404
|
}
|
1372
|
if activitySuMoneyStatistics == nil {
|
1405
|
if activitySuMoneyStatistics == nil {
|
1373
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的企业")
|
1406
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
|
1374
|
}
|
1407
|
}
|
1375
|
-
|
|
|
1376
|
activitySuMoney := activitySuMoneyStatistics["activityExchangedSuMoney"].(float64)
|
1408
|
activitySuMoney := activitySuMoneyStatistics["activityExchangedSuMoney"].(float64)
|
1377
|
|
1409
|
|
1378
|
// 统计平台现金兑换情况
|
1410
|
// 统计平台现金兑换情况
|
1379
|
- var employeeDao *dao.EmployeeDao
|
|
|
1380
|
- if value, err := factory.CreateEmployeeDao(map[string]interface{}{
|
|
|
1381
|
- "transactionContext": transactionContext,
|
|
|
1382
|
- }); err != nil {
|
|
|
1383
|
- return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
1384
|
- } else {
|
|
|
1385
|
- employeeDao = value
|
|
|
1386
|
- }
|
|
|
1387
|
-
|
|
|
1388
|
- systemCashStatistics, err := employeeDao.CalculateSystemCash(activityFound.CompanyId)
|
1411
|
+ systemCashStatistics, err := employeeDao.CalculateSystemCash(activityUpdated.CompanyId)
|
1389
|
if err != nil {
|
1412
|
if err != nil {
|
1390
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1413
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1391
|
}
|
1414
|
}
|
1392
|
if systemCashStatistics == nil {
|
1415
|
if systemCashStatistics == nil {
|
1393
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
|
1416
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
|
1394
|
}
|
1417
|
}
|
|
|
1418
|
+ systemExchangedCash := systemCashStatistics["systemExchangedCash"].(float64)
|
|
|
1419
|
+ systemUnExchangeCash := systemCashStatistics["systemUnExchangeCash"].(float64)
|
1395
|
|
1420
|
|
1396
|
- // 判断是否超过平台未兑换现金
|
|
|
1397
|
- if activitySuMoney * activityFound.Rate > systemCashStatistics["systemUnExchangeCash"].(float64) {
|
|
|
1398
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金")
|
|
|
1399
|
- }
|
|
|
1400
|
-
|
|
|
1401
|
- // 重新获取系统现金兑换情况
|
|
|
1402
|
- newSystemCashStatistics, err := employeeDao.CalculateSystemCash(activityFound.CompanyId)
|
|
|
1403
|
- if err != nil {
|
|
|
1404
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1405
|
- }
|
|
|
1406
|
- if systemCashStatistics == nil {
|
|
|
1407
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
|
|
|
1408
|
- }
|
|
|
1409
|
-
|
|
|
1410
|
- systemExchangedCash := newSystemCashStatistics["systemExchangedCash"].(float64)
|
|
|
1411
|
- //systemUnExchangeCash := newSystemCashStatistics["systemUnExchangeCash"].(float64)
|
|
|
1412
|
-
|
|
|
1413
|
- // 获取平台素币状况
|
|
|
1414
|
- systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(activityFound.CompanyId)
|
1421
|
+ // 统计平台素币兑换状况
|
|
|
1422
|
+ systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(activityUpdated.CompanyId)
|
1415
|
if err != nil {
|
1423
|
if err != nil {
|
1416
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1424
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1417
|
}
|
1425
|
}
|
1418
|
if systemSuMoneyStatistics == nil {
|
1426
|
if systemSuMoneyStatistics == nil {
|
1419
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
|
1427
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
|
1420
|
}
|
1428
|
}
|
1421
|
-
|
|
|
1422
|
systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64)
|
1429
|
systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64)
|
1423
|
systemUnExchangeSuMoney := systemSuMoneyStatistics["systemUnExchangeSuMoney"].(float64)
|
1430
|
systemUnExchangeSuMoney := systemSuMoneyStatistics["systemUnExchangeSuMoney"].(float64)
|
1424
|
|
1431
|
|
1425
|
- var cashPoolRepository domain.CashPoolRepository
|
|
|
1426
|
- if value, err := factory.CreateCashPoolRepository(map[string] interface{} {
|
|
|
1427
|
- "transactionContext": transactionContext,
|
|
|
1428
|
- }); err != nil {
|
|
|
1429
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1430
|
- } else {
|
|
|
1431
|
- cashPoolRepository = value
|
1432
|
+ // 判断是否超过平台未兑换现金
|
|
|
1433
|
+ if activitySuMoney * activityUpdated.Rate > systemUnExchangeCash {
|
|
|
1434
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金")
|
1432
|
}
|
1435
|
}
|
1433
|
|
1436
|
|
1434
|
- // 获取现金池
|
1437
|
+ // 重新获取系统现金兑换情况
|
|
|
1438
|
+ //newSystemCashStatistics, err := employeeDao.CalculateSystemCash(activityFound.CompanyId)
|
|
|
1439
|
+ //if err != nil {
|
|
|
1440
|
+ // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1441
|
+ //}
|
|
|
1442
|
+ //if newSystemCashStatistics == nil {
|
|
|
1443
|
+ // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
|
|
|
1444
|
+ //}
|
|
|
1445
|
+ //newSystemExchangedCash := newSystemCashStatistics["systemExchangedCash"].(float64)
|
|
|
1446
|
+ //newSystemUnExchangeCash := newSystemCashStatistics["systemUnExchangeCash"].(float64)
|
|
|
1447
|
+
|
|
|
1448
|
+ // 获取当前现金池
|
1435
|
_, cashPools, err := cashPoolRepository.Find(map[string]interface{}{
|
1449
|
_, cashPools, err := cashPoolRepository.Find(map[string]interface{}{
|
1436
|
- "companyId": activityFound.CompanyId,
|
1450
|
+ "companyId": activityUpdated.CompanyId,
|
1437
|
})
|
1451
|
})
|
1438
|
if err != nil {
|
1452
|
if err != nil {
|
1439
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1453
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
@@ -1442,7 +1456,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
|
@@ -1442,7 +1456,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
1442
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(activityFound.CompanyId)))
|
1456
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(activityFound.CompanyId)))
|
1443
|
}
|
1457
|
}
|
1444
|
|
1458
|
|
1445
|
- // 计算平均兑换汇率
|
1459
|
+ // 计算现金池平均兑换汇率
|
1446
|
var newRate float64
|
1460
|
var newRate float64
|
1447
|
if systemExchangedSuMoney == 0 {
|
1461
|
if systemExchangedSuMoney == 0 {
|
1448
|
newRate = 0
|
1462
|
newRate = 0
|
|
@@ -1450,22 +1464,37 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
|
@@ -1450,22 +1464,37 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
1450
|
newRate, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", systemExchangedCash / systemExchangedSuMoney), 64)
|
1464
|
newRate, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", systemExchangedCash / systemExchangedSuMoney), 64)
|
1451
|
}
|
1465
|
}
|
1452
|
|
1466
|
|
|
|
1467
|
+ fmt.Printf("CashPool Found: %+v\n", cashPools[0])
|
|
|
1468
|
+
|
|
|
1469
|
+ fmt.Printf("UpdateExchangeCashPersonCommand: %+v\n", updateExchangeCashPersonCommand)
|
|
|
1470
|
+
|
|
|
1471
|
+ updateExchangedCash := cashPools[0].ExchangedCash + (updateExchangeCashPersonCommand.ExchangedSuMoney - personFound.ExchangedSuMoney) * activityUpdated.Rate
|
|
|
1472
|
+ fmt.Print(updateExchangedCash,"\n")
|
|
|
1473
|
+
|
|
|
1474
|
+ updateUnExchangeCash := cashPools[0].UnExchangeCash - (updateExchangeCashPersonCommand.ExchangedSuMoney - personFound.ExchangedSuMoney) * activityUpdated.Rate
|
|
|
1475
|
+ fmt.Print(updateUnExchangeCash, "\n")
|
|
|
1476
|
+
|
|
|
1477
|
+ updateExchangedSuMoney := cashPools[0].ExchangedSuMoney + (updateExchangeCashPersonCommand.ExchangedSuMoney - personFound.ExchangedSuMoney)
|
|
|
1478
|
+ fmt.Print(updateExchangedSuMoney, "\n")
|
|
|
1479
|
+
|
|
|
1480
|
+ // 更新现金池命令
|
1453
|
updateCashPoolCommand := &command.UpdateCashPoolCommand{
|
1481
|
updateCashPoolCommand := &command.UpdateCashPoolCommand{
|
1454
|
CashPoolId: cashPools[0].CashPoolId,
|
1482
|
CashPoolId: cashPools[0].CashPoolId,
|
1455
|
- ExchangedCash: cashPools[0].ExchangedCash + (updateExchangeCashPersonCommand.ExchangedSuMoney - personFound.ExchangedSuMoney) * activityFound.Rate,
|
|
|
1456
|
- UnExchangeCash: cashPools[0].UnExchangeCash - (updateExchangeCashPersonCommand.ExchangedSuMoney - personFound.ExchangedSuMoney) * activityFound.Rate,
|
1483
|
+ ExchangedCash: updateExchangedCash,
|
|
|
1484
|
+ UnExchangeCash: updateUnExchangeCash,
|
1457
|
Rate: newRate,
|
1485
|
Rate: newRate,
|
1458
|
- ExchangedSuMoney: cashPools[0].ExchangedSuMoney + (updateExchangeCashPersonCommand.ExchangedSuMoney - personFound.ExchangedSuMoney),
|
1486
|
+ ExchangedSuMoney: updateExchangedSuMoney,
|
1459
|
UnExchangeSuMoney: systemUnExchangeSuMoney,
|
1487
|
UnExchangeSuMoney: systemUnExchangeSuMoney,
|
1460
|
}
|
1488
|
}
|
1461
|
|
1489
|
|
1462
|
- fmt.Print(updateCashPoolCommand.ExchangedCash, "\n")
|
1490
|
+ fmt.Printf("UpdateCashPoolCommand=%+v\n", updateCashPoolCommand)
|
1463
|
|
1491
|
|
1464
|
// 更新现金池
|
1492
|
// 更新现金池
|
1465
|
if err := cashPools[0].Update(tool_funs.SimpleStructToMap(updateCashPoolCommand)); err != nil {
|
1493
|
if err := cashPools[0].Update(tool_funs.SimpleStructToMap(updateCashPoolCommand)); err != nil {
|
1466
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
1494
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
1467
|
}
|
1495
|
}
|
1468
|
|
1496
|
|
|
|
1497
|
+ // 保存现金池更新
|
1469
|
cashPoolUpdated, err := cashPoolRepository.Save(cashPools[0])
|
1498
|
cashPoolUpdated, err := cashPoolRepository.Save(cashPools[0])
|
1470
|
if err != nil {
|
1499
|
if err != nil {
|
1471
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1500
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
@@ -1474,9 +1503,12 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
|
@@ -1474,9 +1503,12 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC |
1474
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1503
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
1475
|
}
|
1504
|
}
|
1476
|
|
1505
|
|
|
|
1506
|
+ fmt.Printf("Updated CashPool: %+v\n", cashPoolUpdated)
|
|
|
1507
|
+
|
1477
|
if err := transactionContext.CommitTransaction(); err != nil {
|
1508
|
if err := transactionContext.CommitTransaction(); err != nil {
|
1478
|
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
1509
|
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
1479
|
}
|
1510
|
}
|
|
|
1511
|
+
|
1480
|
return personUpdated, nil
|
1512
|
return personUpdated, nil
|
1481
|
}
|
1513
|
}
|
1482
|
|
1514
|
|