You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.5 KiB
Go

package example
import (
"pychr/global"
"pychr/model/common/request"
"pychr/model/example"
"pychr/model/system"
systemService "pychr/service/system"
)
type CustomerService struct{}
// @author: [piexlmax](https://github.com/piexlmax)
// @function: CreateExaCustomer
// @description: 创建客户
// @param: e model.ExaCustomer
// @return: err error
func (exa *CustomerService) CreateExaCustomer(e example.ExaCustomer) (err error) {
err = global.GVA_DB.Create(&e).Error
return err
}
// @author: [piexlmax](https://github.com/piexlmax)
// @function: DeleteFileChunk
// @description: 删除客户
// @param: e model.ExaCustomer
// @return: err error
func (exa *CustomerService) DeleteExaCustomer(e example.ExaCustomer) (err error) {
err = global.GVA_DB.Delete(&e).Error
return err
}
// @author: [piexlmax](https://github.com/piexlmax)
// @function: UpdateExaCustomer
// @description: 更新客户
// @param: e *model.ExaCustomer
// @return: err error
func (exa *CustomerService) UpdateExaCustomer(e *example.ExaCustomer) (err error) {
err = global.GVA_DB.Save(e).Error
return err
}
// @author: [piexlmax](https://github.com/piexlmax)
// @function: GetExaCustomer
// @description: 获取客户信息
// @param: id uint64
// @return: customer model.ExaCustomer, err error
func (exa *CustomerService) GetExaCustomer(id uint64) (customer example.ExaCustomer, err error) {
err = global.GVA_DB.Where("id = ?", id).First(&customer).Error
return
}
// @author: [piexlmax](https://github.com/piexlmax)
// @function: GetCustomerInfoList
// @description: 分页获取客户列表
// @param: sysUserAuthorityID string, info request.PageInfo
// @return: list interface{}, total int64, err error
func (exa *CustomerService) GetCustomerInfoList(sysUserAuthorityID uint64, info request.PageInfo) (list interface{}, total int64, err error) {
limit := info.PageSize
offset := info.PageSize * (info.Page - 1)
db := global.GVA_DB.Model(&example.ExaCustomer{})
var a system.SysAuthority
a.AuthorityId = sysUserAuthorityID
auth, err := systemService.AuthorityServiceApp.GetAuthorityInfo(a)
if err != nil {
return
}
var dataId []uint64
for _, v := range auth.DataAuthorityId {
dataId = append(dataId, v.AuthorityId)
}
var CustomerList []example.ExaCustomer
err = db.Where("sys_user_authority_id in ?", dataId).Count(&total).Error
if err != nil {
return CustomerList, total, err
} else {
err = db.Limit(limit).Offset(offset).Preload("SysUser").Where("sys_user_authority_id in ?", dataId).Find(&CustomerList).Error
}
return CustomerList, total, err
}