WH01243 пре 4 година
родитељ
комит
4ea2d289b5
6 измењених фајлова са 17 додато и 11 уклоњено
  1. 0 2
      go.mod
  2. 2 4
      go.sum
  3. 2 1
      rpc/etc/integral.yaml
  4. 9 1
      rpc/integral.go
  5. 1 0
      rpc/internal/config/config.go
  6. 3 3
      service/integralService.go

+ 0 - 2
go.mod

@@ -3,11 +3,9 @@ module app.yhyue.com/moapp/jyPoints
 go 1.13
 
 require (
-	github.com/antlr/antlr4 v0.0.0-20210311224141-c2f104cd0810 // indirect
 	github.com/go-sql-driver/mysql v1.5.0
 	github.com/go-xorm/xorm v0.7.9
 	github.com/golang/protobuf v1.4.3
-	github.com/iancoleman/strcase v0.1.3 // indirect
 	github.com/tal-tech/go-zero v1.1.5
 	go.uber.org/automaxprocs v1.4.0 // indirect
 	golang.org/x/time v0.0.0-20191024005414-555d28b269f0

+ 2 - 4
go.sum

@@ -20,8 +20,6 @@ github.com/alicebob/miniredis/v2 v2.14.1/go.mod h1:uS970Sw5Gs9/iK3yBg0l9Uj9s25wX
 github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
 github.com/antlr/antlr4 v0.0.0-20210105212045-464bcbc32de2 h1:rL2miklL5rhxUaZO7hntBcy/VHaiyuPQ4EJoy/NMwaM=
 github.com/antlr/antlr4 v0.0.0-20210105212045-464bcbc32de2/go.mod h1:T7PbCXFs94rrTttyxjbyT5+/1V8T2TYDejxUfHJjw1Y=
-github.com/antlr/antlr4 v0.0.0-20210311224141-c2f104cd0810 h1:iMdMSccAX8Q3nt1yKAbtbKYL0gPO7jpnxEPefGujrO4=
-github.com/antlr/antlr4 v0.0.0-20210311224141-c2f104cd0810/go.mod h1:T7PbCXFs94rrTttyxjbyT5+/1V8T2TYDejxUfHJjw1Y=
 github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
@@ -160,8 +158,6 @@ github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/iancoleman/strcase v0.1.2 h1:gnomlvw9tnV3ITTAxzKSgTF+8kFWcU/f+TgttpXGz1U=
 github.com/iancoleman/strcase v0.1.2/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
-github.com/iancoleman/strcase v0.1.3 h1:dJBk1m2/qjL1twPLf68JND55vvivMupZ4wIzE8CTdBw=
-github.com/iancoleman/strcase v0.1.3/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
 github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ=
 github.com/jackc/pgx v3.6.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=
@@ -256,6 +252,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT
 github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8=
 github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
 github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
+github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ=
+github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
 github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
 github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=

+ 2 - 1
rpc/etc/integral.yaml

@@ -6,7 +6,8 @@ Etcd:
   Hosts:
     - 127.0.0.1:2379
   Key: integral.rpc
-DataSource: root:Topnet123@tcp(192.168.3.11:3366)/jypoints?charset=utf8mb4&parseTime=true&loc=Local
+DataSource: root:Topnet123@tcp(192.168.3.11:3366)/jydocs?charset=utf8mb4&parseTime=true&loc=Local
+TimeSource: 0 1 0 * * ? *
 Cache:
   - Host: localhost:6379
 FileSystemConf:

+ 9 - 1
rpc/integral.go

@@ -13,12 +13,14 @@ import (
 	"fmt"
 	_ "github.com/go-sql-driver/mysql"
 	"github.com/go-xorm/xorm"
+	"github.com/robfig/cron"
 	"github.com/tal-tech/go-zero/core/conf"
 	"github.com/tal-tech/go-zero/zrpc"
 	"golang.org/x/time/rate"
 	"google.golang.org/grpc"
 	"log"
 	"strconv"
+	"time"
 )
 
 var configFile = flag.String("f", "etc/integral.yaml", "the config file")
@@ -40,13 +42,15 @@ func main() {
 	s.AddUnaryInterceptors()
 	defer s.Stop()
 	fmt.Printf("Starting rpc server at %s...\n", c.ListenOn)
+	b := cron.New()
+	b.AddFunc(c.TimeSource, timeDask)
+	b.Start()
 	s.Start()
 }
 //创建orm引擎
 func init() {
 	var err error
 	conf.MustLoad(*configFile, &c)
-	fmt.Println(c.DataSource)
 	entity.Engine, err = xorm.NewEngine("mysql", c.DataSource)
 	entity.Engine.ShowSQL(true)
 	if err != nil {
@@ -134,4 +138,8 @@ func Strval(value interface{}) string {
 	}
 
 	return key
+}
+
+func timeDask()  {
+	integralService.IntegralGuardService(time.Now().Format("2006-01-02 15:04:05"))
 }

+ 1 - 0
rpc/internal/config/config.go

@@ -12,4 +12,5 @@ type Config struct {
 	Cache          cache.CacheConf // 手动代码
 	Node           int             // 节点
 	CalleeId       string          // 服务名字
+	TimeSource	   string			//定时任务
 }

+ 3 - 3
service/integralService.go

@@ -70,7 +70,7 @@ func (service *IntegralService) IntegralAddService(data entity.FlowJSON) (int64,
 		solde.EndDate = data.EndDate
 		//先查看是否有EndDate的积分
 		soldelist := []entity.Solde{}
-		err = orm.Table("integral_solde").Where("appId=? and  userId=? and endDate=? and ( perManEntPoints = 0 AND timePoints != 0) or (perManEntPoints = 0 AND timePoints = 0 ) ", data.AppId, data.UserId, data.EndDate).Find(&soldelist)
+		err = orm.Table("integral_solde").Where("appId=? and  userId=? and endDate=? and( ( perManEntPoints = 0 AND timePoints != 0) or (perManEntPoints = 0 AND timePoints = 0 )) ", data.AppId, data.UserId, data.EndDate).Find(&soldelist)
 		if len(soldelist) > 0 {
 			soldelist[0].TimePoints += data.Point
 			numb, err = orm.Table("integral_solde").ID(soldelist[0].Id).Cols("timePoints").Update(soldelist[0])
@@ -488,9 +488,9 @@ func (service *IntegralService) IntegralBalanceCheckService(userId, appId string
 	}
 	//积分30天内到期余额
 	var solde entity.Solde
-	_, err = orm.Table("integral_solde").
+	_,err = orm.Table("integral_solde").
 		Select("SUM( timePoints ) AS timePoints").
-		Where("userId = ? AND appId = ? AND endDate > NOW() AND DATE_SUB( NOW(), INTERVAL - 30 DAY ) > endDate", userId, appId).
+		Where("userId = ? AND appId = ? AND endDate > DATE_SUB( NOW(), INTERVAL +1 DAY ) AND DATE_SUB( NOW(), INTERVAL -31 DAY ) > endDate", userId, appId).
 		Get(&solde)
 	if err != nil {
 		log.Println(err)