WH01243 4 년 전
부모
커밋
5854c89f90

+ 21 - 19
api/integral.api

@@ -18,25 +18,25 @@ type RespList {
 }
 
 type Point {
-	Id         int64  `form:"id"`
-	PointType  int64  `form:"pointType"`
-	SourceId   string `form:"sourceId"`
-	SourceType string `form:"sourceType"`
-	Point      int64  `form:"point"`
-	CreateTime string `form:"createTime"`
-	EndDate    string `form:"endDate"`
-	Sort       int64  `form:"sort"`
-	Abstract   string `form:"abstract"`
-	Name       string `form:"name"`
+	Id           int64  `form:"id"`
+	PointType    int64  `form:"pointType"`
+	SourceId     string `form:"sourceId"`
+	SourceType   string `form:"sourceType"`
+	Point        int64  `form:"point"`
+	CreateTime   string `form:"createTime"`
+	EndDate      string `form:"endDate"`
+	Sort         int64  `form:"sort"`
+	Abstract     string `form:"abstract"`
+	Name         string `form:"name"`
+	SerialNumber string `form:"serialNumber"`
 }
 
 type response {
 	// TODO: add members here and delete this comment
-	Code         int64  `form:"code"`
-	Message      string `form:"message"`
-	Data         int64  `form:"data"`
-	Expire       int64  `form:"expire"`
-	SerialNumber string `form:"serialNumber"`
+	Code    int64  `form:"code"`
+	Message string `form:"message"`
+	Data    int64  `form:"data"`
+	Expire  int64  `form:"expire"`
 }
 
 type checkReq {
@@ -64,8 +64,9 @@ type (
 	}
 
 	addResp {
-		Code    int64  `form:"code"`
-		Message string `form:"message"`
+		Code         int64  `form:"code"`
+		Message      string `form:"message"`
+		SerialNumber string `form:"serialNumber"`
 	}
 )
 type (
@@ -81,8 +82,9 @@ type (
 	}
 
 	ConsumeResp {
-		Code    int64  `form:"code"`
-		Message string `form:"message"`
+		Code         int64  `form:"code"`
+		Message      string `form:"message"`
+		SerialNumber string `form:"serialNumber"`
 	}
 )
 type guardReq {

+ 1 - 0
api/internal/logic/integralconsumelogic.go

@@ -44,5 +44,6 @@ func (l *IntegralConsumeLogic) IntegralConsume(req types.ConsumeReq) (*types.Con
 	}
 	result.Code = resp.Code
 	result.Message = resp.Message
+	result.SerialNumber=resp.SerialNumber
 	return result, nil
 }

+ 1 - 0
api/internal/logic/integraldetailedchecklogic.go

@@ -52,6 +52,7 @@ func (l *IntegralDetailedCheckLogic) IntegralDetailedCheck(req types.DetailedReq
 		point.SourceType=value.SourceType
 		point.Name=value.Name
 		point.Abstract=value.Abstract
+		point.SerialNumber=value.S
 		data=append(data,&point)
 	}
 	result.Data=data

+ 1 - 0
api/internal/logic/integralharvestlogic.go

@@ -44,5 +44,6 @@ func (l *IntegralHarvestLogic) IntegralHarvest(req types.AddReq) (*types.AddResp
 	}
 	result.Code = resp.Code
 	result.Message = resp.Message
+	result.SerialNumber=resp.SerialNumber
 	return result, nil
 }

+ 21 - 19
api/internal/types/types.go

@@ -17,24 +17,24 @@ type RespList struct {
 }
 
 type Point struct {
-	Id         int64  `form:"id"`
-	PointType  int64  `form:"pointType"`
-	SourceId   string `form:"sourceId"`
-	SourceType string `form:"sourceType"`
-	Point      int64  `form:"point"`
-	CreateTime string `form:"createTime"`
-	EndDate    string `form:"endDate"`
-	Sort       int64  `form:"sort"`
-	Abstract   string `form:"abstract"`
-	Name       string `form:"name"`
+	Id           int64  `form:"id"`
+	PointType    int64  `form:"pointType"`
+	SourceId     string `form:"sourceId"`
+	SourceType   string `form:"sourceType"`
+	Point        int64  `form:"point"`
+	CreateTime   string `form:"createTime"`
+	EndDate      string `form:"endDate"`
+	Sort         int64  `form:"sort"`
+	Abstract     string `form:"abstract"`
+	Name         string `form:"name"`
+	SerialNumber string `form:"serialNumber"`
 }
 
 type Response struct {
-	Code         int64  `form:"code"`
-	Message      string `form:"message"`
-	Data         int64  `form:"data"`
-	Expire       int64  `form:"expire"`
-	SerialNumber string `form:"serialNumber"`
+	Code    int64  `form:"code"`
+	Message string `form:"message"`
+	Data    int64  `form:"data"`
+	Expire  int64  `form:"expire"`
 }
 
 type CheckReq struct {
@@ -61,8 +61,9 @@ type AddReq struct {
 }
 
 type AddResp struct {
-	Code    int64  `form:"code"`
-	Message string `form:"message"`
+	Code         int64  `form:"code"`
+	Message      string `form:"message"`
+	SerialNumber string `form:"serialNumber"`
 }
 
 type ConsumeReq struct {
@@ -77,8 +78,9 @@ type ConsumeReq struct {
 }
 
 type ConsumeResp struct {
-	Code    int64  `form:"code"`
-	Message string `form:"message"`
+	Code         int64  `form:"code"`
+	Message      string `form:"message"`
+	SerialNumber string `form:"serialNumber"`
 }
 
 type GuardReq struct {

+ 14 - 12
entity/integral.go

@@ -50,22 +50,24 @@ type Flow struct {
 	Sort          int64  `xorm:"sort" form:"sort" json:"sort"`                            //操作类型1加-1减
 	OperationType int64  `xorm:"OperationType" form:"OperationType" json:"OperationType"` //1永久2时效
 	Abstract      string `xorm:"abstract" form:"abstract" json:"abstract"`                //积分类型名称
+	SerialNumber  string `xorm:"serialNumber" form:"serialNumber" json:"serialNumber"`    //流水号
 }
 
 //积分流水
 type FlowReq struct {
-	Id         int64     `xorm:"pk autoincr id" form:"id" json:"id"`
-	UserId     string    `xorm:"userId" form:"userId" json:"userId"`             //用户标识
-	PointType  int64     `xorm:"pointType" form:"pointType" json:"pointType"`    //积分类型
-	SourceId   string    `xorm:"sourceId" form:"sourceId" json:"sourceId"`       //来源标识
-	SourceType string    `xorm:"sourceType" form:"sourceType" json:"sourceType"` //来源类型
-	Point      int64     `xorm:"point" form:"point" json:"point"`                //积分
-	CreateTime time.Time `xorm:"createTime" form:"createTime" json:"createTime"` //创建时间
-	EndDate    string    `xorm:"endDate" form:"endDate" json:"endDate"`          //截止时间
-	AppId      string    `xorm:"appId" form:"appId" json:"appId"`                //剑鱼标识
-	Sort       int64     `xorm:"sort" form:"sort" json:"sort"`                   //操作类型1加-1减
-	Name       string    `xorm:"name" form:"name" json:"name"`                   //积分类型名称
-	Abstract   string    `xorm:"abstract" form:"abstract" json:"abstract"`       //积分类型名称
+	Id           int64     `xorm:"pk autoincr id" form:"id" json:"id"`
+	UserId       string    `xorm:"userId" form:"userId" json:"userId"`                   //用户标识
+	PointType    int64     `xorm:"pointType" form:"pointType" json:"pointType"`          //积分类型
+	SourceId     string    `xorm:"sourceId" form:"sourceId" json:"sourceId"`             //来源标识
+	SourceType   string    `xorm:"sourceType" form:"sourceType" json:"sourceType"`       //来源类型
+	Point        int64     `xorm:"point" form:"point" json:"point"`                      //积分
+	CreateTime   time.Time `xorm:"createTime" form:"createTime" json:"createTime"`       //创建时间
+	EndDate      string    `xorm:"endDate" form:"endDate" json:"endDate"`                //截止时间
+	AppId        string    `xorm:"appId" form:"appId" json:"appId"`                      //剑鱼标识
+	Sort         int64     `xorm:"sort" form:"sort" json:"sort"`                         //操作类型1加-1减
+	Name         string    `xorm:"name" form:"name" json:"name"`                         //积分类型名称
+	SerialNumber string    `xorm:"serialNumber" form:"serialNumber" json:"serialNumber"` //流水号
+	Abstract     string    `xorm:"abstract" form:"abstract" json:"abstract"`             //积分类型名称
 }
 
 //积分结存

+ 1 - 0
rpc/integral.proto

@@ -42,6 +42,7 @@ message Point {
     int64 Sort = 8;
     string name=9;
     string abstract=10;
+    string serialNumber=11
 
 }
 

+ 2 - 1
rpc/internal/logic/integralconsumelogic.go

@@ -42,8 +42,9 @@ func (l *IntegralConsumeLogic) IntegralConsume(in *integral.Req) (*integral.Resp
 	dat.EndDate = in.EndDate
 	dat.AppId = in.AppId
 	dat.Abstract=in.Abstract
-	code,msg := integralService.IntegralConsumeService(dat)
+	code,msg,serialNumber := integralService.IntegralConsumeService(dat)
 	result.Code = code
+	result.SerialNumber=serialNumber
 	result.Message = msg
 	return result,nil
 }

+ 2 - 1
rpc/internal/logic/integralharvestlogic.go

@@ -37,9 +37,10 @@ func (l *IntegralHarvestLogic) IntegralHarvest(in *integral.Req) (*integral.Resp
 	dat.UserId = in.UserId
 	dat.Point = in.Point
 	dat.Abstract=in.Abstract
-	code, msg := integralService.IntegralAddService(dat)
+	code, msg,serialNumber:= integralService.IntegralAddService(dat)
 	fmt.Println(code, msg)
 	result.Code = code
+	result.SerialNumber=serialNumber
 	result.Message = msg
 	return result, nil
 }

+ 30 - 22
service/integralService.go

@@ -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
 }
 
 //到期积分查询