-
Notifications
You must be signed in to change notification settings - Fork 46
/
service.go
76 lines (67 loc) · 1.9 KB
/
service.go
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
67
68
69
70
71
72
73
74
75
76
package fgopickup
import "time"
type service struct {
}
func (s *service) getPickups() (*[]pickup, error) {
dao := dao{DBEngine: getOrmEngine()}
list, err := dao.listPickup()
return list, err
}
func (s *service) getPickupDetail(pickupID int) (pickupDetailRes, error) {
dao := dao{DBEngine: getOrmEngine()}
res := pickupDetailRes{}
pickup, err := dao.selectPickup(pickupID)
if err != nil {
return res, err
}
servantIDs, err := dao.selectServantIDsByPickupID(pickupID)
if err != nil {
return res, err
}
servants, err := dao.selectServantsByIDs(servantIDs)
if err != nil {
return res, err
}
res.Pickup = pickup
res.Servants = *servants
return res, err
}
func (s *service) getPickupTimeGap(pickupID int) (int, error) {
dao := dao{DBEngine: getOrmEngine()}
pickup, err := dao.selectPickup(pickupID)
startTime := time.Now().Unix()
endTime := pickup.StartTime
days := getDiffDaysBySeconds(startTime, endTime)
return days, err
}
func getDiffDays(start, end time.Time) int {
start = time.Date(start.Year(), start.Month(), start.Day(), 0, 0, 0, 0, time.Local)
end = time.Date(end.Year(), end.Month(), end.Day(), 0, 0, 0, 0, time.Local)
return int(end.Sub(start).Hours() / 24)
}
func getDiffDaysBySeconds(start, end int64) int {
return getDiffDays(time.Unix(start, 0), time.Unix(end, 0))
}
func (s *service) listServants(page int) (*[]servant, error) {
dao := dao{DBEngine: getOrmEngine()}
return dao.listServants(page)
}
func (s *service) getServantPickups(id int) (servantPickupsRes, error) {
res := servantPickupsRes{}
dao := dao{DBEngine: getOrmEngine()}
servant, err := dao.selectServant(id)
if err != nil {
return res, err
}
res.ServantName = servant.Name
pickupIDs, err := dao.selectPickupIDsByServantID(id)
if err != nil || len(pickupIDs) == 0 {
return res, err
}
pickups, err := dao.selectPickupsByIDs(pickupIDs)
if err != nil {
return res, err
}
res.Pickup = *pickups
return res, nil
}