Pārlūkot izejas kodu

Merge branch 'master' of https://app.yhyue.com/moapp/jyPoints

WH01243 4 gadi atpakaļ
vecāks
revīzija
054ce59467
3 mainītis faili ar 60 papildinājumiem un 36 dzēšanām
  1. 2 2
      api/integral.api
  2. 5 1
      api/internal/types/types.go
  3. 53 33
      service/integralService.go

+ 2 - 2
api/integral.api

@@ -102,6 +102,6 @@ service integral-api {
 	@handler IntegralDetailedCheckHandler // TODO: set handler name and delete this comment
 	get /integralDetailedCheck (DetailedReq) returns(RespList)
 	//积分守护
-    @handler IntegralGuardHandler // TODO: set handler name and delete this comment
-    post /integralGuard (guardReq) returns(response)
+	@handler IntegralGuardHandler // TODO: set handler name and delete this comment
+	post /integralGuard (guardReq) returns(response)
 }

+ 5 - 1
api/internal/types/types.go

@@ -62,6 +62,7 @@ type AddResp struct {
 	Code    int64  `form:"code"`
 	Message string `form:"message"`
 }
+
 type ConsumeReq struct {
 	UserId         string `form:"userId"`
 	AppId          int64  `form:"appId"`
@@ -72,8 +73,11 @@ type ConsumeReq struct {
 	EndDate        string `form:"endDate"`
 }
 
-
 type ConsumeResp struct {
 	Code    int64  `form:"code"`
 	Message string `form:"message"`
 }
+
+type GuardReq struct {
+	EndDate string `form:"endDate"`
+}

+ 53 - 33
service/integralService.go

@@ -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 {