1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package upcrmdao
- import (
- "github.com/jinzhu/gorm"
- "go-common/app/service/main/upcredit/conf"
- "context"
- "fmt"
- "go-common/app/service/main/upcredit/model/upcrmmodel"
- "go-common/library/log"
- )
- //Dao upcrm dao
- type Dao struct {
- conf *conf.Config
- crmdb *gorm.DB
- }
- //New create
- func New(c *conf.Config) *Dao {
- var d = &Dao{
- conf: c,
- }
- crmdb, err := gorm.Open("mysql", c.DB.Upcrm.DSN)
- if crmdb == nil {
- log.Error("connect to db fail, err=%v", err)
- return nil
- }
- d.crmdb = crmdb
- crmdb.SingularTable(true)
- d.crmdb.LogMode(c.IsTest)
- return d
- }
- //Close close
- func (d *Dao) Close() {
- if d.crmdb != nil {
- d.crmdb.Close()
- }
- }
- //AddLog add log
- func (d *Dao) AddLog(arg *upcrmmodel.ArgCreditLogAdd) error {
- var creditLog = &upcrmmodel.CreditLog{}
- creditLog.CopyFrom(arg)
- return d.crmdb.Create(creditLog).Error
- }
- //AddCreditScore add score
- func (d *Dao) AddCreditScore(creditScore *upcrmmodel.UpScoreHistory) error {
- return d.crmdb.Create(creditScore).Error
- }
- //AddOrUpdateCreditScore update score
- func (d *Dao) AddOrUpdateCreditScore(creditScore *upcrmmodel.UpScoreHistory) (err error) {
- var tablename = creditScore.TableName()
- var insertSQL = fmt.Sprintf("insert into %s (mid, score_type, score, generate_date, ctime) values (?,?,?,?,?) "+
- "on duplicate key update score=?", tablename)
- err = d.crmdb.Exec(
- insertSQL,
- creditScore.Mid, creditScore.ScoreType, creditScore.Score, creditScore.GenerateDate, creditScore.CTime,
- creditScore.Score).Error
- if err != nil {
- log.Error("add credit score fail, mid=%d, err=%+v", creditScore.Mid, err)
- }
- return
- }
- //GetCreditScore get score
- func (d *Dao) GetCreditScore(c context.Context, arg *upcrmmodel.GetScoreParam) (results []*upcrmmodel.UpScoreHistory, err error) {
- var mod = upcrmmodel.UpScoreHistory{
- Mid: arg.Mid,
- }
- err = d.crmdb.Table(mod.TableName()).Select("score, generate_date").
- Where("mid=? AND generate_date>=? AND generate_date<=? AND score_type=?", arg.Mid, arg.FromDate, arg.ToDate, arg.ScoreType).
- Find(&results).Error
- if err != nil {
- log.Error("get score history fail, arg=%+v, err=%+v", arg, err)
- }
- return
- }
- //GetCreditLog get log
- func (d *Dao) GetCreditLog(c context.Context, arg *upcrmmodel.ArgGetLogHistory) (results []*upcrmmodel.SimpleCreditLogWithContent, err error) {
- var mod = upcrmmodel.SimpleCreditLogWithContent{}
- mod.Mid = arg.Mid
- err = d.crmdb.Table(mod.TableName()).Select("type, op_type, reason, business_type, ctime, content, oid").
- //Limit(arg.Limit).
- //Offset(arg.Offset).
- Where("mid=? AND ctime>=? AND ctime<=?", arg.Mid, arg.FromDate, arg.ToDate).
- Order("ctime").
- Find(&results).Error
- if err != nil {
- log.Error("get log history fail, arg=%+v, err=%+v", arg, err)
- }
- return
- }
|