|
@@ -5,13 +5,15 @@ import (
|
|
|
"app.yhyue.com/moapp/jyPoints/rpc/integral"
|
|
|
"fmt"
|
|
|
"log"
|
|
|
+ "math/rand"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
type IntegralService struct{}
|
|
|
|
|
|
//新增积分流水
|
|
|
-func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64, string) {
|
|
|
+func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64, string,string) {
|
|
|
+ serialNumber:="0000"
|
|
|
orm := entity.Engine.NewSession()
|
|
|
defer orm.Close()
|
|
|
err := orm.Begin()
|
|
@@ -31,11 +33,14 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
if data.OperationType {
|
|
|
flow.OperationType = 1
|
|
|
}
|
|
|
+ //流水号
|
|
|
+ serialNumber= time.Now().Format("20060102150405000")+fmt.Sprint(rand.Intn(100))
|
|
|
+ flow.SerialNumber=serialNumber
|
|
|
numb, err = orm.Table("integral_flow").Insert(flow)
|
|
|
if err != nil && numb == 0 {
|
|
|
log.Print("新增流水失败:", err)
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "新增流水失败"
|
|
|
+ return entity.ErrorCode, "新增流水失败",serialNumber
|
|
|
}
|
|
|
//结存修改
|
|
|
solde := entity.Solde{}
|
|
@@ -53,7 +58,7 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
if err != nil || numb == 0 {
|
|
|
log.Print("修改时效积分失败:", err)
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "修改时效积分失败"
|
|
|
+ return entity.ErrorCode, "修改时效积分失败",serialNumber
|
|
|
}
|
|
|
} else {
|
|
|
solde.PerManEntPoints = data.Point
|
|
@@ -61,7 +66,7 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
if err != nil || numb == 0 {
|
|
|
log.Print("新增永久积分失败")
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "新增永久积分失败"
|
|
|
+ return entity.ErrorCode, "新增永久积分失败",serialNumber
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -77,7 +82,7 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
if err != nil || numb == 0 {
|
|
|
log.Print("修改时效积分失败:", err)
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "修改时效积分失败"
|
|
|
+ return entity.ErrorCode, "修改时效积分失败",serialNumber
|
|
|
}
|
|
|
} else {
|
|
|
solde.TimePoints = data.Point
|
|
@@ -85,7 +90,7 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
if err != nil && numb == 0 {
|
|
|
log.Print("新增时效积分失败:", err)
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "新增时效积分失败"
|
|
|
+ return entity.ErrorCode, "新增时效积分失败",serialNumber
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -102,7 +107,7 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
if err != nil || numb == 0 {
|
|
|
log.Print("新增余额失败:", err)
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "新增余额失败"
|
|
|
+ return entity.ErrorCode, "新增余额失败",serialNumber
|
|
|
}
|
|
|
} else {
|
|
|
//修改余额
|
|
@@ -111,19 +116,21 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
|
|
|
if err != nil || numb == 0 {
|
|
|
log.Print("余额新增失败:", err)
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "余额新增失败"
|
|
|
+ return entity.ErrorCode, "余额新增失败",serialNumber
|
|
|
}
|
|
|
}
|
|
|
err = orm.Commit()
|
|
|
if err != nil {
|
|
|
log.Print("积分新增失败:", err)
|
|
|
- return entity.ErrorCode, "积分新增失败"
|
|
|
+ return entity.ErrorCode, "积分新增失败",serialNumber
|
|
|
}
|
|
|
- return entity.SuccessCode, "余额新增成功"
|
|
|
+ return entity.SuccessCode, "余额新增成功",serialNumber
|
|
|
}
|
|
|
|
|
|
//消耗积分流水
|
|
|
-func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (int64, string) {
|
|
|
+func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (int64, string,string) {
|
|
|
+ serialNumber:="0000"
|
|
|
+ serialNumber= time.Now().Format("20060102150405000")+fmt.Sprint(rand.Intn(100))
|
|
|
orm := entity.Engine.NewSession()
|
|
|
defer orm.Close()
|
|
|
var err = orm.Begin()
|
|
@@ -135,14 +142,14 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
Get(&balance)
|
|
|
if err != nil {
|
|
|
log.Printf("积分余额查询出错,userId:[%s],err:[%v]", data.UserId, err)
|
|
|
- return entity.ErrorCode, "积分余额查询出错"
|
|
|
+ return entity.ErrorCode, "积分余额查询出错",serialNumber
|
|
|
}
|
|
|
if !b {
|
|
|
log.Printf("没有查询到[%s]的积分记录,err:[%v]", data.UserId, err)
|
|
|
- return entity.ErrorCode, "没有查询到积分记录"
|
|
|
+ return entity.ErrorCode, "没有查询到积分记录",serialNumber
|
|
|
}
|
|
|
if balance.CountPoints < data.Point {
|
|
|
- return entity.ErrorCode, "积分余额不足"
|
|
|
+ return entity.ErrorCode, "积分余额不足",serialNumber
|
|
|
}
|
|
|
|
|
|
//结存消耗
|
|
@@ -153,7 +160,7 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
Desc("timePoints").
|
|
|
Find(&soldelist)
|
|
|
if len(soldelist) == 0 {
|
|
|
- return entity.ErrorCode, "没有结存可以消耗"
|
|
|
+ return entity.ErrorCode, "没有结存可以消耗",serialNumber
|
|
|
}
|
|
|
var point = data.Point
|
|
|
for _, solde := range soldelist {
|
|
@@ -173,7 +180,7 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
if err != nil || af == 0 {
|
|
|
log.Print("消耗永久积分失败:", err)
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "消耗永久积分失败"
|
|
|
+ return entity.ErrorCode, "消耗永久积分失败",serialNumber
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -189,7 +196,7 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
if err != nil || af == 0 {
|
|
|
log.Print("消耗时效积分失败:", err)
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "消耗时效积分失败"
|
|
|
+ return entity.ErrorCode, "消耗时效积分失败",serialNumber
|
|
|
}
|
|
|
break
|
|
|
}
|
|
@@ -203,7 +210,7 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
if err != nil || af == 0 {
|
|
|
log.Print("消耗时效积分失败:", err)
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "消耗时效积分失败"
|
|
|
+ return entity.ErrorCode, "消耗时效积分失败",serialNumber
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -217,7 +224,7 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
if err != nil || af == 0 {
|
|
|
log.Print("余额扣除失败:", err)
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "余额扣除失败"
|
|
|
+ return entity.ErrorCode, "余额扣除失败",serialNumber
|
|
|
}
|
|
|
|
|
|
//消耗积分流水记录
|
|
@@ -233,18 +240,19 @@ func (service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (in
|
|
|
flow.EndDate = data.EndDate
|
|
|
flow.AppId = data.AppId
|
|
|
flow.Sort = entity.ReduceCode
|
|
|
+ flow.SerialNumber=serialNumber
|
|
|
af, err = orm.Table("integral_flow").Insert(&flow)
|
|
|
if err != nil || af == 0 {
|
|
|
log.Print("积分记录失败")
|
|
|
orm.Rollback()
|
|
|
- return entity.ErrorCode, "积分记录失败"
|
|
|
+ return entity.ErrorCode, "积分记录失败",serialNumber
|
|
|
}
|
|
|
|
|
|
err = orm.Commit()
|
|
|
if err != nil {
|
|
|
- return entity.ErrorCode, "积分消耗失败"
|
|
|
+ return entity.ErrorCode, "积分消耗失败",serialNumber
|
|
|
}
|
|
|
- return entity.SuccessCode, "积分消耗成功"
|
|
|
+ return entity.SuccessCode, "积分消耗成功",serialNumber
|
|
|
}
|
|
|
|
|
|
//到期积分查询
|