hz-zhhq-app-service/greenH5modul/.svn/pristine/a7/a7406817690f4e2a8099e3fe0ea...

233 lines
8.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.nationalelectric.greenH5;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.annotation.Resource;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import org.springframework.beans.factory.annotation.Autowired;
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.RestResult;
import com.nationalelectric.greenH5.bizc.BaseServiceImpl;
import com.nationalelectric.greenH5.bizc.IEvaluateServiceBizc;
import com.nationalelectric.greenH5.po.GreenUserInfo;
import com.nationalelectric.greenH5.po.TorderEvaluate;
import com.sgcc.uap.persistence.IHibernateDao;
@Controller
@RequestMapping("/evaluate")
public class EvaluateController extends GreenBaseController {
@Resource
private IHibernateDao hibernateDao;
@Resource
private IEvaluateServiceBizc iEvaluateServiceBizc;
@Autowired
private BaseServiceImpl baseService;
/**
* 添加评价
* @param requestBody
* @return
*/
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public RestResult add(@RequestBody Object requestBody) {
try {
TorderEvaluate ev = new ObjectMapper().convertValue(requestBody, new TypeReference<TorderEvaluate>(){});
String userId = ev.getUserId();
GreenUserInfo info = getUserInfo(userId);
if (info == null) {
return new RestResult(Constant.FAILED, "非法用户");
}
//评价和评分不能为空
if(ev.getEvContent() == null || "".equals(ev.getEvContent())){
return new RestResult(Constant.FAILED, "请输入评价内容");
}
if(ev.getGrade() == null || "".equals(ev.getGrade())){
return new RestResult(Constant.FAILED, "请选择评分");
}
//主键
String uuid = UUID.randomUUID().toString().replaceAll("-","");
ev.setId(uuid);
//时间
Timestamp t = new Timestamp(new Date().getTime());
ev.setEvTime(t);
ev.setGmtCreated(t);
ev.setGmtModified(t);
hibernateDao.saveObject(ev);
} catch (Exception e) {
System.out.print(e.getMessage());
return new RestResult(Constant.FAILED, "提交失败");
}
return new RestResult(Constant.SUCCESS, "提交成功");
}
/**
* 查询评价
* @param requestBody
* @return
*/
@RequestMapping(value = "/query", method = RequestMethod.POST)
@ResponseBody
public RestResult query(@RequestBody Object requestBody) {
try {
Map<String, Object> map = new ObjectMapper().convertValue(requestBody, new TypeReference<Map<String, Object>>(){});
Integer pageSize = map.get("pageSize") == null ? 10 : Integer.parseInt(map.get("pageSize").toString());
Integer pageNum = map.get("pageNum") == null ? 1 : Integer.parseInt(map.get("pageNum").toString());
pageNum = (pageNum-1) * pageSize;
String type = map.get("type") == null ? "" : map.get("type").toString();
List<Object> params = new ArrayList<Object>();
StringBuffer sql = new StringBuffer();
sql.append(" select t1.id,CONCAT(SUBSTRING(gu.real_name,1,1),'**') name, t1.ev_content,DATE_FORMAT(t1.ev_time,'%Y-%m-%d %H:%i:%s') ev_time,t1.grade, ")
.append(" gu.wx_profile, ")
.append(" case ")
.append(" when type = 1 then (select GROUP_CONCAT(gv.food_name) from green_food_order_detail gf ")
.append(" LEFT JOIN green_foods_kinds gv on gf.goods_id = gv.id where gf.order_id = t1.type_id) ")
.append(" when type = 2 then (select GROUP_CONCAT(gr.name) from green_dining_room gr where gr.id = t1.type_id) ")
.append(" when type = 3 then (select GROUP_CONCAT(g.food_name) from green_food_feature g where g.id = t1.type_id) ")
.append(" else '' end type_name,t1.type,t1.type_id ")
.append(" from (select id, type, type_id,user_id,ev_content,ev_time, grade from t_order_evaluate ")
.append(" where is_deleted = 'N' " );
//类型1 订单2 食堂3 推荐菜,4理发
if(!"".equals(type)) {
sql.append(" and type = ? " );
params.add(type);
}
sql.append( " order by ev_time desc limit ?,?) t1 ")
.append(" LEFT JOIN green_user_info gu on gu.id = t1.user_id ");
params.add(pageNum);
params.add(pageSize);
List<Map<String,Object>> list = hibernateDao.queryForListWithSql(sql.toString()
,params.toArray());
//菜品转换成数组
for(Map<String,Object> m : list){
String[] typeName = m.get("type_name") == null || "".equals(m.get("type_name")) ?
new String[]{} : m.get("type_name").toString().split(",");
m.put("type_name", typeName);
}
return new RestResult(Constant.SUCCESS,"成功",list);
} catch (Exception e) {
return new RestResult(Constant.FAILED, "查询失败");
}
}
/**
* 查询评价
* @param requestBody
* @return
*/
@RequestMapping(value = "/getCommentListByType", method = RequestMethod.POST)
@ResponseBody
public RestResult getCommentListByType(@RequestBody Map<String, Object> map) {
try {
Integer pageSize = map.get("pageSize") == null ? 10 : Integer.parseInt(map.get("pageSize").toString());
Integer pageNum = map.get("pageNum") == null ? 1 : Integer.parseInt(map.get("pageNum").toString());
pageNum = (pageNum-1) * pageSize;
int limit = ((pageNum > 0 ? pageNum : 1) -1) * pageSize;
//1 理发预约评论 2 洗车预约评论 5用车申请评价 6故障报修评价
String type = map.get("type") == null ? "" : map.get("type").toString();
String startDate = map.get("startDate") == null ? "" : map.get("startDate").toString();
String endDate = map.get("endDate") == null ? "" : map.get("endDate").toString();
String satisfiedLevel = map.get("satisfiedLevel") == null ? "" : map.get("satisfiedLevel").toString();
List<Object> params = new ArrayList<Object>();
StringBuilder sql = new StringBuilder("SELECT mobile as \"mobile\",applicant_name AS \"applicant_name\", "
+ " satisfied_level as \"satisfied_level\",comment_content as \"comment_content\","
//+ "detail_time as \"detail_time\", "
+ " gmt_created as \"gmt_created\" FROM (select rn.*, ROWNUM AS rw from ("
+ " select h.*, ");
//type 1:理发 2:洗车 10:就诊 5:用车 6:报修 9:报事 7:咨询 8:投诉
String column = "";
String joinSql = "";
String where = "";
if(!"".equals(type)){
if("1".equals(type)){
column = " (d.apply_date || ' ' || d.apply_time) as detail_time,";
joinSql = " left join green_haircut_info d on h.detail_id = d.id ";
}
if("2".equals(type)){
column = " (d.apply_date || ' ' || d.apply_time) as detail_time,";
joinSql = " left join green_wash_car_info d on h.detail_id = d.id ";
}
if("10".equals(type)){
column = " (d.apply_date || ' ' || d.project_info_name) as detail_time,";
joinSql = " left join green_seekmedical_record d on h.detail_id = d.id ";
}
if("5".equals(type)){
column = " d.starttime as detail_time,";
joinSql = " left join green_usecar_apply d on h.detail_id = d.id ";
}
if("6".equals(type)){
column = " d.repair_time as detail_time,";
joinSql = " left join green_fault_repair_info d on h.detail_id = d.id ";
}
if("9".equals(type)){
column = " d.repair_time as detail_time,";
joinSql = " left join green_fault_repair_info d on h.detail_id = d.id ";
}
if("7".equals(type)){
column = " to_char(d.create_time,'YYYY-MM-DD HH24:MI') as detail_time,";
joinSql = " left join green_report d on h.detail_id = d.id ";
}
if("8".equals(type)){
column = " to_char(d.create_time,'YYYY-MM-DD HH24:MI') as detail_time,";
joinSql = " left join green_report d on h.detail_id = d.id ";
}
where = " and h.type = ?";
params.add(type);
}
sql.append(column
+" u.wx_profile,u.mobile from green_haircut_comment h "
+ " left join green_user_info u on h.creator=u.id "
+ joinSql
+" where h.is_deleted='N' "
+ where);
if(!"".equals(startDate)){
sql.append(" and to_char(h.gmt_created,'YYYY-MM-DD')>=?");
params.add(startDate);
}
if(!"".equals(endDate)){
sql.append(" and to_char(h.gmt_created,'YYYY-MM-DD')<=?");
params.add(endDate);
}
if(!"".equals(satisfiedLevel)){
sql.append(" and h.satisfied_level="+satisfiedLevel+" ");
}
sql.append(" order by h.gmt_created desc "
+ ") rn ) where rw > ? and rw <= ? ");
params.add(limit);
params.add(pageSize);
@SuppressWarnings("unchecked")
List<Map<String,Object>> list = hibernateDao.queryForListWithSql(sql.toString(),params.toArray());
return new RestResult(Constant.SUCCESS,"成功",list);
} catch (Exception e) {
return new RestResult(Constant.FAILED, "查询失败");
}
}
}