李哲 4 years ago
parent
commit
a397625423

+ 1 - 1
rpc/internal/logic/addlogic.go

@@ -26,7 +26,7 @@ func NewAddLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AddLogic {
 
 func (l *AddLogic) Add(in *integral.AddReq) (*integral.AddResp, error) {
 	// todo: add your logic here and delete this line
-	_, err := l.svcCtx.Model.Insert(model.Balance{
+	_, err := l.svcCtx.Model.Insert(model.IntegralBalance{
 		UserId:  in.UserId,
 		CountPoints: in.CountPoints,
 	})

+ 2 - 2
rpc/internal/svc/servicecontext.go

@@ -8,12 +8,12 @@ import (
 
 type ServiceContext struct {
 	Config config.Config
-	Model model.BalanceModel
+	Model model.IntegralBalanceModel
 }
 
 func NewServiceContext(c config.Config) *ServiceContext {
 	return &ServiceContext{
 		Config: c,
-		Model: model.NewBalanceModel(sqlx.NewMysql(c.DataSource),c.Cache),
+		Model: model.NewIntegralBalanceModel(sqlx.NewMysql(c.DataSource),c.Cache),
 	}
 }

+ 0 - 101
rpc/model/balancemodel.go

@@ -1,101 +0,0 @@
-package model
-
-import (
-	"database/sql"
-	"fmt"
-	"strings"
-
-	"github.com/tal-tech/go-zero/core/stores/cache"
-	"github.com/tal-tech/go-zero/core/stores/sqlc"
-	"github.com/tal-tech/go-zero/core/stores/sqlx"
-	"github.com/tal-tech/go-zero/core/stringx"
-	"github.com/tal-tech/go-zero/tools/goctl/model/sql/builderx"
-)
-
-var (
-	balanceFieldNames          = builderx.RawFieldNames(&Balance{})
-	balanceRows                = strings.Join(balanceFieldNames, ",")
-	balanceRowsExpectAutoSet   = strings.Join(stringx.Remove(balanceFieldNames, "`create_time`", "`update_time`"), ",")
-	balanceRowsWithPlaceHolder = strings.Join(stringx.Remove(balanceFieldNames, "`userId`", "`create_time`", "`update_time`"), "=?,") + "=?"
-
-	cacheBalanceUserIdPrefix = "cache#balance#userId#"
-)
-
-type (
-	BalanceModel interface {
-		Insert(data Balance) (sql.Result, error)
-		FindOne(userId string) (*Balance, error)
-		Update(data Balance) error
-		Delete(userId string) error
-	}
-
-	defaultBalanceModel struct {
-		sqlc.CachedConn
-		table string
-	}
-
-	Balance struct {
-		Id          int64  `db:"id"`
-		UserId      string `db:"userId"`      // 用户标识
-		CountPoints int64  `db:"countPoints"` // 合计
-	}
-)
-
-func NewBalanceModel(conn sqlx.SqlConn, c cache.CacheConf) BalanceModel {
-	return &defaultBalanceModel{
-		CachedConn: sqlc.NewConn(conn, c),
-		table:      "`balance`",
-	}
-}
-
-func (m *defaultBalanceModel) Insert(data Balance) (sql.Result, error) {
-	query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?)", m.table, balanceRowsExpectAutoSet)
-	ret, err := m.ExecNoCache(query, data.Id, data.UserId, data.CountPoints)
-
-	return ret, err
-}
-
-func (m *defaultBalanceModel) FindOne(userId string) (*Balance, error) {
-	balanceUserIdKey := fmt.Sprintf("%s%v", cacheBalanceUserIdPrefix, userId)
-	var resp Balance
-	err := m.QueryRow(&resp, balanceUserIdKey, func(conn sqlx.SqlConn, v interface{}) error {
-		query := fmt.Sprintf("select %s from %s where `userId` = ? limit 1", balanceRows, m.table)
-		return conn.QueryRow(v, query, userId)
-	})
-	switch err {
-	case nil:
-		return &resp, nil
-	case sqlc.ErrNotFound:
-		return nil, ErrNotFound
-	default:
-		return nil, err
-	}
-}
-
-func (m *defaultBalanceModel) Update(data Balance) error {
-	balanceUserIdKey := fmt.Sprintf("%s%v", cacheBalanceUserIdPrefix, data.UserId)
-	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
-		query := fmt.Sprintf("update %s set %s where `userId` = ?", m.table, balanceRowsWithPlaceHolder)
-		return conn.Exec(query, data.Id, data.CountPoints, data.UserId)
-	}, balanceUserIdKey)
-	return err
-}
-
-func (m *defaultBalanceModel) Delete(userId string) error {
-
-	balanceUserIdKey := fmt.Sprintf("%s%v", cacheBalanceUserIdPrefix, userId)
-	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
-		query := fmt.Sprintf("delete from %s where `userId` = ?", m.table)
-		return conn.Exec(query, userId)
-	}, balanceUserIdKey)
-	return err
-}
-
-func (m *defaultBalanceModel) formatPrimary(primary interface{}) string {
-	return fmt.Sprintf("%s%v", cacheBalanceUserIdPrefix, primary)
-}
-
-func (m *defaultBalanceModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
-	query := fmt.Sprintf("select %s from %s where `userId` = ? limit 1", balanceRows, m.table)
-	return conn.QueryRow(v, query, primary)
-}

+ 10 - 10
rpc/model/integralFlow.sql

@@ -1,12 +1,12 @@
 
 CREATE TABLE `integral_flow`  (
-  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水Id',
-  `userId` int(20) NULL DEFAULT NULL COMMENT '用户标识',
-  `pointType` int(2) NULL DEFAULT NULL COMMENT '积分类型',
-  `businessTypeId` int(2) NULL DEFAULT NULL COMMENT '业务单据标识',
-  `businessType` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '业务类型',
-  `point` int(11) NULL DEFAULT NULL COMMENT '积分',
-  `timeStamp` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间',
-  `endDate` date NULL DEFAULT NULL COMMENT '截止时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `userId` varchar(255) NOT NULL  COMMENT '用户标识',
+  `pointType` int(2)  COMMENT '积分类型',
+  `businessTypeId` int(2) COMMENT '业务单据标识',
+  `businessType` varchar(10) COMMENT '业务类型',
+  `point` int(11)  COMMENT '积分',
+  `timeStamp` datetime(0) COMMENT '创建时间',
+  `endDate` date COMMENT '截止时间',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '积分流水表' ROW_FORMAT = DYNAMIC;

+ 101 - 0
rpc/model/integralbalancemodel.go

@@ -0,0 +1,101 @@
+package model
+
+import (
+	"database/sql"
+	"fmt"
+	"strings"
+
+	"github.com/tal-tech/go-zero/core/stores/cache"
+	"github.com/tal-tech/go-zero/core/stores/sqlc"
+	"github.com/tal-tech/go-zero/core/stores/sqlx"
+	"github.com/tal-tech/go-zero/core/stringx"
+	"github.com/tal-tech/go-zero/tools/goctl/model/sql/builderx"
+)
+
+var (
+	integralBalanceFieldNames          = builderx.RawFieldNames(&IntegralBalance{})
+	integralBalanceRows                = strings.Join(integralBalanceFieldNames, ",")
+	integralBalanceRowsExpectAutoSet   = strings.Join(stringx.Remove(integralBalanceFieldNames, "`create_time`", "`update_time`"), ",")
+	integralBalanceRowsWithPlaceHolder = strings.Join(stringx.Remove(integralBalanceFieldNames, "`userId`", "`create_time`", "`update_time`"), "=?,") + "=?"
+
+	cacheIntegralBalanceUserIdPrefix = "cache#integralBalance#userId#"
+)
+
+type (
+	IntegralBalanceModel interface {
+		Insert(data IntegralBalance) (sql.Result, error)
+		FindOne(userId string) (*IntegralBalance, error)
+		Update(data IntegralBalance) error
+		Delete(userId string) error
+	}
+
+	defaultIntegralBalanceModel struct {
+		sqlc.CachedConn
+		table string
+	}
+
+	IntegralBalance struct {
+		CountPoints int64  `db:"countPoints"` // 合计
+		Id          int64  `db:"id"`
+		UserId      string `db:"userId"` // 用户标识
+	}
+)
+
+func NewIntegralBalanceModel(conn sqlx.SqlConn, c cache.CacheConf) IntegralBalanceModel {
+	return &defaultIntegralBalanceModel{
+		CachedConn: sqlc.NewConn(conn, c),
+		table:      "`integral_balance`",
+	}
+}
+
+func (m *defaultIntegralBalanceModel) Insert(data IntegralBalance) (sql.Result, error) {
+	query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?)", m.table, integralBalanceRowsExpectAutoSet)
+	ret, err := m.ExecNoCache(query, data.CountPoints, data.Id, data.UserId)
+
+	return ret, err
+}
+
+func (m *defaultIntegralBalanceModel) FindOne(userId string) (*IntegralBalance, error) {
+	integralBalanceUserIdKey := fmt.Sprintf("%s%v", cacheIntegralBalanceUserIdPrefix, userId)
+	var resp IntegralBalance
+	err := m.QueryRow(&resp, integralBalanceUserIdKey, func(conn sqlx.SqlConn, v interface{}) error {
+		query := fmt.Sprintf("select %s from %s where `userId` = ? limit 1", integralBalanceRows, m.table)
+		return conn.QueryRow(v, query, userId)
+	})
+	switch err {
+	case nil:
+		return &resp, nil
+	case sqlc.ErrNotFound:
+		return nil, ErrNotFound
+	default:
+		return nil, err
+	}
+}
+
+func (m *defaultIntegralBalanceModel) Update(data IntegralBalance) error {
+	integralBalanceUserIdKey := fmt.Sprintf("%s%v", cacheIntegralBalanceUserIdPrefix, data.UserId)
+	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
+		query := fmt.Sprintf("update %s set %s where `userId` = ?", m.table, integralBalanceRowsWithPlaceHolder)
+		return conn.Exec(query, data.CountPoints, data.Id, data.UserId)
+	}, integralBalanceUserIdKey)
+	return err
+}
+
+func (m *defaultIntegralBalanceModel) Delete(userId string) error {
+
+	integralBalanceUserIdKey := fmt.Sprintf("%s%v", cacheIntegralBalanceUserIdPrefix, userId)
+	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
+		query := fmt.Sprintf("delete from %s where `userId` = ?", m.table)
+		return conn.Exec(query, userId)
+	}, integralBalanceUserIdKey)
+	return err
+}
+
+func (m *defaultIntegralBalanceModel) formatPrimary(primary interface{}) string {
+	return fmt.Sprintf("%s%v", cacheIntegralBalanceUserIdPrefix, primary)
+}
+
+func (m *defaultIntegralBalanceModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
+	query := fmt.Sprintf("select %s from %s where `userId` = ? limit 1", integralBalanceRows, m.table)
+	return conn.QueryRow(v, query, primary)
+}

+ 107 - 0
rpc/model/integralflowmodel.go

@@ -0,0 +1,107 @@
+package model
+
+import (
+	"database/sql"
+	"fmt"
+	"strings"
+	"time"
+
+	"github.com/tal-tech/go-zero/core/stores/cache"
+	"github.com/tal-tech/go-zero/core/stores/sqlc"
+	"github.com/tal-tech/go-zero/core/stores/sqlx"
+	"github.com/tal-tech/go-zero/core/stringx"
+	"github.com/tal-tech/go-zero/tools/goctl/model/sql/builderx"
+)
+
+var (
+	integralFlowFieldNames          = builderx.RawFieldNames(&IntegralFlow{})
+	integralFlowRows                = strings.Join(integralFlowFieldNames, ",")
+	integralFlowRowsExpectAutoSet   = strings.Join(stringx.Remove(integralFlowFieldNames, "`id`", "`create_time`", "`update_time`"), ",")
+	integralFlowRowsWithPlaceHolder = strings.Join(stringx.Remove(integralFlowFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
+
+	cacheIntegralFlowIdPrefix = "cache#integralFlow#id#"
+)
+
+type (
+	IntegralFlowModel interface {
+		Insert(data IntegralFlow) (sql.Result, error)
+		FindOne(id int64) (*IntegralFlow, error)
+		Update(data IntegralFlow) error
+		Delete(id int64) error
+	}
+
+	defaultIntegralFlowModel struct {
+		sqlc.CachedConn
+		table string
+	}
+
+	IntegralFlow struct {
+		EndDate        time.Time `db:"endDate"` // 截止时间
+		Id             int64     `db:"id"`
+		UserId         string    `db:"userId"`         // 用户标识
+		PointType      int64     `db:"pointType"`      // 积分类型
+		BusinessTypeId int64     `db:"businessTypeId"` // 业务单据标识
+		BusinessType   string    `db:"businessType"`   // 业务类型
+		Point          int64     `db:"point"`          // 积分
+		TimeStamp      time.Time `db:"timeStamp"`      // 创建时间
+	}
+)
+
+func NewIntegralFlowModel(conn sqlx.SqlConn, c cache.CacheConf) IntegralFlowModel {
+	return &defaultIntegralFlowModel{
+		CachedConn: sqlc.NewConn(conn, c),
+		table:      "`integral_flow`",
+	}
+}
+
+func (m *defaultIntegralFlowModel) Insert(data IntegralFlow) (sql.Result, error) {
+	query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?)", m.table, integralFlowRowsExpectAutoSet)
+	ret, err := m.ExecNoCache(query, data.EndDate, data.UserId, data.PointType, data.BusinessTypeId, data.BusinessType, data.Point, data.TimeStamp)
+
+	return ret, err
+}
+
+func (m *defaultIntegralFlowModel) FindOne(id int64) (*IntegralFlow, error) {
+	integralFlowIdKey := fmt.Sprintf("%s%v", cacheIntegralFlowIdPrefix, id)
+	var resp IntegralFlow
+	err := m.QueryRow(&resp, integralFlowIdKey, func(conn sqlx.SqlConn, v interface{}) error {
+		query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", integralFlowRows, m.table)
+		return conn.QueryRow(v, query, id)
+	})
+	switch err {
+	case nil:
+		return &resp, nil
+	case sqlc.ErrNotFound:
+		return nil, ErrNotFound
+	default:
+		return nil, err
+	}
+}
+
+func (m *defaultIntegralFlowModel) Update(data IntegralFlow) error {
+	integralFlowIdKey := fmt.Sprintf("%s%v", cacheIntegralFlowIdPrefix, data.Id)
+	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
+		query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, integralFlowRowsWithPlaceHolder)
+		return conn.Exec(query, data.EndDate, data.UserId, data.PointType, data.BusinessTypeId, data.BusinessType, data.Point, data.TimeStamp, data.Id)
+	}, integralFlowIdKey)
+	return err
+}
+
+func (m *defaultIntegralFlowModel) Delete(id int64) error {
+
+	integralFlowIdKey := fmt.Sprintf("%s%v", cacheIntegralFlowIdPrefix, id)
+	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
+		query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
+		return conn.Exec(query, id)
+	}, integralFlowIdKey)
+	return err
+}
+
+func (m *defaultIntegralFlowModel) formatPrimary(primary interface{}) string {
+	return fmt.Sprintf("%s%v", cacheIntegralFlowIdPrefix, primary)
+}
+
+func (m *defaultIntegralFlowModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
+	query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", integralFlowRows, m.table)
+	return conn.QueryRow(v, query, primary)
+}

+ 104 - 0
rpc/model/integralsoldemodel.go

@@ -0,0 +1,104 @@
+package model
+
+import (
+	"database/sql"
+	"fmt"
+	"strings"
+	"time"
+
+	"github.com/tal-tech/go-zero/core/stores/cache"
+	"github.com/tal-tech/go-zero/core/stores/sqlc"
+	"github.com/tal-tech/go-zero/core/stores/sqlx"
+	"github.com/tal-tech/go-zero/core/stringx"
+	"github.com/tal-tech/go-zero/tools/goctl/model/sql/builderx"
+)
+
+var (
+	integralSoldeFieldNames          = builderx.RawFieldNames(&IntegralSolde{})
+	integralSoldeRows                = strings.Join(integralSoldeFieldNames, ",")
+	integralSoldeRowsExpectAutoSet   = strings.Join(stringx.Remove(integralSoldeFieldNames, "`create_time`", "`update_time`"), ",")
+	integralSoldeRowsWithPlaceHolder = strings.Join(stringx.Remove(integralSoldeFieldNames, "`endDate`", "`create_time`", "`update_time`"), "=?,") + "=?"
+
+	cacheIntegralSoldeEndDatePrefix = "cache#integralSolde#endDate#"
+)
+
+type (
+	IntegralSoldeModel interface {
+		Insert(data IntegralSolde) (sql.Result, error)
+		FindOne(endDate time.Time) (*IntegralSolde, error)
+		Update(data IntegralSolde) error
+		Delete(endDate time.Time) error
+	}
+
+	defaultIntegralSoldeModel struct {
+		sqlc.CachedConn
+		table string
+	}
+
+	IntegralSolde struct {
+		Id              int64     `db:"id"`
+		PerManEntPoints int64     `db:"perManEntPoints"` // 永久积分
+		TimePoints      int64     `db:"timePoints"`      // 时效积分
+		EndDate         time.Time `db:"endDate"`         // 有效期止
+		CountPoints     int64     `db:"countPoints"`     // 合计
+	}
+)
+
+func NewIntegralSoldeModel(conn sqlx.SqlConn, c cache.CacheConf) IntegralSoldeModel {
+	return &defaultIntegralSoldeModel{
+		CachedConn: sqlc.NewConn(conn, c),
+		table:      "`integral_solde`",
+	}
+}
+
+func (m *defaultIntegralSoldeModel) Insert(data IntegralSolde) (sql.Result, error) {
+	query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?)", m.table, integralSoldeRowsExpectAutoSet)
+	ret, err := m.ExecNoCache(query, data.Id, data.PerManEntPoints, data.TimePoints, data.EndDate, data.CountPoints)
+
+	return ret, err
+}
+
+func (m *defaultIntegralSoldeModel) FindOne(endDate time.Time) (*IntegralSolde, error) {
+	integralSoldeEndDateKey := fmt.Sprintf("%s%v", cacheIntegralSoldeEndDatePrefix, endDate)
+	var resp IntegralSolde
+	err := m.QueryRow(&resp, integralSoldeEndDateKey, func(conn sqlx.SqlConn, v interface{}) error {
+		query := fmt.Sprintf("select %s from %s where `endDate` = ? limit 1", integralSoldeRows, m.table)
+		return conn.QueryRow(v, query, endDate)
+	})
+	switch err {
+	case nil:
+		return &resp, nil
+	case sqlc.ErrNotFound:
+		return nil, ErrNotFound
+	default:
+		return nil, err
+	}
+}
+
+func (m *defaultIntegralSoldeModel) Update(data IntegralSolde) error {
+	integralSoldeEndDateKey := fmt.Sprintf("%s%v", cacheIntegralSoldeEndDatePrefix, data.EndDate)
+	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
+		query := fmt.Sprintf("update %s set %s where `endDate` = ?", m.table, integralSoldeRowsWithPlaceHolder)
+		return conn.Exec(query, data.Id, data.PerManEntPoints, data.TimePoints, data.CountPoints, data.EndDate)
+	}, integralSoldeEndDateKey)
+	return err
+}
+
+func (m *defaultIntegralSoldeModel) Delete(endDate time.Time) error {
+
+	integralSoldeEndDateKey := fmt.Sprintf("%s%v", cacheIntegralSoldeEndDatePrefix, endDate)
+	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
+		query := fmt.Sprintf("delete from %s where `endDate` = ?", m.table)
+		return conn.Exec(query, endDate)
+	}, integralSoldeEndDateKey)
+	return err
+}
+
+func (m *defaultIntegralSoldeModel) formatPrimary(primary interface{}) string {
+	return fmt.Sprintf("%s%v", cacheIntegralSoldeEndDatePrefix, primary)
+}
+
+func (m *defaultIntegralSoldeModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
+	query := fmt.Sprintf("select %s from %s where `endDate` = ? limit 1", integralSoldeRows, m.table)
+	return conn.QueryRow(v, query, primary)
+}