Jelajahi Sumber

fix: 活动

2637309949 4 tahun lalu
induk
melakukan
46c0af8e45

+ 17 - 1
internal/logic/add_mkt_logic.go

@@ -52,7 +52,23 @@ func (l *AddMktLogic) AddMkt(in *transform.MktReq) (*transform.MktRes, error) {
 		mkt.LoadUser = sql.NullString{String: in.MkId, Valid: true}
 		mkt.StuFollowUpMonthly = sql.NullInt64{Int64: 1309, Valid: true}
 		mkt.PtuserId = sql.NullInt64{Int64: in.PartTimeUserId, Valid: true}
-		_, err := l.svcCtx.MktResourceModel.Insert(mkt)
+		ret, err := l.svcCtx.MktResourceModel.Insert(mkt)
+		if err != nil {
+			l.Logger.Error(err)
+			return &transform.MktRes{Status: 500}, nil
+		}
+		if in.ActiveId != 0 {
+			id, _ := ret.LastInsertId()
+			act := model.MktStudentMarketActivity{}
+			act.DelFlag = sql.NullInt64{Int64: 0, Valid: true}
+			act.CreateBy = sql.NullString{String: in.MkId, Valid: true}
+			act.CreateTime = sql.NullTime{Time: utils.ParseTime(in.CreateTime), Valid: true}
+			act.LastUpdateTime = sql.NullTime{Time: utils.ParseTime(in.CreateTime), Valid: true}
+			act.LastUpdateBy = sql.NullString{String: in.MkId, Valid: true}
+			act.SutId = sql.NullInt64{Int64: id, Valid: true}
+			act.MaId = sql.NullInt64{Int64: in.ActiveId, Valid: true}
+			_, err = l.svcCtx.MktStudentMarketActivityModel.Insert(act)
+		}
 		if err != nil {
 			l.Logger.Error(err)
 			return &transform.MktRes{Status: 500}, nil

+ 11 - 9
internal/svc/service_context.go

@@ -9,15 +9,16 @@ import (
 )
 
 type ServiceContext struct {
-	Config           config.Config
-	SqlConn          sqlx.SqlConn
-	ErpUtil          *ErpUtil
-	StudentModel     model.StudentModel
-	MktResourceModel model.MktResourceModel
-	SysUserModel     model.SysUserModel
-	MktPartTimeUser  model.MktPartTimeUserModel
-	ExcelExportLog   model.ExcelExportLogModel
-	DB               *xorm.Engine
+	Config                        config.Config
+	SqlConn                       sqlx.SqlConn
+	ErpUtil                       *ErpUtil
+	StudentModel                  model.StudentModel
+	MktResourceModel              model.MktResourceModel
+	SysUserModel                  model.SysUserModel
+	MktPartTimeUser               model.MktPartTimeUserModel
+	ExcelExportLog                model.ExcelExportLogModel
+	MktStudentMarketActivityModel model.MktStudentMarketActivityModel
+	DB                            *xorm.Engine
 }
 
 func NewServiceContext(c config.Config) *ServiceContext {
@@ -41,6 +42,7 @@ func NewServiceContext(c config.Config) *ServiceContext {
 	sc.MktPartTimeUser = model.NewMktPartTimeUserModel(sc.SqlConn, c.Cache)
 	sc.ExcelExportLog = model.NewExcelExportLogModel(sc.SqlConn, c.Cache)
 	sc.MktResourceModel = model.NewMktResourceModel(sc.SqlConn, c.Cache)
+	sc.MktStudentMarketActivityModel = model.NewMktStudentMarketActivityModel(sc.SqlConn, c.Cache)
 	sc.ErpUtil.SqlConn = sc.SqlConn
 	sc.ErpUtil.Config = sc.Config
 	return &sc

+ 14 - 0
model/mkt_student_market_activity.sql

@@ -0,0 +1,14 @@
+CREATE TABLE `mkt_student_market_activity` (
+  `id` int NOT NULL AUTO_INCREMENT,
+  `sut_id` int DEFAULT NULL,
+  `ma_id` int DEFAULT NULL,
+  `create_by` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+  `create_time` datetime DEFAULT NULL,
+  `last_update_by` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+  `last_update_time` datetime DEFAULT NULL,
+  `del_flag` int DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `IDX_mkt_student_market_activity_ma_id` (`ma_id`),
+  KEY `IDX_mkt_student_market_activity_sut_id` (`sut_id`),
+  KEY `idx_sutid_maid` (`sut_id`,`ma_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=30863 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

+ 106 - 0
model/mkt_student_market_activity_model.go

@@ -0,0 +1,106 @@
+package model
+
+import (
+	"database/sql"
+	"fmt"
+	"strings"
+
+	"git.i2edu.net/i2/go-zero/core/stores/cache"
+	"git.i2edu.net/i2/go-zero/core/stores/sqlc"
+	"git.i2edu.net/i2/go-zero/core/stores/sqlx"
+	"git.i2edu.net/i2/go-zero/core/stringx"
+	"git.i2edu.net/i2/go-zero/tools/goctl/model/sql/builderx"
+)
+
+var (
+	mktStudentMarketActivityFieldNames          = builderx.RawFieldNames(&MktStudentMarketActivity{})
+	mktStudentMarketActivityRows                = strings.Join(mktStudentMarketActivityFieldNames, ",")
+	mktStudentMarketActivityRowsExpectAutoSet   = strings.Join(stringx.Remove(mktStudentMarketActivityFieldNames, "`id`", "`create_time`", "`update_time`"), ",")
+	mktStudentMarketActivityRowsWithPlaceHolder = strings.Join(stringx.Remove(mktStudentMarketActivityFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
+
+	cacheMktStudentMarketActivityIdPrefix = "cache:mktStudentMarketActivity:id:"
+)
+
+type (
+	MktStudentMarketActivityModel interface {
+		Insert(data MktStudentMarketActivity) (sql.Result, error)
+		FindOne(id int64) (*MktStudentMarketActivity, error)
+		Update(data MktStudentMarketActivity) error
+		Delete(id int64) error
+	}
+
+	defaultMktStudentMarketActivityModel struct {
+		sqlc.CachedConn
+		table string
+	}
+
+	MktStudentMarketActivity struct {
+		Id             int64          `db:"id"`
+		SutId          sql.NullInt64  `db:"sut_id"`
+		MaId           sql.NullInt64  `db:"ma_id"`
+		CreateBy       sql.NullString `db:"create_by"`
+		CreateTime     sql.NullTime   `db:"create_time"`
+		LastUpdateBy   sql.NullString `db:"last_update_by"`
+		LastUpdateTime sql.NullTime   `db:"last_update_time"`
+		DelFlag        sql.NullInt64  `db:"del_flag"`
+	}
+)
+
+func NewMktStudentMarketActivityModel(conn sqlx.SqlConn, c cache.CacheConf) MktStudentMarketActivityModel {
+	return &defaultMktStudentMarketActivityModel{
+		CachedConn: sqlc.NewConn(conn, c),
+		table:      "`mkt_student_market_activity`",
+	}
+}
+
+func (m *defaultMktStudentMarketActivityModel) Insert(data MktStudentMarketActivity) (sql.Result, error) {
+	query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?)", m.table, mktStudentMarketActivityRowsExpectAutoSet)
+	ret, err := m.ExecNoCache(query, data.SutId, data.MaId, data.CreateBy, data.LastUpdateBy, data.LastUpdateTime, data.DelFlag)
+
+	return ret, err
+}
+
+func (m *defaultMktStudentMarketActivityModel) FindOne(id int64) (*MktStudentMarketActivity, error) {
+	mktStudentMarketActivityIdKey := fmt.Sprintf("%s%v", cacheMktStudentMarketActivityIdPrefix, id)
+	var resp MktStudentMarketActivity
+	err := m.QueryRow(&resp, mktStudentMarketActivityIdKey, func(conn sqlx.SqlConn, v interface{}) error {
+		query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", mktStudentMarketActivityRows, 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 *defaultMktStudentMarketActivityModel) Update(data MktStudentMarketActivity) error {
+	mktStudentMarketActivityIdKey := fmt.Sprintf("%s%v", cacheMktStudentMarketActivityIdPrefix, 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, mktStudentMarketActivityRowsWithPlaceHolder)
+		return conn.Exec(query, data.SutId, data.MaId, data.CreateBy, data.LastUpdateBy, data.LastUpdateTime, data.DelFlag, data.Id)
+	}, mktStudentMarketActivityIdKey)
+	return err
+}
+
+func (m *defaultMktStudentMarketActivityModel) Delete(id int64) error {
+
+	mktStudentMarketActivityIdKey := fmt.Sprintf("%s%v", cacheMktStudentMarketActivityIdPrefix, 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)
+	}, mktStudentMarketActivityIdKey)
+	return err
+}
+
+func (m *defaultMktStudentMarketActivityModel) formatPrimary(primary interface{}) string {
+	return fmt.Sprintf("%s%v", cacheMktStudentMarketActivityIdPrefix, primary)
+}
+
+func (m *defaultMktStudentMarketActivityModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
+	query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", mktStudentMarketActivityRows, m.table)
+	return conn.QueryRow(v, query, primary)
+}

+ 1 - 1
start.sh

@@ -12,7 +12,7 @@ goctl model mysql ddl -c -src model/excel_export_log.sql -dir model --style go_z
 goctl model mysql ddl -c -src model/sys_role_data_permission.sql -dir model --style go_zero
 goctl model mysql ddl -c -src model/sys_data_permission_detail.sql -dir model --style go_zero
 goctl model mysql ddl -c -src model/mkt_resource.sql -dir model --style go_zero
-
+goctl model mysql ddl -c -src model/mkt_student_market_activity.sql -dir model --style go_zero
 
 
 ### RUN RPC SRV