|
@@ -1,9 +1,12 @@
|
|
|
package service
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
+ systemService "iot_manager_service/app/system/service"
|
|
|
"iot_manager_service/app/warn/dao"
|
|
|
"iot_manager_service/app/warn/model"
|
|
|
"strconv"
|
|
|
+ "strings"
|
|
|
)
|
|
|
|
|
|
var NoticeSetService = new(noticeSetService)
|
|
@@ -11,44 +14,166 @@ var NoticeSetService = new(noticeSetService)
|
|
|
type noticeSetService struct{}
|
|
|
|
|
|
func (s noticeSetService) GetList(tenantId int, searchValue string) ([]model.NoticeSetRecords, error) {
|
|
|
-
|
|
|
code := dao.ViewsAllCode{TenantId: tenantId}
|
|
|
deviceTypeGroups, _ := code.GetGroupByDeviceType(searchValue)
|
|
|
var deviceTypeGroupsNew []model.NoticeSetRecords
|
|
|
+ noteiceSets := s.getNoteiceSets(tenantId)
|
|
|
for _, group := range deviceTypeGroups {
|
|
|
|
|
|
var deviceNew []model.NoticeSetRecords
|
|
|
code.DeviceType = group.DeviceType
|
|
|
devices, _ := code.GetDatasByDeviceType(searchValue)
|
|
|
for _, device := range devices {
|
|
|
+ key := strconv.Itoa(tenantId) + strconv.Itoa(3) + strconv.Itoa(device.DeviceType) + strconv.Itoa(device.DeviceId)
|
|
|
+ set := noteiceSets[key]
|
|
|
deviceNew = append(deviceNew, model.NoticeSetRecords{
|
|
|
- Rtype: 3,
|
|
|
- RtypeName: device.DeviceName + "(" + device.Sn + ")",
|
|
|
- DeviceType: device.DeviceType,
|
|
|
- DeviceId: device.DeviceId,
|
|
|
- ID: device.Sn,
|
|
|
+ Rtype: 3,
|
|
|
+ RtypeName: device.DeviceName + "(" + device.Sn + ")",
|
|
|
+ DeviceType: device.DeviceType,
|
|
|
+ DeviceId: device.DeviceId,
|
|
|
+ ID: device.Sn,
|
|
|
+ DevUserNoticeModesName: set.DevUserNoticeModesName,
|
|
|
+ BusinessNoticeModesName: set.BusinessNoticeModesName,
|
|
|
+ DevUserIdsName: set.DevUserIdsName,
|
|
|
+ BusinessUserIdsName: set.BusinessUserIdsName,
|
|
|
+ DevUserIds: set.DevUserIds,
|
|
|
+ BusinessUserIds: set.BusinessUserIds,
|
|
|
})
|
|
|
}
|
|
|
-
|
|
|
+ key := strconv.Itoa(tenantId) + strconv.Itoa(2) + strconv.Itoa(group.DeviceType) + strconv.Itoa(999999)
|
|
|
+ //set.TenantId + strconv.Itoa(set.RType) + strconv.Itoa(set.DeviceType) + strconv.Itoa(set.DeviceId)
|
|
|
+ //fmt.Printf("key = %v", key)
|
|
|
+ //println("")
|
|
|
+ set := noteiceSets[key]
|
|
|
+ //fmt.Printf("set = %v", set)
|
|
|
deviceTypeGroupsNew = append(deviceTypeGroupsNew, model.NoticeSetRecords{
|
|
|
- Rtype: 2,
|
|
|
- RtypeName: group.DeviceTypeName + "(" + strconv.Itoa(len(deviceNew)) + "台)",
|
|
|
- Children: deviceNew,
|
|
|
- DeviceType: group.DeviceType,
|
|
|
- DeviceId: 0,
|
|
|
- ID: strconv.Itoa(group.DeviceType),
|
|
|
+ Rtype: 2,
|
|
|
+ RtypeName: group.DeviceTypeName + "(" + strconv.Itoa(len(deviceNew)) + "台)",
|
|
|
+ Children: deviceNew,
|
|
|
+ DeviceType: group.DeviceType,
|
|
|
+ DeviceId: 0,
|
|
|
+ ID: strconv.Itoa(group.DeviceType),
|
|
|
+ DevUserNoticeModesName: set.DevUserNoticeModesName,
|
|
|
+ BusinessNoticeModesName: set.BusinessNoticeModesName,
|
|
|
+ DevUserIdsName: set.DevUserIdsName,
|
|
|
+ BusinessUserIdsName: set.BusinessUserIdsName,
|
|
|
+ DevUserIds: set.DevUserIds,
|
|
|
+ BusinessUserIds: set.BusinessUserIds,
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ key := strconv.Itoa(tenantId) + strconv.Itoa(1) + strconv.Itoa(0) + strconv.Itoa(999999)
|
|
|
+ set := noteiceSets[key]
|
|
|
data := []model.NoticeSetRecords{
|
|
|
{
|
|
|
- Rtype: 0,
|
|
|
- RtypeName: "全部设备",
|
|
|
- Children: deviceTypeGroupsNew,
|
|
|
- DeviceType: 0,
|
|
|
- DeviceId: 0,
|
|
|
- ID: "999999",
|
|
|
+ Rtype: 0,
|
|
|
+ RtypeName: "全部设备",
|
|
|
+ Children: deviceTypeGroupsNew,
|
|
|
+ DeviceType: 0,
|
|
|
+ DeviceId: 0,
|
|
|
+ ID: "999999",
|
|
|
+ DevUserNoticeModesName: set.DevUserNoticeModesName,
|
|
|
+ BusinessNoticeModesName: set.BusinessNoticeModesName,
|
|
|
+ DevUserIdsName: set.DevUserIdsName,
|
|
|
+ BusinessUserIdsName: set.BusinessUserIdsName,
|
|
|
+ DevUserIds: set.DevUserIds,
|
|
|
+ BusinessUserIds: set.BusinessUserIds,
|
|
|
},
|
|
|
}
|
|
|
+ //fmt.Printf("noteiceSets = %v", noteiceSets)
|
|
|
return data, nil
|
|
|
}
|
|
|
+
|
|
|
+func (s noticeSetService) Update(post model.NoticeUpdateData, tenantId int) error {
|
|
|
+ rtype := post.Rtype
|
|
|
+ if rtype == 0 {
|
|
|
+ rtype = 1
|
|
|
+ }
|
|
|
+ deviceId := 999999
|
|
|
+ if rtype == 3 {
|
|
|
+ deviceId = post.DeviceID
|
|
|
+
|
|
|
+ }
|
|
|
+ set := dao.NoticeSet{
|
|
|
+ TenantId: strconv.Itoa(tenantId),
|
|
|
+ DeviceType: post.DeviceType,
|
|
|
+ DeviceId: deviceId,
|
|
|
+ DeviceSn: post.ID,
|
|
|
+ RType: rtype,
|
|
|
+ DevUserNoticeModes: post.NoticeOperationType,
|
|
|
+ BusinessNoticeModes: post.NoticeBusinessType,
|
|
|
+ DevUserNoticeModesName: post.ShowOperationTypeName,
|
|
|
+ BusinessNoticeModesName: post.ShowBusinessTypeName,
|
|
|
+ DevUserIds: post.NoticeOperationMan,
|
|
|
+ BusinessUserIds: post.NoticeBusinessMan,
|
|
|
+
|
|
|
+ DevUserIdsName: s.getUserName(post.NoticeOperationMan),
|
|
|
+ BusinessUserIdsName: s.getUserName(post.NoticeBusinessMan),
|
|
|
+ }
|
|
|
+ return set.UpdateOrSave()
|
|
|
+}
|
|
|
+
|
|
|
+func (s noticeSetService) getNoteiceSets(tenantId int) map[string]dao.NoticeSet {
|
|
|
+ noticeSet := dao.NoticeSet{TenantId: strconv.Itoa(tenantId)}
|
|
|
+ list, _ := noticeSet.GetList()
|
|
|
+ news := make(map[string]dao.NoticeSet)
|
|
|
+ for _, set := range list {
|
|
|
+ key := set.TenantId + strconv.Itoa(set.RType) + strconv.Itoa(set.DeviceType) + strconv.Itoa(set.DeviceId)
|
|
|
+ fmt.Printf("xxxkey = %v", key)
|
|
|
+ set.BusinessUserIdsName = strings.ReplaceAll(set.BusinessUserIdsName, " | ", ",")
|
|
|
+ set.DevUserIdsName = strings.ReplaceAll(set.DevUserIdsName, " | ", ",")
|
|
|
+ news[key] = set
|
|
|
+ }
|
|
|
+ return news
|
|
|
+}
|
|
|
+
|
|
|
+func (s noticeSetService) GetById(id string) (*model.NoticeSetDetail, error) {
|
|
|
+ noticeSet := dao.NoticeSet{DeviceSn: id}
|
|
|
+ data, err := noticeSet.GetById()
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ detail := &model.NoticeSetDetail{
|
|
|
+ ID: data.DeviceSn,
|
|
|
+ RidType: data.RType,
|
|
|
+ NoticeOperationType: data.DevUserNoticeModes,
|
|
|
+ NoticeBusinessType: data.BusinessNoticeModes,
|
|
|
+ NoticeOperationMan: data.DevUserIds,
|
|
|
+ NoticeBusinessMan: data.BusinessUserIds,
|
|
|
+ }
|
|
|
+
|
|
|
+ return detail, nil
|
|
|
+}
|
|
|
+
|
|
|
+func (s noticeSetService) UserList(account string, name string, current int, size int) ([]model.NoticeSetDUserList, error) {
|
|
|
+ var list []model.NoticeSetDUserList
|
|
|
+ userList, _ := systemService.UserService.List(account, name, current, size)
|
|
|
+ for _, user := range userList {
|
|
|
+ idStr := strconv.Itoa(int(user.ID))
|
|
|
+ list = append(list, model.NoticeSetDUserList{ID: idStr, Name: user.Name})
|
|
|
+ }
|
|
|
+ return list, nil
|
|
|
+}
|
|
|
+
|
|
|
+func (s noticeSetService) getUserName(ids string) string {
|
|
|
+ split := strings.Split(ids, ",")
|
|
|
+ fm := make(map[string]int)
|
|
|
+ for i, v := range split {
|
|
|
+ fm[v] = i
|
|
|
+ }
|
|
|
+ userList, _ := systemService.UserService.List("", "", 0, 1000)
|
|
|
+ new := []string{}
|
|
|
+ for _, detail := range userList {
|
|
|
+ id := strconv.Itoa(int(detail.ID))
|
|
|
+ if _, ok := fm[id]; ok {
|
|
|
+ new = append(new, detail.Name)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return strings.Join(new, ",")
|
|
|
+}
|
|
|
+
|
|
|
+func (s noticeSetService) Remove(id string, tenant_id int) error {
|
|
|
+ fmt.Printf("id = %v", id)
|
|
|
+ noticeSet := dao.NoticeSet{DeviceSn: id, TenantId: strconv.Itoa(tenant_id)}
|
|
|
+ return noticeSet.Delete()
|
|
|
+}
|