|
@@ -104,8 +104,10 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
|
|
|
//消耗积分流水
|
|
|
func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (int64, string) {
|
|
|
+ orm := entity.Engine.NewSession()
|
|
|
+ defer orm.Close()
|
|
|
+ var err = orm.Begin()
|
|
|
var af = int64(0)
|
|
|
- orm := entity.Engine
|
|
|
balance := entity.Balance{}
|
|
|
//查询积分余额是否充足
|
|
|
b, err := orm.Table("integral_balance").Select("countPoints,id").
|
|
@@ -122,9 +124,10 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
//结存消耗
|
|
|
soldelist := []entity.Solde{}
|
|
|
err = entity.Engine.Table("integral_solde").
|
|
|
- Where("appId=? and userId=? and (endDate IS NULL OR endDate >= ?) and (( perManEntPoints != 0 AND timePoints = 0 ) OR ( perManEntPoints = 0 AND timePoints != 0 ))", data.AppId, data.UserId, time.Now().Format("2006-01-02")).
|
|
|
+ Where("appId=? and userId=? and (endDate = '' OR endDate IS NULL OR endDate >= ?) and (( perManEntPoints != 0 AND timePoints = 0 ) OR ( perManEntPoints = 0 AND timePoints != 0 ))", data.AppId, data.UserId, time.Now().Format("2006-01-02")).
|
|
|
Desc("endDate").
|
|
|
- Desc("timePoints").Find(&soldelist)
|
|
|
+ Desc("timePoints").
|
|
|
+ Find(&soldelist)
|
|
|
if len(soldelist) == 0 {
|
|
|
return entity.ErrorCode, "没有结存可以消耗"
|
|
|
}
|
|
@@ -145,6 +148,7 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
Update(solde)
|
|
|
if err != nil && af == 0 {
|
|
|
log.Print("消耗永久积分失败")
|
|
|
+ orm.Rollback()
|
|
|
return entity.ErrorCode, "消耗永久积分失败"
|
|
|
}
|
|
|
}
|
|
@@ -160,6 +164,7 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
Update(solde)
|
|
|
if err != nil && af == 0 {
|
|
|
log.Print("消耗时效积分失败")
|
|
|
+ orm.Rollback()
|
|
|
return entity.ErrorCode, "消耗时效积分失败"
|
|
|
}
|
|
|
break
|
|
@@ -173,6 +178,7 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
Update(solde)
|
|
|
if err != nil && af == 0 {
|
|
|
log.Print("消耗时效积分失败")
|
|
|
+ orm.Rollback()
|
|
|
return entity.ErrorCode, "消耗时效积分失败"
|
|
|
}
|
|
|
}
|
|
@@ -187,6 +193,7 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
Update(balance)
|
|
|
if err != nil && af == 0 {
|
|
|
log.Print("余额扣除失败")
|
|
|
+ orm.Rollback()
|
|
|
return entity.ErrorCode, "余额扣除失败"
|
|
|
}
|
|
|
|
|
@@ -202,10 +209,15 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
flow.AppId = data.AppId
|
|
|
flow.Sort = entity.ReduceCode
|
|
|
af, err = orm.Table("integral_flow").Insert(&flow)
|
|
|
- if err != nil && af == 0 {
|
|
|
- log.Print("积分记录失败")
|
|
|
- return entity.ErrorCode, "积分记录失败"
|
|
|
- }
|
|
|
+ if err != nil && af == 0 {
|
|
|
+ log.Print("积分记录失败")
|
|
|
+ orm.Rollback()
|
|
|
+ return entity.ErrorCode, "积分记录失败"
|
|
|
+ }
|
|
|
+ err = orm.Commit()
|
|
|
+ if err != nil {
|
|
|
+ return entity.ErrorCode, "积分消耗失败"
|
|
|
+ }
|
|
|
return entity.SuccessCode, "积分消耗成功"
|
|
|
}
|
|
|
|
|
@@ -361,8 +373,9 @@ func (service *IntegralService) IntegralBalanceService(model entity.BalanceUpdat
|
|
|
*/
|
|
|
//积分守护
|
|
|
func (service *IntegralService) IntegralGuardService(endDate string) bool {
|
|
|
- orm := entity.Engine
|
|
|
- var err error
|
|
|
+ orm := entity.Engine.NewSession()
|
|
|
+ defer orm.Close()
|
|
|
+ err := orm.Begin()
|
|
|
soldelist := []entity.Solde{}
|
|
|
err = orm.Table("integral_solde").
|
|
|
Where("timePoints != 0 AND endDate < ? ", endDate).
|
|
@@ -393,6 +406,7 @@ func (service *IntegralService) IntegralGuardService(endDate string) bool {
|
|
|
Update(balance)
|
|
|
if err != nil && numb == 0 {
|
|
|
log.Print("余额扣除失败")
|
|
|
+ orm.Rollback()
|
|
|
return false
|
|
|
}
|
|
|
|
|
@@ -410,6 +424,7 @@ func (service *IntegralService) IntegralGuardService(endDate string) bool {
|
|
|
af, err := orm.Table("integral_flow").Insert(&flow)
|
|
|
if err != nil && af == 0 {
|
|
|
log.Print("积分记录失败")
|
|
|
+ orm.Rollback()
|
|
|
return false
|
|
|
}
|
|
|
|
|
@@ -422,9 +437,14 @@ func (service *IntegralService) IntegralGuardService(endDate string) bool {
|
|
|
Update(soldeUpdate)
|
|
|
if af == 0 && err != nil {
|
|
|
log.Println("过期时效积分清空失败", solde.Id)
|
|
|
+ orm.Rollback()
|
|
|
return false
|
|
|
}
|
|
|
}
|
|
|
+ err = orm.Commit()
|
|
|
+ if err != nil {
|
|
|
+ return false
|
|
|
+ }
|
|
|
return true
|
|
|
}
|
|
|
|