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
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
|
|
}
|