作者 陈志颖

fix:修改现金池逻辑

@@ -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 -  
77 - systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64) // 平台已兑换素币  
78 - systemUnExchangeSuMoney := systemSuMoneyStatistics["systemUnExchangeSuMoney"].(float64) // 平台未兑换素币  
79 59
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,55 +67,72 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co @@ -87,55 +67,72 @@ 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 + })
91 if err != nil { 74 if err != nil {
92 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 75 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
93 } 76 }
  77 + if count == 0 {
  78 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司id")
  79 + }
94 80
95 - newCashPool := &domain.CashPool{  
96 - CompanyId: createCashPoolCommand.CompanyId,  
97 - Cash: createCashPoolCommand.Cash,  
98 - ExchangedCash: 0,  
99 - UnExchangeCash: 0,  
100 - ExchangedSuMoney: systemExchangedSuMoney,  
101 - UnExchangeSuMoney: systemUnExchangeSuMoney,  
102 - Rate: 0,  
103 - CreateTime: time.Now(), 81 + // 获取平台素币兑换情况
  82 + systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(createCashPoolCommand.CompanyId)
  83 + if err != nil {
  84 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
104 } 85 }
  86 + systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64) // 平台已兑换素币
  87 + systemUnExchangeSuMoney := systemSuMoneyStatistics["systemUnExchangeSuMoney"].(float64) // 平台未兑换素币
105 88
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 { 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{
  96 + CompanyId: createCashPoolCommand.CompanyId,
  97 + Cash: createCashPoolCommand.Cash,
  98 + ExchangedCash: 0,
  99 + UnExchangeCash: createCashPoolCommand.Cash,
  100 + ExchangedSuMoney: 0,
  101 + UnExchangeSuMoney: systemUnExchangeSuMoney,
  102 + Rate: 0,
  103 + CreateTime: time.Now(),
  104 + }
  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())
  110 + }
  111 + return cashPool, nil
113 } 112 }
114 - if systemCashStatistics == nil {  
115 - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司") 113 + } else { // 更新现金池
  114 + if createCashPoolCommand.Cash < cashPools[0].ExchangedCash {
  115 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "投入的现金值必须大于当前已兑换现金值")
116 } 116 }
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) // 平均兑换汇率 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(),
127 } 127 }
128 -  
129 - newCashPool.Rate = rate  
130 - }  
131 -  
132 - if cashPool, err := cashPoolRepository.Save(newCashPool); err != nil {  
133 - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())  
134 - } else {  
135 - if err := transactionContext.CommitTransaction(); err != nil {  
136 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 128 + if cashPool, err := cashPoolRepository.Save(newCashPool); err != nil {
  129 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  130 + } else {
  131 + if err := transactionContext.CommitTransaction(); err != nil {
  132 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  133 + }
  134 + return cashPool, nil
137 } 135 }
138 - return cashPool, nil  
139 } 136 }
140 } 137 }
141 138
@@ -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)  
1389 - if err != nil {  
1390 - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())  
1391 - }  
1392 - if systemCashStatistics == nil {  
1393 - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")  
1394 - }  
1395 -  
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) 1411 + systemCashStatistics, err := employeeDao.CalculateSystemCash(activityUpdated.CompanyId)
1403 if err != nil { 1412 if err != nil {
1404 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 1413 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
1405 } 1414 }
1406 if systemCashStatistics == nil { 1415 if systemCashStatistics == nil {
1407 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司") 1416 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
1408 } 1417 }
  1418 + systemExchangedCash := systemCashStatistics["systemExchangedCash"].(float64)
  1419 + systemUnExchangeCash := systemCashStatistics["systemUnExchangeCash"].(float64)
1409 1420
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
@@ -1102,8 +1102,10 @@ func (taskService *TaskService) UpdateTask(updateTaskCommand *command.UpdateTask @@ -1102,8 +1102,10 @@ func (taskService *TaskService) UpdateTask(updateTaskCommand *command.UpdateTask
1102 updateData["assignedPerson"] = &domain.EmployeeInfo{} 1102 updateData["assignedPerson"] = &domain.EmployeeInfo{}
1103 } 1103 }
1104 } 1104 }
  1105 + // TODO 任务返回错误类型
1105 if err := task.Update(updateData); err != nil { 1106 if err := task.Update(updateData); err != nil {
1106 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) 1107 + //return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
  1108 + return nil, err
1107 } 1109 }
1108 if task, err := taskRepository.Save(task); err != nil { 1110 if task, err := taskRepository.Save(task); err != nil {
1109 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 1111 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
@@ -23,7 +23,9 @@ type CashPoolRepository interface { @@ -23,7 +23,9 @@ type CashPoolRepository interface {
23 } 23 }
24 24
25 func (cashPool *CashPool) Update(data map[string]interface{}) error { 25 func (cashPool *CashPool) Update(data map[string]interface{}) error {
26 - 26 + if cash, ok := data["cash"]; ok {
  27 + cashPool.Cash = cash.(float64)
  28 + }
27 if exchangedCash, ok := data["exchangedCash"]; ok { 29 if exchangedCash, ok := data["exchangedCash"]; ok {
28 cashPool.ExchangedCash = exchangedCash.(float64) 30 cashPool.ExchangedCash = exchangedCash.(float64)
29 } 31 }
@@ -47,5 +49,9 @@ func (cashPool *CashPool) Identity() interface{} { @@ -47,5 +49,9 @@ func (cashPool *CashPool) Identity() interface{} {
47 return nil 49 return nil
48 } 50 }
49 return cashPool.CashPoolId 51 return cashPool.CashPoolId
  52 + //if cashPool.CompanyId == 0 {
  53 + // return nil
  54 + //}
  55 + //return cashPool.CompanyId
50 } 56 }
51 57
@@ -160,7 +160,7 @@ func (dao *EmployeeDao) CalculateSystemSuMoney(companyId int64) (map[string] int @@ -160,7 +160,7 @@ func (dao *EmployeeDao) CalculateSystemSuMoney(companyId int64) (map[string] int
160 ColumnExpr("sum(su_money_transaction_record.su_money) AS system_changed_su_money"). 160 ColumnExpr("sum(su_money_transaction_record.su_money) AS system_changed_su_money").
161 Where("e.company_id = ?", companyId). 161 Where("e.company_id = ?", companyId).
162 Where("e.status = ?", 1). 162 Where("e.status = ?", 1).
163 - Where(`su_money_transaction_record.record_type = ?`, 1). 163 + Where(`su_money_transaction_record.record_type = ?`, 5).
164 Select(&systemExchangedSuMoney); err != nil { 164 Select(&systemExchangedSuMoney); err != nil {
165 return nil, err 165 return nil, err
166 } 166 }
@@ -39,7 +39,7 @@ func (dao *TaskDao) UpdateExpiredPlannedCompletionTimeBidTask() error { @@ -39,7 +39,7 @@ func (dao *TaskDao) UpdateExpiredPlannedCompletionTimeBidTask() error {
39 tx := dao.transactionContext.PgTx 39 tx := dao.transactionContext.PgTx
40 _, err := tx.Query( 40 _, err := tx.Query(
41 pg.Scan(), 41 pg.Scan(),
42 - "UPDATE tasks SET task_status = ? WHERE planned_completion_time > ? AND task_type = ? AND task_status = ?", 42 + "UPDATE tasks SET task_status = ? WHERE planned_completion_time < ? AND task_type = ? AND task_status = ?",
43 domain.TASK_STATUS_EXPIRED, currentDay, domain.TASK_TYPE_BID, domain.TASK_STATUS_UNCLAIMED) 43 domain.TASK_STATUS_EXPIRED, currentDay, domain.TASK_TYPE_BID, domain.TASK_STATUS_UNCLAIMED)
44 return err 44 return err
45 } 45 }
@@ -14,6 +14,7 @@ type CashPoolRepository struct { @@ -14,6 +14,7 @@ type CashPoolRepository struct {
14 14
15 func (repository *CashPoolRepository) Save(cashPool *domain.CashPool) (*domain.CashPool, error) { 15 func (repository *CashPoolRepository) Save(cashPool *domain.CashPool) (*domain.CashPool, error) {
16 tx := repository.transactionContext.PgTx 16 tx := repository.transactionContext.PgTx
  17 + fmt.Print(cashPool.Identity(), "\n")
17 if cashPool.Identity() == nil { 18 if cashPool.Identity() == nil {
18 if _, err := tx.QueryOne( 19 if _, err := tx.QueryOne(
19 pg.Scan(&cashPool.CashPoolId, &cashPool.Cash, &cashPool.CompanyId, &cashPool.ExchangedCash, &cashPool.UnExchangeCash, &cashPool.ExchangedSuMoney, &cashPool.UnExchangeSuMoney, &cashPool.Rate, &cashPool.CreateTime), 20 pg.Scan(&cashPool.CashPoolId, &cashPool.Cash, &cashPool.CompanyId, &cashPool.ExchangedCash, &cashPool.UnExchangeCash, &cashPool.ExchangedSuMoney, &cashPool.UnExchangeSuMoney, &cashPool.Rate, &cashPool.CreateTime),
@@ -75,9 +76,12 @@ func (repository *CashPoolRepository) FindOne(queryOptions map[string]interface{ @@ -75,9 +76,12 @@ func (repository *CashPoolRepository) FindOne(queryOptions map[string]interface{
75 tx := repository.transactionContext.PgTx 76 tx := repository.transactionContext.PgTx
76 cashPoolModel := new(models.CashPool) 77 cashPoolModel := new(models.CashPool)
77 query := tx.Model(cashPoolModel) 78 query := tx.Model(cashPoolModel)
78 - if cashPoolId, ok := queryOptions["cashPoolId"]; ok {  
79 - query = query.Where("cash_pool.id = ?", cashPoolId) 79 + if companyId, ok := queryOptions["companyId"]; ok {
  80 + query = query.Where("cash_pool.company_id = ?", companyId)
80 } 81 }
  82 + //if cashPoolId, ok := queryOptions["cashPoolId"]; ok {
  83 + // query = query.Where("cash_pool.id = ?", cashPoolId)
  84 + //}
81 if err := query.First(); err != nil { 85 if err := query.First(); err != nil {
82 if err.Error() == "pg: no rows in result set" { 86 if err.Error() == "pg: no rows in result set" {
83 return nil, fmt.Errorf("没有此资源") 87 return nil, fmt.Errorf("没有此资源")
@@ -8,8 +8,11 @@ import ( @@ -8,8 +8,11 @@ import (
8 8
9 var Logger log.Logger 9 var Logger log.Logger
10 10
  11 +// TODO 日志输出
11 func init() { 12 func init() {
12 Logger = logrus.NewLogrusLogger() 13 Logger = logrus.NewLogrusLogger()
13 Logger.SetServiceName(constant.SERVICE_NAME) 14 Logger.SetServiceName(constant.SERVICE_NAME)
14 Logger.SetLevel(constant.LOG_LEVEL) 15 Logger.SetLevel(constant.LOG_LEVEL)
15 } 16 }
  17 +
  18 +