package com.nationalelectric.greenH5;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.locks.ReentrantLock;
import javax.annotation.Resource;
import org.apache.commons.lang.StringUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
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.jysoft.unipush.AliasManage;
import com.jysoft.weChat.service.WechatService;
import com.jysoft.weChat.vo.ContentVo;
import com.nationalelectirc.Constant.Constant;
import com.nationalelectirc.utils.RestResult;
import com.nationalelectric.greenH5.DTO.GreenFoodOrderDetailDTO;
import com.nationalelectric.greenH5.DTO.GreenFoodOrderListDTO;
import com.nationalelectric.greenH5.bizc.BaseServiceImpl;
import com.nationalelectric.greenH5.bizc.IGreenDrugsApplyBizc;
import com.nationalelectric.greenH5.bizc.IGreenDrugsDetailBizc;
import com.nationalelectric.greenH5.bizc.IGreenFoodOrderDetailBizc;
import com.nationalelectric.greenH5.bizc.IGreenOperateLogBizc;
import com.nationalelectric.greenH5.enums.OrderStatus;
import com.nationalelectric.greenH5.enums.PayStatus;
import com.nationalelectric.greenH5.enums.TakeStatus;
import com.nationalelectric.greenH5.po.GreenDiningRoom;
import com.nationalelectric.greenH5.po.GreenDrugsApply;
import com.nationalelectric.greenH5.po.GreenDrugsDetail;
import com.nationalelectric.greenH5.po.GreenFaultReply;
import com.nationalelectric.greenH5.po.GreenFoodOrderDetail;
import com.nationalelectric.greenH5.po.GreenFoodOrderList;
import com.nationalelectric.greenH5.po.GreenReport;
import com.nationalelectric.greenH5.po.GreenUsecarApply;
import com.nationalelectric.greenH5.po.GreenUserInfo;
import com.nationalelectric.greenH5.po.GreenWashCarInfo;
import com.nationalelectric.greenH5.utils.DateTime;
import com.nationalelectric.greenH5.utils.DateUtil;
import com.sgcc.uap.persistence.IHibernateDao;
import com.sgcc.uap.service.validator.ServiceValidatorBaseException;
import net.sf.json.JSONObject;
import net.sf.json.JSONArray;
/**
* 概述:
*
* 功能:
*
* @author chenweikang
*/
@Controller
@RequestMapping("/greenReport")
public class GreenReportController extends GreenBaseController {
@Resource
private IHibernateDao hibernateDao;
@Autowired
private BaseServiceImpl baseService;
@Resource
private WechatService wService;
/**
* 保存图片controller
*/
@Resource
private GreenImageInfoController greenImageInfoController;
/**
* greenfoodorderdetail GreenFoodOrderDetail逻辑构件
*/
@Resource
private IGreenOperateLogBizc greenOperateLogBizc;
@Resource
private AliasManageController aliasManageController;
private ReentrantLock lock = new ReentrantLock();
/**提交订单*/
@SuppressWarnings("deprecation")
@RequestMapping(value="/addReport", method = RequestMethod.POST)
@Transactional(rollbackFor=Exception.class)
@ResponseBody
public RestResult addReport(@RequestBody GreenReport greenReport){
try {
String userId = greenReport.getCreateBy();
GreenUserInfo info = getUserInfo(userId);
if(info==null){
return new RestResult(Constant.FAILED, "非法用户");
}
greenReport.setCreateTime(new Date());
boolean flag1=true;
boolean flag2=true;
boolean flag3=true;
String uuid="";
// if(greenReport.getReportPic1()!=null&&!"".equals(greenReport.getReportPic1())){
//
// SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
// String date = sdf.format(new Date()) + "/";
// //uuid = date + UUID.randomUUID().toString().replaceAll("-","");
//
// uuid = greenImageInfoController.saveImage(greenReport.getReportPic1(), userId);
// flag1=baseService.saveImgToIO(uuid+Constant.IMG_SUFFIX, greenReport.getReportPic1());
// greenReport.setReportPic1(uuid+Constant.IMG_SUFFIX);
// greenReport.setReportPic1Data(uuid);
// }
// if(greenReport.getReportPic2()!=null&&!"".equals(greenReport.getReportPic2())){
// SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
// String date = sdf.format(new Date()) + "/";
// //uuid = date + UUID.randomUUID().toString().replaceAll("-","");
//
// uuid = greenImageInfoController.saveImage(greenReport.getReportPic2(), userId);
// flag2=baseService.saveImgToIO(uuid+Constant.IMG_SUFFIX, greenReport.getReportPic2());
// greenReport.setReportPic2(uuid+Constant.IMG_SUFFIX);
// greenReport.setReportPic2Data(uuid);
// }
// if(greenReport.getReportPic3()!=null&&!"".equals(greenReport.getReportPic3())){
// SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
// String date = sdf.format(new Date()) + "/";
// //uuid = date + UUID.randomUUID().toString().replaceAll("-","");
//
// uuid = greenImageInfoController.saveImage(greenReport.getReportPic3(), userId);
// flag3=baseService.saveImgToIO(uuid+Constant.IMG_SUFFIX, greenReport.getReportPic3());
// greenReport.setReportPic3(uuid+Constant.IMG_SUFFIX);
// greenReport.setReportPic3Data(uuid);
// }
hibernateDao.saveObject(greenReport);
Integer reportType = greenReport.getReportType();
String title = "";
String text = "";
String url = "";
if(reportType==1){
title = "用户投诉";
text = "您好,您的投诉信息已成功提交,请点击查看。";
url = "/pages/report/report-ts?currentTabIndex=1";
aliasManageController.pushToSingle(userId, title, text, url);
String role = "16010";//投诉受理权限
String getUserSql = "SELECT u.id,u.ISC_ID FROM green_user_info u "
+ " LEFT JOIN green_user_role_rel r ON u.id = r.user_id "
+ " LEFT JOIN green_role_permission p ON p.role_id = r.role_id "
+ " WHERE p.permission_id = ? ";
List