Documentation ¶
Overview ¶
*
- Copyright 2015 @ 56x.net.
- name : api_manager
- author : jarryliu
- date : 2016-05-27 13:23
- description :
- history :
*
- Copyright 2015 @ 56x.net.
- name : member_conf
- author : jarryliu
- date : -- :
- description :
- history :
*
- Copyright 2015 @ 56x.net.
- name : kv_manager
- author : jarryliu
- date : 2015-07-26 22:06
- description :
- history :
*
- Copyright 2015 @ 56x.net.
- name : member_manager.go
- author : jarryliu
- date : -- :
- description :
- history :
*
- Copyright 2015 @ 56x.net.
- name : profilemanager.go
- author : jarryliu
- date : 2016-05-26 21:19
- description :
- history :
Index ¶
- Constants
- Variables
- type Account
- type ApiInfo
- type BalanceLog
- type BuyerGroup
- type ComplexMerchant
- type EnterpriseInfo
- type IAccount
- type IApiManager
- type IConfManager
- type IKvManager
- type ILevelManager
- type IMerchant
- type IMerchantManager
- type IMerchantRepo
- type IProfileManager
- type ISaleManager
- type MchBuyerGroupSetting
- type MchDayChart
- type MchSignUp
- type MemberLevel
- type Merchant
- type SaleConf
- type TradeConf
Constants ¶
View Source
const ( KindAccountCharge = 1 KindAccountSettleOrder = 2 KindAccountPresent = 3 KindAccountTakePayment = 4 KindAccountTransferToMember = 5 // KindMachTakeOutToBankCard 商户提现 KindMachTakeOutToBankCard = 100 // KindMachTakOutRefund 商户提现失败返还给会员 KindMachTakOutRefund = 101 )
View Source
const ( TFlagNormal = 1 << iota // 免费 TFlagFree // 关毕交易权限 TFlagNoPerm )
View Source
const ( // 普通订单 TKNormalOrder = 1 // 批发订单 TKWholesaleOrder = 2 // 交易订单 TKTradeOrder = 3 )
View Source
const (
KeyMssTplIdOfProfileComplete string = "mss_profile_complete_mail_tpl"
)
Variables ¶
View Source
var ( ErrMerchantDisabled = domain.NewError( "err_merchant_disabled", "商户已被停用") ErrEnabledFxSales = domain.NewError( "err_enabled_fx_sales", "系统当前不允许启用分销") ErrMerchantExpires = domain.NewError( "err_merchant_expires", "商户已过期") ErrMissingMerchantUser = domain.NewError( "err_missing_merchant_user", "未设置商户用户") ErrBindAnotherMerchant = domain.NewError( "err_bind_another_merchant", "会员已绑定其他商户") ErrMemberBindExists = domain.NewError( "err_member_bind_exist", "当前已绑定该会员") ErrMerchantUserExists = domain.NewError( "err_merchant_user_exists", "商户已存在") ErrNoSuchMerchant = domain.NewError( "no_such_partner", "商户不存在") ErrNoSuchShop = domain.NewError( "no_such_shop", "门店不存在") ErrMerchantNotMatch = domain.NewError( "not_match", "商户不匹配") ErrSalesPercent = domain.NewError( "err_sales_percent", "销售比例错误") ErrAmount = domain.NewError( "err_mch_amount", "金额不正确") ErrNoMoreAmount = domain.NewError( "err_mch_no_more_amount", "余额不足") ErrNoSuchSignUpInfo = domain.NewError( "err_no_such_sign_up_info", "商户申请信息不存在") ErrRequireRejectRemark = domain.NewError( "err_mch_require_remark", "请填写退回的原因") ErrMissingCompanyName = domain.NewError( "err_mch_missing_company_name", "请填写公司名称") ErrMissingMerchantName = domain.NewError( "err_mch_missing_merchant_name", "请填写商户名称") ErrMissingCompanyNo = domain.NewError( "err_mch_missing_company_no", "请填写营业执照编号") ErrMissingAddress = domain.NewError( "err_mch_missing_address", "请填写详细地址") ErrMissingPersonName = domain.NewError( "err_mch_missing_person_name", "请填写法人姓名") ErrMissingPhone = domain.NewError( "err_mch_missing_phone", "请填写联系电话") ErrMissingPersonId = domain.NewError( "err_mch_missing_person_id", "请填写法人身份证") ErrPersonCardId = domain.NewError( "err_mch_missing_person_card_id", "法人身份证号码不正确") ErrMissingCompanyImage = domain.NewError( "err_mch_missing_company_image", "请上传营业执照复印件") ErrMissingPersonImage = domain.NewError( "err_mch_missing_person_image", "请上传法人身份证复印件") )
View Source
var ( // 检测KeyValue,如非法则返回错误,不持久化 KeyValueChecker func(map[string]string) error )
todo: 存储设置项的名字, 存储到文件中
Functions ¶
This section is empty.
Types ¶
type Account ¶
type Account struct { // 商户编号 MchId int64 `db:"mch_id" pk:"yes"` // 余额 Balance int64 `db:"balance"` // 冻结金额 FreezeAmount int64 `db:"freeze_amount"` // 待入账金额 AwaitAmount int64 `db:"await_amount"` // 平台赠送金额 PresentAmount int64 `db:"present_amount"` // 累计销售总额 SalesAmount int64 `db:"sales_amount"` // 累计退款金额 RefundAmount int64 `db:"refund_amount"` // 已提取金额 WithdrawAmount int64 `db:"take_amount"` // 线下销售金额 OfflineSales int64 `db:"offline_sales"` // 更新时间 UpdateTime int64 `db:"update_time"` }
商户账户表
type ApiInfo ¶
type ApiInfo struct { // 商户编号 MerchantId int `db:"mch_id" pk:"yes" auto:"no"` // 商户接口编号(10位数字) ApiId string `db:"api_id"` // 密钥 ApiSecret string `db:"api_secret"` // IP白名单 WhiteList string `db:"white_list"` // 是否启用,0:停用,1启用 Enabled int `db:"enabled"` }
商户接口信息
type BalanceLog ¶
type BalanceLog struct { // 编号 Id int32 `db:"id" pk:"yes" auto:"yes"` // 商户编号 MchId int64 `db:"mch_id"` // 日志类型 Kind int `db:"kind"` // 标题 Title string `db:"title"` // 外部订单号 OuterNo string `db:"outer_no"` // 金额 Amount int64 `db:"amount"` // 手续费 CsnAmount int64 `db:"csn_amount"` // 状态 State int `db:"state"` // 创建时间 CreateTime int64 `db:"create_time"` // 更新时间 UpdateTime int64 `db:"update_time"` }
商户余额日志
type BuyerGroup ¶
type BuyerGroup struct { //编号 GroupId int64 //分组别名 Name string // 是否启用零售 EnableRetail bool // 是否启用批发 EnableWholesale bool // 批发返点周期 RebatePeriod int }
全局客户分组
type ComplexMerchant ¶
type ComplexMerchant struct { Id int32 // 关联的会员编号,作为结算账户 MemberId int64 // 用户 Usr string // 密码 Pwd string // 商户名称 Name string // 是否自营 SelfSales int32 // 商户等级 Level int32 // 标志 Logo string // 公司名称 CompanyName string // 省 Province int32 // 市 City int32 // 区 District int32 // 是否启用 Enabled int32 // 过期时间 ExpiresTime int64 // 注册时间 JoinTime int64 // 更新时间 UpdateTime int64 // 登录时间 LoginTime int64 // 最后登录时间 LastLoginTime int64 }
商户
type EnterpriseInfo ¶
type EnterpriseInfo struct { // 编号 ID int32 `db:"id" pk:"yes" auto:"yes"` // 商户编号 MchId int64 `db:"mch_id"` // 公司名称 CompanyName string `db:"company_name"` // 公司营业执照编号 CompanyNo string `db:"company_no"` // 法人 PersonName string `db:"person_name"` // 法人身份证编号 PersonIdNo string `db:"person_id"` // 身份证验证图片(人捧身份证照相) PersonImage string `db:"person_image"` // 公司电话 Tel string `db:"tel"` // 省 Province int32 `db:"province"` // 市 City int32 `db:"city"` // 区 District int32 `db:"district"` // 省+市+区字符串表示 Location string `db:"location"` // 公司地址 Address string `db:"address"` // 营业执照图片 CompanyImage string `db:"company_image"` // 授权书 AuthDoc string `db:"auth_doc"` //是否已审核 Reviewed int32 `db:"review_state"` // 审核时间 ReviewTime int64 `db:"review_time"` // 审核备注 ReviewRemark string `db:"review_remark"` //更新时间 UpdateTime int64 `db:"update_time"` }
企业信息
type IAccount ¶
type IAccount interface { // GetDomainId 获取领域对象编号 GetDomainId() int64 // GetValue 获取账户值 GetValue() *Account // Save 保存 Save() error // GetBalanceLog 根据编号获取余额变动信息 GetBalanceLog(id int32) *BalanceLog // GetBalanceLogByOuterNo 根据号码获取余额变动信息 GetBalanceLogByOuterNo(outerNo string) *BalanceLog // SaveBalanceLog 保存余额变动信息 SaveBalanceLog(*BalanceLog) (int32, error) // SettleOrder 订单结账 SettleOrder(orderNo string, amount int, tradeFee int, refundAmount int, remark string) error // TakePayment 支出 TakePayment(outerNo string, amount int, csn int, remark string) error // TransferToMember todo: 以下需要重构或移除 // 转到会员账户 TransferToMember(amount int) error // TransferToMember1 商户积分转会员积分 TransferToMember1(amount float32) error // Present 赠送 Present(amount int, remark string) error // Charge 充值 Charge(kind int32, amount int, title, outerNo string, relateUser int64) error }
IAccount 账户
type IApiManager ¶
type IApiManager interface { // 获取API信息,管理员可停用。 GetApiInfo() ApiInfo // 保存API信息, 一般情况只有内部保存,其他为查看权限 SaveApiInfo(*ApiInfo) error // 启用API权限 EnableApiPerm() error // 禁用API权限 DisableApiPerm() error }
Api接口管理器
type IConfManager ¶
type IConfManager interface { // 获取销售配置 GetSaleConf() SaleConf // 保存销售配置 SaveSaleConf(*SaleConf) error // 使用系统的配置并保存 UseGlobSaleConf() error // 保存客户分组 SaveMchBuyerGroup(v *MchBuyerGroupSetting) (int32, error) // 获取商户的全部客户分组 SelectBuyerGroup() []*BuyerGroup // 根据分组编号获取分组设置 GetGroupByGroupId(groupId int32) *MchBuyerGroupSetting // 获取所有的交易设置 GetAllTradeConf_() []*TradeConf // 根据交易类型获取交易设置 GetTradeConf(tradeType int) *TradeConf // 保存交易设置 SaveTradeConf([]*TradeConf) error }
type IKvManager ¶
type ILevelManager ¶
type ILevelManager interface { // 获取等级设置 GetLevelSet() []*MemberLevel // 获取等级 GetLevelById(id int32) *MemberLevel // 根据等级值获取等级 GetLevelByValue(value int32) *MemberLevel // 获取下一个等级 GetNextLevel(value int32) *MemberLevel // 删除等级 DeleteLevel(id int32) error // 保存等级 SaveLevel(*MemberLevel) (int32, error) // 根据经验值获取等级值 GetLevelValueByExp(exp int32) int32 // 初始化默认等级 InitDefaultLevels() error }
todo: 先不撤销, 商户也应对应有等级
type IMerchant ¶
type IMerchant interface { // GetAggregateRootId 获取编号 GetAggregateRootId() int64 GetValue() Merchant // Complex 获取符合的商家信息 Complex() *ComplexMerchant // SetValue 设置值 SetValue(*Merchant) error // Stat 获取商户的状态,判断 过期时间、判断是否停用。 // 过期时间通常按: 试合作期,即1个月, 后面每年延长一次。或者会员付费开通。 Stat() error // SetEnabled 设置商户启用或停用 SetEnabled(enabled bool) error // SelfSales 是否自营 SelfSales() bool // Member 返回对应的会员编号 Member() int64 // Save 保存 Save() (int64, error) // GetMajorHost 获取商户的域名 GetMajorHost() string // BindMember 绑定会员号 BindMember(memberId int) error // Account 获取商户账户 Account() IAccount // EnableWholesale 启用批发 EnableWholesale() error // Wholesaler 获取批发商实例 Wholesaler() wholesaler.IWholesaler // UserManager 返回用户服务 UserManager() user.IUserManager // ConfManager 返回设置服务 ConfManager() IConfManager // SaleManager 销售服务 SaleManager() ISaleManager // LevelManager 获取会员等级服务 LevelManager() ILevelManager // KvManager 获取键值管理器 KvManager() IKvManager // ProfileManager 企业资料服务 ProfileManager() IProfileManager // ApiManager API服务 ApiManager() IApiManager // ShopManager 商店服务 ShopManager() shop.IShopManager // MemberKvManager 获取会员键值管理器 MemberKvManager() IKvManager }
IMerchant 商户接口 todo: 实现商户等级,商户的品牌
type IMerchantManager ¶
type IMerchantManager interface { // CreateSignUpToken 创建会员申请商户密钥 CreateSignUpToken(memberId int64) string // GetMemberFromSignUpToken 根据商户申请密钥获取会员编号 GetMemberFromSignUpToken(token string) int64 // CommitSignUpInfo 提交商户注册信息 CommitSignUpInfo(*MchSignUp) (int32, error) // ReviewMchSignUp 审核商户注册信息 ReviewMchSignUp(id int32, pass bool, remark string) error // GetSignUpInfo 获取商户申请信息 GetSignUpInfo(id int32) *MchSignUp // GetSignUpInfoByMemberId 获取会员申请的商户信息 GetSignUpInfoByMemberId(memberId int64) *MchSignUp // GetMerchantByMemberId 获取会员关联的商户 GetMerchantByMemberId(memberId int64) IMerchant // RemoveSignUp 删除会员的商户申请资料 RemoveSignUp(memberId int64) error }
type IMerchantRepo ¶
type IMerchantRepo interface { // 获取商户管理器 GetManager() IMerchantManager CreateMerchant(*Merchant) IMerchant // 创建会员申请商户密钥 CreateSignUpToken(memberId int64) string // 根据商户申请密钥获取会员编号 GetMemberFromSignUpToken(token string) int64 // 获取商户的编号 GetMerchantsId() []int32 // 获取商户 GetMerchant(id int) IMerchant // 根据登录用户名获取商户 GetMerchantByLoginUser(user string) IMerchant // 获取合作商主要的域名主机 GetMerchantMajorHost(mchId int) string // 保存 SaveMerchant(*Merchant) (int, error) // 获取账户 GetAccount(mchId int) *Account // 获取销售配置 GetMerchantSaleConf(mchId int64) *SaleConf // 保存销售配置 SaveMerchantSaleConf(v *SaleConf) error // 保存商户账户信息 UpdateAccount(v *Account) error // 保存API信息 SaveApiInfo(d *ApiInfo) error // 获取API信息 GetApiInfo(mchId int) *ApiInfo // 根据API编号获取商户编号 GetMerchantIdByApiId(apiId string) int64 // 获取键值 GetKeyValue(mchId int, indent string, k string) string // 设置键值 SaveKeyValue(mchId int, indent string, k, v string, updateTime int64) error // 获取多个键值 GetKeyMap(mchId int, indent string, k []string) map[string]string // 检查是否包含值的键数量,keyStr为键模糊匹配 CheckKvContainValue(mchId int, indent string, value string, keyStr string) int // 根据关键字获取字典 GetKeyMapByChar(mchId int, indent string, keyword string) map[string]string //获取等级 GetLevel(mchId, levelValue int32) *MemberLevel // 获取下一个等级 GetNextLevel(mchId, levelVal int32) *MemberLevel // 获取会员等级 GetMemberLevels(mchId int64) []*MemberLevel // 删除会员等级 DeleteMemberLevel(mchId, id int32) error // 保存等级 SaveMemberLevel(mchId int64, v *MemberLevel) (int32, error) // Get MchEnterpriseInfo GetMchEnterpriseInfo(mchId int) *EnterpriseInfo // Save MchEnterpriseInfo SaveMchEnterpriseInfo(v *EnterpriseInfo) (int, error) // Get MchBuyerGroupSetting GetMchBuyerGroupByGroupId(mchId, groupId int32) *MchBuyerGroupSetting // Select MchBuyerGroupSetting SelectMchBuyerGroup(mchId int64) []*MchBuyerGroupSetting // Save MchBuyerGroupSetting SaveMchBuyerGroup(v *MchBuyerGroupSetting) (int, error) // auto generate by gof // Get MchTradeConf GetMchTradeConf(primary interface{}) *TradeConf // GetBy MchTradeConf GetMchTradeConfBy(where string, v ...interface{}) *TradeConf // Select MchTradeConf SelectMchTradeConf(where string, v ...interface{}) []*TradeConf // Save MchTradeConf SaveMchTradeConf(v *TradeConf) (int, error) // Delete MchTradeConf DeleteMchTradeConf(primary interface{}) error // 验证商户用户名是否存在 CheckUserExists(user string, id int) bool // CheckMemberBind 验证会员是否绑定商户 CheckMemberBind(memberId int64, mchId int64) bool }
type IProfileManager ¶
type IProfileManager interface { // 获取企业信息 GetEnterpriseInfo() *EnterpriseInfo // 保存企业信息 SaveEnterpriseInfo(v *EnterpriseInfo) (int32, error) // 标记企业为审核通过 ReviewEnterpriseInfo(reviewed bool, message string) error // 修改密码 ModifyPassword(NewPassword, oldPwd string) error }
基本资料管理器
type ISaleManager ¶
type ISaleManager interface { // 计算交易费用,返回交易费及错误 MathTradeFee(tradeType int, amount int) (int, error) }
商户销售服务
type MchBuyerGroupSetting ¶
type MchBuyerGroupSetting struct { //编号 ID int32 `db:"id" pk:"yes" auto:"yes"` //商家编号 MerchantId int64 `db:"mch_id"` //客户分组编号 GroupId int64 `db:"group_id"` //分组别名 Alias string `db:"alias"` // 是否启用零售 EnableRetail int32 `db:"enable_retail"` // 是否启用批发 EnableWholesale int32 `db:"enable_wholesale"` // 批发返点周期 RebatePeriod int32 `db:"rebate_period"` }
商户客户分组设置
type MchDayChart ¶
type MchDayChart struct { // 编号 Id int32 `db:"id" pk:"yes" auto:"yes"` // 商户编号 MchId int64 `db:"mch_id"` // 新增订单数量 OrderNumber int `db:"order_number"` // 订单额 OrderAmount float32 `db:"order_amount"` // 购物会员数 BuyerNumber int `db:"buyer_number"` // 支付单数量 PaidNumber int `db:"paid_number"` // 支付总金额 PaidAmount float32 `db:"paid_amount"` // 完成订单数 CompleteOrders int `db:"complete_orders"` // 入帐金额 InAmount float32 `db:"in_amount"` // 线下订单数量 OfflineOrders int `db:"offline_orders"` // 线下订单金额 OfflineAmount float32 `db:"offline_amount"` // 日期 Date int64 `db:"date"` // 日期字符串 DateStr string `db:"date_str"` // 更新时间 UpdateTime int64 `db:"update_time"` }
商户每日报表
type MchSignUp ¶
type MchSignUp struct { Id int32 `db:"id" pk:"yes" auth:"yes"` // 申请单号 SignNo string `db:"sign_no"` // 会员编号 MemberId int64 `db:"member_id"` // 用户名 User string `db:"user"` // 密码 Pwd string `db:"pwd"` // 盐 Salt string `db:"salt"` // 商户名称号 MchName string `db:"mch_name"` // 省 Province int32 `db:"province"` // 市 City int32 `db:"city"` // 区 District int32 `db:"district"` // 详细地址 Address string `db:"address"` // 店铺店铺 ShopName string `db:"shop_name"` // 公司名称 CompanyName string `db:"company_name"` // 营业执照编号 CompanyNo string `db:"company_no"` // 法人 PersonName string `db:"person_name"` // 法人身份证 PersonId string `db:"person_id"` // 法人身份证 PersonImage string `db:"person_image"` // 联系电话 Phone string `db:"phone"` // 营业执照图片 CompanyImage string `db:"company_image"` // 委托书 AuthDoc string `db:"auth_doc"` // 备注 Remark string `db:"remark"` // 提交时间 SubmitTime int64 `db:"submit_time"` // 是否通过 Reviewed int32 `db:"review_state"` // 更新时间 UpdateTime int64 `db:"update_time"` }
MchSignUp 商户申请信息
type MemberLevel ¶
type Merchant ¶
type Merchant struct { Id int64 `db:"id" pk:"yes" auto:"yes"` // 会员编号 MemberId int64 `db:"member_id"` // 登录用户 LoginUser string `db:"login_user"` // 登录密码 LoginPwd string `db:"login_pwd"` // 加密盐 Salt string `db:"salt"` // 名称 Name string `db:"name"` // 公司名称 CompanyName string `db:"company_name"` // 是否自营 SelfSales int16 `db:"self_sales"` // 商户等级 Level int `db:"level"` // 标志 Logo string `db:"logo"` // 省 Province int `db:"province"` // 市 City int `db:"city"` // 区 District int `db:"district"` // 标志 Flag int `db:"flag"` // 是否启用 Enabled int `db:"enabled"` // 创建时间 CreateTime int64 `db:"create_time"` // 过期时间 ExpiresTime int64 `db:"expires_time"` // 更新时间 UpdateTime int64 `db:"update_time"` // 登录时间 LoginTime int64 `db:"login_time"` // 最后登录时间 LastLoginTime int64 `db:"last_login_time"` }
商户
type SaleConf ¶
type SaleConf struct { // 合作商编号 MerchantId int64 `db:"mch_id" auto:"no" pk:"yes"` // 是否启用分销模式 FxSalesEnabled int `db:"fx_sales"` // 返现比例,0则不返现 CashBackPercent float32 `db:"cb_percent"` // 一级比例 CashBackTg1Percent float32 `db:"cb_tg1_percent"` // 二级比例 CashBackTg2Percent float32 `db:"cb_tg2_percent"` // 会员比例 CashBackMemberPercent float32 `db:"cb_member_percent"` // 自动设置订单 AutoSetupOrder int `db:"oa_open"` // 订单超时分钟数 OrderTimeOutMinute int `db:"oa_timeout_minute"` // 订单自动确认时间 OrderConfirmAfterMinute int `db:"oa_confirm_minute"` // 订单超时自动收货 OrderTimeOutReceiveHour int `db:"oa_receive_hour"` }
销售设置为商户填写,同时可以恢复默认
type TradeConf ¶
type TradeConf struct { // 编号 ID int64 `db:"id" pk:"yes" auto:"yes"` // 商户编号 MchId int64 `db:"mch_id"` // 交易类型 TradeType int `db:"trade_type"` // 交易方案,根据方案来自动调整比例 PlanId int64 `db:"plan_id"` // 交易标志 Flag int `db:"flag"` // 交易手续费依据,1:未设置 2:按金额 3:按比例 AmountBasis int `db:"amount_basis"` // 交易费,按单笔收取 TradeFee int `db:"trade_fee"` // 交易手续费比例 TradeRate int `db:"trade_rate"` // 更新时间 UpdateTime int64 `db:"update_time"` }
商户交易设置
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
* * Copyright 2015 @ 56x.net.
|
* * Copyright 2015 @ 56x.net. |
* * Copyright 2014 @ 56x.net.
|
* * Copyright 2014 @ 56x.net. |
Click to show internal directories.
Click to hide internal directories.