Advertisement
Guest User

Untitled

a guest
Jan 12th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.05 KB | None | 0 0
  1. package Server;
  2.  
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6.  
  7.  
  8. import Logic.DbGetter;
  9. import Logic.DbQuery;
  10. import Logic.DbUpdater;
  11. import Logic.ISelect;
  12. import Logic.IUpdate;
  13.  
  14. import PacketSender.Command;
  15. import PacketSender.Packet;
  16. import Products.CatalogProduct;
  17. import Products.FlowerInProduct;
  18. import Users.Permission;
  19. import Users.User;
  20. import ocsf.server.AbstractServer;
  21. import ocsf.server.ConnectionToClient;
  22.  
  23. public class SystemServer extends AbstractServer {
  24.  
  25. private static final int DEFAULT_PORT = 5555;
  26. private String user = "root";
  27. private String password = "root";
  28.  
  29. public SystemServer(int port) {
  30. super(port);
  31.  
  32. }
  33.  
  34. public void getCatalogProductsHandler(DbQuery db, Command key)
  35. {
  36. DbGetter dbGet = new DbGetter(db, key);
  37.  
  38. dbGet.performAction(new ISelect() {
  39. @Override
  40. public String getQuery() {
  41. return "SELECT P.pId, C.productName, C.discount, C.image, T.typeId, T.description, P.price "
  42. + "FROM product P INNER JOIN ProductType T ON P.pId = T.typeId "
  43. + "INNER JOIN CatalogProduct C ON P.pId = C.pId";
  44. }
  45.  
  46. @Override
  47. public Object createObject(ResultSet rs) throws SQLException {
  48. int id = rs.getInt(1);
  49. String productName = rs.getString(2);
  50. int discount = rs.getInt(3);
  51. //String image = rs.getString(4);
  52. int typeId = rs.getInt(5);
  53. double price = rs.getDouble(7);
  54.  
  55. CatalogProduct catalogPro = new CatalogProduct(id, typeId, price, null, null, productName, discount, "");
  56. return (Object)catalogPro;
  57. }
  58.  
  59. @Override
  60. public void setStatements(PreparedStatement stmt, Packet packet) throws SQLException { }
  61. });
  62. }
  63.  
  64. // Set the user's isLogged to '1' - Assumed that user is found
  65. public void updateUserIsLoggedHandler(DbQuery db, Command key)
  66. {
  67. System.out.println("updateUserIsLoggedHandler");
  68. DbUpdater<User> dbUpdate = new DbUpdater<>(db, key);
  69.  
  70. dbUpdate.performAction(new IUpdate<User>() {
  71.  
  72. @Override
  73. public String getQuery() {
  74. return "UPDATE test.user"
  75. +" SET isLogged = ? "
  76. +" WHERE user = ?";
  77. }
  78.  
  79. @Override
  80. public void setStatements(PreparedStatement stmt, User obj) throws SQLException {
  81. stmt.setInt(1, 1);
  82. stmt.setString(2, obj.getUser());
  83. }
  84. });
  85. }
  86.  
  87. // Set the user's isLogged to '0' - Assumed that user is found
  88. public void updateUserIsLoggedToZeroHandler(DbQuery db, Command key)
  89. {
  90. System.out.println("updateUserIsLoggedToZeroHandler");
  91. DbUpdater<User> dbUpdate = new DbUpdater<>(db, key);
  92.  
  93. dbUpdate.performAction(new IUpdate<User>() {
  94.  
  95. @Override
  96. public String getQuery() {
  97. return "UPDATE test.user"
  98. +" SET isLogged = ? "
  99. +" WHERE user = ?";
  100. }
  101.  
  102. @Override
  103. public void setStatements(PreparedStatement stmt, User obj) throws SQLException {
  104. stmt.setInt(1, 0);
  105. stmt.setString(2, obj.getUser());
  106. }
  107. });
  108. }
  109.  
  110. public void getUserByUserNameHandler(DbQuery db, Command key)
  111. {
  112. System.out.println("getUserByUserNameHandler");
  113. DbGetter dbGet = new DbGetter(db, key);
  114.  
  115. dbGet.performAction(new ISelect() {
  116. @Override
  117. public String getQuery() {
  118. return "SELECT * "
  119. + "FROM test.user where user = ? ";
  120. }
  121.  
  122. @Override
  123. public Object createObject(ResultSet rs) throws SQLException {
  124.  
  125. int uId = rs.getInt(1);
  126. String user =rs.getString(2);
  127. String password = rs.getString(3);
  128. int islogged = rs.getInt(4);
  129. String perm=rs.getString(5);
  130.  
  131. Permission permission;
  132. boolean isloggedbool=(islogged==1);
  133. User newuser;
  134.  
  135.  
  136. if(perm.equals((Permission.Administrator).toString()))
  137. permission = Permission.Administrator;
  138.  
  139. else if(perm.equals((Permission.Blocked).toString()))
  140. permission = Permission.Blocked;
  141. else
  142. permission = Permission.Limited;
  143.  
  144. newuser = new User(uId, user, password, isloggedbool, permission);
  145. return (Object)newuser;
  146. }
  147.  
  148. @Override
  149. public void setStatements(PreparedStatement stmt, Packet packet) throws SQLException {
  150.  
  151. User user = (User) packet.getParameterForCommand(Command.getUsersByUserName).get(0);
  152. stmt.setString(1, user.getUser());
  153. }
  154. });
  155. }
  156.  
  157. public void getFlowersHandler(DbQuery db, Command key)
  158. {
  159. DbGetter dbGet = new DbGetter(db, key);
  160.  
  161. dbGet.performAction(new ISelect() {
  162. @Override
  163. public String getQuery() {
  164. return "SELECT FP.fId, FP.pId, FP.quantity " +
  165. "FROM flowerinproduct FP";
  166. }
  167.  
  168. @Override
  169. public Object createObject(ResultSet rs) throws SQLException {
  170. int fId = rs.getInt(1);
  171. int productID = rs.getInt(2);
  172. int qty = rs.getInt(3);
  173.  
  174. FlowerInProduct fp = new FlowerInProduct(fId, productID, qty);
  175. return (Object)fp;
  176. }
  177.  
  178. @Override
  179. public void setStatements(PreparedStatement stmt, Packet packet) throws SQLException { }
  180. });
  181. }
  182.  
  183. public void updateCatalogProductHandler(DbQuery db, Command key)
  184. {
  185. DbUpdater<CatalogProduct> dbUpdate = new DbUpdater<>(db, key);
  186.  
  187. dbUpdate.performAction(new IUpdate<CatalogProduct>() {
  188.  
  189. @Override
  190. public String getQuery() {
  191. return "UPDATE product P INNER JOIN ProductType T ON P.pId = T.typeId "
  192. + "INNER JOIN CatalogProduct C ON P.pId = C.pId "
  193. + "SET C.productName = ?, C.discount = ?, C.image = ?, P.typeId = ?, P.price = ? "
  194. + "WHERE P.pId = ?";
  195. }
  196.  
  197. @Override
  198. public void setStatements(PreparedStatement stmt, CatalogProduct obj) throws SQLException {
  199. stmt.setString(1, obj.getName());
  200. stmt.setInt(2, obj.getSaleDiscountPercent());
  201. stmt.setString(3, obj.getImgUrl());
  202. stmt.setInt(4, obj.getProductTypeId());
  203. stmt.setDouble(5, obj.getPrice());
  204. stmt.setInt(6, obj.getId());
  205. }
  206. });
  207. }
  208.  
  209. @Override
  210. protected void handleMessageFromClient(Object msg, ConnectionToClient client) {
  211. Packet packet = (Packet) msg;
  212. DbQuery db = new DbQuery(user, password, packet, client);
  213. for (Command key : packet.getCommands())
  214. {
  215. if (key.equals(Command.getCatalogProducts)) {
  216. getCatalogProductsHandler(db, key);
  217. }
  218.  
  219. else if (key.equals(Command.updateCatalogProduct)) {
  220. updateCatalogProductHandler(db, key);
  221. }
  222.  
  223. else if (key.equals(Command.getFlowers)) {
  224. getFlowersHandler(db, key);
  225. }
  226. else if(key.equals(Command.getUsersByUserName))
  227. getUserByUserNameHandler(db, key);
  228. else if(key.equals(Command.updateUserLoggedIn))
  229. updateUserIsLoggedHandler(db, key);
  230. else if(key.equals(Command.updateUserLoggedInToZero))
  231. updateUserIsLoggedToZeroHandler(db,key);
  232. }
  233.  
  234. db.sendToClient();
  235. }
  236.  
  237. public static void main(String[] args) {
  238. int port = 0; // Port to listen on
  239.  
  240. try {
  241. port = Integer.parseInt(args[0]); // Get port from command line
  242. } catch (Throwable t) {
  243. port = DEFAULT_PORT; // Set port to 5555
  244. }
  245.  
  246. SystemServer sc = new SystemServer(port);
  247.  
  248. try {
  249. sc.listen(); // Start listening for connections
  250. System.out.println(String.format("Server has started listening on port: %d", port));
  251. } catch (Exception ex) {
  252. System.out.println("ERROR - Could not listen for clients!");
  253. }
  254.  
  255.  
  256.  
  257. }
  258.  
  259. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement