|
|
@ -26,75 +26,42 @@ func init() { |
|
|
|
|
|
|
|
// 根据优惠券id查看拥有优惠券的用户
|
|
|
|
func (s *sCouponUsers) GetCouponUsersByCondition(ctx context.Context, couponId, jwcode int, name string, pageNo, pageSize int) (users []couponusers.GetCouponUsersRes, err error) { |
|
|
|
//没有条件查询时,分页
|
|
|
|
if jwcode == 0 && name == "" { |
|
|
|
/*查询所有数据*/ |
|
|
|
//在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搜索用户信息失败") |
|
|
|
} |
|
|
|
db := dao.CouponUsers.Ctx(ctx) |
|
|
|
|
|
|
|
//基于量表JOIN查询
|
|
|
|
db = db.As("cu").InnerJoin("member_info mi", "cu.jwcode = mi.jwcode"). |
|
|
|
Where("cu.coupon_id = ?", couponId) |
|
|
|
|
|
|
|
//如果jwcode条件存在
|
|
|
|
if jwcode != 0 { |
|
|
|
db = db.Where("cu.jwcode = ?", jwcode) |
|
|
|
} |
|
|
|
/*查询所有数据*/ |
|
|
|
|
|
|
|
return users, err |
|
|
|
} else { //有条件查询时,不在分页,全查后筛选
|
|
|
|
//如果name条件存在
|
|
|
|
if name != "" { |
|
|
|
db = db.Where("mi.name like ?", "%"+name+"%") |
|
|
|
} |
|
|
|
|
|
|
|
/*查询所有数据*/ |
|
|
|
//在coupon_users中查询出对应的jwcode
|
|
|
|
err = dao.CouponUsers.Ctx(ctx).Fields("jwcode"). |
|
|
|
Where("coupon_id = ", couponId).Scan(&users) |
|
|
|
//查询总数
|
|
|
|
total, err := db.Count() |
|
|
|
if err != nil { |
|
|
|
return nil, errors.New("根据卡券id搜索jwcode失败") |
|
|
|
return nil, errors.New("查询总数失败") |
|
|
|
} |
|
|
|
//根据jwcode查询用户信息
|
|
|
|
for i, userInfo := range users { |
|
|
|
err = dao.MemberInfo.Ctx(ctx).Fields("jwcode", "name", "deptName", "shopName"). |
|
|
|
Where("jwcode = ?", userInfo.Jwcode).Scan(&users[i]) |
|
|
|
|
|
|
|
//查询数据(分页)
|
|
|
|
err = db.Fields("mi.jwcode, mi.name, mi.deptName, mi.shopName"). |
|
|
|
Page(pageNo, pageSize).Scan(&users) |
|
|
|
if err != nil { |
|
|
|
return nil, errors.New("根据jwcode搜索用户信息失败") |
|
|
|
return nil, errors.New("查询数据失败") |
|
|
|
} |
|
|
|
} |
|
|
|
/*查询所有数据*/ |
|
|
|
|
|
|
|
//条件查询
|
|
|
|
if jwcode != 0 && name == "" { |
|
|
|
var result []couponusers.GetCouponUsersRes |
|
|
|
for _, user := range users { |
|
|
|
if user.Jwcode == jwcode { |
|
|
|
result = append(result, user) |
|
|
|
} |
|
|
|
} |
|
|
|
return result, err |
|
|
|
} else if jwcode == 0 && name != "" { |
|
|
|
var result []couponusers.GetCouponUsersRes |
|
|
|
for _, user := range users { |
|
|
|
if strings.Contains(user.Name, name) { |
|
|
|
result = append(result, user) |
|
|
|
} |
|
|
|
} |
|
|
|
return result, err |
|
|
|
} else if jwcode != 0 && name != "" { |
|
|
|
var result []couponusers.GetCouponUsersRes |
|
|
|
for _, user := range users { |
|
|
|
if user.Jwcode == jwcode && strings.Contains(user.Name, name) { |
|
|
|
result = append(result, user) |
|
|
|
} |
|
|
|
} |
|
|
|
return result, err |
|
|
|
//设置总数
|
|
|
|
for i := range users { |
|
|
|
users[i].Total = total |
|
|
|
} |
|
|
|
|
|
|
|
return users, err |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 根据jwcode,优惠券id删除用户
|
|
|
|
func (s *sCouponUsers) DeleteCouponUserByJwcode(ctx context.Context, couponId, jwcode int) (result sql.Result, err error) { |
|
|
|