package com.nationalelectric.greenH5;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URLDecoder;
import java.security.NoSuchAlgorithmException;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.nationalelectirc.Constant.Constant;
import com.nationalelectirc.utils.AESUtil;
import com.nationalelectirc.utils.AesEncryptUtil;
import com.nationalelectirc.utils.HttpClient;
import com.nationalelectirc.utils.MD5Util;
import com.nationalelectirc.utils.RestResult;
import com.nationalelectric.greenH5.DTO.GreenCardConsumptionDTO;
import com.nationalelectric.greenH5.bizc.IGreenImageInfoBizc;
import com.nationalelectric.greenH5.bizc.IGreenOperateLogBizc;
import com.nationalelectric.greenH5.bizc.IGreenUserInfoBizc;
import com.nationalelectric.greenH5.po.CheckUserInfo;
import com.nationalelectric.greenH5.po.GreenCardConsumption;
import com.nationalelectric.greenH5.po.GreenImageInfo;
import com.nationalelectric.greenH5.po.GreenPermission;
import com.nationalelectric.greenH5.po.GreenUserInfo;
import com.nationalelectric.greenH5.po.Result;
import com.nationalelectric.greenH5.po.SysMealInfo;
import com.nationalelectric.greenH5.po.UcenterParam;
import com.nationalelectric.greenH5.po.UserVo;
import com.nationalelectric.greenH5.utils.DateUtil;
import com.nationalelectric.greenH5.utils.DesUtil;
import com.nationalelectric.greenH5.utils.EncryptUtil;
import com.nationalelectric.greenH5.utils.JSONUtil;
import com.sgcc.isc.service.adapter.utils.JsonUtil;
import com.sgcc.uap.mdd.model.utils.StringUtil;
import com.sgcc.uap.persistence.IHibernateDao;
import net.sf.json.JSONArray;
/**
* 概述:
*
*
* 功能:
*
*
* @author chenweikang
*/
@Controller
@RequestMapping("/greenUserInfo")
public class GreenUserInfoController extends GreenBaseController {
/**
* greenuserinfo GreenUserInfo逻辑构件
*/
@Resource
private IGreenUserInfoBizc greenuserinfoBizc;
@Resource
private IGreenUserInfoBizc greenUserInfoBizc;
@Resource
private IGreenOperateLogBizc greenOperateLogBizc;
@Resource
private GreenDictionaryInfoController greenDictionaryInfoController;
/**
* HibernateDao逻辑构件
*/
@Autowired
IHibernateDao hibernateDao;
private static final String KY = "e7033d5ccecd45ba";
private static final String IV = "d885b28044194523";
private String CK_MONEY_URL = null;
private String CK_JY_URL = null;
private String CK_KY = null;
private String CK_IV = null;
private String CK_CONSUM_URL = null;
// @Autowired
// private JdbcUtil jdbcUtil;
@Resource
private IGreenImageInfoBizc greenimageinfoBizc;
/*
*
*/
@ResponseBody
@RequestMapping(value = "/checkUserInfo", method = RequestMethod.POST)
public HashMap checkUserInfo(@RequestBody Object requestBody) throws Exception {
UcenterParam ucenterParam = new ObjectMapper().convertValue(requestBody, new TypeReference() {
});
HashMap map = new HashMap();
System.out.println("checkUserInfo:数据--->" + ucenterParam.getData());
String DATAstring = AesEncryptUtil.desEncrypt(ucenterParam.getData());
// System.out.println("我们的解密:"+DATAstring);
String dataString2 = AESUtil.Decrypt(ucenterParam.getData(), KY, IV);
System.out.println("third en---->:" + dataString2);
JSONObject preDataSandUserCode = new JSONObject(dataString2);
String userCode = preDataSandUserCode.getString("usercode");
String str = "green_tk_" + userCode;
String md5 = MD5Util.getMD5(str);
if (!md5.equals(preDataSandUserCode.getString("sign"))) {
return map;
}
String desData = null;
CheckUserInfo userInfo = null;
try {
// String stri =
// "{\"mobile_phone\":\"13709801236\",\"meal_no\":\"\",\"user_name\":\"n123\",\"department\":\"n123\",\"company\":\"n123\",\"channelNum\":\"001\"}";
GreenUserInfo greenUserInfo = greenUserInfoBizc.get(userCode);
// JSONObject json = new JSONObject(stri);
userInfo = new CheckUserInfo();
userInfo.setUser_name(greenUserInfo.getLoginName());
userInfo.setCompany(greenUserInfo.getCompony());
userInfo.setDepartment(greenUserInfo.getDepartmentName());
userInfo.setMeal_no(greenUserInfo.getMealNo());
userInfo.setMobile_phone(greenUserInfo.getMobile());
// json.put("mobile_phone", greenUserInfo.getMobile());
// json.put("meal_no", greenUserInfo.getMealNo());
// json.put("user_name", greenUserInfo.getLoginName());
// json.put("department", greenUserInfo.getDepartmentName());
// json.put("company", greenUserInfo.getCompony());
String json = JsonUtil.toJson(userInfo);
desData = AESUtil.Encrypt(json, KY, IV);
map.put("data", desData);
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
/*
*
* 作废接口,不再使用了 前端 获取token 校验用户是否绑定餐卡
*/
@ResponseBody
@RequestMapping(value = "/userMealNo", method = RequestMethod.POST)
public RestResult userMealNo(@RequestBody Object requestBody) {
try {
GreenUserInfo greenUserInfo = new ObjectMapper().convertValue(requestBody,
new TypeReference() {
});
if (greenUserInfo.getId() != null) {
String id = greenUserInfo.getId();
String userInfoSql = "SELECT * FROM GREEN_USER_INFO WHERE id=?";
List userInfolist = hibernateDao.queryForListWithSql(userInfoSql, new Object[] { id },
new BeanPropertyRowMapper(GreenUserInfo.class));// 根据用户id获取用户餐卡号
if (userInfolist.get(0).getMealNo() != null) {
return new RestResult(Constant.SUCCESS, "请求成功!");
}
return new RestResult(Constant.FAILED, "卡号不存在");
}
return new RestResult(Constant.FAILED, "用户id为空");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return new RestResult(Constant.FAILED, "请求失败");
}
}
/**
* 取余额请求URL
*
* @return
*/
private String getCkMoneyUrl() {
if (this.CK_MONEY_URL == null) {
String dataType = "ticketUrl";
String dataCode = "001";
List