From f74ecba5f577a41ec3c8d678a18773c8d9748eb8 Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Mon, 18 Dec 2017 08:44:52 +0800
Subject: [PATCH] 机器激活码 接口

---
 src/main/resources/system/sysConfig.properties                       |    2 
 src/main/java/com/moral/common/bean/Constants.java                   |    4 +
 src/main/java/com/moral/controller/ReportController.java             |    2 
 src/main/java/com/moral/controller/MobileController.java             |   21 ++--
 src/main/java/com/moral/entity/MachineActivate.java                  |   48 ++++++++++++
 src/main/java/com/moral/controller/ScreenController.java             |   28 +++++-
 src/main/java/com/moral/service/impl/MachineActivateServiceImpl.java |   75 ++++++++++++++++++
 src/main/java/com/moral/mapper/MachineActivateMapper.java            |    8 ++
 src/main/java/com/moral/service/MachineActivateService.java          |   11 ++
 9 files changed, 182 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/moral/common/bean/Constants.java b/src/main/java/com/moral/common/bean/Constants.java
index 071f5c3..79474f6 100644
--- a/src/main/java/com/moral/common/bean/Constants.java
+++ b/src/main/java/com/moral/common/bean/Constants.java
@@ -13,5 +13,9 @@
 	
 	/** The Constant NULL_VALUE. */
 	public static final String NULL_VALUE = "N/V";
+	
+	public static final String IS_USED_FALSE = "0";
+
+	public static final String IS_USED_TRUE = "0";
 }
 
diff --git a/src/main/java/com/moral/controller/MobileController.java b/src/main/java/com/moral/controller/MobileController.java
index ca4d05e..09b9c68 100644
--- a/src/main/java/com/moral/controller/MobileController.java
+++ b/src/main/java/com/moral/controller/MobileController.java
@@ -28,7 +28,7 @@
  * The Class MobileController.
  */
 @RestController
-@RequestMapping(value = "mobile")
+@RequestMapping("mobile")
 @CrossOrigin(origins = "*", maxAge = 3600)
 public class MobileController {
 
@@ -55,7 +55,7 @@
 	 * @param password the password
 	 * @return the result bean
 	 */
-	@GetMapping(value = "accountlogin")
+	@GetMapping("accountlogin")
 	public ResultBean<OperateUser> mobileLogin(String username, String password) {
 		OperateUser operateUser = operateUserService.mobileLogin(username,password);
 		return new ResultBean<OperateUser>(operateUser); 
@@ -69,7 +69,7 @@
 	 * @param newpassword the newpassword
 	 * @return the result bean
 	 */
-	@GetMapping(value = "upPassword")
+	@GetMapping("upPassword")
 	public ResultBean<OperateUser> updatePassword(Integer uid, String password, String newpassword) {
 		OperateUser operateUser = operateUserService.updatePassword(uid,password,newpassword);
 		return new ResultBean<OperateUser>(operateUser); 
@@ -81,7 +81,7 @@
 	 * @param device the device
 	 * @return the result bean
 	 */
-	@GetMapping(value = "reportDevice")
+	@GetMapping("reportDevice")
 	public ResultBean<String> installDevice(Device device) {
 		deviceService.saveOrUpdateDevice(device);
 		return new ResultBean<String>("");
@@ -95,9 +95,10 @@
 	 * @param pageSize the page size
 	 * @return the install devices by operate user
 	 */
-	@GetMapping(value = "myRelease")
-	public ResultBean<List<Device>> getInstallDevicesByOperateUser(@RequestParam(value="uid", required=true)Integer uid, @RequestParam(defaultValue="0")Integer pageIndex, @RequestParam(defaultValue="0")Integer pageSize) {
-		List<Device> devices = deviceService.getInstallDevicesByOperateUser(uid,pageIndex,pageSize);
+	@GetMapping("myRelease")
+	public ResultBean<List<Device>> getInstallDevicesByOperateUser(@RequestParam(value="uid", required=true)Integer uid, 
+			@RequestParam(defaultValue="0")Integer pageIndex, @RequestParam(defaultValue="0")Integer pageSize) {
+		List<Device> devices = deviceService.getInstallDevicesByOperateUser(uid, pageIndex, pageSize);
 		return new ResultBean<List<Device>>(devices);
 	}
 
@@ -107,7 +108,7 @@
 	 * @param mac the mac
 	 * @return the device by mac
 	 */
-	@GetMapping(value = "getEquInfoByMac")
+	@GetMapping("getEquInfoByMac")
 	public ResultBean<Device> getDeviceByMac(@RequestParam(value="mac", required=true)String mac) {
 		Device device = deviceService.getDeviceByMac(mac);
 		return new ResultBean<Device>(device);
@@ -119,7 +120,7 @@
 	 * @param areaName the area name
 	 * @return the monitor points by area name
 	 */
-	@GetMapping(value = "getMpointsByAreaName")
+	@GetMapping("getMpointsByAreaName")
 	public ResultBean<List<MonitorPoint>> getMonitorPointsByAreaName(HttpServletRequest request) {
 		Map<String, Object> parameters = getParametersStartingWith(request, null);
 		List<MonitorPoint> monitorPoints = monitorPointService.getMonitorPointsByAreaName(parameters);
@@ -132,7 +133,7 @@
 	 * @param areaName the area name
 	 * @return the organizations by area name
 	 */
-	@GetMapping(value = "getOrgsByAreaName")
+	@GetMapping("getOrgsByAreaName")
 	public ResultBean<List<Organization>> getOrganizationsByAreaName(HttpServletRequest request) {
 		Map<String, Object> parameters = getParametersStartingWith(request, null);
 		List<Organization> organizations = organizationService.getOrganizationsByAreaName(parameters);
diff --git a/src/main/java/com/moral/controller/ReportController.java b/src/main/java/com/moral/controller/ReportController.java
index 866411a..d866077 100644
--- a/src/main/java/com/moral/controller/ReportController.java
+++ b/src/main/java/com/moral/controller/ReportController.java
@@ -24,7 +24,7 @@
 import com.moral.service.HistoryService;
 
 @RestController
-@RequestMapping(value = "report")
+@RequestMapping("report")
 @CrossOrigin(origins = "*", maxAge = 3600)
 public class ReportController {
 
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index a140d21..f101ce2 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -18,6 +18,7 @@
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
@@ -29,12 +30,13 @@
 import com.moral.service.AccountService;
 import com.moral.service.DeviceService;
 import com.moral.service.HistoryService;
+import com.moral.service.MachineActivateService;
 
 /**
  * The Class ScreenController.������������
  */
 @RestController
-@RequestMapping(value = "screen")
+@RequestMapping("screen")
 @CrossOrigin(origins = "*", maxAge = 3600)
 public class ScreenController {
 
@@ -49,6 +51,9 @@
 	/** The device service. */
 	@Resource
 	private DeviceService deviceService;
+	
+	@Resource
+	private MachineActivateService machineActivateService;
 
 	/** The resource. */
 	@Value(value = "classpath:system/alarmLevels.json")
@@ -59,7 +64,7 @@
 	private RedisTemplate<String, String> redisTemplate;
 
 	/** The level key. */
-	private String levelKey = "alarm_level_config";
+	private String levelKey = "alarm_";
 
 	/**
 	 * Screen login. ������������
@@ -104,16 +109,18 @@
 	 */
 	@SuppressWarnings("resource")
 	@GetMapping("alarm-levels")
-	public Map<String, Object> getAlarmLevels(HttpServletRequest request) {
+	public Map<String, Object> getAlarmLevels(HttpServletRequest request,String orgId) {
 		Map<String, Object> result = new LinkedHashMap<String, Object>();
+		String key = levelKey + orgId;
 		try {
-			if (hasKey(redisTemplate, levelKey)) {
-				String levelConfigStr = get(redisTemplate, levelKey);
+			if (hasKey(redisTemplate, key)) {
+				String levelConfigStr = get(redisTemplate, key);
 				result = JSON.parseObject(levelConfigStr, new TypeReference<Map<String, Object>>() {});
 			} else {
 				InputStreamReader reader = new InputStreamReader(resource.getInputStream());
 				result = new JSONReader(reader).readObject(new TypeReference<LinkedHashMap<String, Object>>() {});
 			}
+			
 		} catch (IOException e) {
 			e.printStackTrace();
 			result.put("msg", "���������������������������������������������������" + e.getMessage());
@@ -188,4 +195,15 @@
 		return historyService.getMonthAverageBySensor(parameters);
 	}
 
+	@GetMapping("check-activate")
+	public Map<String, Object> checkActivate(String macCpuCode) {
+		return machineActivateService.checkActivate(macCpuCode);
+	}
+
+	@PostMapping("activate-machine")
+	public Map<String, Object> activateMachine(HttpServletRequest request) {
+		Map<String, Object> parameters = getParametersStartingWith(request, null);
+		return machineActivateService.activateMachine(parameters);
+	}
+
 }
diff --git a/src/main/java/com/moral/entity/MachineActivate.java b/src/main/java/com/moral/entity/MachineActivate.java
new file mode 100644
index 0000000..bcf012f
--- /dev/null
+++ b/src/main/java/com/moral/entity/MachineActivate.java
@@ -0,0 +1,48 @@
+package com.moral.entity;
+
+import java.util.Date;
+
+import javax.persistence.Id;
+
+import lombok.Data;
+
+@Data
+public class MachineActivate {
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column machine_activate.id
+	 * @mbg.generated  Fri Dec 15 09:47:31 CST 2017
+	 */
+	@Id
+	private Integer id;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column machine_activate.mac_cpu_code
+	 * @mbg.generated  Fri Dec 15 09:47:31 CST 2017
+	 */
+	private String macCpuCode;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column machine_activate.activation_code
+	 * @mbg.generated  Fri Dec 15 09:47:31 CST 2017
+	 */
+	private String activationCode;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column machine_activate.organization_id
+	 * @mbg.generated  Fri Dec 15 09:47:31 CST 2017
+	 */
+	private Integer organizationId;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column machine_activate.is_used
+	 * @mbg.generated  Fri Dec 15 09:47:31 CST 2017
+	 */
+	private String isUsed;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column machine_activate.create_time
+	 * @mbg.generated  Fri Dec 15 09:47:31 CST 2017
+	 */
+	private Date createTime;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column machine_activate.expire_date
+	 * @mbg.generated  Fri Dec 15 09:47:31 CST 2017
+	 */
+	private Date expireDate;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/moral/mapper/MachineActivateMapper.java b/src/main/java/com/moral/mapper/MachineActivateMapper.java
new file mode 100644
index 0000000..923598c
--- /dev/null
+++ b/src/main/java/com/moral/mapper/MachineActivateMapper.java
@@ -0,0 +1,8 @@
+package com.moral.mapper;
+
+import com.moral.common.mapper.BaseMapper;
+import com.moral.entity.MachineActivate;
+
+public interface MachineActivateMapper extends BaseMapper<MachineActivate>{
+ 
+}
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/MachineActivateService.java b/src/main/java/com/moral/service/MachineActivateService.java
new file mode 100644
index 0000000..edfe810
--- /dev/null
+++ b/src/main/java/com/moral/service/MachineActivateService.java
@@ -0,0 +1,11 @@
+package com.moral.service;
+
+import java.util.Map;
+
+public interface MachineActivateService {
+
+	Map<String, Object> checkActivate(String macCpuCode);
+
+	Map<String, Object> activateMachine(Map<String, Object> parameters);
+
+}
diff --git a/src/main/java/com/moral/service/impl/MachineActivateServiceImpl.java b/src/main/java/com/moral/service/impl/MachineActivateServiceImpl.java
new file mode 100644
index 0000000..e49e743
--- /dev/null
+++ b/src/main/java/com/moral/service/impl/MachineActivateServiceImpl.java
@@ -0,0 +1,75 @@
+package com.moral.service.impl;
+
+import static org.apache.commons.lang3.time.DateUtils.truncate;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import com.moral.common.bean.Constants;
+import com.moral.common.exception.BusinessException;
+import com.moral.common.util.ValidateUtil;
+import com.moral.entity.MachineActivate;
+import com.moral.mapper.MachineActivateMapper;
+import com.moral.service.MachineActivateService;
+
+import tk.mybatis.mapper.entity.Example;
+import tk.mybatis.mapper.entity.Example.Criteria;
+
+@Service
+public class MachineActivateServiceImpl implements MachineActivateService {
+
+	@Resource
+	private MachineActivateMapper machineActivateMapper;
+
+	@Override
+	public Map<String, Object> checkActivate(String macCpuCode) {
+		ValidateUtil.notEmpty(macCpuCode, "param.is.null");
+
+		Map<String, Object> map = new HashMap<String, Object>();
+		String result = "1";
+		MachineActivate machineActivate = new MachineActivate();
+		machineActivate.setMacCpuCode(macCpuCode);
+		machineActivate = machineActivateMapper.selectOne(machineActivate);
+		if (ObjectUtils.isEmpty(machineActivate)) {
+			result = "0";
+		}
+		map.put("result", result);
+
+		return map;
+	}
+
+	@Override
+	@Transactional
+	public Map<String, Object> activateMachine(Map<String, Object> parameters) {
+		ValidateUtil.notNull(parameters.get("macCpuCode"), "param.is.null");
+		ValidateUtil.notNull(parameters.get("activationCode"), "param.is.null");
+
+		Map<String, Object> map = new HashMap<String, Object>();
+
+		Example example = new Example(MachineActivate.class);
+		Criteria criteria = example.createCriteria();
+		criteria.andEqualTo("activationCode", parameters.get("activationCode"));
+		criteria.andEqualTo("isUsed",Constants.IS_USED_FALSE);
+		criteria.andGreaterThanOrEqualTo("expireDate", truncate(new Date(), Calendar.DATE));
+		List<MachineActivate> machineActivates = machineActivateMapper.selectByExample(example);
+		if (ObjectUtils.isEmpty(machineActivates)) {
+			throw new BusinessException("������������������������������������������");
+		}
+		MachineActivate machineActivate = machineActivates.get(0);
+		machineActivate.setIsUsed(Constants.IS_DELETE_TRUE);
+		machineActivate.setMacCpuCode((String) parameters.get("macCpuCode"));
+		int updateCount = machineActivateMapper.updateByPrimaryKeySelective(machineActivate);
+		map.put("result", updateCount);
+		return map;	
+	}
+
+}
diff --git a/src/main/resources/system/sysConfig.properties b/src/main/resources/system/sysConfig.properties
index 1e488b7..649686b 100644
--- a/src/main/resources/system/sysConfig.properties
+++ b/src/main/resources/system/sysConfig.properties
@@ -25,4 +25,4 @@
 e17-standard=150
 e18-standard=9
 e19-standard=50
-orgId=5212b9dfb55448e699889e01fa0fa6a2
\ No newline at end of file
+orgId=-1
\ No newline at end of file

--
Gitblit v1.8.0