2022-11-28 16:38:30 +08:00
|
|
|
package api
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"crm/models"
|
|
|
|
|
"crm/response"
|
|
|
|
|
"crm/service"
|
2023-01-24 20:03:35 +08:00
|
|
|
"log"
|
2022-11-28 16:38:30 +08:00
|
|
|
"strconv"
|
|
|
|
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type CustomerApi struct {
|
|
|
|
|
customerService *service.CustomerService
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewCustomerApi() *CustomerApi {
|
|
|
|
|
customerApi := CustomerApi{
|
|
|
|
|
customerService: &service.CustomerService{},
|
|
|
|
|
}
|
|
|
|
|
return &customerApi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 创建产品
|
|
|
|
|
func (c *CustomerApi) Create(context *gin.Context) {
|
|
|
|
|
var param models.CustomerCreateParam
|
|
|
|
|
uid, _ := strconv.Atoi(context.Request.Header.Get("uid"))
|
|
|
|
|
err := context.ShouldBind(¶m)
|
|
|
|
|
if uid <= 0 || err != nil {
|
|
|
|
|
response.Result(response.ErrCodeParamInvalid, nil, context)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
param.Creator = int64(uid)
|
|
|
|
|
errCode := c.customerService.Create(¶m)
|
|
|
|
|
response.Result(errCode, nil, context)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 更新产品
|
|
|
|
|
func (c *CustomerApi) Update(context *gin.Context) {
|
|
|
|
|
var param models.CustomerUpdateParam
|
|
|
|
|
if err := context.ShouldBind(¶m); err != nil {
|
|
|
|
|
response.Result(response.ErrCodeParamInvalid, nil, context)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
errCode := c.customerService.Update(¶m)
|
|
|
|
|
response.Result(errCode, nil, context)
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-24 20:03:35 +08:00
|
|
|
// 发送邮件给客户
|
|
|
|
|
func (c *CustomerApi) SendMail(context *gin.Context) {
|
|
|
|
|
var param models.CustomerSendMailParam
|
|
|
|
|
uid, _ := strconv.Atoi(context.Request.Header.Get("uid"))
|
|
|
|
|
err := context.ShouldBind(¶m)
|
|
|
|
|
if uid <= 0 || err != nil {
|
|
|
|
|
response.Result(response.ErrCodeParamInvalid, nil, context)
|
|
|
|
|
log.Println(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
param.Uid = int64(uid)
|
|
|
|
|
errCode := c.customerService.SendMail(¶m)
|
|
|
|
|
response.Result(errCode, nil, context)
|
|
|
|
|
}
|
|
|
|
|
|
2022-11-28 16:38:30 +08:00
|
|
|
// 删除客户
|
|
|
|
|
func (c *CustomerApi) Delete(context *gin.Context) {
|
|
|
|
|
var param models.CustomerDeleteParam
|
|
|
|
|
if err := context.ShouldBind(¶m); err != nil {
|
|
|
|
|
response.Result(response.ErrCodeParamInvalid, nil, context)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
errCode := c.customerService.Delete(¶m)
|
|
|
|
|
response.Result(errCode, nil, context)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 查询客户列表
|
2023-01-25 16:10:16 +08:00
|
|
|
func (c *CustomerApi) GetList(context *gin.Context) {
|
2022-11-28 16:38:30 +08:00
|
|
|
var param models.CustomerQueryParam
|
|
|
|
|
uid, _ := strconv.Atoi(context.Request.Header.Get("uid"))
|
|
|
|
|
err := context.ShouldBind(¶m)
|
|
|
|
|
if uid <= 0 || err != nil {
|
|
|
|
|
response.Result(response.ErrCodeParamInvalid, nil, context)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
param.Creator = int64(uid)
|
2023-01-25 16:10:16 +08:00
|
|
|
customerList, rows, errCode := c.customerService.GetList(¶m)
|
2022-11-28 16:38:30 +08:00
|
|
|
response.PageResult(errCode, customerList, rows, context)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 查询客户信息
|
2023-01-25 16:10:16 +08:00
|
|
|
func (c *CustomerApi) GetInfo(context *gin.Context) {
|
2022-11-28 16:38:30 +08:00
|
|
|
var param models.CustomerQueryParam
|
|
|
|
|
if err := context.ShouldBind(¶m); err != nil {
|
|
|
|
|
response.Result(response.ErrCodeParamInvalid, nil, context)
|
|
|
|
|
return
|
|
|
|
|
}
|
2023-01-25 16:10:16 +08:00
|
|
|
customerInfo, errCode := c.customerService.GetInfo(¶m)
|
2022-11-28 16:38:30 +08:00
|
|
|
response.Result(errCode, customerInfo, context)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 查询客户选项
|
2023-01-25 16:10:16 +08:00
|
|
|
func (c *CustomerApi) GetOption(context *gin.Context) {
|
2022-11-28 16:38:30 +08:00
|
|
|
uid, _ := strconv.Atoi(context.Request.Header.Get("uid"))
|
|
|
|
|
if uid <= 0 {
|
|
|
|
|
response.Result(response.ErrCodeParamInvalid, nil, context)
|
|
|
|
|
return
|
|
|
|
|
}
|
2023-01-25 16:10:16 +08:00
|
|
|
customerOption, errCode := c.customerService.GetOption(int64(uid))
|
2022-11-28 16:38:30 +08:00
|
|
|
response.Result(errCode, customerOption, context)
|
|
|
|
|
}
|
2022-12-27 19:18:58 +08:00
|
|
|
|
|
|
|
|
// 导出Excel文件
|
|
|
|
|
func (c *CustomerApi) Export(context *gin.Context) {
|
|
|
|
|
uid, _ := strconv.Atoi(context.Request.Header.Get("uid"))
|
|
|
|
|
if uid <= 0 {
|
|
|
|
|
response.Result(response.ErrCodeParamInvalid, nil, context)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
file, errCode := c.customerService.Export(int64(uid))
|
|
|
|
|
if len(file) >= 0 && errCode != 0 {
|
|
|
|
|
response.Result(errCode, nil, context)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
context.File(file)
|
|
|
|
|
}
|