实现缓存+mqtt设备消息监听
This commit is contained in:
@ -107,30 +107,6 @@ func (s *sRewardType) Delete(ctx context.Context, in *model.RewardTypeDeleteIn)
|
||||
func (s *sRewardType) List(ctx context.Context, in *model.RewardTypeListIn) (out *model.RewardTypeListOut, err error) {
|
||||
mod := dao.RewardTypes.Ctx(ctx).Where("deleted_at IS NULL")
|
||||
|
||||
switch in.OperatorRole {
|
||||
case consts.AdminRoleCode:
|
||||
// 系统管理员只能看系统奖励类型
|
||||
mod = mod.Where("source", 1)
|
||||
|
||||
case consts.MerchantRoleCode:
|
||||
// 校验商户是否对该门店有权限
|
||||
if err = checkRewardTypePermission(ctx, in.OperatorRole, in.OperatorId, 2, in.StoreId); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// 只查询该门店的奖励类型(source=2且store_id=指定门店)
|
||||
mod = mod.Where("source", 2).WhereIn("store_id", in.StoreId)
|
||||
|
||||
case consts.StoreRoleCode:
|
||||
// 校验门店权限
|
||||
if err = checkRewardTypePermission(ctx, in.OperatorRole, in.OperatorId, 2, in.StoreId); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
mod = mod.Where("source", 2).Where("store_id", in.StoreId)
|
||||
|
||||
default:
|
||||
return nil, ecode.Params.Sub("无效的操作角色")
|
||||
}
|
||||
|
||||
// 其余过滤条件
|
||||
if in.Name != "" {
|
||||
mod = mod.WhereLike("name", "%"+in.Name+"%")
|
||||
|
||||
@ -13,17 +13,10 @@ import (
|
||||
)
|
||||
|
||||
type sStoreDesktopSetting struct {
|
||||
mqttCLient mqtt.MqttClient
|
||||
}
|
||||
|
||||
func New() service.IStoreDesktopSetting {
|
||||
client, b := mqtt.GetClient("emqx")
|
||||
if !b {
|
||||
return nil
|
||||
}
|
||||
return &sStoreDesktopSetting{
|
||||
mqttCLient: client,
|
||||
}
|
||||
return &sStoreDesktopSetting{}
|
||||
}
|
||||
func init() {
|
||||
service.RegisterStoreDesktopSetting(New())
|
||||
@ -74,7 +67,11 @@ func (s *sStoreDesktopSetting) Save(ctx context.Context, in model.SaveDesktopSet
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = s.mqttCLient.Publish(fmt.Sprintf("/desktop/%d", in.StoreId), marshal)
|
||||
client, b := mqtt.GetClient("emqx")
|
||||
if !b {
|
||||
return nil, gerror.New("获取MQTT客户端失败")
|
||||
}
|
||||
err = client.Publish(fmt.Sprintf("/desktop/%d", in.StoreId), marshal)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -385,5 +385,19 @@ func (s *sTask) GetTask(ctx context.Context, in *model.GetTaskIn) (out *model.Ge
|
||||
}
|
||||
|
||||
func (s *sTask) GetUserTaskRecordsList(ctx context.Context, in *model.UserTaskRecordsListIn) (out *model.UserTaskRecordsListOut, err error) {
|
||||
return
|
||||
list := make([]model.UserTask, 0)
|
||||
var total int
|
||||
orm := dao.UserTasks.Ctx(ctx).Where(dao.UserTasks.Columns().Id, in.UserId)
|
||||
|
||||
if in.StoreId != 0 {
|
||||
orm = orm.Where(dao.UserTasks.Columns().StoreId, in.StoreId)
|
||||
}
|
||||
err = orm.Page(in.Page, in.Size).ScanAndCount(&list, &total, false)
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("获取用户任务列表失败")
|
||||
}
|
||||
return &model.UserTaskRecordsListOut{
|
||||
List: list,
|
||||
Total: total,
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user