Browse Source

12.31日,删除打印日志,导出excel

dev
lijikun 6 months ago
parent
commit
36286da4ea
  1. 4
      internal/cmd/cmd.go
  2. 5
      internal/controller/couponusers/couponUsers.go
  3. 54
      internal/logic/couponusers/couponUsers.go
  4. 4
      internal/service/couponusers.go

4
internal/cmd/cmd.go

@ -1,7 +1,6 @@
package cmd package cmd
import ( import (
"CouponBackendGo/internal/controller/coupon"
"CouponBackendGo/internal/controller/couponusers" "CouponBackendGo/internal/controller/couponusers"
"CouponBackendGo/internal/logic/middleware" "CouponBackendGo/internal/logic/middleware"
"context" "context"
@ -25,7 +24,8 @@ var (
group.POST("/insert-coupon-users-by-excel", couponusers.NewCouponUsers().InsertCouponUserByExcel) // 通过excel导入jwcode并发放卡券 group.POST("/insert-coupon-users-by-excel", couponusers.NewCouponUsers().InsertCouponUserByExcel) // 通过excel导入jwcode并发放卡券
//group.POST("/insert-coupon-user", couponusers.NewCouponUsers().InsertCouponUser) //给用户发放卡券 //group.POST("/insert-coupon-user", couponusers.NewCouponUsers().InsertCouponUser) //给用户发放卡券
group.POST("/insert-coupon-users-by-str", couponusers.NewCouponUsers().InsertCouponUserByJwcodeStr) //通过jwcodes字符串导入jwcode并发放卡券 group.POST("/insert-coupon-users-by-str", couponusers.NewCouponUsers().InsertCouponUserByJwcodeStr) //通过jwcodes字符串导入jwcode并发放卡券
//近期使用
group.POST("export-coupon-users", couponusers.NewCouponUsers().ExportCouponUsers) //导出拥有卡券的用户列表
// 近期使用
group.POST("/insert-users-to-redis", couponusers.NewCouponUsers().InsertJwcodesToRedisByExcel) //导入满足条件的用户jwcode到redis group.POST("/insert-users-to-redis", couponusers.NewCouponUsers().InsertJwcodesToRedisByExcel) //导入满足条件的用户jwcode到redis
group.POST("/is-eligible-user", couponusers.NewCouponUsers().IsEligibleUser) //判断用户是否满足领取条件 group.POST("/is-eligible-user", couponusers.NewCouponUsers().IsEligibleUser) //判断用户是否满足领取条件
group.POST("/issue-coupon-to-users", couponusers.NewCouponUsers().IssueCouponUser) //给单个用户发放卡券 group.POST("/issue-coupon-to-users", couponusers.NewCouponUsers().IssueCouponUser) //给单个用户发放卡券

5
internal/controller/couponusers/couponUsers.go

@ -165,7 +165,6 @@ func (c *CouponUsers) IsEligibleUser(r *ghttp.Request) {
if err := r.Parse(&req); err != nil { if err := r.Parse(&req); err != nil {
r.Response.WriteJsonExit(dto.Error(err.Error())) r.Response.WriteJsonExit(dto.Error(err.Error()))
} }
fmt.Println(req.CouponIds)
/*解析token,获取jwcode*/ /*解析token,获取jwcode*/
token := r.Header.Get("token") token := r.Header.Get("token")
@ -251,9 +250,11 @@ func (c *CouponUsers) AddRecord(r *ghttp.Request) {
// 导出拥有卡券的用户 // 导出拥有卡券的用户
func (c *CouponUsers) ExportCouponUsers(r *ghttp.Request) { func (c *CouponUsers) ExportCouponUsers(r *ghttp.Request) {
var req *couponusers.GetCouponUsersReq var req *couponusers.GetCouponUsersReq
// 解析请求参数
if err := r.Parse(&req); err != nil { if err := r.Parse(&req); err != nil {
r.Response.WriteJsonExit(dto.Error(err.Error())) r.Response.WriteJsonExit(dto.Error(err.Error()))
} }
//查询数据,创建excel文件,设置表头,写入数据,设置文件名,保存到缓冲区并返回,设置响应头,指定内容类型为excel文件,指定文件名为fileName,将buffer中的内容写入到响应
//查询数据,创建excel文件,设置表头,写入数据,设置文件名,保存到缓冲区并返回,设置响应头,指定内容类型为excel文件,指定文件名为fileName,将buffer中的内容写入响应
service.CouponUsers().ExportCouponUsers(r, req.CouponId, req.Jwcode, req.Name, req.PageNo, req.PageSize)
} }

54
internal/logic/couponusers/couponUsers.go

@ -3,16 +3,19 @@ package couponusers
import ( import (
"CouponBackendGo/api/v1/couponusers" "CouponBackendGo/api/v1/couponusers"
"CouponBackendGo/internal/dao" "CouponBackendGo/internal/dao"
"CouponBackendGo/internal/model/dto"
"CouponBackendGo/internal/service" "CouponBackendGo/internal/service"
"context" "context"
"database/sql" "database/sql"
"errors" "errors"
"github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
"github.com/gogf/gf/v2/os/gtime" "github.com/gogf/gf/v2/os/gtime"
"github.com/xuri/excelize/v2" "github.com/xuri/excelize/v2"
"mime/multipart" "mime/multipart"
"strconv" "strconv"
"strings" "strings"
"time"
) )
type sCouponUsers struct{} type sCouponUsers struct{}
@ -386,7 +389,56 @@ func (s *sCouponUsers) IssueCouponToUser(ctx context.Context, jwcode, couponId i
/*未编写*/ /*未编写*/
// 导出拥有卡券的用户列表 // 导出拥有卡券的用户列表
func (s *sCouponUsers) ExportCouponUsers() {
func (s *sCouponUsers) ExportCouponUsers(r *ghttp.Request, couponId, jwcode int, name string, pageNo, pageSize int) {
//调用查询
users, err := s.GetCouponUsersByCondition(r.Context(), couponId, jwcode, name, pageNo, pageSize)
if err != nil {
r.Response.WriteJsonExit(dto.Error("查询失败:" + err.Error()))
return
}
if len(users) == 0 {
r.Response.WriteJsonExit(dto.Error("查询结果为空"))
return
}
//创建 Excel文件
excelFile := excelize.NewFile() //默认会创建一个Sheet1
sheetName := "Sheet1"
//设置表头
headers := []string{"序号", "精网号", "姓名", "部门", "门店"}
for i, header := range headers {
col := string('A' + i) //将索引转换为 Excel列名
excelFile.SetCellValue(sheetName, col+"1", header)
}
/*写入数据*/
rowIndex := 2 //从第二行开始写入数据
for _, user := range users {
excelFile.SetCellValue(sheetName, "A"+strconv.Itoa(rowIndex), rowIndex-1) //序号
excelFile.SetCellValue(sheetName, "B"+strconv.Itoa(rowIndex), user.Jwcode) //精网号
excelFile.SetCellValue(sheetName, "C"+strconv.Itoa(rowIndex), user.Name) //姓名
excelFile.SetCellValue(sheetName, "D"+strconv.Itoa(rowIndex), user.DeptName) //部门
excelFile.SetCellValue(sheetName, "E"+strconv.Itoa(rowIndex), user.ShopName) //门店
rowIndex++
}
/*写入数据*/
//设置文件名
fileName := "Users_" + time.Now().Format("20060102150405") + ".xlsx"
//保存到缓冲区并返回
buffer, err := excelFile.WriteToBuffer()
if err != nil {
r.Response.WriteJsonExit(dto.Error("生成Excel文件失败:" + err.Error()))
return
}
// 设置响应头,指定内容类型为Excel文件
r.Response.Header().Set("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
// 设置响应头,指定文件名为fileName
r.Response.Header().Set("Content-Disposition", "attachment; filename="+fileName)
// 将buffer中的内容写入响应
r.Response.Write(buffer.Bytes())
} }

4
internal/service/couponusers.go

@ -10,6 +10,8 @@ import (
"context" "context"
"database/sql" "database/sql"
"mime/multipart" "mime/multipart"
"github.com/gogf/gf/v2/net/ghttp"
) )
type ( type (
@ -32,7 +34,7 @@ type (
IssueCouponToUser(ctx context.Context, jwcode int, couponId int) (err error) IssueCouponToUser(ctx context.Context, jwcode int, couponId int) (err error)
/*未编写*/ /*未编写*/
// 导出拥有卡券的用户列表 // 导出拥有卡券的用户列表
ExportCouponUsers()
ExportCouponUsers(r *ghttp.Request, couponId int, jwcode int, name string, pageNo int, pageSize int)
// 添加用户选择武器记录 // 添加用户选择武器记录
AddRecord(ctx context.Context, jwcode int, id int, name string) (err error) AddRecord(ctx context.Context, jwcode int, id int, name string) (err error)
} }

Loading…
Cancel
Save