Skip to content

Commit 0f93bae

Browse files
committed
基本完成 RESTFul API 的设计
1 parent 8e8cd90 commit 0f93bae

File tree

11 files changed

+282
-109
lines changed

11 files changed

+282
-109
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package cc.bitky.clustermanage.db.mongoops;
2+
3+
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.data.mongodb.core.MongoOperations;
5+
import org.springframework.stereotype.Repository;
6+
7+
@Repository
8+
public class RoutineTableOps {
9+
private final MongoOperations operations;
10+
11+
@Autowired
12+
public RoutineTableOps(MongoOperations operations) {
13+
this.operations = operations;
14+
}
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package cc.bitky.clustermanage.db.mongoops;
2+
3+
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.data.mongodb.core.MongoOperations;
5+
import org.springframework.stereotype.Repository;
6+
7+
@Repository
8+
public class SettingOps {
9+
private final MongoOperations operations;
10+
11+
@Autowired
12+
public SettingOps(MongoOperations operations) {
13+
this.operations = operations;
14+
}
15+
}

clustermanage-server/src/main/java/cc/bitky/clustermanage/db/presenter/DbRoutinePresenter.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55

66
import cc.bitky.clustermanage.db.bean.routineinfo.HistoryInfo;
77
import cc.bitky.clustermanage.db.bean.routineinfo.RoutineTables;
8-
import cc.bitky.clustermanage.db.repository.RoutimeTableRepository;
8+
import cc.bitky.clustermanage.db.repository.RoutineTableRepository;
99
import cc.bitky.clustermanage.server.message.tcp.TcpMsgResponseDeviceStatus;
1010

1111
@Repository
1212
public class DbRoutinePresenter {
13-
private final RoutimeTableRepository routimeTableRepository;
13+
private final RoutineTableRepository routineTableRepository;
1414

1515
@Autowired
16-
public DbRoutinePresenter(RoutimeTableRepository routimeTableRepository) {
17-
this.routimeTableRepository = routimeTableRepository;
16+
public DbRoutinePresenter(RoutineTableRepository routineTableRepository) {
17+
this.routineTableRepository = routineTableRepository;
1818
}
1919

2020
/**
@@ -23,13 +23,13 @@ public DbRoutinePresenter(RoutimeTableRepository routimeTableRepository) {
2323
* @param employeeObjectId 员工的 ObjectId
2424
* @param tcpMsgResponseDeviceStatus 设备状态包
2525
*/
26-
public void updateRoutineById(String employeeObjectId, TcpMsgResponseDeviceStatus tcpMsgResponseDeviceStatus) {
27-
RoutineTables routineTables = routimeTableRepository.findOne(employeeObjectId);
26+
void updateRoutineById(String employeeObjectId, TcpMsgResponseDeviceStatus tcpMsgResponseDeviceStatus) {
27+
RoutineTables routineTables = routineTableRepository.findOne(employeeObjectId);
2828
if (routineTables == null) {
2929
routineTables = new RoutineTables();
3030
routineTables.setId(employeeObjectId);
3131
}
3232
routineTables.getHistoryInfos().add(HistoryInfo.newInstance(tcpMsgResponseDeviceStatus.getTime(), tcpMsgResponseDeviceStatus.getStatus()));
33-
routimeTableRepository.save(routineTables);
33+
routineTableRepository.save(routineTables);
3434
}
3535
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package cc.bitky.clustermanage.db.presenter;
2+
3+
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.stereotype.Repository;
5+
6+
import cc.bitky.clustermanage.db.bean.KySetting;
7+
import cc.bitky.clustermanage.db.repository.SettingRepository;
8+
import cc.bitky.clustermanage.server.bean.ServerWebMessageHandler.Card;
9+
10+
@Repository
11+
public class DbSettingPresenter {
12+
private final SettingRepository settingRepository;
13+
14+
@Autowired
15+
public DbSettingPresenter(SettingRepository settingRepository) {
16+
this.settingRepository = settingRepository;
17+
}
18+
19+
/**
20+
* 将卡号集合保存在数据库的 Setting 文档中
21+
*
22+
* @param cardArray 卡号集合
23+
* @param card 卡号类型枚举
24+
* @return 是否保存成功
25+
*/
26+
boolean saveCardArray(long[] cardArray, Card card) {
27+
KySetting kySetting = settingRepository.findOne("1");
28+
if (kySetting == null) {
29+
kySetting = new KySetting();
30+
kySetting.setId(1);
31+
}
32+
switch (card) {
33+
case FREE:
34+
kySetting.setFreeCardList(cardArray);
35+
break;
36+
case CONFIRM:
37+
kySetting.setConfirmCardList(cardArray);
38+
break;
39+
}
40+
settingRepository.save(kySetting);
41+
return true;
42+
}
43+
44+
/**
45+
* 获取卡号的集合
46+
*
47+
* @return 卡号的集合
48+
*/
49+
long[] getCardArray(Card card) {
50+
KySetting kyKySettings = settingRepository.findOne("1");
51+
if (kyKySettings == null) return new long[0];
52+
long[] longs;
53+
switch (card) {
54+
case FREE:
55+
longs = kyKySettings.getFreeCardList();
56+
return longs == null ? new long[0] : longs;
57+
case CONFIRM:
58+
longs = kyKySettings.getConfirmCardList();
59+
return longs == null ? new long[0] : longs;
60+
}
61+
return new long[0];
62+
}
63+
}

clustermanage-server/src/main/java/cc/bitky/clustermanage/db/presenter/KyDbPresenter.java

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,30 @@
1111
import cc.bitky.clustermanage.db.bean.Device;
1212
import cc.bitky.clustermanage.db.bean.DeviceGroup;
1313
import cc.bitky.clustermanage.db.bean.Employee;
14-
import cc.bitky.clustermanage.db.bean.KySetting;
1514
import cc.bitky.clustermanage.db.repository.DeviceGroupRepository;
16-
import cc.bitky.clustermanage.db.repository.SettingRepository;
15+
import cc.bitky.clustermanage.server.bean.ServerWebMessageHandler.Card;
1716
import cc.bitky.clustermanage.server.message.IMessage;
1817
import cc.bitky.clustermanage.server.message.tcp.TcpMsgResponseDeviceStatus;
1918

2019
@Repository
2120
public class KyDbPresenter {
2221
private final DeviceGroupRepository deviceGroupRepository;
23-
2422
private final DbEmployeePresenter dbEmployeePresenter;
25-
private final SettingRepository settingRepository;
23+
private final DbSettingPresenter dbSettingPresenter;
2624
private final DbDevicePresenter dbDevicePresenter;
2725
private final DbRoutinePresenter dbRoutinePresenter;
2826

29-
int groupSize;
27+
private int groupSize;
3028

3129
private Logger logger = LoggerFactory.getLogger(KyDbPresenter.class);
3230

3331
@Autowired
34-
public KyDbPresenter(DbRoutinePresenter dbRoutinePresenter, DbEmployeePresenter dbEmployeePresenter, DeviceGroupRepository deviceGroupRepository, DbDevicePresenter dbDevicePresenter, SettingRepository settingRepository) {
32+
public KyDbPresenter(DbRoutinePresenter dbRoutinePresenter, DbEmployeePresenter dbEmployeePresenter
33+
, DeviceGroupRepository deviceGroupRepository, DbDevicePresenter dbDevicePresenter
34+
, DbSettingPresenter dbSettingPresenter) {
3535
this.dbRoutinePresenter = dbRoutinePresenter;
3636
this.deviceGroupRepository = deviceGroupRepository;
37-
this.settingRepository = settingRepository;
37+
this.dbSettingPresenter = dbSettingPresenter;
3838
this.dbDevicePresenter = dbDevicePresenter;
3939
this.dbEmployeePresenter = dbEmployeePresenter;
4040
}
@@ -131,19 +131,6 @@ public List<Device> getDevices(int groupId, int boxId) {
131131
return dbDevicePresenter.getDevices(groupId, boxId);
132132
}
133133

134-
/**
135-
* 从数据库中获取万能卡号的数组
136-
*
137-
* @return 万能卡号的数组
138-
*/
139-
public long[] obtainFreeCardArray() {
140-
List<KySetting> kyKySettings = settingRepository.findAll();
141-
if (kyKySettings.size() == 0) return new long[0];
142-
long[] longs = kyKySettings.get(kyKySettings.size() - 1).getFreeCardList();
143-
144-
return longs == null ? new long[0] : longs;
145-
}
146-
147134
/**
148135
* 设备初始化: 根据员工卡号获取员工信息
149136
*
@@ -154,4 +141,25 @@ public Employee obtainDeviceByEmployeeCard(long cardNumber) {
154141
String employeeObjectId = dbDevicePresenter.obtainEmployeeObjectIdByCardNum(cardNumber);
155142
return dbEmployeePresenter.ObtainEmployeeByObjectId(employeeObjectId);
156143
}
144+
145+
/**
146+
* 获取卡号的集合
147+
*
148+
* @return 卡号的集合
149+
*/
150+
public long[] getCardArray(Card card) {
151+
152+
return dbSettingPresenter.getCardArray(card);
153+
}
154+
155+
/**
156+
* 将卡号保存到数据库
157+
*
158+
* @param freecards 卡号的数组
159+
* @param card 卡号类型
160+
* @return 是否保存成功
161+
*/
162+
public boolean saveCardNumber(long[] freecards, Card card) {
163+
return dbSettingPresenter.saveCardArray(freecards, card);
164+
}
157165
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44

55
import cc.bitky.clustermanage.db.bean.routineinfo.RoutineTables;
66

7-
public interface RoutimeTableRepository extends MongoRepository<RoutineTables, String> {
7+
public interface RoutineTableRepository extends MongoRepository<RoutineTables, String> {
88

99
}

clustermanage-server/src/main/java/cc/bitky/clustermanage/server/bean/KyServerCenterHandler.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.util.List;
88

99
import cc.bitky.clustermanage.db.presenter.KyDbPresenter;
10+
import cc.bitky.clustermanage.server.bean.ServerWebMessageHandler.Card;
1011
import cc.bitky.clustermanage.server.message.IMessage;
1112
import cc.bitky.clustermanage.server.message.web.WebMsgDeployFreeCardNumber;
1213
import cc.bitky.clustermanage.server.message.web.WebMsgGrouped;
@@ -42,7 +43,7 @@ private boolean sendMsgToTcp(List<IMessage> messages) {
4243
* @return 万能卡号获取并写入 TCP 成功
4344
*/
4445
boolean deployFreeCard(int groupId, int deviceId) {
45-
long[] freeCards = kyDbPresenter.obtainFreeCardArray();
46+
long[] freeCards = kyDbPresenter.getCardArray(Card.FREE);
4647
IMessage CardMsg = new WebMsgDeployFreeCardNumber(groupId, deviceId, freeCards);
4748
return deployGroupedMessage(CardMsg);
4849
}
@@ -84,4 +85,24 @@ private boolean deployGroupedMessage(IMessage message) {
8485
boolean deployDeviceMsg(IMessage message) {
8586
return deployGroupedMessage(message);
8687
}
88+
89+
/**
90+
* 从数据库中获取卡号的集合
91+
*
92+
* @return 卡号的集合
93+
*/
94+
long[] getCardArray(Card card) {
95+
return kyDbPresenter.getCardArray(card);
96+
}
97+
98+
/**
99+
* 将卡号保存到数据库
100+
*
101+
* @param freecards 卡号的数组
102+
* @param card 卡号类型
103+
* @return 是否保存成功
104+
*/
105+
boolean saveCardNumber(long[] freecards, Card card) {
106+
return kyDbPresenter.saveCardNumber(freecards, card);
107+
}
87108
}

clustermanage-server/src/main/java/cc/bitky/clustermanage/server/bean/ServerWebMessageHandler.java

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public ServerWebMessageHandler(KyDbPresenter kyDbPresenter) {
2323
}
2424

2525
/**
26-
* 从数据库中获取万能卡号并写入 Netty 的 Handler
26+
* 从数据库中获取万能卡号,并写入 Netty 的 Handler
2727
*
2828
* @param groupId 设备组 Id
2929
* @param deviceId 设备 Id
@@ -71,4 +71,39 @@ public boolean deployDeviceMsg(IMessage message) {
7171
void setKyServerCenterHandler(KyServerCenterHandler kyServerCenterHandler) {
7272
this.kyServerCenterHandler = kyServerCenterHandler;
7373
}
74+
75+
76+
/**
77+
* 从数据库中获取万能卡号的集合
78+
*
79+
* @return 万能卡号的集合
80+
*/
81+
public long[] obtainFreeCards() {
82+
return kyServerCenterHandler.getCardArray(Card.FREE);
83+
}
84+
85+
/**
86+
* 从数据库中获取确认卡号的集合
87+
*
88+
* @return 确认卡号的集合
89+
*/
90+
public long[] obtainConfirmCards() {
91+
return kyServerCenterHandler.getCardArray(Card.CONFIRM);
92+
}
93+
94+
/**
95+
* 将卡号保存到数据库
96+
*
97+
* @param freecards 卡号的数组
98+
* @param card 卡号类型
99+
* @return 是否保存成功
100+
*/
101+
public boolean saveCardNumber(long[] freecards, Card card) {
102+
return kyServerCenterHandler.saveCardNumber(freecards, card);
103+
}
104+
105+
public enum Card {
106+
FREE,
107+
CONFIRM
108+
}
74109
}

0 commit comments

Comments
 (0)