123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- package com.iamberry.app.service;
- import java.io.IOException;
- import java.text.MessageFormat;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Map.Entry;
- import org.apache.http.ParseException;
- import org.json.JSONException;
- import org.json.JSONObject;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import com.iamberry.app.config.ImberryConfig;
- import com.iamberry.app.core.entity.Machine;
- import com.iamberry.app.core.entity.User;
- import com.iamberry.app.face.MachineService;
- import com.iamberry.app.tool.util.HttpUtility;
- /**
- * MachineService
- *
- * @author Moon Cheng
- * @date 2016年3月23日 下午12:27:32
- */
- @Service
- public class MachineServiceImpl extends BaseService implements MachineService {
- private Logger logger = LoggerFactory.getLogger(UserServiceImpl.class);
-
- /**
- * setMachine
- * @author Moon Cheng
- * @param machine
- * @param token
- * @return Machine Information
- */
- @Transactional
- public Machine setMachine(Machine machine, String token, String ip) {
- User userInfo = validateUserToken(token);
- if (userInfo == null) {
- return null;
- }
- if (ip.indexOf(",") != -1) {
- ip = ip.split(",")[0];
- }
- logger.info("IP为:" + ip);
- String location = null;
- try {
- location = new JSONObject(
- HttpUtility.httpsGet(MessageFormat.format(ImberryConfig.SINA_IP_URL,ip)))
- .getString("city");
- } catch (ParseException | IOException | JSONException e) {
- e.printStackTrace();
- }
- machine.setLocation(location);
- machine.setOwner(userInfo.getId());
- Long machineId = machineMapper.isDevUserPairExist(machine.getMachine_mac(), userInfo.getId());
- machine.setCreated_on(new Date());
- if (machineId == null) {
- machineMapper.insertMachine(machine);
- } else {
- machine.setId(machineId);
- machineMapper.updateMachine(machine);
- }
- return machine;
- }
- /**
- * updateMachineStatus
- *
- * @author Moon Cheng
- * @param machineId
- * @param status
- * @param token
- * @return
- */
- public int updateMachineStatus(Long machineId, String status, String token) {
- User userInfo = validateUserToken(token);
- if (userInfo == null) {
- return -1;
- }
- return machineMapper.updateMachineStatus(status, machineId);
- }
- /**
- * updateMachineLocation
- *
- * @author Moon Cheng
- * @param machineId
- * @param location
- * @param token
- * @return
- */
- public int updateMachineLocation(Long machineId, String location, String token) {
- User userInfo = validateUserToken(token);
- if (userInfo == null) {
- return -1;
- }
- return machineMapper.updateMachineLocation(location, machineId);
- }
- /**
- * 按用户,查询所有机器
- * @param owner
- * @param token
- * @return
- */
- public List<Machine> searchMachineByOwner(Long owner, String token) {
- User userInfo = validateUserToken(token);
- if (userInfo == null) {
- return null;
- }
- List<Machine> machines = machineMapper.selectMachineByOwner(owner);
- return machines;
- }
- /**
- * searchMachineById
- *
- * @author Moon Cheng
- * @param machineId
- * @param token
- * @return
- */
- public Machine searchMachineById(Long machineId, String token) {
- User userInfo = validateUserToken(token);
- if (userInfo == null) {
- return null;
- }
- Machine machine = machineMapper.selectMachineById(machineId);
- return machine;
- }
- /**
- * updateStatus
- *
- * @param status
- */
- @SuppressWarnings("unchecked")
- @Transactional
- public void updateStatus(String status) {
- // the method is expensive!
- Map<String, Object> map = new HashMap<>();
- try {
- map = mapper.readValue(status,new HashMap<String, Object>().getClass());
-
- } catch (IOException e) {
- logger.error(e.getMessage());
- e.printStackTrace();
- }
- for (Entry<String, Object> entry : map.entrySet()) {
- if (entry.getValue() instanceof String) {
- machineMapper.updateStatusByMac(entry.getKey(), entry.getValue().equals("0") ? "online" : "offline");
- } else {
- machineMapper.updateStatusByMac(entry.getKey(), (Integer)entry.getValue() == 0 ? "online" : "offline");
- }
- }
- }
- @Override
- public Long selectUserIDByDevId(String devId) {
- // TODO Auto-generated method stub
- return machineMapper.selectUserIDByDevId(devId);
- }
- }
|