|  | @@ -0,0 +1,260 @@
 | 
	
		
			
				|  |  | +package cn.com.usky.iot.userstatus.service;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  | +import java.util.Date;
 | 
	
		
			
				|  |  | +import java.util.HashMap;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Map;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import cn.com.usky.iot.EfAnalysis.dao.YtiotTEfAnalysisDao;
 | 
	
		
			
				|  |  | +import cn.com.usky.iot.admin.dao.YtiotVUserCompanyDao;
 | 
	
		
			
				|  |  | +import cn.com.usky.iot.entity.YtiotTAdminStateEntity;
 | 
	
		
			
				|  |  | +import cn.com.usky.iot.entity.YtiotTEfAnalysis;
 | 
	
		
			
				|  |  | +import cn.com.usky.iot.entity.YtiotTWaterAnalysis;
 | 
	
		
			
				|  |  | +import cn.com.usky.iot.entity.YtiotVUsercompany;
 | 
	
		
			
				|  |  | +import cn.com.usky.iot.entity.YtiotVUsercompanyId;
 | 
	
		
			
				|  |  | +import cn.com.usky.iot.userstatus.dao.YtiotTAdminStateEntityDao;
 | 
	
		
			
				|  |  | +import cn.com.usky.utils.DaoResult;
 | 
	
		
			
				|  |  | +import cn.com.usky.utils.MD5Util;
 | 
	
		
			
				|  |  | +import net.sf.json.JSONArray;
 | 
	
		
			
				|  |  | +import net.sf.json.JSONObject;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +public class YtiotTAdminStateEntityServicesImpl implements YtiotTAdminStateEntityService {
 | 
	
		
			
				|  |  | +	private YtiotTAdminStateEntityDao ytiotTAdminStateEntityDao;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public YtiotTAdminStateEntityDao getYtiotTAdminStateEntityDao() {
 | 
	
		
			
				|  |  | +		return ytiotTAdminStateEntityDao;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +			   
 | 
	
		
			
				|  |  | +	public void setYtiotTAdminStateEntityDao(YtiotTAdminStateEntityDao ytiotTAdminStateEntityDao) {
 | 
	
		
			
				|  |  | +		this.ytiotTAdminStateEntityDao = ytiotTAdminStateEntityDao;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private YtiotVUserCompanyDao ytiotVUserCompanyDao;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public YtiotVUserCompanyDao getYtiotVUserCompanyDao() {
 | 
	
		
			
				|  |  | +		return ytiotVUserCompanyDao;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +			   
 | 
	
		
			
				|  |  | +	public void setYtiotVUserCompanyDao(YtiotVUserCompanyDao ytiotVUserCompanyDao) {
 | 
	
		
			
				|  |  | +		this.ytiotVUserCompanyDao = ytiotVUserCompanyDao;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private YtiotTEfAnalysisDao ytiotTEfAnalysisDao;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public YtiotTEfAnalysisDao getYtiotTEfAnalysisDao() {
 | 
	
		
			
				|  |  | +		return ytiotTEfAnalysisDao;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +			   
 | 
	
		
			
				|  |  | +	public void setYtiotTEfAnalysisDao(YtiotTEfAnalysisDao ytiotTEfAnalysisDao) {
 | 
	
		
			
				|  |  | +		this.ytiotTEfAnalysisDao = ytiotTEfAnalysisDao;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public boolean chk_string_param(String param) {
 | 
	
		
			
				|  |  | +		if(param==null)
 | 
	
		
			
				|  |  | +			return true;
 | 
	
		
			
				|  |  | +		if(param.indexOf("=")>=0)
 | 
	
		
			
				|  |  | +			return false;
 | 
	
		
			
				|  |  | +		if(param.indexOf("\'")>=0)
 | 
	
		
			
				|  |  | +			return false;
 | 
	
		
			
				|  |  | +		if(param.indexOf("\"")>=0)
 | 
	
		
			
				|  |  | +			return false;
 | 
	
		
			
				|  |  | +		return true;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	public String chkhw(String hqlwhere){
 | 
	
		
			
				|  |  | +		if(hqlwhere==null)
 | 
	
		
			
				|  |  | +			return " where ";
 | 
	
		
			
				|  |  | +		else
 | 
	
		
			
				|  |  | +			return hqlwhere+" and ";
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	public String fieldname(String field){
 | 
	
		
			
				|  |  | +		if(field.equals("UUSID"))
 | 
	
		
			
				|  |  | +			return "uusid";
 | 
	
		
			
				|  |  | +		if(field.equals("V_LOGINNAME"))
 | 
	
		
			
				|  |  | +			return "vLoginname";
 | 
	
		
			
				|  |  | +		if(field.equals("STATE"))
 | 
	
		
			
				|  |  | +			return "state";
 | 
	
		
			
				|  |  | +		return null;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public String updateUserState(String queryJson) throws Exception {
 | 
	
		
			
				|  |  | +		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
 | 
	
		
			
				|  |  | +		String V_LOGINNAME = null;
 | 
	
		
			
				|  |  | +		String STATE = null;
 | 
	
		
			
				|  |  | +		JSONObject q_json = null;
 | 
	
		
			
				|  |  | +		JSONArray jSONArray = new JSONArray();
 | 
	
		
			
				|  |  | +		JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  | +		if(queryJson!=null) {
 | 
	
		
			
				|  |  | +			q_json = JSONObject.fromObject(queryJson);
 | 
	
		
			
				|  |  | +			V_LOGINNAME = q_json.has("V_LOGINNAME")?q_json.getString("V_LOGINNAME"):null;
 | 
	
		
			
				|  |  | +			STATE = q_json.has("STATE")?q_json.getString("STATE"):null;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		if(chk_string_param(V_LOGINNAME)) {
 | 
	
		
			
				|  |  | +			if(V_LOGINNAME!=null&&!V_LOGINNAME.equals("")&&STATE!=null&&!STATE.equals("")) {
 | 
	
		
			
				|  |  | +				List list = ytiotTAdminStateEntityDao.query(" where u."+fieldname("V_LOGINNAME")+" ='"+V_LOGINNAME+"' ", null, null, null, null);
 | 
	
		
			
				|  |  | +				if(list.size()>0) {
 | 
	
		
			
				|  |  | +					YtiotTAdminStateEntity o = (YtiotTAdminStateEntity) list.get(0);
 | 
	
		
			
				|  |  | +					if(o.getState().equals("1")&&STATE.equals("2")) {
 | 
	
		
			
				|  |  | +						o.setState("3");
 | 
	
		
			
				|  |  | +					}else if(o.getState().equals("2")&&STATE.equals("1")){
 | 
	
		
			
				|  |  | +						o.setState("3");
 | 
	
		
			
				|  |  | +					}else if(o.getState().equals("3")&&!STATE.equals("0")){
 | 
	
		
			
				|  |  | +						o.setState("3");
 | 
	
		
			
				|  |  | +					}else if(STATE.equals("0")){
 | 
	
		
			
				|  |  | +						o.setState("0");
 | 
	
		
			
				|  |  | +					}else {
 | 
	
		
			
				|  |  | +						o.setState(STATE);
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +					o.setTime(formatter.format(new Date()));
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +					DaoResult ret = ytiotTAdminStateEntityDao.update(o);
 | 
	
		
			
				|  |  | +					json.put("success", ret.isSuccess());
 | 
	
		
			
				|  |  | +					json.put("MSG", ret.getResult());
 | 
	
		
			
				|  |  | +				}else {
 | 
	
		
			
				|  |  | +					json.put("success", false);
 | 
	
		
			
				|  |  | +					json.put("MSG", "需要编辑的权限记录不存在");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}else {
 | 
	
		
			
				|  |  | +				json.put("success", false);
 | 
	
		
			
				|  |  | +				json.put("MSG", "登录用户不能为空");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}else {
 | 
	
		
			
				|  |  | +			json.put("success", false);
 | 
	
		
			
				|  |  | +			json.put("MSG", "缺少重要参数");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return json.toString();
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public String getUserStateList(String queryJson) throws Exception {
 | 
	
		
			
				|  |  | +		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
 | 
	
		
			
				|  |  | +		String V_LOGINNAME = null;
 | 
	
		
			
				|  |  | +		String hqlwhere = null;
 | 
	
		
			
				|  |  | +		String Company_Code_List = null;
 | 
	
		
			
				|  |  | +		JSONObject q_json = null;
 | 
	
		
			
				|  |  | +		JSONArray jSONArray = new JSONArray();
 | 
	
		
			
				|  |  | +		JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  | +		if(queryJson!=null) {
 | 
	
		
			
				|  |  | +			q_json = JSONObject.fromObject(queryJson);	
 | 
	
		
			
				|  |  | +			V_LOGINNAME = q_json.has("V_LOGINNAME")?q_json.getString("V_LOGINNAME"):null;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		if((V_LOGINNAME!=null)&&(!V_LOGINNAME.equals(""))) {
 | 
	
		
			
				|  |  | +			String where1 = " where u.id.agentid='"+V_LOGINNAME+"' ";
 | 
	
		
			
				|  |  | +			List list1 = ytiotVUserCompanyDao.query(where1, null, null, null, null);
 | 
	
		
			
				|  |  | +			if(list1.size()>0) {
 | 
	
		
			
				|  |  | +				for(int i=0;i<list1.size();i++) {
 | 
	
		
			
				|  |  | +					YtiotVUsercompany a1 = (YtiotVUsercompany)list1.get(i);
 | 
	
		
			
				|  |  | +					YtiotVUsercompanyId oid = a1.getId();
 | 
	
		
			
				|  |  | +					if(i==0) {
 | 
	
		
			
				|  |  | +						Company_Code_List = "'" + oid.getOwnerCode() + "'";
 | 
	
		
			
				|  |  | +					}else {
 | 
	
		
			
				|  |  | +						Company_Code_List +=",'" +oid.getOwnerCode() + "'";
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}else {
 | 
	
		
			
				|  |  | +				json.put("success", false);
 | 
	
		
			
				|  |  | +				json.put("mgs", "数据错误");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				hqlwhere = chkhw(hqlwhere) + "u."+fieldname("V_LOGINNAME")+"='"+V_LOGINNAME+"'";
 | 
	
		
			
				|  |  | +				List list = ytiotTAdminStateEntityDao.query(hqlwhere,null ,null, null, null);
 | 
	
		
			
				|  |  | +				if(list.size()>0) {
 | 
	
		
			
				|  |  | +					YtiotTAdminStateEntity o = (YtiotTAdminStateEntity)list.get(0);
 | 
	
		
			
				|  |  | +					Map map = new HashMap();
 | 
	
		
			
				|  |  | +					if(o.getState().equals("0")) {
 | 
	
		
			
				|  |  | +						map.put("UUSID", o.getUusid());
 | 
	
		
			
				|  |  | +		            	map.put("V_LOGINNAME", o.getvLoginname());
 | 
	
		
			
				|  |  | +		            	map.put("STATE", "0");
 | 
	
		
			
				|  |  | +					}else if(o.getState().equals("1")||o.getState().equals("2")){
 | 
	
		
			
				|  |  | +						map.put("UUSID", o.getUusid());
 | 
	
		
			
				|  |  | +		            	map.put("V_LOGINNAME", o.getvLoginname());
 | 
	
		
			
				|  |  | +		            	map.put("STATE", o.getState());
 | 
	
		
			
				|  |  | +					}else if(o.getState().equals("3")){
 | 
	
		
			
				|  |  | +						String where2 = " where u.companyCode in("+Company_Code_List+") ";
 | 
	
		
			
				|  |  | +						List list2 = ytiotTEfAnalysisDao.query(where2, " order by u.id ", " desc ", null, null);
 | 
	
		
			
				|  |  | +						YtiotTEfAnalysis o2 = (YtiotTEfAnalysis)list2.get(0);
 | 
	
		
			
				|  |  | +						
 | 
	
		
			
				|  |  | +						String where3 = " where u.companyCode in("+Company_Code_List+") ";
 | 
	
		
			
				|  |  | +						List list3 = ytiotTEfAnalysisDao.queryWater(where3, " order by u.id ", " desc ", null, null);
 | 
	
		
			
				|  |  | +						YtiotTWaterAnalysis o3 = (YtiotTWaterAnalysis)list3.get(0);
 | 
	
		
			
				|  |  | +						
 | 
	
		
			
				|  |  | +						int startDay1=0;
 | 
	
		
			
				|  |  | +						int startDay2=0;
 | 
	
		
			
				|  |  | +						int endDay=0;
 | 
	
		
			
				|  |  | +						if(list2.size()>0&&list3.size()>0) {
 | 
	
		
			
				|  |  | +							try {
 | 
	
		
			
				|  |  | +					            Date dateStart1 = formatter.parse(o2.getGenerationTime());
 | 
	
		
			
				|  |  | +					            Date dateStart2 = formatter.parse(o3.getGenerationTime());
 | 
	
		
			
				|  |  | +					            Date datEnd = formatter.parse(o.getTime());
 | 
	
		
			
				|  |  | +					            startDay1 = (int) (dateStart1.getTime() / 1000);
 | 
	
		
			
				|  |  | +					            startDay2 = (int) (dateStart2.getTime() / 1000);
 | 
	
		
			
				|  |  | +					            endDay = (int) (datEnd.getTime() / 1000);
 | 
	
		
			
				|  |  | +					            
 | 
	
		
			
				|  |  | +					        } catch (Exception e) {
 | 
	
		
			
				|  |  | +					            e.printStackTrace();
 | 
	
		
			
				|  |  | +					        }
 | 
	
		
			
				|  |  | +							
 | 
	
		
			
				|  |  | +							if(startDay1>=endDay&&startDay2>=endDay) {
 | 
	
		
			
				|  |  | +					        	//未读
 | 
	
		
			
				|  |  | +								map.put("UUSID", o.getUusid());
 | 
	
		
			
				|  |  | +				            	map.put("V_LOGINNAME", o.getvLoginname());
 | 
	
		
			
				|  |  | +				            	map.put("STATE", "0");
 | 
	
		
			
				|  |  | +				            }else if(startDay1<endDay&&startDay2>=endDay){
 | 
	
		
			
				|  |  | +					        	//已读
 | 
	
		
			
				|  |  | +				            	map.put("UUSID", o.getUusid());
 | 
	
		
			
				|  |  | +				            	map.put("V_LOGINNAME", o.getvLoginname());
 | 
	
		
			
				|  |  | +				            	map.put("STATE", "1");
 | 
	
		
			
				|  |  | +				            }else if(startDay1>=endDay&&startDay2<endDay){
 | 
	
		
			
				|  |  | +					        	//已读
 | 
	
		
			
				|  |  | +				            	map.put("UUSID", o.getUusid());
 | 
	
		
			
				|  |  | +				            	map.put("V_LOGINNAME", o.getvLoginname());
 | 
	
		
			
				|  |  | +				            	map.put("STATE", "2");
 | 
	
		
			
				|  |  | +				            }else if(startDay1<endDay&&startDay2<endDay){
 | 
	
		
			
				|  |  | +					        	//已读
 | 
	
		
			
				|  |  | +				            	map.put("UUSID", o.getUusid());
 | 
	
		
			
				|  |  | +				            	map.put("V_LOGINNAME", o.getvLoginname());
 | 
	
		
			
				|  |  | +				            	map.put("STATE", "3");
 | 
	
		
			
				|  |  | +				            }
 | 
	
		
			
				|  |  | +						
 | 
	
		
			
				|  |  | +						}else {
 | 
	
		
			
				|  |  | +							json.put("success", false);
 | 
	
		
			
				|  |  | +							json.put("mgs", "数据错误");
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +					JSONObject jSONObject = JSONObject.fromObject(map);
 | 
	
		
			
				|  |  | +					jSONArray.add(jSONObject);
 | 
	
		
			
				|  |  | +					json.put("RESULT", jSONArray);
 | 
	
		
			
				|  |  | +					json.put("success", true);
 | 
	
		
			
				|  |  | +					json.put("mgs", "操作成功");
 | 
	
		
			
				|  |  | +				}else {
 | 
	
		
			
				|  |  | +					json.put("success", false);
 | 
	
		
			
				|  |  | +					json.put("mgs", "数据错误");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +		}else {
 | 
	
		
			
				|  |  | +			json.put("success", false);
 | 
	
		
			
				|  |  | +			json.put("mgs", "缺少重要参数");
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return json.toString();
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +}
 |