|
@@ -26,7 +26,7 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
var numb = int64(0)
|
|
|
numb, err = orm.Table("integral_flow").Insert(flow)
|
|
|
if err != nil && numb == 0 {
|
|
|
- log.Print("新增流水失败:",err)
|
|
|
+ log.Print("新增流水失败:", err)
|
|
|
return entity.ErrorCode, "新增流水失败"
|
|
|
}
|
|
|
//结存修改
|
|
@@ -42,7 +42,7 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
soldelist[0].PerManEntPoints += data.Point
|
|
|
numb, err = orm.Table("integral_solde").ID(soldelist[0].Id).Cols("perManEntPoints").Update(soldelist[0])
|
|
|
if err != nil && numb == 0 {
|
|
|
- log.Print("修改时效积分失败:",err)
|
|
|
+ log.Print("修改时效积分失败:", err)
|
|
|
return entity.ErrorCode, "修改时效积分失败"
|
|
|
}
|
|
|
} else {
|
|
@@ -63,14 +63,14 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
soldelist[0].TimePoints += data.Point
|
|
|
numb, err = orm.Table("integral_solde").ID(soldelist[0].Id).Cols("timePoints").Update(soldelist[0])
|
|
|
if err != nil && numb == 0 {
|
|
|
- log.Print("修改时效积分失败:",err)
|
|
|
+ log.Print("修改时效积分失败:", err)
|
|
|
return entity.ErrorCode, "修改时效积分失败"
|
|
|
}
|
|
|
} else {
|
|
|
solde.TimePoints = data.Point
|
|
|
numb, err = orm.Table("integral_solde").Insert(&solde)
|
|
|
if err != nil && numb == 0 {
|
|
|
- log.Print("新增时效积分失败:",err)
|
|
|
+ log.Print("新增时效积分失败:", err)
|
|
|
return entity.ErrorCode, "新增时效积分失败"
|
|
|
}
|
|
|
}
|
|
@@ -86,7 +86,7 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
balance.CountPoints = data.Point
|
|
|
numb, err = entity.Engine.Table("integral_balance").Insert(&balance)
|
|
|
if err != nil && numb == 0 {
|
|
|
- log.Print("新增余额失败:",err)
|
|
|
+ log.Print("新增余额失败:", err)
|
|
|
return entity.ErrorCode, "新增余额失败"
|
|
|
}
|
|
|
} else {
|
|
@@ -94,7 +94,7 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
balanceList[0].CountPoints = balanceList[0].CountPoints + data.Point
|
|
|
numb, err = entity.Engine.Table("integral_balance").ID(balanceList[0].Id).Cols("countPoints").Update(balanceList[0])
|
|
|
if err != nil && numb == 0 {
|
|
|
- log.Print("余额新增失败:",err)
|
|
|
+ log.Print("余额新增失败:", err)
|
|
|
return entity.ErrorCode, "余额新增失败"
|
|
|
}
|
|
|
}
|
|
@@ -103,8 +103,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").
|
|
@@ -121,9 +123,10 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
//结存消耗
|
|
|
soldelist := []entity.Solde{}
|
|
|
err = entity.Engine.Table("integral_solde").
|
|
|
- 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")).
|
|
|
+ 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, "没有结存可以消耗"
|
|
|
}
|
|
@@ -143,7 +146,8 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
Cols("perManEntPoints").
|
|
|
Update(solde)
|
|
|
if err != nil && af == 0 {
|
|
|
- log.Print("消耗永久积分失败:",err)
|
|
|
+ log.Print("消耗永久积分失败:", err)
|
|
|
+ orm.Rollback()
|
|
|
return entity.ErrorCode, "消耗永久积分失败"
|
|
|
}
|
|
|
}
|
|
@@ -158,7 +162,8 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
Cols("timePoints").
|
|
|
Update(solde)
|
|
|
if err != nil && af == 0 {
|
|
|
- log.Print("消耗时效积分失败:",err)
|
|
|
+ log.Print("消耗时效积分失败:", err)
|
|
|
+ orm.Rollback()
|
|
|
return entity.ErrorCode, "消耗时效积分失败"
|
|
|
}
|
|
|
break
|
|
@@ -171,7 +176,8 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
Cols("timePoints").
|
|
|
Update(solde)
|
|
|
if err != nil && af == 0 {
|
|
|
- log.Print("消耗时效积分失败:",err)
|
|
|
+ log.Print("消耗时效积分失败:", err)
|
|
|
+ orm.Rollback()
|
|
|
return entity.ErrorCode, "消耗时效积分失败"
|
|
|
}
|
|
|
}
|
|
@@ -185,7 +191,8 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
Cols("countPoints").
|
|
|
Update(balance)
|
|
|
if err != nil && af == 0 {
|
|
|
- log.Print("余额扣除失败:",err)
|
|
|
+ log.Print("余额扣除失败:", err)
|
|
|
+ orm.Rollback()
|
|
|
return entity.ErrorCode, "余额扣除失败"
|
|
|
}
|
|
|
|
|
@@ -201,10 +208,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, "积分消耗成功"
|
|
|
}
|
|
|
|
|
@@ -360,8 +372,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).
|
|
@@ -392,6 +405,7 @@ func (service *IntegralService) IntegralGuardService(endDate string) bool {
|
|
|
Update(balance)
|
|
|
if err != nil && numb == 0 {
|
|
|
log.Print("余额扣除失败")
|
|
|
+ orm.Rollback()
|
|
|
return false
|
|
|
}
|
|
|
|
|
@@ -409,6 +423,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
|
|
|
}
|
|
|
|
|
@@ -421,9 +436,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
|
|
|
}
|
|
|
|
|
@@ -445,28 +465,28 @@ func (service *IntegralService) IntegralBalanceCheckService(userId string, appId
|
|
|
func (service *IntegralService) IntegralDetailedCheck(data entity.FlowJSON) ([]*integral.Point, int64) {
|
|
|
orm := entity.Engine
|
|
|
|
|
|
- var flowList []*entity.FlowReq
|
|
|
+ var flowList []*entity.FlowReq
|
|
|
numb, err := orm.Table("integral_flow").Alias("flow").
|
|
|
Select("flow.*,pt.name").
|
|
|
Join("left", "point_type pt", "flow.pointType=pt.code").
|
|
|
Where("flow.userId = ? AND flow.appId = ? AND DATE_FORMAT(flow.createTime,'%Y-%m')=? ", data.UserId, data.AppId, data.EndDate).
|
|
|
Desc("flow.createTime").
|
|
|
- Limit(int(data.PageSize), (int(data.Page - 1))*int(data.PageSize)).
|
|
|
+ Limit(int(data.PageSize), (int(data.Page-1))*int(data.PageSize)).
|
|
|
FindAndCount(&flowList)
|
|
|
var flowReq []*integral.Point
|
|
|
for _, value := range flowList {
|
|
|
- point:=integral.Point{}
|
|
|
- point.EndDate=value.EndDate
|
|
|
- point.Sort=value.Sort
|
|
|
- point.Point= value.Point
|
|
|
- point.CreateTime=value.CreateTime
|
|
|
- point.PointType=value.PointType
|
|
|
- point.BusinessTypeId=value.BusinessTypeId
|
|
|
- point.BusinessType=value.BusinessType
|
|
|
- point.Name=value.Name
|
|
|
- point.UserId=value.UserId
|
|
|
- point.AppId=value.AppId
|
|
|
- flowReq=append(flowReq,&point )
|
|
|
+ point := integral.Point{}
|
|
|
+ point.EndDate = value.EndDate
|
|
|
+ point.Sort = value.Sort
|
|
|
+ point.Point = value.Point
|
|
|
+ point.CreateTime = value.CreateTime
|
|
|
+ point.PointType = value.PointType
|
|
|
+ point.BusinessTypeId = value.BusinessTypeId
|
|
|
+ point.BusinessType = value.BusinessType
|
|
|
+ point.Name = value.Name
|
|
|
+ point.UserId = value.UserId
|
|
|
+ point.AppId = value.AppId
|
|
|
+ flowReq = append(flowReq, &point)
|
|
|
}
|
|
|
fmt.Println(flowList)
|
|
|
if err != nil {
|