123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package crm
- import (
- "hongze/fms_api/global"
- "hongze/fms_api/models/base"
- "time"
- )
- // Contract CRM系统合同
- type Contract struct {
- ContractId int `gorm:"primaryKey;column:contract_id"`
- ContractCode string `description:"合同编号,长度32位"`
- SellerId int `description:"所属销售id"`
- SellerName string `description:"所属销售名称"`
- ProductId int `description:"产品id,1:ficc;2:权益"`
- ContractBusinessType string `description:"合同业务类型,枚举值:'业务合同','代付合同'"`
- ContractType string `description:"合同类型,枚举值:'新签合同','续约合同','补充协议'"`
- Status string `description:"合同状态,枚举值:'待提交','待审批','已撤回','已审批','已驳回','已作废','已解约'"`
- StartDate time.Time `description:"合同开始日期"`
- EndDate time.Time `description:"合同结束日期"`
- OriginalPrice float64 `description:"合同原金额,优惠前的金额"`
- Price float64 `description:"实际金额,优惠后的金额"`
- PayRemark string `description:"付款方式说明,长度255位"`
- PayChannel string `description:"付款渠道,长度255位"`
- CompanyName string `description:"客户名称,甲方名称,长度32位"`
- CreditCode string `description:"社会统一信用代码,长度64位"`
- ProvinceId int `description:"省级id"`
- Province string `description:"省级名称,长度16位"`
- CityId int `description:"市级id"`
- City string `description:"市级名称,长度32位"`
- Address string `description:"详细地址"`
- Fax string `description:"传真,长度32位"`
- Phone string `description:"电话,长度32位"`
- Postcode string `description:"邮编,长度16位"`
- Remark string `description:"补充内容,长度255位"`
- SellerRemark string `description:"销售备注,长度255位"`
- ModifyContent string `description:"修改内容"`
- ApprovalRemark string `description:"审核备注"`
- FileUrl string `description:"合同文件地址"`
- CheckBackFileUrl string `description:"签回合同文件地址"`
- RescindFileUrl string `description:"解约合同文件地址"`
- TemplateId int `description:"模板id"`
- SourceId int `description:"来源合同id,默认是0;如果是通过其他合同复制过来的,那么就是原合同的id"`
- IsDelete int `description:"是否已经删除,0:未删除,1:已删除" json:"-"`
- ApproveTime time.Time `description:"审批时间"`
- InvalidTime time.Time `description:"作废时间"`
- CheckBackFileTime time.Time `description:"合同签回时间"`
- RescindTime time.Time `description:"解约时间"`
- ModifyTime time.Time `description:"合同最近一次修改时间"`
- CreateTime time.Time `description:"合同添加时间"`
- }
- func (c *Contract) PageList(page base.IPage, condition string, pars []interface{}) (count int64, results []*Contract, err error) {
- results = make([]*Contract, 0)
- query := global.MYSQL["report"].Model(c).
- Where("is_delete = 0").
- Where(condition, pars...)
- query.Count(&count)
- if len(page.GetOrderItemsString()) > 0 {
- query = query.Order(page.GetOrderItemsString())
- }
- err = query.Limit(int(page.GetPageSize())).Offset(int(page.Offset())).Find(&results).Error
- return
- }
- // ContractSearchListReq CRM系统合同-搜索列表请求体
- type ContractSearchListReq struct {
- Keyword string `json:"keyword" form:"keyword" binding:"omitempty" description:"关键词"`
- ProductId int `json:"product_id" form:"product_id" binding:"omitempty" description:"产品: 0-全部; 1-FICC; 2-权益"`
- base.PageReq
- }
- // ContractSearchListResp CRM系统合同-搜索列表响应体
- type ContractSearchListResp struct {
- ContractId int `json:"contract_id" description:"合同ID"`
- ContractCode string `json:"contract_code" description:"合同编号"`
- CompanyName string `json:"company_name" description:"客户名称"`
- PayCompanyName string `json:"Pay_company_name" description:"代付客户名称"`
- SellerId int `json:"seller_id" description:"销售ID"`
- SellerName string `json:"seller_name" description:"销售名称"`
- ContractTypeKey int `json:"contract_type_key" description:"FMS合同类型: 1-新签; 2-续约; 0-补充协议(暂无);"`
- ContractType string `json:"contract_type" description:"CRM合同类型: 新签合同; 续约合同; 补充协议;"`
- Price float64 `json:"price" description:"合同金额"`
- StartDate string `json:"start_date" description:"合同开始日期"`
- EndDate string `json:"end_date" description:"合同结束日期"`
- }
- // PayCompanyRelation 代付合同
- type PayCompanyRelation struct {
- ContractId int `description:"代付合同ID"`
- CompanyName string `description:"代付方名称"`
- PayOnBehalfContractId int `description:"实际使用方合同ID"`
- }
- // GetPayCompanyByContractIds 通过合同IDs获取代付客户信息
- func GetPayCompanyByContractIds(condition string, pars []interface{}) (results []*PayCompanyRelation, err error) {
- results = make([]*PayCompanyRelation, 0)
- query := global.MYSQL["report"].
- Table("contract as a").
- Select("a.contract_id, a.company_name, b.payment_on_behalf_contract_id").
- Joins("JOIN contract_relation b ON a.contract_id = b.contract_id").
- Where("a.is_delete = 0").
- Where(condition, pars...)
- err = query.Find(&results).Error
- return
- }
|