瀏覽代碼

Merge branch 'master' of https://git.i2edu.net/i2/i2-bill-api

2637309949 4 年之前
父節點
當前提交
15f261a824

+ 1 - 0
go.mod

@@ -7,5 +7,6 @@ require (
 	git.i2edu.net/i2/i2-bill-erp v0.0.0-20210623022310-19bfc0a41451
 	github.com/dgrijalva/jwt-go v3.2.0+incompatible
 	github.com/satori/go.uuid v1.2.0
+	github.com/tal-tech/go-zero v1.1.7 // indirect
 	gopkg.in/yaml.v2 v2.4.0
 )

+ 17 - 0
i2bill.api

@@ -76,6 +76,14 @@ type bindMobileResponse {
 	Id int64 `json:"id"`
 }
 
+type partTimeUserAddRequest {
+	Name        string `json:"name"`
+	IponeNumber string `json:"ipone_number"`
+	Sex         int64  `json:"sex"`
+	MkId        string `json:"mk_id"`
+	CityId      int64  `json:"city_id"` // 城市
+}
+
 type infoResponse {
 	ID          int64  `json:"id"`
 	Mobile      string `json:"mobile"`
@@ -87,6 +95,12 @@ type infoResponse {
 	ErpRoleType int64  `json:"erpRoleType"`
 }
 
+type Response {
+	Code int         `json:"code"`
+	Msg  string      `json:"msg"`
+	Data interface{} `json:"data"`
+}
+
 @server(
 	group: auth
 )
@@ -111,4 +125,7 @@ service i2bill-api {
 	
 	@handler GetUser
 	get /api/user/info returns(infoResponse)
+	
+	@handler  PartTimeUserAd
+	post /api/v1/part_time_user/add (partTimeUserAddRequest) returns(Response)
 }

+ 29 - 0
internal/handler/parttimeuseradhandler.go

@@ -0,0 +1,29 @@
+package handler
+
+import (
+	"net/http"
+
+	"git.i2edu.net/i2/i2-bill-api/internal/logic"
+	"git.i2edu.net/i2/i2-bill-api/internal/svc"
+	"git.i2edu.net/i2/i2-bill-api/internal/types"
+
+	"github.com/tal-tech/go-zero/rest/httpx"
+)
+
+func PartTimeUserAdHandler(ctx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.PartTimeUserAddRequest
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewPartTimeUserAdLogic(r.Context(), ctx)
+		resp, err := l.PartTimeUserAd(req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 5 - 0
internal/handler/routes.go

@@ -44,6 +44,11 @@ func RegisterHandlers(engine *rest.Server, serverCtx *svc.ServiceContext) {
 				Path:    "/api/user/info",
 				Handler: user.GetUserHandler(serverCtx),
 			},
+			{
+				Method:  http.MethodPost,
+				Path:    "/api/v1/part_time_user/add",
+				Handler: PartTimeUserAdHandler(serverCtx),
+			},
 		},
 		rest.WithJwt(serverCtx.Config.JwtAuth.AccessSecret),
 	)

+ 11 - 0
internal/logic/logic_test.go

@@ -0,0 +1,11 @@
+package logic
+
+import (
+	"fmt"
+	"testing"
+)
+
+func TestCreateJWT(t *testing.T) {
+	l := new(LoginByWeixinLogic)
+	fmt.Println(l.CreateJWT(1624415746, l.svcCtx.Config.JwtAuth.AccessSecret, nil, 1000))
+}

+ 55 - 0
internal/logic/parttimeuseradlogic.go

@@ -0,0 +1,55 @@
+package logic
+
+import (
+	"context"
+	"git.i2edu.net/i2/go-zero/core/stores/cache"
+	"git.i2edu.net/i2/i2-bill-api/model"
+	"time"
+
+	"git.i2edu.net/i2/i2-bill-api/internal/svc"
+	"git.i2edu.net/i2/i2-bill-api/internal/types"
+
+	"git.i2edu.net/i2/go-zero/core/logx"
+)
+
+type PartTimeUserAdLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewPartTimeUserAdLogic(ctx context.Context, svcCtx *svc.ServiceContext) PartTimeUserAdLogic {
+	return PartTimeUserAdLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *PartTimeUserAdLogic) PartTimeUserAd(req types.PartTimeUserAddRequest) (types.Response, error) {
+	// todo: add your logic here and delete this line
+	userInfo := new(model.User)
+	var bean = model.I2billMktPartTimeUser{
+		CreateTime:     time.Now(),
+		LastUpdateTime: time.Now(),
+		DelFlag:        0,
+		MkId:           req.MkId,
+		CreateBy:       1,
+		CheckState:     54,
+		CheckDesc:      "",
+		CityId:         req.CityId,
+		IponeNumber:    "",
+		Sex:            req.Sex,
+		Target:         0,
+		UserId:         userInfo.Id,
+		LastUpdateBy:   0,
+		Name:           req.Name,
+	}
+	res, err := model.NewI2billMktPartTimeUserModel(l.svcCtx.SqlConn, cache.CacheConf{}).Insert(bean)
+	var msg string
+	if err != nil {
+		msg = err.Error()
+	}
+
+	return types.Response{Code: 200, Msg: msg, Data: res}, nil
+}

+ 14 - 0
internal/types/types.go

@@ -69,6 +69,14 @@ type BindMobileResponse struct {
 	Id int64 `json:"id"`
 }
 
+type PartTimeUserAddRequest struct {
+	Name        string `json:"name"`
+	IponeNumber string `json:"ipone_number"`
+	Sex         int64  `json:"sex"`
+	MkId        string `json:"mk_id"`
+	CityId      int64  `json:"city_id"` // 城市
+}
+
 type InfoResponse struct {
 	ID          int64  `json:"id"`
 	Mobile      string `json:"mobile"`
@@ -79,3 +87,9 @@ type InfoResponse struct {
 	Birthday    int64  `json:"birthday"`
 	ErpRoleType int64  `json:"erpRoleType"`
 }
+
+type Response struct {
+	Code int         `json:"code"`
+	Msg  string      `json:"msg"`
+	Data interface{} `json:"data"`
+}

+ 10 - 10
internal/utils/resp.go

@@ -1,32 +1,32 @@
 package utils
 
 type HTTPData struct {
-	ErrNo  int         `json:"errno"`
-	ErrMsg string      `json:"errmsg"`
-	Data   interface{} `json:"data"`
+	Code int         `json:"code"`
+	Msg  string      `json:"msg"`
+	Data interface{} `json:"data"`
 }
 
 func ReturnHTTPSuccess(val interface{}) HTTPData {
 	rtndata := HTTPData{
-		ErrNo:  0,
-		ErrMsg: "",
-		Data:   val,
+		Code: 0,
+		Msg:  "",
+		Data: val,
 	}
 	return rtndata
 }
 
 func ReturnHTTPFail(err error) HTTPData {
 	rtndata := HTTPData{
-		ErrNo:  500,
-		ErrMsg: err.Error(),
+		Code: 500,
+		Msg:  err.Error(),
 	}
 	return rtndata
 }
 
 func ReturnHTTPUnauthorized(err error) HTTPData {
 	rtndata := HTTPData{
-		ErrNo:  401,
-		ErrMsg: err.Error(),
+		Code: 401,
+		Msg:  err.Error(),
 	}
 	return rtndata
 }

+ 13 - 0
model/i2bill_acquirer_attendance_record.sql

@@ -0,0 +1,13 @@
+-- 打卡记录表--
+DROP TABLE IF EXISTS `i2bill_acquirer_attendance_record`;
+CREATE TABLE `i2bill_acquirer_attendance_record`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `start_address` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '上班地址',
+  `end_address` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '下班地址',
+  `start_time` datetime(0) NULL DEFAULT NULL COMMENT '上班时间',
+  `end_time` datetime(0) NULL DEFAULT NULL COMMENT '下班时间',
+  `create_time` datetime(0) NULL DEFAULT NULL,
+  `del_flag` int(11) NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;

+ 15 - 0
model/i2bill_acquirer_mkt_qr.sql

@@ -0,0 +1,15 @@
+--收单二维码--
+DROP TABLE IF EXISTS `i2bill_acquirer_mkt_qr`;
+CREATE TABLE `i2bill_acquirer_mkt_qr`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `qudao_id` varchar(300) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '渠道id',
+  `activity_id` varchar(300) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '活动id',
+  `qr` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '二维码url',
+  `del_flag` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
+  `create_time` datetime(0) NULL DEFAULT NULL,
+  `create_by` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
+  `last_update_time` datetime(0) NULL DEFAULT NULL,
+  `last_update_by` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;

+ 21 - 0
model/i2bill_acquirer_student.sql

@@ -0,0 +1,21 @@
+-- 收单学生表--
+DROP TABLE IF EXISTS `i2bill_acquirer_student`;
+CREATE TABLE `i2bill_acquirer_student`  (
+  `id` int(11) NOT NULL COMMENT '主键',
+  `mk_id` varchar(26) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '所属mk erp id',
+  `part_time_user_id` int(11) NULL DEFAULT NULL,
+  `user_id` int(11) NULL DEFAULT NULL COMMENT '收单宝用户id',
+  `stu_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '学员名称',
+  `age_group` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '学员年龄',
+  `stu_link_person` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '联系人',
+  `stu_phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '联系方式',
+  `sch_id` int(11) NULL DEFAULT NULL COMMENT '意向校区',
+  `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '当前位置',
+  `create_time` datetime(0) NULL DEFAULT NULL,
+  `del_flag` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
+  `check_state` int(11) NULL DEFAULT NULL COMMENT '收单宝状态',
+  `check_time` datetime(0) NULL DEFAULT NULL COMMENT '审核日期',
+  `check_by` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '审核人',
+  `network_detail_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '渠道',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE =InnoDB  CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;

+ 24 - 0
model/i2bill_mkt_part_time_user.sql

@@ -0,0 +1,24 @@
+--兼职人员表--
+DROP TABLE IF EXISTS `i2bill_mkt_part_time_user`;
+CREATE TABLE `i2bill_mkt_part_time_user`  (
+  `id` int(0) NOT NULL AUTO_INCREMENT,
+  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+  `ipone_number` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+  `sex` int(0) NOT NULL  DEFAULT 0,
+  `target` int(0) NOT NULL DEFAULT 0 COMMENT '目标人数',
+  `user_id` int(0) NOT NULL DEFAULT 0 COMMENT 'user_id',
+  `mk_id` varchar(36)  NOT NULL DEFAULT '' COMMENT '所属erp mk id',
+  `city_id` int(0) NOT NULL DEFAULT 0  COMMENT '城市',
+  `check_state` int(0) NOT NULL DEFAULT 54 COMMENT '审核状态',
+  `check_desc` varchar(300) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '审核失败描述',
+  `create_by`  int(0)  NOT NULL DEFAULT 0,
+  `create_time` datetime(0) NOT NULL DEFAULT '',
+  `last_update_by`  int(0)  NOT NULL DEFAULT 0,
+  `last_update_time` datetime(0) NOT NULL DEFAULT '',
+  `del_flag` int(0) NOT NULL DEFAULT 0,
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `IDX_mkt_part_time_user_ipone_number`(`ipone_number`) USING BTREE,
+  INDEX `IDX_mkt_part_time_user_name`(`name`) USING BTREE,
+  INDEX `IDX_mkt_part_time_user_sex`(`sex`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+

+ 24 - 0
model/i2bill_part_time_user.sql

@@ -0,0 +1,24 @@
+--兼职人员表--
+DROP TABLE IF EXISTS `i2bill_mkt_part_time_user`;
+CREATE TABLE `i2bill_mkt_part_time_user`  (
+  `id` int(0) NOT NULL AUTO_INCREMENT,
+  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  `ipone_number` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  `sex` int(0) NULL DEFAULT NULL,
+  `target` int(0) NULL DEFAULT NULL COMMENT '目标人数',
+  `user_id` int(0) NULL DEFAULT NULL COMMENT 'user_id',
+  `mk_id` varchar(36)  NULL DEFAULT NULL COMMENT '所属erp mk id',
+  `city_id` int(0) NULL DEFAULT NULL  COMMENT '城市',
+  `check_state` int(0) NULL DEFAULT NULL COMMENT '审核状态',
+  `check_desc` varchar(300) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '审核失败描述',
+  `create_by` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  `create_time` datetime(0) NULL DEFAULT NULL,
+  `last_update_by` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  `last_update_time` datetime(0) NULL DEFAULT NULL,
+  `del_flag` int(0) NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `IDX_mkt_part_time_user_ipone_number`(`ipone_number`) USING BTREE,
+  INDEX `IDX_mkt_part_time_user_name`(`name`) USING BTREE,
+  INDEX `IDX_mkt_part_time_user_sex`(`sex`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+

+ 106 - 0
model/i2billacquirerattendancerecordmodel.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 (
+	i2billAcquirerAttendanceRecordFieldNames          = builderx.RawFieldNames(&I2billAcquirerAttendanceRecord{})
+	i2billAcquirerAttendanceRecordRows                = strings.Join(i2billAcquirerAttendanceRecordFieldNames, ",")
+	i2billAcquirerAttendanceRecordRowsExpectAutoSet   = strings.Join(stringx.Remove(i2billAcquirerAttendanceRecordFieldNames, "`id`", "`create_time`", "`update_time`"), ",")
+	i2billAcquirerAttendanceRecordRowsWithPlaceHolder = strings.Join(stringx.Remove(i2billAcquirerAttendanceRecordFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
+
+	cacheI2billAcquirerAttendanceRecordIdPrefix = "cache:i2billAcquirerAttendanceRecord:id:"
+)
+
+type (
+	I2billAcquirerAttendanceRecordModel interface {
+		Insert(data I2billAcquirerAttendanceRecord) (sql.Result, error)
+		FindOne(id int64) (*I2billAcquirerAttendanceRecord, error)
+		Update(data I2billAcquirerAttendanceRecord) error
+		Delete(id int64) error
+	}
+
+	defaultI2billAcquirerAttendanceRecordModel struct {
+		sqlc.CachedConn
+		table string
+	}
+
+	I2billAcquirerAttendanceRecord struct {
+		Id           int64          `db:"id"`
+		UserId       sql.NullInt64  `db:"user_id"`       // 用户id
+		StartAddress sql.NullString `db:"start_address"` // 上班地址
+		EndAddress   sql.NullString `db:"end_address"`   // 下班地址
+		StartTime    sql.NullTime   `db:"start_time"`    // 上班时间
+		EndTime      sql.NullTime   `db:"end_time"`      // 下班时间
+		CreateTime   sql.NullTime   `db:"create_time"`
+		DelFlag      sql.NullInt64  `db:"del_flag"`
+	}
+)
+
+func NewI2billAcquirerAttendanceRecordModel(conn sqlx.SqlConn, c cache.CacheConf) I2billAcquirerAttendanceRecordModel {
+	return &defaultI2billAcquirerAttendanceRecordModel{
+		CachedConn: sqlc.NewConn(conn, c),
+		table:      "`i2bill_acquirer_attendance_record`",
+	}
+}
+
+func (m *defaultI2billAcquirerAttendanceRecordModel) Insert(data I2billAcquirerAttendanceRecord) (sql.Result, error) {
+	query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?)", m.table, i2billAcquirerAttendanceRecordRowsExpectAutoSet)
+	ret, err := m.ExecNoCache(query, data.UserId, data.StartAddress, data.EndAddress, data.StartTime, data.EndTime, data.DelFlag)
+
+	return ret, err
+}
+
+func (m *defaultI2billAcquirerAttendanceRecordModel) FindOne(id int64) (*I2billAcquirerAttendanceRecord, error) {
+	i2billAcquirerAttendanceRecordIdKey := fmt.Sprintf("%s%v", cacheI2billAcquirerAttendanceRecordIdPrefix, id)
+	var resp I2billAcquirerAttendanceRecord
+	err := m.QueryRow(&resp, i2billAcquirerAttendanceRecordIdKey, func(conn sqlx.SqlConn, v interface{}) error {
+		query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", i2billAcquirerAttendanceRecordRows, 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 *defaultI2billAcquirerAttendanceRecordModel) Update(data I2billAcquirerAttendanceRecord) error {
+	i2billAcquirerAttendanceRecordIdKey := fmt.Sprintf("%s%v", cacheI2billAcquirerAttendanceRecordIdPrefix, 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, i2billAcquirerAttendanceRecordRowsWithPlaceHolder)
+		return conn.Exec(query, data.UserId, data.StartAddress, data.EndAddress, data.StartTime, data.EndTime, data.DelFlag, data.Id)
+	}, i2billAcquirerAttendanceRecordIdKey)
+	return err
+}
+
+func (m *defaultI2billAcquirerAttendanceRecordModel) Delete(id int64) error {
+
+	i2billAcquirerAttendanceRecordIdKey := fmt.Sprintf("%s%v", cacheI2billAcquirerAttendanceRecordIdPrefix, 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)
+	}, i2billAcquirerAttendanceRecordIdKey)
+	return err
+}
+
+func (m *defaultI2billAcquirerAttendanceRecordModel) formatPrimary(primary interface{}) string {
+	return fmt.Sprintf("%s%v", cacheI2billAcquirerAttendanceRecordIdPrefix, primary)
+}
+
+func (m *defaultI2billAcquirerAttendanceRecordModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
+	query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", i2billAcquirerAttendanceRecordRows, m.table)
+	return conn.QueryRow(v, query, primary)
+}

+ 108 - 0
model/i2billacquirermktqrmodel.go

@@ -0,0 +1,108 @@
+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 (
+	i2billAcquirerMktQrFieldNames          = builderx.RawFieldNames(&I2billAcquirerMktQr{})
+	i2billAcquirerMktQrRows                = strings.Join(i2billAcquirerMktQrFieldNames, ",")
+	i2billAcquirerMktQrRowsExpectAutoSet   = strings.Join(stringx.Remove(i2billAcquirerMktQrFieldNames, "`id`", "`create_time`", "`update_time`"), ",")
+	i2billAcquirerMktQrRowsWithPlaceHolder = strings.Join(stringx.Remove(i2billAcquirerMktQrFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
+
+	cacheI2billAcquirerMktQrIdPrefix = "cache:i2billAcquirerMktQr:id:"
+)
+
+type (
+	I2billAcquirerMktQrModel interface {
+		Insert(data I2billAcquirerMktQr) (sql.Result, error)
+		FindOne(id int64) (*I2billAcquirerMktQr, error)
+		Update(data I2billAcquirerMktQr) error
+		Delete(id int64) error
+	}
+
+	defaultI2billAcquirerMktQrModel struct {
+		sqlc.CachedConn
+		table string
+	}
+
+	I2billAcquirerMktQr struct {
+		CreateBy       sql.NullString `db:"create_by"`
+		UserId         sql.NullInt64  `db:"user_id"`     // 用户id
+		ActivityId     sql.NullString `db:"activity_id"` // 活动id
+		Qr             sql.NullString `db:"qr"`          // 二维码url
+		DelFlag        sql.NullString `db:"del_flag"`
+		CreateTime     sql.NullTime   `db:"create_time"`
+		LastUpdateTime sql.NullTime   `db:"last_update_time"`
+		LastUpdateBy   sql.NullString `db:"last_update_by"`
+		Id             int64          `db:"id"`       // 主键
+		QudaoId        sql.NullString `db:"qudao_id"` // 渠道id
+	}
+)
+
+func NewI2billAcquirerMktQrModel(conn sqlx.SqlConn, c cache.CacheConf) I2billAcquirerMktQrModel {
+	return &defaultI2billAcquirerMktQrModel{
+		CachedConn: sqlc.NewConn(conn, c),
+		table:      "`i2bill_acquirer_mkt_qr`",
+	}
+}
+
+func (m *defaultI2billAcquirerMktQrModel) Insert(data I2billAcquirerMktQr) (sql.Result, error) {
+	query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?)", m.table, i2billAcquirerMktQrRowsExpectAutoSet)
+	ret, err := m.ExecNoCache(query, data.CreateBy, data.UserId, data.ActivityId, data.Qr, data.DelFlag, data.LastUpdateTime, data.LastUpdateBy, data.QudaoId)
+
+	return ret, err
+}
+
+func (m *defaultI2billAcquirerMktQrModel) FindOne(id int64) (*I2billAcquirerMktQr, error) {
+	i2billAcquirerMktQrIdKey := fmt.Sprintf("%s%v", cacheI2billAcquirerMktQrIdPrefix, id)
+	var resp I2billAcquirerMktQr
+	err := m.QueryRow(&resp, i2billAcquirerMktQrIdKey, func(conn sqlx.SqlConn, v interface{}) error {
+		query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", i2billAcquirerMktQrRows, 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 *defaultI2billAcquirerMktQrModel) Update(data I2billAcquirerMktQr) error {
+	i2billAcquirerMktQrIdKey := fmt.Sprintf("%s%v", cacheI2billAcquirerMktQrIdPrefix, 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, i2billAcquirerMktQrRowsWithPlaceHolder)
+		return conn.Exec(query, data.CreateBy, data.UserId, data.ActivityId, data.Qr, data.DelFlag, data.LastUpdateTime, data.LastUpdateBy, data.QudaoId, data.Id)
+	}, i2billAcquirerMktQrIdKey)
+	return err
+}
+
+func (m *defaultI2billAcquirerMktQrModel) Delete(id int64) error {
+
+	i2billAcquirerMktQrIdKey := fmt.Sprintf("%s%v", cacheI2billAcquirerMktQrIdPrefix, 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)
+	}, i2billAcquirerMktQrIdKey)
+	return err
+}
+
+func (m *defaultI2billAcquirerMktQrModel) formatPrimary(primary interface{}) string {
+	return fmt.Sprintf("%s%v", cacheI2billAcquirerMktQrIdPrefix, primary)
+}
+
+func (m *defaultI2billAcquirerMktQrModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
+	query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", i2billAcquirerMktQrRows, m.table)
+	return conn.QueryRow(v, query, primary)
+}

+ 114 - 0
model/i2billacquirerstudentmodel.go

@@ -0,0 +1,114 @@
+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 (
+	i2billAcquirerStudentFieldNames          = builderx.RawFieldNames(&I2billAcquirerStudent{})
+	i2billAcquirerStudentRows                = strings.Join(i2billAcquirerStudentFieldNames, ",")
+	i2billAcquirerStudentRowsExpectAutoSet   = strings.Join(stringx.Remove(i2billAcquirerStudentFieldNames, "`create_time`", "`update_time`"), ",")
+	i2billAcquirerStudentRowsWithPlaceHolder = strings.Join(stringx.Remove(i2billAcquirerStudentFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
+
+	cacheI2billAcquirerStudentIdPrefix = "cache:i2billAcquirerStudent:id:"
+)
+
+type (
+	I2billAcquirerStudentModel interface {
+		Insert(data I2billAcquirerStudent) (sql.Result, error)
+		FindOne(id int64) (*I2billAcquirerStudent, error)
+		Update(data I2billAcquirerStudent) error
+		Delete(id int64) error
+	}
+
+	defaultI2billAcquirerStudentModel struct {
+		sqlc.CachedConn
+		table string
+	}
+
+	I2billAcquirerStudent struct {
+		MkId            sql.NullString `db:"mk_id"`     // 所属mk erp id
+		StuName         sql.NullString `db:"stu_name"`  // 学员名称
+		StuPhone        sql.NullString `db:"stu_phone"` // 联系方式
+		SchId           sql.NullInt64  `db:"sch_id"`    // 意向校区
+		Id              int64          `db:"id"`        // 主键
+		Address         sql.NullString `db:"address"`   // 当前位置
+		CreateTime      sql.NullTime   `db:"create_time"`
+		DelFlag         sql.NullString `db:"del_flag"`
+		CheckTime       sql.NullTime   `db:"check_time"`        // 审核日期
+		AgeGroup        string         `db:"age_group"`         // 学员年龄
+		NetworkDetailId sql.NullString `db:"network_detail_id"` // 渠道
+		PartTimeUserId  sql.NullInt64  `db:"part_time_user_id"`
+		UserId          sql.NullInt64  `db:"user_id"`         // 收单宝用户id
+		StuLinkPerson   sql.NullString `db:"stu_link_person"` // 联系人
+		CheckState      sql.NullInt64  `db:"check_state"`     // 收单宝状态
+		CheckBy         sql.NullString `db:"check_by"`        // 审核人
+	}
+)
+
+func NewI2billAcquirerStudentModel(conn sqlx.SqlConn, c cache.CacheConf) I2billAcquirerStudentModel {
+	return &defaultI2billAcquirerStudentModel{
+		CachedConn: sqlc.NewConn(conn, c),
+		table:      "`i2bill_acquirer_student`",
+	}
+}
+
+func (m *defaultI2billAcquirerStudentModel) Insert(data I2billAcquirerStudent) (sql.Result, error) {
+	query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, i2billAcquirerStudentRowsExpectAutoSet)
+	ret, err := m.ExecNoCache(query, data.MkId, data.StuName, data.StuPhone, data.SchId, data.Id, data.Address, data.DelFlag, data.CheckTime, data.AgeGroup, data.NetworkDetailId, data.PartTimeUserId, data.UserId, data.StuLinkPerson, data.CheckState, data.CheckBy)
+
+	return ret, err
+}
+
+func (m *defaultI2billAcquirerStudentModel) FindOne(id int64) (*I2billAcquirerStudent, error) {
+	i2billAcquirerStudentIdKey := fmt.Sprintf("%s%v", cacheI2billAcquirerStudentIdPrefix, id)
+	var resp I2billAcquirerStudent
+	err := m.QueryRow(&resp, i2billAcquirerStudentIdKey, func(conn sqlx.SqlConn, v interface{}) error {
+		query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", i2billAcquirerStudentRows, 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 *defaultI2billAcquirerStudentModel) Update(data I2billAcquirerStudent) error {
+	i2billAcquirerStudentIdKey := fmt.Sprintf("%s%v", cacheI2billAcquirerStudentIdPrefix, 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, i2billAcquirerStudentRowsWithPlaceHolder)
+		return conn.Exec(query, data.MkId, data.StuName, data.StuPhone, data.SchId, data.Address, data.DelFlag, data.CheckTime, data.AgeGroup, data.NetworkDetailId, data.PartTimeUserId, data.UserId, data.StuLinkPerson, data.CheckState, data.CheckBy, data.Id)
+	}, i2billAcquirerStudentIdKey)
+	return err
+}
+
+func (m *defaultI2billAcquirerStudentModel) Delete(id int64) error {
+
+	i2billAcquirerStudentIdKey := fmt.Sprintf("%s%v", cacheI2billAcquirerStudentIdPrefix, 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)
+	}, i2billAcquirerStudentIdKey)
+	return err
+}
+
+func (m *defaultI2billAcquirerStudentModel) formatPrimary(primary interface{}) string {
+	return fmt.Sprintf("%s%v", cacheI2billAcquirerStudentIdPrefix, primary)
+}
+
+func (m *defaultI2billAcquirerStudentModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
+	query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", i2billAcquirerStudentRows, m.table)
+	return conn.QueryRow(v, query, primary)
+}

+ 114 - 0
model/i2billmktparttimeusermodel.go

@@ -0,0 +1,114 @@
+package model
+
+import (
+	"database/sql"
+	"fmt"
+	"strings"
+	"time"
+
+	"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 (
+	i2billMktPartTimeUserFieldNames          = builderx.RawFieldNames(&I2billMktPartTimeUser{})
+	i2billMktPartTimeUserRows                = strings.Join(i2billMktPartTimeUserFieldNames, ",")
+	i2billMktPartTimeUserRowsExpectAutoSet   = strings.Join(stringx.Remove(i2billMktPartTimeUserFieldNames, "`id`", "`create_time`", "`update_time`"), ",")
+	i2billMktPartTimeUserRowsWithPlaceHolder = strings.Join(stringx.Remove(i2billMktPartTimeUserFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
+
+	cacheI2billMktPartTimeUserIdPrefix = "cache:i2billMktPartTimeUser:id:"
+)
+
+type (
+	I2billMktPartTimeUserModel interface {
+		Insert(data I2billMktPartTimeUser) (sql.Result, error)
+		FindOne(id int64) (*I2billMktPartTimeUser, error)
+		Update(data I2billMktPartTimeUser) error
+		Delete(id int64) error
+	}
+
+	defaultI2billMktPartTimeUserModel struct {
+		sqlc.CachedConn
+		table string
+	}
+
+	I2billMktPartTimeUser struct {
+		CreateTime     time.Time `db:"create_time"`
+		LastUpdateTime time.Time `db:"last_update_time"`
+		DelFlag        int64     `db:"del_flag"`
+		MkId           string    `db:"mk_id"` // 所属erp mk id
+		CreateBy       int64     `db:"create_by"`
+		CheckState     int64     `db:"check_state"` // 审核状态
+		CheckDesc      string    `db:"check_desc"`  // 审核失败描述
+		CityId         int64     `db:"city_id"`     // 城市
+		IponeNumber    string    `db:"ipone_number"`
+		Sex            int64     `db:"sex"`
+		Target         int64     `db:"target"`  // 目标人数
+		UserId         int64     `db:"user_id"` // user_id
+		LastUpdateBy   int64     `db:"last_update_by"`
+		Id             int64     `db:"id"`
+		Name           string    `db:"name"`
+	}
+)
+
+func NewI2billMktPartTimeUserModel(conn sqlx.SqlConn, c cache.CacheConf) I2billMktPartTimeUserModel {
+	return &defaultI2billMktPartTimeUserModel{
+		CachedConn: sqlc.NewConn(conn, c),
+		table:      "`i2bill_mkt_part_time_user`",
+	}
+}
+
+func (m *defaultI2billMktPartTimeUserModel) Insert(data I2billMktPartTimeUser) (sql.Result, error) {
+	query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, i2billMktPartTimeUserRowsExpectAutoSet)
+	ret, err := m.ExecNoCache(query, data.LastUpdateTime, data.DelFlag, data.MkId, data.CreateBy, data.CheckState, data.CheckDesc, data.CityId, data.IponeNumber, data.Sex, data.Target, data.UserId, data.LastUpdateBy, data.Name)
+
+	return ret, err
+}
+
+func (m *defaultI2billMktPartTimeUserModel) FindOne(id int64) (*I2billMktPartTimeUser, error) {
+	i2billMktPartTimeUserIdKey := fmt.Sprintf("%s%v", cacheI2billMktPartTimeUserIdPrefix, id)
+	var resp I2billMktPartTimeUser
+	err := m.QueryRow(&resp, i2billMktPartTimeUserIdKey, func(conn sqlx.SqlConn, v interface{}) error {
+		query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", i2billMktPartTimeUserRows, 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 *defaultI2billMktPartTimeUserModel) Update(data I2billMktPartTimeUser) error {
+	i2billMktPartTimeUserIdKey := fmt.Sprintf("%s%v", cacheI2billMktPartTimeUserIdPrefix, 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, i2billMktPartTimeUserRowsWithPlaceHolder)
+		return conn.Exec(query, data.LastUpdateTime, data.DelFlag, data.MkId, data.CreateBy, data.CheckState, data.CheckDesc, data.CityId, data.IponeNumber, data.Sex, data.Target, data.UserId, data.LastUpdateBy, data.Name, data.Id)
+	}, i2billMktPartTimeUserIdKey)
+	return err
+}
+
+func (m *defaultI2billMktPartTimeUserModel) Delete(id int64) error {
+
+	i2billMktPartTimeUserIdKey := fmt.Sprintf("%s%v", cacheI2billMktPartTimeUserIdPrefix, 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)
+	}, i2billMktPartTimeUserIdKey)
+	return err
+}
+
+func (m *defaultI2billMktPartTimeUserModel) formatPrimary(primary interface{}) string {
+	return fmt.Sprintf("%s%v", cacheI2billMktPartTimeUserIdPrefix, primary)
+}
+
+func (m *defaultI2billMktPartTimeUserModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
+	query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", i2billMktPartTimeUserRows, m.table)
+	return conn.QueryRow(v, query, primary)
+}

+ 2 - 1
model/user.sql

@@ -1,5 +1,6 @@
+
 DROP TABLE IF EXISTS `user`;
-CREATE TABLE `user` (
+CREATE TABLE `i2bill_user` (
   `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
   `erp_id` varchar(36) NOT NULL DEFAULT '',
   `username` varchar(60) NOT NULL DEFAULT '',