hz-zhhq-app-service/greenH5modul/.svn/pristine/d1/d1570d76b2a8940d9062b358119...

532 lines
21 KiB
Plaintext
Raw Normal View History

2025-01-21 13:12:35 +08:00
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;
/**
* <b>概述</b><br>
* <p>
* <b>功能</b><br>
*
* @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<Map<String,Object>> userList2 = hibernateDao.queryForListWithSql(getUserSql, new Object[]{role});
title = "投诉受理";
text = "您好,您有新的用户投诉需要受理,请点击查看。";
url = "/pages/report/report-sl?reportType=1";
aliasManageController.pushToSingleBatch(userList2, title, text, url);
}else{
title = "咨询服务";
text = "您好,您的咨询信息已成功提交,请点击查看。";
url = "/pages/report/report?currentTabIndex=1";
aliasManageController.pushToSingle(userId, title, text, url);
String role = "16007";//咨询受理权限
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<Map<String,Object>> userList2 = hibernateDao.queryForListWithSql(getUserSql, new Object[]{role});
title = "咨询受理";
text = "您好,您有新的咨询服务需要受理,请点击查看。";
url = "/pages/report/report-sl";
aliasManageController.pushToSingleBatch(userList2, title, text, url);
}
return new RestResult(Constant.SUCCESS,"成功");
}catch (ServiceValidatorBaseException e) {
throw e;
}catch (Exception e) {
e.printStackTrace();
//设置手动回滚
return new RestResult(Constant.FAILED,"返回异常");
}
}
/**用户订单列表*/
@RequestMapping(value="/getReportList", method = RequestMethod.POST)
@ResponseBody
public RestResult getReportList(@RequestBody GreenReport greenReport){
// String userId = greenReport.getCreateBy();
// GreenUserInfo info = getUserInfo(userId);
// if(info==null){
// return new RestResult(Constant.FAILED, "非法用户");
// }
try {
//分页信息
int pageSize = greenReport.getPageSize();
int page = greenReport.getPageNum();
page = (page-1) * pageSize;
String createBy = greenReport.getCreateBy();
Integer reportStatus = greenReport.getReportStatus();
Integer reportType = greenReport.getReportType();
String startDate = greenReport.getStartDate();
String endDate = greenReport.getEndDate();
List<Object> params = new ArrayList<Object>();
String sql = " select * from (select rn.*, rownum rw from ("
+ "select id as \"id\",title as \"title\",create_time as \"create_time\",is_evaluate as \"is_evaluate\","
+ "reply_date as \"reply_date\",report_type as \"report_type\",report_status as \"report_status\""
+ " from green_report where is_delete = 'N'";
if(createBy!=null&&!"".equals(createBy)){
sql +=" and create_by= ? ";
params.add(createBy);
}else{
sql +=" and report_status=? ";
params.add(reportStatus);
}
if(!StringUtils.isEmpty(startDate)){
startDate = startDate+" 00:00:00";
sql+=" and to_char(create_time,'YYYY-MM-DD HH24:MI:ss')>=? ";
params.add(startDate);
}
if(!StringUtils.isEmpty(endDate)){
endDate = endDate+" 23:59:59";
sql+=" and to_char(create_time,'YYYY-MM-DD HH24:MI:ss')<=? ";
params.add(endDate);
}
if(reportType==9){
sql +=" order by create_time desc limit ?,?";
params.add(page);
params.add(pageSize);
}else{
sql +=" and report_Type=? order by create_time desc ) rn) where rw > ? and rw <=?";
params.add(reportType);
params.add(page);
params.add(pageSize);
}
List<Map<String,Object>> reportList = hibernateDao.queryForListWithSql(sql,params.toArray());
return new RestResult(Constant.SUCCESS,"成功",reportList);
}catch (ServiceValidatorBaseException e) {
throw e;
}catch (Exception e) {
e.printStackTrace();
return new RestResult(Constant.FAILED,"返回异常");
}
}
@RequestMapping(value="/getReportCount", method = RequestMethod.POST)
@ResponseBody
public RestResult getReportCount(@RequestBody GreenReport greenReport){
// String userId = greenReport.getCreateBy();
// GreenUserInfo info = getUserInfo(userId);
// if(info==null){
// return new RestResult(Constant.FAILED, "非法用户");
// }
try {
//分页信息
String createBy = greenReport.getCreateBy();
Integer reportStatus = greenReport.getReportStatus();
Integer reportType = greenReport.getReportType();
String startDate = greenReport.getStartDate();
String endDate = greenReport.getEndDate();
List<Object> params = new ArrayList<Object>();
String sql = " select count(*) from green_report where is_delete = 'N'";
if(createBy!=null&&!"".equals(createBy)){
sql +=" and create_by= ? ";
params.add(createBy);
}else{
sql +=" and report_status=? ";
params.add(reportStatus);
}
if(!StringUtils.isEmpty(startDate)){
startDate = startDate+" 00:00:00";
sql+=" and to_char(create_time,'YYYY-MM-DD HH24:MI:ss')>=? ";
params.add(startDate);
}
if(!StringUtils.isEmpty(endDate)){
endDate = endDate+" 23:59:59";
sql+=" and to_char(create_time,'YYYY-MM-DD HH24:MI:ss')<=? ";
params.add(endDate);
}
if(reportType==9){
}else{
sql +=" and report_Type=? ";
params.add(reportType);
}
Integer count = hibernateDao.queryForIntWithSql(sql,params.toArray());
return new RestResult(Constant.SUCCESS,"成功",count);
}catch (ServiceValidatorBaseException e) {
throw e;
}catch (Exception e) {
e.printStackTrace();
return new RestResult(Constant.FAILED,"返回异常");
}
}
/**用户订单列表*/
@RequestMapping(value="/queryReport", method = RequestMethod.POST)
@ResponseBody
public RestResult queryReport(@RequestBody GreenReport greenReport){
// String userId = greenReport.getCreateBy();
// GreenUserInfo info = getUserInfo(userId);
// if(info==null){
// return new RestResult(Constant.FAILED, "非法用户");
// }
try {
Long id = greenReport.getId();
String sql = " select r.id as \"id\",r.title as \"title\",r.content as \"content\",r.create_time as \"create_time\","
+ "r.is_evaluate as \"is_evaluate\",r.reply_date as \"reply_date\",r.report_type as \"report_type\","
+ "r.report_status as \"report_status\" ,u.real_name as \"real_name\",u.mobile as \"mobile\","
+ " r.report_pic1 as \"report_pic1\",r.report_pic2 as \"report_pic2\",r.report_pic3 as \"report_pic3\" "
+ "from green_report r left join green_user_info u "
+ " on r.create_by = u.id "
+ " where r.id= ?";
List<Map<String,Object>> reportList = hibernateDao.queryForListWithSql(sql,new Object[]{ id});
if(reportList.size()>0){
Map<String,Object> objMap = reportList.get(0);
List<String> list = new ArrayList<String>();
// List<String> replyList = new ArrayList<String>();
String pic1 = baseService.getImageBase64((String) objMap.get("report_pic1"));
if (pic1 != null && !"".equals(pic1)) {
list.add(pic1);
}
String pic2 = baseService.getImageBase64((String) objMap.get("report_pic2"));
if (pic2 != null && !"".equals(pic2)) {
list.add(pic2);
}
String pic3 = baseService.getImageBase64((String) objMap.get("report_pic3"));
if (pic3 != null && !"".equals(pic3)) {
list.add(pic3);
}
objMap.put("pictures", list);
List<Map<String,Object>> replyList = new ArrayList<Map<String,Object>>();
if(!"0".equals(objMap.get("reply_flag"))){
String replySql = "select id as \"id\", reply_content as \"reply_content\", reply_date as \"reply_date\", create_by as \"create_by\", fault_id as \"fault_id\", reply_pic1 as \"reply_pic1\", reply_pic1_data as \"reply_pic1_data\", reply_pic2 as \"reply_pic2\", reply_pic2_data as \"reply_pic2_data\" "
+ " from green_fault_reply where fault_id = ?";
List<Map<String,Object>> replyList2 = hibernateDao.queryForListWithSql(replySql,new Object[]{ objMap.get("id")});
for(int i=0;i<replyList2.size();i++){
Map<String,Object> replyObj = replyList2.get(i);
List<String> replyPicList = new ArrayList<String>();
String replyPic1 = baseService.getImageBase64((String) replyObj.get("reply_pic1"));
if (replyPic1 != null && !"".equals(replyPic1)) {
replyPicList.add(replyPic1);
}
String replyPic2 = baseService.getImageBase64((String) replyObj.get("reply_pic2"));
if (replyPic2 != null && !"".equals(replyPic2)) {
replyPicList.add(replyPic2);
}
replyObj.put("replyPictures", replyPicList);
replyList.add(replyObj);
}
objMap.put("replyList", replyList);
}
// String replyPic1 = baseService.getImageBase64((String) objMap.get("reply_pic1"));
// if (replyPic1 != null && !"".equals(replyPic1)) {
// replyList.add(replyPic1);
// }
// String replyPic2 = baseService.getImageBase64((String) objMap.get("reply_pic2"));
// if (replyPic2 != null && !"".equals(replyPic2)) {
// replyList.add(replyPic2);
// }
// objMap.put("replyPictures", replyList);
return new RestResult(Constant.SUCCESS,"查询成功",objMap);
}else{
return new RestResult(Constant.FAILED,"查无该数据");
}
}catch (ServiceValidatorBaseException e) {
throw e;
}catch (Exception e) {
e.printStackTrace();
return new RestResult(Constant.FAILED,"返回异常");
}
}
@RequestMapping(value="/replyReport", method = RequestMethod.POST)
@ResponseBody
public RestResult replyReport(@RequestBody GreenReport greenReport){
// String userId = greenReport.getCreateBy();
// GreenUserInfo info = getUserInfo(userId);
// if(info==null){
// return new RestResult(Constant.FAILED, "非法用户");
// }
try {
Long id = greenReport.getId();
String replyContent = greenReport.getReplyContent();
String replyUser = greenReport.getReplyUser();
String replyPic1 = greenReport.getReplyPic1();
String replyPic2 = greenReport.getReplyPic2();
boolean flag1=true;
boolean flag2=true;
String uuid="";
GreenFaultReply greenFaultReply = new GreenFaultReply();
if(greenReport.getReplyPic1()!=null&&!"".equals(greenReport.getReplyPic1())){
// SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
// String date = sdf.format(new Date()) + "/";
//// uuid = date + UUID.randomUUID().toString().replaceAll("-","");
// uuid = greenImageInfoController.saveImage(greenReport.getReplyPic1(), replyUser);
// flag1=baseService.saveImgToIO(uuid+Constant.IMG_SUFFIX, greenReport.getReplyPic1());
// greenReport.setReplyPic1(uuid+Constant.IMG_SUFFIX);
// greenReport.setReplyPic1Data(uuid);
greenFaultReply.setReplyPic1(greenReport.getReplyPic1());
greenFaultReply.setReplyPic1Data(greenReport.getReplyPic1());
}
//回复图片2
if(greenReport.getReplyPic2()!=null&&!"".equals(greenReport.getReplyPic2())){
// SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
// String date = sdf.format(new Date()) + "/";
//// uuid = date + UUID.randomUUID().toString().replaceAll("-","");
// uuid = greenImageInfoController.saveImage(greenReport.getReplyPic2(), replyUser);
// flag2=baseService.saveImgToIO(uuid+Constant.IMG_SUFFIX, greenReport.getReplyPic2());
// greenReport.setReplyPic2(uuid+Constant.IMG_SUFFIX);
// greenReport.setReplyPic2Data(uuid);
greenFaultReply.setReplyPic2(greenReport.getReplyPic2());
greenFaultReply.setReplyPic2Data(greenReport.getReplyPic2());
}
String sql = "update green_report set reply_content =?,reply_user= ? ,reply_date=?,report_status=1,reply_pic1=?,reply_pic1_data=?,reply_pic2=?,reply_pic2_data=? where id=?";
hibernateDao.updateWithSql(sql,new Object[]{replyContent, replyUser,new Date(),greenReport.getReplyPic1()
,greenReport.getReplyPic1Data(),greenReport.getReplyPic2(),greenReport.getReplyPic2Data(),id});
greenFaultReply.setReplyContent(replyContent);
greenFaultReply.setCreateBy(replyUser);
greenFaultReply.setFaultId(id);
greenFaultReply.setReplyDate(new Date());
hibernateDao.saveObject(greenFaultReply);
String getNoticeObjSql = "select * from green_report where id =?";
List<Map<String,Object>> noticeList = hibernateDao.queryForListWithSql(getNoticeObjSql, new Object[]{id});
BigDecimal reportTypeBig = (BigDecimal) noticeList.get(0).get("report_type");
Integer reportType =Integer.parseInt(reportTypeBig.toString());
String userId = (String) noticeList.get(0).get("create_by");
String title = "";
String text = "";
String url = "";
if(reportType==1){
title = "用户投诉";
text = "您好,您的投诉信息有新回复,请点击查看。";
url = "/pages/report/report-ts?currentTabIndex=1";
aliasManageController.pushToSingle(userId, title, text, url);
}else{
title = "咨询服务";
text = "您好,您的咨询信息有新回复,请点击查看。";
url = "/pages/report/report?currentTabIndex=1";
aliasManageController.pushToSingle(userId, title, text, url);
}
return new RestResult(Constant.SUCCESS,"回复成功");
}catch (ServiceValidatorBaseException e) {
throw e;
}catch (Exception e) {
e.printStackTrace();
return new RestResult(Constant.FAILED,"回复失败");
}
}
public RestResult finishReport(@RequestBody GreenReport greenReport){
try {
Long id = greenReport.getId();
String replyUser = greenReport.getReplyUser();
GreenUserInfo info = getUserInfo(replyUser);
if(info==null){
return new RestResult(Constant.FAILED, "非法用户");
}
String updateSql = "update green_report set report_status=2 where id=?";
hibernateDao.executeSqlUpdate(updateSql,new Object[]{ id});
String getNoticeObjSql = "select id as \"id\",title as \"title\",create_time as \"create_time\",is_evaluate as \"is_evaluate\",reply_date as \"reply_date\",report_type as \"report_type\",report_status as \"report_status\" from green_report where id =?";
List<Map<String,Object>> noticeList = hibernateDao.queryForListWithSql(getNoticeObjSql, new Object[]{id});
BigDecimal reportTypeBig = (BigDecimal) noticeList.get(0).get("report_type");
Integer reportType =Integer.parseInt(reportTypeBig.toString());
String userId = (String) noticeList.get(0).get("create_by");
String title = "";
String text = "";
String url = "";
if(reportType==1){
title = "用户投诉";
text = "您好,您的投诉信息已办结,请点击查看。并对我们的服务进行评价,谢谢配合。";
url = "/pages/report/report-ts?currentTabIndex=1";
aliasManageController.pushToSingle(userId, title, text, url);
}else{
title = "咨询服务";
text = "您好,您的咨询信息已办结,请点击查看。并对我们的服务进行评价,谢谢配合。";
url = "/pages/report/report?currentTabIndex=1";
aliasManageController.pushToSingle(userId, title, text, url);
}
return new RestResult(Constant.SUCCESS,"办结成功");
}catch (ServiceValidatorBaseException e) {
throw e;
}catch (Exception e) {
e.printStackTrace();
return new RestResult(Constant.FAILED,"办结失败,请重新办结");
}
}
}