1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| package service
|
| import (
| "apsClient/model"
| "apsClient/model/request"
| "apsClient/pkg/ecode"
| "apsClient/pkg/logx"
| "apsClient/pkg/structx"
| "encoding/json"
| "gorm.io/gorm"
| )
|
| type DevicePlcService struct{}
|
| func NewDevicePlcService() DevicePlcService {
| return DevicePlcService{}
| }
|
| func (DevicePlcService) GetDevicePlc() (*model.DevicePlc, int) {
| DevicePlc, err := model.NewDevicePlcSearch().SetOrder("id desc").First()
| if err == gorm.ErrRecordNotFound {
| return &model.DevicePlc{
| Brand: "",
| Method: "",
| PortName: "",
| Frequency: 0,
| Address: "",
| Port: 0,
| IsOpen: false,
| Detail: "",
| Details: make([]*model.DevicePlcAddress, 0),
| }, ecode.OK
| }
| if err != nil {
| return nil, ecode.DBErr
| }
|
| return DevicePlc, ecode.OK
| }
|
| func (DevicePlcService) UpdateDevicePlc(plc *request.UpdatePlc) int {
| var record model.DevicePlc
| err := structx.AssignTo(plc, &record)
| if err != nil {
| logx.Errorf("UpdateDevicePlc err: %v", err.Error())
| return ecode.UnknownErr
| }
|
| detail, err := json.Marshal(plc.Details)
| if err != nil {
| return ecode.ParamsErr
| }
| record.Detail = string(detail)
|
| if plc.Id == 0 {
| err = model.NewDevicePlcSearch().Create(&record)
| } else {
| err = model.NewDevicePlcSearch().SetId(plc.Id).Save(&record)
| }
|
| if err != nil {
| logx.Errorf("UpdateDevicePlc err: %v", err.Error())
| return ecode.DBErr
| }
| return ecode.OK
| }
|
|