|
@@ -0,0 +1,65 @@
|
|
|
+package Wx
|
|
|
+
|
|
|
+import (
|
|
|
+ "context"
|
|
|
+ "github.com/suyuan32/simple-admin-common/msg/errormsg"
|
|
|
+ "strings"
|
|
|
+ "wechat-api/ent"
|
|
|
+ "wechat-api/ent/predicate"
|
|
|
+ "wechat-api/ent/wx"
|
|
|
+ "wechat-api/internal/utils/dberrorhandler"
|
|
|
+
|
|
|
+ "wechat-api/internal/svc"
|
|
|
+ "wechat-api/internal/types"
|
|
|
+
|
|
|
+ "github.com/zeromicro/go-zero/core/logx"
|
|
|
+)
|
|
|
+
|
|
|
+type GetSelectWxListLogic struct {
|
|
|
+ logx.Logger
|
|
|
+ ctx context.Context
|
|
|
+ svcCtx *svc.ServiceContext
|
|
|
+}
|
|
|
+
|
|
|
+func NewGetSelectWxListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetSelectWxListLogic {
|
|
|
+ return &GetSelectWxListLogic{
|
|
|
+ Logger: logx.WithContext(ctx),
|
|
|
+ ctx: ctx,
|
|
|
+ svcCtx: svcCtx}
|
|
|
+}
|
|
|
+
|
|
|
+func (l *GetSelectWxListLogic) GetSelectWxList(req *types.WxSelectListReq) (resp *types.WxSelectListResp, err error) {
|
|
|
+ organizationId := l.ctx.Value("organizationId").(uint64)
|
|
|
+ isAdmin := l.ctx.Value("isAdmin").(bool)
|
|
|
+ var predicates []predicate.Wx
|
|
|
+ if !isAdmin {
|
|
|
+ predicates = append(predicates, wx.OrganizationIDEQ(organizationId))
|
|
|
+ } else {
|
|
|
+ if req.OrganizationId != nil {
|
|
|
+ predicates = append(predicates, wx.OrganizationIDEQ(*req.OrganizationId))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ data, err := l.svcCtx.DB.Wx.Query().Where(predicates...).Order(ent.Desc(wx.FieldOrganizationID)).All(l.ctx)
|
|
|
+ if err != nil {
|
|
|
+ return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
|
|
|
+ }
|
|
|
+
|
|
|
+ resp = &types.WxSelectListResp{}
|
|
|
+ resp.Msg = errormsg.Success
|
|
|
+
|
|
|
+ for _, v := range data {
|
|
|
+ wxid := v.Wxid
|
|
|
+ if !strings.HasPrefix(wxid, "temp-") {
|
|
|
+ resp.Data = append(resp.Data,
|
|
|
+ types.WxSelectListInfo{
|
|
|
+ BaseIDInfo: types.BaseIDInfo{
|
|
|
+ Id: &v.ID,
|
|
|
+ },
|
|
|
+ Wxid: &wxid,
|
|
|
+ Nickname: &v.Nickname,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return resp, nil
|
|
|
+}
|