k.zhang il y a 1 an
Parent
commit
fa57c8706b

+ 10 - 0
apis/shanghu/base.go

@@ -50,4 +50,14 @@ func InitShangHuRouter(engine *gin.RouterGroup) {
 		v2.POST("/merchant/cancel/info", GetMerchantCancelInfo) //核销详情
 		v2.POST("/merchant/cancel", CancelNumberV2)
 	}
+
+	recharge := engine.Group("v1/recharge")
+	{
+		recharge.POST("/config", CreateMerchantRechargeConfig)
+		recharge.POST("/del", DelMerchantRechargeConfig)
+		recharge.POST("/list", MerchantRechargeConfigList)
+		recharge.POST("/project/create", CreateMerchantRechargeProject)
+		recharge.POST("/project/del", DelMerchantRechargeProject)
+		recharge.POST("/project/list", MerchantRechargeProjectList)
+	}
 }

+ 113 - 0
apis/shanghu/merchant.recharge.go

@@ -0,0 +1,113 @@
+package shanghu
+
+import (
+	"duoduo/apis/shanghu/models"
+	"duoduo/models/shanghu"
+	"duoduo/tools/app"
+	"encoding/json"
+	"github.com/gin-gonic/gin"
+	"time"
+)
+
+func CreateMerchantRechargeConfig(c *gin.Context) {
+	var inData models.CreateMerchantRechargeRequest
+	var project []int64
+	var merchantProjectList []shanghu.MerchantRechargeProject
+	err := c.ShouldBindJSON(&inData)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	var merchantRecharge shanghu.MerchantRecharge
+	merchantRecharge.MerchantRechargeName = inData.MerchantRechargeName
+	merchantRecharge.CardProjectData = inData.CardProjectData
+	merchantRecharge.MerchantOpenID = inData.MerchantOpenID
+	merchantRecharge.CreatedAt = time.Now()
+	merchantRecharge.UpdatedAt = time.Now()
+
+	err = json.Unmarshal([]byte(inData.CardProjectData), &project)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	for _, v := range project {
+		var sql shanghu.MerchantRechargeProject
+		sql.ID = v
+		merchantProject, err := sql.GetMerchantRechargeProjectById()
+		if err != nil {
+			app.Error(c, 400, err, err.Error())
+			return
+		}
+		merchantProjectList = append(merchantProjectList, merchantProject)
+
+	}
+	list, err := json.Marshal(merchantProjectList)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+	merchantRecharge.CardProjectData = string(list)
+
+	_, err = merchantRecharge.Create()
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	app.OK(c, nil, app.Success)
+
+}
+
+func DelMerchantRechargeConfig(c *gin.Context) {
+	var inData models.DelMerchantRechargeRequest
+	var sql shanghu.MerchantRecharge
+
+	err := c.ShouldBindJSON(&inData)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	sql.ID = inData.Id
+	err = sql.DelMerchantRecharge()
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	app.OK(c, nil, app.Success)
+
+}
+
+func MerchantRechargeConfigList(c *gin.Context) {
+	var inData models.MerchantRechargeListRequest
+	var sqlData shanghu.MerchantRecharge
+
+	err := c.ShouldBindJSON(&inData)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	var pageSize = 10
+	var pageIndex = 1
+
+	if inData.PageSize != 0 {
+		pageSize = inData.PageSize
+	}
+	if inData.PageIndex != 0 {
+		pageIndex = inData.PageIndex
+	}
+
+	sqlData.MerchantOpenID = inData.OpenId
+
+	cashOutList, count, err := sqlData.MerchantRechargeList(pageSize, pageIndex)
+	if err != nil {
+		app.Error(c, 500, err, err.Error())
+		return
+	}
+
+	app.PageOK(c, cashOutList, count, pageIndex, pageSize, app.Success)
+}

+ 87 - 0
apis/shanghu/merchant.recharge.project.go

@@ -0,0 +1,87 @@
+package shanghu
+
+import (
+	"duoduo/apis/shanghu/models"
+	"duoduo/models/shanghu"
+	"duoduo/tools/app"
+	"github.com/gin-gonic/gin"
+	"time"
+)
+
+func CreateMerchantRechargeProject(c *gin.Context) {
+	var inData models.CreateMerchantRechargeProjectRequest
+	var sqlData shanghu.MerchantRechargeProject
+
+	err := c.ShouldBindJSON(&inData)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	sqlData.CreatedAt = time.Now()
+	sqlData.UpdatedAt = time.Now()
+	sqlData.MerchantOpenID = inData.MerchantOpenID
+	sqlData.ProjectName = inData.ProjectName
+	sqlData.ProjectQuantity = inData.ProjectQuantity
+
+	_, err = sqlData.Create()
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	app.OK(c, nil, app.Success)
+
+}
+
+func DelMerchantRechargeProject(c *gin.Context) {
+	var inData models.DelMerchantRechargeProjectRequest
+	var sqlData shanghu.MerchantRechargeProject
+
+	err := c.ShouldBindJSON(&inData)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	sqlData.ID = inData.Id
+
+	err = sqlData.DelMerchantRecharge()
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	app.OK(c, nil, app.Success)
+
+}
+
+func MerchantRechargeProjectList(c *gin.Context) {
+	var inData models.MerchantRechargeProjectListRequest
+	var sqlData shanghu.MerchantRechargeProject
+
+	err := c.ShouldBindJSON(&inData)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	var pageSize = 10
+	var pageIndex = 1
+
+	if inData.PageSize != 0 {
+		pageSize = inData.PageSize
+	}
+	if inData.PageIndex != 0 {
+		pageIndex = inData.PageIndex
+	}
+	sqlData.MerchantOpenID = inData.OpenId
+
+	merchant, count, err := sqlData.GetMerchantRechargeProjectListByOpenId(pageSize, pageIndex)
+	if err != nil {
+		app.Error(c, 500, err, err.Error())
+		return
+	}
+	app.PageOK(c, merchant, count, pageIndex, pageSize, app.Success)
+
+}

+ 26 - 0
apis/shanghu/models/merchant.recharge.go

@@ -0,0 +1,26 @@
+package models
+
+type CreateMerchantRechargeRequest struct {
+	//MerchantRecharge []MerchantRecharge `json:"merchant_recharge"`
+	//Id                   int64  `json:"id"`                     //id
+	MerchantRechargeName string `json:"merchant_recharge_name"` // 招商充值名称
+	MerchantOpenID       string `json:"merchant_open_id"`       // Open id
+	CardProjectData      string `json:"card_project_data"`
+}
+
+type MerchantRecharge struct {
+	Id                   int64  `json:"id"`                     //id
+	MerchantRechargeName string `json:"merchant_recharge_name"` // 招商充值名称
+	MerchantOpenID       string `json:"merchant_open_id"`       // Open id
+	CardProjectData      string `json:"card_project_data"`
+}
+
+type DelMerchantRechargeRequest struct {
+	Id int64 `json:"id"`
+}
+
+type MerchantRechargeListRequest struct {
+	OpenId    string `json:"open_id"`
+	PageSize  int    `json:"page_size"`
+	PageIndex int    `json:"page_index"`
+}

+ 17 - 0
apis/shanghu/models/merchant.recharge.project.go

@@ -0,0 +1,17 @@
+package models
+
+type CreateMerchantRechargeProjectRequest struct {
+	ProjectName     string `json:"project_name"`     // 项目名称
+	MerchantOpenID  string `json:"merchant_open_id"` // Open id
+	ProjectQuantity int    `json:"project_quantity"` //产品数量
+}
+
+type DelMerchantRechargeProjectRequest struct {
+	Id int64 `json:"id"`
+}
+
+type MerchantRechargeProjectListRequest struct {
+	OpenId    string `json:"open_id"`
+	PageSize  int    `json:"page_size"`
+	PageIndex int    `json:"page_index"`
+}

+ 75 - 0
models/shanghu/merchant.recharge.go

@@ -0,0 +1,75 @@
+package shanghu
+
+import (
+	orm "duoduo/database"
+	"time"
+)
+
+type MerchantRecharge struct {
+	ID                   int64     `gorm:"column:id;type:bigint(20);primary_key;AUTO_INCREMENT" json:"id"`                // Id
+	MerchantRechargeName string    `gorm:"column:merchant_recharge_name;type:varchar(255)" json:"merchant_recharge_name"` // 招商充值名称
+	MerchantOpenID       string    `gorm:"column:merchant_open_id;type:varchar(255)" json:"merchant_open_id"`             // Open id
+	CardProjectData      string    `gorm:"column:card_project_data;type:json" json:"card_project_data"`                   // 项目
+	CreateBy             int64     `gorm:"column:create_by;type:bigint(20)" json:"create_by"`                             // 创建者
+	UpdateBy             int64     `gorm:"column:update_by;type:bigint(20)" json:"update_by"`                             // 更新者
+	CreatedAt            time.Time `gorm:"column:created_at;type:datetime(3)" json:"created_at"`                          // 创建时间
+	UpdatedAt            time.Time `gorm:"column:updated_at;type:datetime(3)" json:"updated_at"`                          // 最后更新时间
+	DeletedAt            time.Time `gorm:"column:deleted_at;type:datetime(3);default:null" json:"deleted_at"`             // 删除时间
+}
+
+func (m *MerchantRecharge) TableName() string {
+	return "merchant_recharge"
+}
+
+func (u *MerchantRecharge) Create() (MerchantRecharge, error) {
+	var doc MerchantRecharge
+	var err error
+
+	doc = *u
+	err = orm.ShMysql.Table(u.TableName()).Create(&doc).Error
+	if err != nil {
+		return doc, err
+	}
+
+	return doc, nil
+}
+
+func (m *MerchantRecharge) UpdateMerchantRecharge() error {
+
+	if err := orm.ShMysql.Table(m.TableName()).Model(&m).Where("id = ? ", m.ID).Updates(
+		map[string]interface{}{
+			"merchant_recharge_name": m.MerchantRechargeName,
+			"merchant_open_id":       m.MerchantOpenID,
+			"card_project_data":      m.CardProjectData,
+			"updated_at":             time.Now()}).Error; err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func (m *MerchantRecharge) DelMerchantRecharge() error {
+
+	if err := orm.ShMysql.Table(m.TableName()).Model(&m).Where("id = ? ", m.ID).Updates(
+		map[string]interface{}{
+			"deleted_at": time.Now()}).Error; err != nil {
+		return err
+	}
+
+	return nil
+}
+
+// list 接口使用
+func (m *MerchantRecharge) MerchantRechargeList(pageSize int, pageIndex int) ([]MerchantRecharge, int, error) {
+	var doc []MerchantRecharge
+
+	table := orm.ShMysql.Table(m.TableName())
+
+	table = table.Where("merchant_open_id = ? ", m.MerchantOpenID)
+	var count int
+	if err := table.Select("*").Order("id desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Error; err != nil {
+		return nil, 0, err
+	}
+	table.Count(&count)
+	return doc, count, nil
+}

+ 78 - 0
models/shanghu/merchant.recharget.project.go

@@ -0,0 +1,78 @@
+package shanghu
+
+import (
+	orm "duoduo/database"
+	"time"
+)
+
+type MerchantRechargeProject struct {
+	ID              int64     `gorm:"column:id;type:bigint(20);primary_key;AUTO_INCREMENT" json:"id"`
+	MerchantOpenID  string    `gorm:"column:merchant_open_id;type:varchar(255);NOT NULL" json:"merchant_open_id"` // open_id
+	ProjectQuantity int       `gorm:"column:project_quantity;type:int(11)" json:"project_quantity"`               // 产品数量
+	ProjectName     string    `gorm:"column:project_name;type:varchar(100)" json:"project_name"`                  // 产品名
+	CreateBy        int64     `gorm:"column:create_by;type:bigint(20)" json:"create_by"`                          // 创建者
+	UpdateBy        int64     `gorm:"column:update_by;type:bigint(20)" json:"update_by"`                          // 更新者
+	CreatedAt       time.Time `gorm:"column:created_at;type:datetime(3)" json:"created_at"`                       // 创建时间
+	UpdatedAt       time.Time `gorm:"column:updated_at;type:datetime(3)" json:"updated_at"`                       // 最后更新时间
+	DeletedAt       time.Time `gorm:"column:deleted_at;type:datetime(3)" json:"deleted_at"`                       // 删除时间
+}
+
+func (m *MerchantRechargeProject) TableName() string {
+	return "merchant_recharge_project"
+}
+
+func (u *MerchantRechargeProject) Create() (MerchantRechargeProject, error) {
+	var doc MerchantRechargeProject
+	var err error
+
+	doc = *u
+	err = orm.ShMysql.Table(u.TableName()).Create(&doc).Error
+	if err != nil {
+		return doc, err
+	}
+
+	return doc, nil
+}
+
+func (m *MerchantRechargeProject) DelMerchantRecharge() error {
+
+	if err := orm.ShMysql.Table(m.TableName()).Model(&m).Where("id = ? ", m.ID).Updates(
+		map[string]interface{}{
+			"deleted_at": time.Now()}).Error; err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func (m *MerchantRechargeProject) GetMerchantRechargeProjectListByOpenId(pageSize int, pageIndex int) ([]MerchantRechargeProject, int, error) {
+	var doc []MerchantRechargeProject
+
+	table := orm.ShMysql.Table(m.TableName())
+
+	table = table.Where("merchant_open_id = ?  ", m.MerchantOpenID)
+	var count int
+	if err := table.Select("*").Order("id desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Error; err != nil {
+		return nil, 0, err
+	}
+	table.Count(&count)
+	return doc, count, nil
+}
+
+//func (m *MerchantRechargeProject) GetMerchantRechargeProjectByOpenId()  {
+//
+//}
+
+func (m *MerchantRechargeProject) GetMerchantRechargeProjectById() (MerchantRechargeProject, error) {
+	var doc MerchantRechargeProject
+
+	table := orm.ShMysql.Table(m.TableName())
+	table = table.Where("id = ?  ", m.ID)
+
+	if err := table.Select("*").First(&doc).Error; err != nil {
+		return doc, err
+	}
+
+	return doc, nil
+
+}