diff --git a/api/v1/couponusers/couponUsers.go b/api/v1/couponusers/couponUsers.go index 0009957..8b2823f 100644 --- a/api/v1/couponusers/couponUsers.go +++ b/api/v1/couponusers/couponUsers.go @@ -1,11 +1,11 @@ package couponusers type GetCouponUsersReq struct { - CouponId int `json:"couponId" dc:"卡券id"` - Jwcode int `json:"jwcode" dc:"查询条件中的精网号"` + CouponId int `json:"couponId" v:"required#卡券id不能为空" dc:"卡券id"` + Jwcode int `json:"jwcode" dc:"查询条件中的精网号"` Name string `json:"name" dc:"查询条件中的名字"` - PageNo int `json:"pageNo" dc:"页码"` - PageSize int `json:"pageSize" dc:"每页数量"` + PageNo int `json:"pageNo" v:"required#分页信息不能为空" dc:"页码"` + PageSize int `json:"pageSize" v:"required#分页信息不能为空" dc:"每页数量"` } type GetCouponUsersRes struct { @@ -16,21 +16,21 @@ type GetCouponUsersRes struct { } type DelCouponUserByJwcodeReq struct { - CouponId int `json:"couponId" dc:"卡券id"` - Jwcode int `json:"jwcode" dc:"精网号"` + CouponId int `json:"couponId" v:"required#卡券id不能为空" dc:"卡券id"` + Jwcode int `json:"jwcode" v:"required#精网号不能为空" dc:"精网号"` } type InsertCouponUserReq struct { - CouponId int `json:"couponId" dc:"卡券id"` - Jwcodes []int `json:"jwcodes" dc:"精网号"` + CouponId int `json:"couponId" v:"required#卡券id不能为空" dc:"卡券id"` + Jwcodes []int `json:"jwcodes" v:"required#精网号不能为空" dc:"精网号"` } type IssueCouponUserReq struct { - CouponId int `json:"couponId" dc:"卡券id"` + CouponId int `json:"couponId" v:"required#卡券id不能为空" dc:"卡券id"` } type IsEligibleUserReq struct { - CouponIds []int `json:"couponIds" dc:"能抽出的卡券id"` + CouponIds []int `json:"couponIds" v:"required#用于检测是否已抽取,不能为空" dc:"能抽出的卡券id"` } type AddRecordReq struct { diff --git a/internal/controller/couponusers/couponUsers.go b/internal/controller/couponusers/couponUsers.go index d98c6c8..3ad5ff1 100644 --- a/internal/controller/couponusers/couponUsers.go +++ b/internal/controller/couponusers/couponUsers.go @@ -178,13 +178,6 @@ func (c *CouponUsers) IsEligibleUser(r *ghttp.Request) { func (c *CouponUsers) IssueCouponUser(r *ghttp.Request) { // 解析请求参数 - //没有token,用于测试 - //var req *couponusers.InsertCouponUserReq - //if err := r.Parse(&req); err != nil { - // r.Response.WriteJsonExit(dto.Error(err.Error())) - //} - - /*正式*/ var req *couponusers.IssueCouponUserReq if err := r.Parse(&req); err != nil { r.Response.WriteJsonExit(dto.Error(err.Error())) @@ -199,13 +192,8 @@ func (c *CouponUsers) IssueCouponUser(r *ghttp.Request) { if err != nil { r.Response.WriteJsonExit(dto.Error(err.Error())) } - /*正式*/ - //没有token,用于测试 - //err := service.CouponUsers().IssueCouponToUser(r.Context(), req.Jwcodes[0], req.CouponId) - /*正式*/ err = service.CouponUsers().IssueCouponToUser(r.Context(), jwcode, req.CouponId) - /*正式*/ //错误处理 if err != nil { r.Response.WriteJsonExit(dto.Error(err.Error())) diff --git a/internal/logic/couponusers/couponUsers.go b/internal/logic/couponusers/couponUsers.go index 95401ee..a766cb0 100644 --- a/internal/logic/couponusers/couponUsers.go +++ b/internal/logic/couponusers/couponUsers.go @@ -8,7 +8,6 @@ import ( "database/sql" "encoding/json" "errors" - "fmt" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gtime" "github.com/xuri/excelize/v2" @@ -27,83 +26,42 @@ func init() { func (s *sCouponUsers) GetCouponUsersByCondition(ctx context.Context, couponId, jwcode int, name string, pageNo, pageSize int) (users []couponusers.GetCouponUsersRes, err error) { //没有条件查询时,分页 if jwcode == 0 && name == "" { - //从redis中获取当前分页数据 - value, _ := g.Redis().Get(ctx, fmt.Sprintf("%d %d-%d CouponUsers", couponId, pageNo, pageSize)) - //redis中有数据 - if value.String() != "" { - err = json.Unmarshal(value.Bytes(), &users) - if err != nil { - return nil, errors.New("redis中数据解析失败") - } - return users, err - } else { //redis中没有数据 - //没有从redis中获取成功,从数据库中查询,并存储到redis中 - /*查询所有数据*/ - //在coupon_users中查询出对应的jwcode - err = dao.CouponUsers.Ctx(ctx).Fields("jwcode"). - Where("coupon_id = ", couponId).Page(pageNo, pageSize).Scan(&users) - if err != nil { - return nil, errors.New("根据卡券id搜索jwcode失败") - } - //根据jwcode查询用户信息 - for i, userInfo := range users { - err = dao.MemberInfo.Ctx(ctx).Fields("jwcode", "name", "deptName", "shopName"). - Where("jwcode = ?", userInfo.Jwcode).Scan(&users[i]) - if err != nil { - return nil, errors.New("根据jwcode搜索用户信息失败") - } - } - /*查询所有数据*/ - - //将数据存入redis - UsersMarshal, _ := json.Marshal(users) - _, err = g.Redis().Set(ctx, fmt.Sprintf("%d %d-%d CouponUsers", couponId, pageNo, pageSize), UsersMarshal) + /*查询所有数据*/ + //在coupon_users中查询出对应的jwcode + err = dao.CouponUsers.Ctx(ctx).Fields("jwcode"). + Where("coupon_id = ", couponId).Page(pageNo, pageSize).Scan(&users) + if err != nil { + return nil, errors.New("根据卡券id搜索jwcode失败") + } + //根据jwcode查询用户信息 + for i, userInfo := range users { + err = dao.MemberInfo.Ctx(ctx).Fields("jwcode", "name", "deptName", "shopName"). + Where("jwcode = ?", userInfo.Jwcode).Scan(&users[i]) if err != nil { - return nil, errors.New("将数据存入redis失败") + return nil, errors.New("根据jwcode搜索用户信息失败") } - } + /*查询所有数据*/ return users, err + } else { //有条件查询时,不在分页,全查后筛选 - //有条件查询时,不在分页,全查后筛选 - } else { - - //从redis中获取所有数据但暂时不返回, 用于条件查询 - value, _ := g.Redis().Get(ctx, fmt.Sprintf("%d CouponUsers", couponId)) - //redis中有数据 - if value.String() != "" { - err = json.Unmarshal(value.Bytes(), &users) - if err != nil { - return nil, errors.New("redis中数据解析失败") - } - } else { //redis中没有数据 - //没有从redis中获取成功,从数据库中查询,并存储到redis中 - /*查询所有数据*/ - //在coupon_users中查询出对应的jwcode - err = dao.CouponUsers.Ctx(ctx).Fields("jwcode"). - Where("coupon_id = ", couponId).Scan(&users) - if err != nil { - return nil, errors.New("根据卡券id搜索jwcode失败") - } - //根据jwcode查询用户信息 - for i, userInfo := range users { - err = dao.MemberInfo.Ctx(ctx).Fields("jwcode", "name", "deptName", "shopName"). - Where("jwcode = ?", userInfo.Jwcode).Scan(&users[i]) - if err != nil { - return nil, errors.New("根据jwcode搜索用户信息失败") - } - } - /*查询所有数据*/ - - //将数据存入redis - UsersMarshal, _ := json.Marshal(users) - _, err = g.Redis().Set(ctx, fmt.Sprintf("%d CouponUsers", couponId), UsersMarshal) + /*查询所有数据*/ + //在coupon_users中查询出对应的jwcode + err = dao.CouponUsers.Ctx(ctx).Fields("jwcode"). + Where("coupon_id = ", couponId).Scan(&users) + if err != nil { + return nil, errors.New("根据卡券id搜索jwcode失败") + } + //根据jwcode查询用户信息 + for i, userInfo := range users { + err = dao.MemberInfo.Ctx(ctx).Fields("jwcode", "name", "deptName", "shopName"). + Where("jwcode = ?", userInfo.Jwcode).Scan(&users[i]) if err != nil { - return nil, errors.New("将数据存入redis失败") + return nil, errors.New("根据jwcode搜索用户信息失败") } - } + /*查询所有数据*/ //条件查询 if jwcode != 0 && name == "" { @@ -148,16 +106,6 @@ func (s *sCouponUsers) DeleteCouponUserByJwcode(ctx context.Context, couponId, j if err != nil { return nil, errors.New("删除用户失败") } - - //删除redis中的数据 - _, err = g.Redis().Del(ctx, fmt.Sprintf("%d CouponUsers", couponId)) - if err != nil { - return nil, errors.New("删除redis中的数据失败") - } - keys, err := g.Redis().Keys(ctx, fmt.Sprintf("%d *-* CouponUsers", couponId)) - if len(keys) > 0 { - _, err = g.Redis().Del(ctx, keys...) - } return result, err } @@ -181,9 +129,7 @@ func (s *sCouponUsers) InsertJwcodeByExcel(file multipart.File) (jwcodes []int, if len(GetSheetMap) == 0 { return nil, errors.New("没有工作表") } - // 读取第一个工作表 - //sheetName := GetSheetMap[1] - //rows, err := f.GetRows(f.GetSheetName(1)) + rows, err := f.GetRows("Sheet1") if err != nil { return nil, err @@ -252,16 +198,6 @@ func (s *sCouponUsers) InsertCouponUsersByJwcodes(ctx context.Context, jwcodes [ } } - //删除redis中的数据 - _, err = g.Redis().Del(ctx, fmt.Sprintf("%d CouponUsers", couponId)) - if err != nil { - return 0, errors.New("删除redis中的数据失败") - } - keys, err := g.Redis().Keys(ctx, fmt.Sprintf("%d *-* CouponUsers", couponId)) - if len(keys) > 0 { - _, err = g.Redis().Del(ctx, keys...) - } - return num, err //返回受影响的行数,即新增的条数 } @@ -289,8 +225,6 @@ func (s *sCouponUsers) InsertJwcodesToRedisByExcel(file multipart.File) (err err } // 读取第一个工作表 - //sheetName := GetSheetMap[1] - //rows, err := f.GetRows(f.GetSheetName(1)) rows, err := f.GetRows("Sheet1") if err != nil { return err @@ -413,17 +347,6 @@ func (s *sCouponUsers) IssueCouponToUser(ctx context.Context, jwcode, couponId i if err != nil { return errors.New("插入数据库失败") } - - //删除redis中的数据 - _, err = g.Redis().Del(ctx, fmt.Sprintf("%d CouponUsers", couponId)) - if err != nil { - return errors.New("删除redis中的数据失败") - } - keys, err := g.Redis().Keys(ctx, fmt.Sprintf("%d *-* CouponUsers", couponId)) - if len(keys) > 0 { - _, err = g.Redis().Del(ctx, keys...) - } - return err } } @@ -432,6 +355,7 @@ func (s *sCouponUsers) IssueCouponToUser(ctx context.Context, jwcode, couponId i } +/*未编写*/ // 导出拥有卡券的用户列表 func (s *sCouponUsers) ExportCouponUsers() { diff --git a/internal/service/couponusers.go b/internal/service/couponusers.go index e5efbe6..02a20bc 100644 --- a/internal/service/couponusers.go +++ b/internal/service/couponusers.go @@ -28,6 +28,7 @@ type ( IsEligibleUser(ctx context.Context, jwcode int, couponIds []int) (img string, err error) // 给单个用户发放卡券 IssueCouponToUser(ctx context.Context, jwcode int, couponId int) (err error) + /*未编写*/ // 导出拥有卡券的用户列表 ExportCouponUsers() // 添加用户选择武器记录