package com.jeeplus.modules.cardservice;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
import org.apache.ibatis.annotations.Param;
|
import org.apache.log4j.Logger;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.context.request.RequestContextHolder;
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
import com.jeeplus.modules.sign.entity.FormSign;
|
import com.jeeplus.modules.sign.service.FormSignService;
|
import com.jeeplus.modules.sportsign.entity.SportSign;
|
import com.jeeplus.modules.sportsign.service.SportSignService;
|
|
@Controller
|
@RequestMapping(value = "${adminPath}/1")
|
public class CardServiceController {
|
|
|
@Autowired
|
private FormSignService formSignService;
|
|
@Autowired
|
private SportSignService sportSignService;
|
|
/**
|
* 上报数据
|
|
*/
|
public boolean isEmpty(String str){
|
return str==null || str.trim().length()==0;
|
}
|
public String ajax(String content){
|
HttpServletRequest req = getRequest();
|
req.setAttribute("content", content);
|
|
return "forward:/frame-jsp/ajax.jsp";
|
}
|
public HttpServletRequest getRequest(){
|
HttpServletRequest req = ((ServletRequestAttributes)
|
RequestContextHolder.getRequestAttributes()).getRequest();
|
return req;
|
}
|
|
Logger log = Logger.getLogger(this.getClass());
|
|
|
//上报考勤数据
|
public String upLocationApi(String locations,String schoolId,String transferId,String accessKey) {
|
|
|
String[] location = locations.split("[|]");
|
if(location.length %4 !=0){
|
return null;
|
}
|
|
for(int i=0; i<location.length; i+=4){
|
String cardNo = location[i].trim();
|
String positionId = location[i+1].trim();
|
String locType = location[i+2].trim();
|
String locTime = location[i+3].trim();
|
|
|
|
Date time = new Date(Long.valueOf(locTime));
|
locTime = time.toString();
|
|
FormSign formSign = new FormSign();
|
formSign.setSignTime(time);
|
formSign.setSignType(locType);
|
formSign.setSignUserID(cardNo);
|
formSign.setDelFlag("0");
|
formSign.setLocationId(positionId);
|
formSign.setSchoolId(schoolId);
|
formSign.setAccessKey(accessKey);
|
formSign.setTransferId(transferId);
|
formSignService.save(formSign);//保存
|
|
|
}
|
|
//TODO: 如果配置发生变化,则需返回 ok:config,提示下位机重新获取配置
|
|
return "ok";
|
}
|
//上报课外活动数据
|
public String upSportApi(String locations,String schoolId,String transferId,String accessKey) {
|
|
|
String[] location = locations.split("[|]");
|
if(location.length %3 !=0){
|
return null;
|
}
|
|
for(int i=0; i<location.length; i+=3){
|
String cardNo = location[i].trim();
|
String enterTime = location[i+1].trim();
|
String OutTime = location[i+2].trim();
|
|
|
|
|
Date entertime = new Date(Long.valueOf(enterTime));
|
Date outtime = new Date(Long.valueOf(OutTime));
|
|
|
SportSign formSign = new SportSign();
|
|
formSign.setSignEnterTime(entertime);
|
formSign.setSignOutTime(outtime);
|
formSign.setSignCardID(cardNo);
|
formSign.setDelFlag("0");
|
formSign.setSchoolId(schoolId);
|
formSign.setAccessKey(accessKey);
|
formSign.setTransferId(transferId);
|
long seconds = outtime.getTime()-entertime.getTime();
|
formSign.setTimeCount(String.valueOf(seconds/(1000*60)));//将时间差转换为分钟
|
// if(seconds>=15)
|
sportSignService.save(formSign);//保存
|
|
|
|
}
|
|
//TODO: 如果配置发生变化,则需返回 ok:config,提示下位机重新获取配置
|
|
return "ok";
|
}
|
|
@RequestMapping(value="Api", method=RequestMethod.POST)
|
public String api(@Param("requestId") String requestId,
|
@Param("schoolId") String schoolId,
|
@Param("transferId") String transferId,
|
@Param("accessKey") String accessKey,
|
HttpServletRequest req,
|
HttpServletResponse resp) {
|
|
if(this.isEmpty(requestId)
|
|| this.isEmpty(schoolId)
|
|| this.isEmpty(transferId)
|
|| this.isEmpty(accessKey)){
|
return this.ajax("-1,请求参数不正确");
|
}
|
|
/*if(locMapper.checkSchoolAccessKey(schoolId, accessKey)<=0){
|
resp.setStatus(500);
|
return this.ajax("-20,请求参数的学校不存在");
|
}
|
|
TbLocTransfer transfer = locMapper.getSchoolTransferDevice(
|
schoolId, Integer.valueOf(transferId));
|
|
if(transfer ==null){
|
resp.setStatus(500);
|
return this.ajax("-21,请求参数的转发设备不存在");
|
}*/
|
|
String ret = null;
|
try{
|
if(requestId.equals("getLocateConfig")){
|
//this.getLocateConfig(this.locMapper, transfer);
|
Date now = new Date();
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//可以方便地修改日期格式
|
|
|
String timenow = dateFormat.format( now );
|
ret=timenow;
|
}
|
else if(requestId.endsWith("uploadLocation"))
|
{
|
|
String locations = req.getParameter("locations");
|
if(this.isEmpty(locations)){
|
resp.setStatus(500);
|
return this.ajax("-30,上报数据为空");
|
}
|
ret = this.upLocationApi(locations,schoolId,transferId,accessKey);
|
}
|
else if(requestId.endsWith("uploadSport"))
|
{
|
|
String locations = req.getParameter("locations");
|
if(this.isEmpty(locations)){
|
resp.setStatus(500);
|
return this.ajax("-30,上报数据为空");
|
}
|
ret = this.upSportApi(locations,schoolId,transferId,accessKey);
|
}
|
}catch(Throwable t){
|
log.error(t);
|
}
|
|
if(ret ==null){
|
resp.setStatus(500);
|
return this.ajax("-90,系统处理错误");
|
}
|
|
return this.ajax(ret);
|
}
|
|
|
private SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
|
}
|