package couponusers import ( "CouponBackendGo/api/v1/couponusers" "CouponBackendGo/internal/model/dto" "CouponBackendGo/internal/service" "github.com/gogf/gf/v2/net/ghttp" "mime/multipart" ) type CouponUsers struct{} func NewCouponUsers() *CouponUsers { return &CouponUsers{} } func (c *CouponUsers) GetCouponUsers(r *ghttp.Request) { var req *couponusers.GetCouponUsersReq if err := r.Parse(&req); err != nil { r.Response.WriteJsonExit(dto.Error(err.Error())) } result, err := service.CouponUsers().GetCouponUsersByCondition(r.Context(), req.CouponId, req.Jwcode, req.Name) if err != nil { r.Response.WriteJsonExit(dto.Error(err.Error())) } if result == nil { r.Response.WriteJsonExit(dto.Error("没有符合条件的用户")) } r.Response.WriteJsonExit(dto.SuccessWithData(result)) } func (c *CouponUsers) DeleteCouponUserByJwcode(r *ghttp.Request) { var req *couponusers.DelCouponUserByJwcodeReq if err := r.Parse(&req); err != nil { r.Response.WriteJsonExit(dto.Error(err.Error())) } result, err := service.CouponUsers().DeleteCouponUserByJwcode(r.Context(), req.CouponId, req.Jwcode) if err != nil { r.Response.WriteJsonExit(dto.Error(err.Error())) } affected, err := result.RowsAffected() if affected == 0 { r.Response.WriteJsonExit(dto.Error("删除失败,删除了0条")) } r.Response.WriteJsonExit(dto.SuccessWithMsg("删除成功")) //r.Response.WriteJsonExit(dto.SuccessWithData(result)) } // 待测试 // 接受前端传来的excel表格,并解析,返回jwcode切片,可以有重复的,在插入时进行验证,如果有重复的,只插入一次 func (c *CouponUsers) InsertJwcodeByExcel(r *ghttp.Request) { // 从请求中获取文件 file, _, err := r.FormFile("excelFile") if err != nil { r.Response.WriteJsonExit(dto.Error(err.Error())) } // 关闭文件 defer func(file multipart.File) { err := file.Close() if err != nil { // 处理关闭文件时的错误 r.Response.WriteJsonExit(dto.Error("关闭文件失败")) } }(file) //参数校验,检查文件是否为空 if file == nil { r.Response.WriteJsonExit(dto.Error("文件为空")) } jwcodes, err := service.CouponUsers().InsertJwcodeByExcel(file) if err != nil { r.Response.WriteJsonExit(dto.Error(err.Error())) } r.Response.WriteJsonExit(dto.SuccessWithData(jwcodes)) }