UserSubscription

package
v5.1.37 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 16, 2024 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	//OpenSub 是否启动订阅
	OpenSub = false
)

Functions

func AddUserSubAny

func AddUserSubAny(orgID int64, userID int64, addSec int64) (err error)

AddUserSubAny 为任意一个会员叠加时间 将从平台或组织下,抽取任意一个配置来给用户叠加会员 该设计为过度设计,v2会员系统将没有会员配置得定义,所以考虑到此设计将不对多个配置进行处理,只识别一个配置即可

func CheckHaveAnySub

func CheckHaveAnySub(userID int64) (b bool)

CheckHaveAnySub 用户是否具有任意会员?

func CheckSub

func CheckSub(args *ArgsCheckSub) (b bool)

CheckSub 检查目标人的订阅状态

func ClearSubByConfig

func ClearSubByConfig(args *ArgsClearSubByConfig) (err error)

ClearSubByConfig 删除所有指定的订阅

func ClearSubByUser

func ClearSubByUser(args *ArgsClearSubByUser) (err error)

ClearSubByUser 删除目标人的订阅

func CreateSubOrder

func CreateSubOrder(args *ArgsCreateSubOrder) (data ServiceOrderWaitFields.FieldsWait, errCode string, err error)

CreateSubOrder 创建新订阅请求 用户专用请求

func DeleteConfig

func DeleteConfig(args *ArgsDeleteConfig) (err error)

DeleteConfig 删除订阅配置

func GetConfigMoreMap

func GetConfigMoreMap(args *ArgsGetConfigMore) (data map[int64]string, err error)

GetConfigMoreMap 获取一组配置名称组

func GetConfigName

func GetConfigName(id int64) (name string)

GetConfigName 获取配置名称

func Init

func Init()

func SetSub

func SetSub(args *ArgsSetSub) (err error)

SetSub 设置订阅信息

func UpdateConfig

func UpdateConfig(args *ArgsUpdateConfig) (err error)

UpdateConfig 修改订阅配置

func UseSub

func UseSub(args *ArgsUseSub) (err error)

UseSub 使用目标订阅

Types

type ArgsCheckSub

type ArgsCheckSub struct {
	//配置ID
	ConfigID int64 `db:"config_id" json:"configID" check:"id"`
	//用户ID
	UserID int64 `db:"user_id" json:"userID" check:"id"`
}

ArgsCheckSub 检查目标人的订阅状态参数

type ArgsClearSubByConfig

type ArgsClearSubByConfig struct {
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//配置ID
	ConfigID int64 `db:"config_id" json:"configID" check:"id"`
}

ArgsClearSubByConfig 删除所有指定的订阅参数

type ArgsClearSubByUser

type ArgsClearSubByUser struct {
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//用户ID
	UserID int64 `db:"user_id" json:"userID" check:"id"`
	//配置ID
	ConfigID int64 `db:"config_id" json:"configID" check:"id" empty:"true"`
}

ArgsClearSubByUser 删除目标人的订阅参数

type ArgsCreateConfig

type ArgsCreateConfig struct {
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//标识码
	Mark string `db:"mark" json:"mark" check:"mark" empty:"true"`
	//时间类型
	// 0 小时 1 天 2 周 3 月 4 年
	TimeType int `db:"time_type" json:"timeType" check:"intThan0" empty:"true"`
	//时间长度
	TimeN int `db:"time_n" json:"timeN" check:"intThan0" empty:"true"`
	//开通价格
	Currency int   `db:"currency" json:"currency" check:"intThan0" empty:"true"`
	Price    int64 `db:"price" json:"price" check:"price"`
	//折扣前费用,用于展示
	PriceOld int64 `db:"price_old" json:"priceOld" check:"price"`
	//标题
	Title string `db:"title" json:"title" check:"title" min:"1" max:"300"`
	//描述
	Des string `db:"des" json:"des" check:"des" min:"1" max:"3000" empty:"true"`
	//封面
	CoverFileID int64 `db:"cover_file_id" json:"coverFileID" check:"id" empty:"true"`
	//描述文件组
	DesFiles pq.Int64Array `db:"des_files" json:"desFiles" check:"ids" empty:"true"`
	//关联的用户组
	// 只有为平台配置时,该数据才可修改病会生效
	UserGroups pq.Int64Array `db:"user_groups" json:"userGroups" check:"ids" empty:"true"`
	//默认减免的费用比例、费用金额
	ExemptionPrice int64 `db:"exemption_price" json:"exemptionPrice" check:"price" empty:"true"`
	// 1-100百分比
	ExemptionDiscount int64 `db:"exemption_discount" json:"exemptionDiscount"`
	//费用低于多少时,将失效
	// 依赖于订单的总金额判断
	ExemptionMinPrice int64 `db:"exemption_min_price" json:"exemptionMinPrice" check:"price" empty:"true"`
	//限制设计
	// 允许设置多个条件,如1天限制一次的同时、30天能使用10次
	Limits FieldsLimits `db:"limits" json:"limits"`
	//周期价格
	ExemptionTime FieldsExemptionTimes `db:"exemption_time" json:"exemptionTime"`
	//样式ID
	// 关联到样式库后,本记录的图片和文本将交给样式库布局实现
	StyleID int64 `db:"style_id" json:"styleID" check:"id" empty:"true"`
	//附加参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}

ArgsCreateConfig 创建新的订阅配置参数

type ArgsCreateSubOrder

type ArgsCreateSubOrder struct {
	//组织ID
	// 留空则表明为平台的用户留下的内容
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//用户ID
	UserID int64 `db:"user_id" json:"userID" check:"id"`
	//创建来源
	// 0 商户平台下单、1 用户APP下单、2 微信小程序下单、3 支付宝小程序下单、4 电话系统下单、5 线下柜台下单、6 辅助设备下单、7 其他渠道
	CreateFrom int `db:"create_from" json:"createFrom"`
	//收取货物地址
	AddressFrom CoreSQLAddress.FieldsAddress `db:"address_from" json:"addressFrom"`
	//送货地址
	AddressTo CoreSQLAddress.FieldsAddress `db:"address_to" json:"addressTo"`
	//备注信息
	Des string `db:"des" json:"des" check:"des" min:"1" max:"600" empty:"true"`
	//订阅配置ID
	SubConfigID int64 `db:"sub_config_id" json:"subConfigID" check:"id"`
	//购买的单位
	Unit int64 `db:"unit" json:"unit" check:"int64Than0"`
	//推荐人手机号
	ReferrerNationCode string `db:"referrer_nation_code" json:"referrerNationCode" check:"nationCode" empty:"true"`
	ReferrerPhone      string `json:"referrerPhone" check:"phone" empty:"true"`
	//扩展参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
	//强制约定价格
	UnitPrice int64 `db:"unit_price" json:"unitPrice"`
}

ArgsCreateSubOrder 创建新的订阅请求参数

type ArgsDeleteConfig

type ArgsDeleteConfig struct {
	//ID
	ID int64 `db:"id" json:"id" check:"id"`
	//组织ID
	// 可选
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
}

ArgsDeleteConfig 删除订阅配置参数

type ArgsGetAnalysisArea

type ArgsGetAnalysisArea struct {
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
}

ArgsGetAnalysisArea 获取在续订阅分布情况参数

type ArgsGetAnalysisUse

type ArgsGetAnalysisUse struct {
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//时间段
	TimeBetween CoreSQLTime.DataCoreTime `json:"timeBetween"`
}

ArgsGetAnalysisUse 统计使用情况参数

type ArgsGetConfigByID

type ArgsGetConfigByID struct {
	//ID
	ID int64 `db:"id" json:"id" check:"id"`
	//组织ID
	// 可选
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
}

ArgsGetConfigByID 获取指定配置ID参数

type ArgsGetConfigList

type ArgsGetConfigList struct {
	//分页
	Pages CoreSQLPages.ArgsDataList `json:"pages"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//是否被删除
	IsRemove bool `db:"is_remove" json:"isRemove" check:"bool" empty:"true"`
	//搜索
	Search string `json:"search" check:"search" empty:"true"`
}

ArgsGetConfigList 获取配置列表参数

type ArgsGetConfigMore

type ArgsGetConfigMore struct {
	//ID列
	IDs pq.Int64Array `json:"ids"`
	//是否包含删除数据
	HaveRemove bool `json:"haveRemove"`
}

ArgsGetConfigMore 获取一组配置参数

type ArgsGetLogList

type ArgsGetLogList struct {
	//分页
	Pages CoreSQLPages.ArgsDataList `json:"pages"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//配置ID
	ConfigID int64 `db:"config_id" json:"configID" check:"id" empty:"true"`
	//用户ID
	UserID int64 `db:"user_id" json:"userID" check:"id" empty:"true"`
}

ArgsGetLogList 获取日志列表参数

type ArgsGetSub

type ArgsGetSub struct {
	//配置ID
	ConfigID int64 `db:"config_id" json:"configID" check:"id"`
	//用户ID
	UserID int64 `db:"user_id" json:"userID" check:"id"`
}

ArgsGetSub 获取指定人的订阅信息参数

type ArgsGetSubList

type ArgsGetSubList struct {
	//分页
	Pages CoreSQLPages.ArgsDataList `json:"pages"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//配置ID
	ConfigID int64 `db:"config_id" json:"configID" check:"id" empty:"true"`
	//用户ID
	UserID int64 `db:"user_id" json:"userID" check:"id" empty:"true"`
	//是否到期
	NeedIsExpire bool `json:"needIsExpire" check:"bool" empty:"true"`
	IsExpire     bool `json:"isExpire" check:"bool" empty:"true"`
	//是否被删除
	IsRemove bool `db:"is_remove" json:"isRemove" check:"bool" empty:"true"`
	//搜索
	Search string `json:"search" check:"search" empty:"true"`
}

ArgsGetSubList 获取订阅列表参数

type ArgsSetSub

type ArgsSetSub struct {
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//配置ID
	ConfigID int64 `db:"config_id" json:"configID" check:"id"`
	//用户ID
	UserID int64 `db:"user_id" json:"userID" check:"id"`
	//新的到期时间
	ExpireAt time.Time `db:"expire_at" json:"expireAt" check:"isoTime"`
	//是否为继续订阅
	// 否则将覆盖过期时间
	HaveExpire bool `db:"have_expire" json:"haveExpire" check:"bool"`
	//使用来源
	UseFrom     string `db:"use_from" json:"useFrom"`
	UseFromName string `db:"use_from_name" json:"useFromName"`
}

ArgsSetSub 设置订阅信息参数

type ArgsUpdateConfig

type ArgsUpdateConfig struct {
	//ID
	ID int64 `db:"id" json:"id" check:"id"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//标识码
	Mark string `db:"mark" json:"mark" check:"mark" empty:"true"`
	//时间类型
	// 0 小时 1 天 2 周 3 月 4 年
	TimeType int `db:"time_type" json:"timeType" check:"intThan0" empty:"true"`
	//时间长度
	TimeN int `db:"time_n" json:"timeN" check:"intThan0" empty:"true"`
	//开通价格
	Currency int   `db:"currency" json:"currency" check:"intThan0" empty:"true"`
	Price    int64 `db:"price" json:"price" check:"price"`
	//折扣前费用,用于展示
	PriceOld int64 `db:"price_old" json:"priceOld" check:"price"`
	//标题
	Title string `db:"title" json:"title" check:"title" min:"1" max:"300"`
	//描述
	Des string `db:"des" json:"des" check:"des" min:"1" max:"3000" empty:"true"`
	//封面
	CoverFileID int64 `db:"cover_file_id" json:"coverFileID" check:"id" empty:"true"`
	//描述文件组
	DesFiles pq.Int64Array `db:"des_files" json:"desFiles" check:"ids" empty:"true"`
	//关联的用户组
	// 只有为平台配置时,该数据才可修改病会生效
	UserGroups pq.Int64Array `db:"user_groups" json:"userGroups" check:"ids" empty:"true"`
	//默认减免的费用比例、费用金额
	ExemptionPrice int64 `db:"exemption_price" json:"exemptionPrice" check:"price" empty:"true"`
	// 1-100% 百分比
	ExemptionDiscount int64 `db:"exemption_discount" json:"exemptionDiscount"`
	//费用低于多少时,将失效
	// 依赖于订单的总金额判断
	ExemptionMinPrice int64 `db:"exemption_min_price" json:"exemptionMinPrice" check:"price" empty:"true"`
	//限制设计
	// 允许设置多个条件,如1天限制一次的同时、30天能使用10次
	Limits FieldsLimits `db:"limits" json:"limits"`
	//周期价格
	ExemptionTime FieldsExemptionTimes `db:"exemption_time" json:"exemptionTime"`
	//样式ID
	// 关联到样式库后,本记录的图片和文本将交给样式库布局实现
	StyleID int64 `db:"style_id" json:"styleID" check:"id" empty:"true"`
	//附加参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}

ArgsUpdateConfig 修改订阅配置参数

type ArgsUseSub

type ArgsUseSub struct {
	//配置ID
	ConfigID int64 `db:"config_id" json:"configID" check:"id"`
	//用户ID
	UserID int64 `db:"user_id" json:"userID" check:"id"`
	//使用来源
	UseFrom     string `db:"use_from" json:"useFrom"`
	UseFromName string `db:"use_from_name" json:"useFromName"`
}

ArgsUseSub 使用目标订阅参数

type DataAnalysisArea

type DataAnalysisArea struct {
	//配置ID
	ConfigID int64 `db:"config_id" json:"configID"`
	//配置名称
	ConfigName string `db:"config_name" json:"configName"`
	//数量
	Count int64 `db:"count" json:"count"`
}

type DataAnalysisUse

type DataAnalysisUse struct {
	//配置ID
	ConfigID int64 `db:"config_id" json:"configID"`
	//配置名称
	ConfigName string `db:"config_name" json:"configName"`
	//数量
	Count int64 `db:"count" json:"count"`
}

func GetAnalysisArea

func GetAnalysisArea(args *ArgsGetAnalysisArea) (dataList []DataAnalysisUse, err error)

GetAnalysisArea 获取在续订阅分布情况

func GetAnalysisUse

func GetAnalysisUse(args *ArgsGetAnalysisUse) (dataList []DataAnalysisUse, err error)

GetAnalysisUse 统计使用情况

type FieldsConfig

type FieldsConfig struct {
	//ID
	ID int64 `db:"id" json:"id"`
	//创建时间
	CreateAt time.Time `db:"create_at" json:"createAt"`
	//更新时间
	UpdateAt time.Time `db:"update_at" json:"updateAt"`
	//删除时间
	DeleteAt time.Time `db:"delete_at" json:"deleteAt"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID"`
	//标识码
	Mark string `db:"mark" json:"mark"`
	//时间类型
	// 0 小时 1 天 2 周 3 月 4 年
	TimeType int `db:"time_type" json:"timeType"`
	//时间长度
	TimeN int `db:"time_n" json:"timeN"`
	//开通价格
	Currency int   `db:"currency" json:"currency"`
	Price    int64 `db:"price" json:"price"`
	//折扣前费用,用于展示
	PriceOld int64 `db:"price_old" json:"priceOld"`
	//标题
	Title string `db:"title" json:"title"`
	//描述
	Des string `db:"des" json:"des"`
	//封面
	CoverFileID int64 `db:"cover_file_id" json:"coverFileID"`
	//描述文件组
	DesFiles pq.Int64Array `db:"des_files" json:"desFiles"`
	//关联的用户组
	// 只有为平台配置时,该数据才可修改并会生效
	UserGroups pq.Int64Array `db:"user_groups" json:"userGroups"`
	//默认减免的费用比例、费用金额
	ExemptionPrice int64 `db:"exemption_price" json:"exemptionPrice"`
	// 1-100% 百分比
	ExemptionDiscount int64 `db:"exemption_discount" json:"exemptionDiscount"`
	//费用低于多少时,将失效
	// 依赖于订单的总金额判断
	ExemptionMinPrice int64 `db:"exemption_min_price" json:"exemptionMinPrice"`
	//限制设计
	// 允许设置多个条件,如1天限制一次的同时、30天能使用10次
	Limits FieldsLimits `db:"limits" json:"limits"`
	//周期价格
	ExemptionTime FieldsExemptionTimes `db:"exemption_time" json:"exemptionTime"`
	//样式ID
	// 关联到样式库后,本记录的图片和文本将交给样式库布局实现
	StyleID int64 `db:"style_id" json:"styleID"`
	//附加参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}

func CreateConfig

func CreateConfig(args *ArgsCreateConfig) (data FieldsConfig, err error)

CreateConfig 创建新的订阅配置

func GetConfigByID

func GetConfigByID(args *ArgsGetConfigByID) (data FieldsConfig, err error)

GetConfigByID 获取指定配置ID

func GetConfigList

func GetConfigList(args *ArgsGetConfigList) (dataList []FieldsConfig, dataCount int64, err error)

GetConfigList 获取配置列表

func GetConfigMore

func GetConfigMore(args *ArgsGetConfigMore) (dataList []FieldsConfig, err error)

GetConfigMore 获取一组配置

func GetConfigOnlyOne

func GetConfigOnlyOne() (data FieldsConfig)

GetConfigOnlyOne 获取全局唯一一个会员配置

type FieldsExemptionTime

type FieldsExemptionTime struct {
	//时间长度
	TimeN int `db:"time_n" json:"timeN" check:"intThan0"`
	//价格
	Price int64 `db:"price" json:"price" check:"price"`
}

func (*FieldsExemptionTime) Scan

func (t *FieldsExemptionTime) Scan(value interface{}) error

func (FieldsExemptionTime) Value

func (t FieldsExemptionTime) Value() (driver.Value, error)

Value sql底层处理器

type FieldsExemptionTimes

type FieldsExemptionTimes []FieldsExemptionTime

FieldsExemptionTimes 限制措施

func (*FieldsExemptionTimes) Scan

func (t *FieldsExemptionTimes) Scan(value interface{}) error

func (FieldsExemptionTimes) Value

func (t FieldsExemptionTimes) Value() (driver.Value, error)

Value sql底层处理器

type FieldsLimit

type FieldsLimit struct {
	//时间类型
	// 0 小时 1 天 2 周 3 月 4 年
	TimeType int `db:"time_type" json:"timeType" check:"intThan0"`
	//时间长度
	TimeN int `db:"time_n" json:"timeN" check:"intThan0"`
	//限制的次数
	Count int `db:"count" json:"count" check:"intThan0"`
}

func (*FieldsLimit) Scan

func (t *FieldsLimit) Scan(value interface{}) error

func (FieldsLimit) Value

func (t FieldsLimit) Value() (driver.Value, error)

Value sql底层处理器

type FieldsLimits

type FieldsLimits []FieldsLimit

FieldsLimits 限制措施

func (*FieldsLimits) Scan

func (t *FieldsLimits) Scan(value interface{}) error

func (FieldsLimits) Value

func (t FieldsLimits) Value() (driver.Value, error)

Value sql底层处理器

type FieldsLog

type FieldsLog struct {
	//ID
	ID int64 `db:"id" json:"id"`
	//创建时间
	CreateAt time.Time `db:"create_at" json:"createAt"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID"`
	//配置ID
	ConfigID int64 `db:"config_id" json:"configID"`
	//用户ID
	UserID int64 `db:"user_id" json:"userID"`
	//使用来源
	UseFrom string `db:"use_from" json:"useFrom"`
	//使用日志
	Des string `db:"des" json:"des"`
}

FieldsLog 使用日志

func GetLogList

func GetLogList(args *ArgsGetLogList) (dataList []FieldsLog, dataCount int64, err error)

GetLogList 获取日志列表

type FieldsSub

type FieldsSub struct {
	//ID
	ID int64 `db:"id" json:"id"`
	//创建时间
	CreateAt time.Time `db:"create_at" json:"createAt"`
	//更新时间
	UpdateAt time.Time `db:"update_at" json:"updateAt"`
	//删除时间
	DeleteAt time.Time `db:"delete_at" json:"deleteAt"`
	//过期时间
	ExpireAt time.Time `db:"expire_at" json:"expireAt"`
	//组织ID
	// 留空则表明为平台的用户留下的内容
	OrgID int64 `db:"org_id" json:"orgID"`
	//开通配置
	ConfigID int64 `db:"config_id" json:"configID"`
	//用户ID
	UserID int64 `db:"user_id" json:"userID"`
	//附加参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}

func GetSub

func GetSub(args *ArgsGetSub) (data FieldsSub, err error)

GetSub 获取指定人的订阅信息

func GetSubList

func GetSubList(args *ArgsGetSubList) (dataList []FieldsSub, dataCount int64, err error)

GetSubList 获取订阅列表

func GetSubNoErr

func GetSubNoErr(userID int64, configID int64) (data FieldsSub)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL