1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package service
- import (
- "fmt"
- "log"
- "points_service/entity"
- "time"
- )
- type IntegralService struct{}
- //消耗积分流水
- func(service *IntegralService) IntegralConsumeService(data entity.FlowJSON) (int,string) {
- orm := entity.Engine
- flow := entity.Flow{}
- flow.UserId = data.UserId
- flow.PointType = data.PointType
- flow.BusinessTypeId = data.BusinessTypeId
- flow.BusinessType = data.BusinessType
- flow.Point = data.Point
- flow.CreateTime = time.Now().Format("2006-01-02 15:04:05")
- flow.EndDate = data.EndDate
- flow.AppId = data.AppId
- //判断是否为消耗积分:false
- if !data.Sort {
- //查询积分余额是否充足
- balance := entity.Balance{}
- balance.UserId = data.UserId
- balance.AppId = data.AppId
- b,err := orm.Table("integral_balance").Select("countPoints").
- Where("userId = ? AND appId = ?",data.UserId,data.AppId).
- Get(&balance)
- if !b || err != nil {
- log.Printf("积分余额查询出错,userId:[%s],err:[%v]", data.UserId, err)
- return entity.ErrorCode,"积分余额不足"
- }
- if balance.CountPoints <data.Point {
- return entity.ErrorCode,"积分余额不足"
- }
- }
- af, err := orm.Table("integral_flow").Insert(&flow)
- if err != nil {
- log.Print("积分记录失败-积分增减类型:",data.Sort)
- return entity.ErrorCode,"积分记录失败"
- }
- if af >0 {
- log.Println("积分记录成功-积分增减类型:",data.Sort)
- return entity.SuccessCode,"积分记录成功"
- }
- return entity.SuccessCode,"积分记录成功"
- }
- //到期积分查询
- func(service *IntegralService) IntegralExpireCheckService(data entity.ExpireJSON) []entity.Flow {
- orm := entity.Engine
- var flow []entity.Flow
- var err error
- point := ""
- if data.PointType != 0 {
- point = "AND pointType = "+fmt.Sprint(data.PointType)+""
- }
- err = orm.Table("integral_flow").
- Select("id,pointType,SUM(point) AS point").
- Where("userId = ? AND appId = ? AND endDate < ? "+point+"", data.UserId,data.AppId,data.EndDate).
- GroupBy("pointType").
- Find(&flow)
- if err != nil {
- log.Println(err)
- return nil
- }
- return flow
- }
- //积分守护
- func(service *IntegralService) IntegralGuardService(data entity.ExpireJSON) []entity.Flow {
- orm := entity.Engine
- var flow []entity.Flow
- var err error
- point := ""
- if data.PointType != 0 {
- point = "AND pointType = "+fmt.Sprint(data.PointType)+""
- }
- err = orm.Table("integral_flow").
- Select("id,pointType,SUM(point) AS point").
- Where("userId = ? AND appId = ? AND endDate < ? "+point+"", data.UserId,data.AppId,data.EndDate).
- GroupBy("pointType").
- Find(&flow)
- if err != nil {
- log.Println(err)
- return nil
- }
- return flow
- }
|