233 lines
8.8 KiB
Plaintext
233 lines
8.8 KiB
Plaintext
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, "查询失败");
|
||
}
|
||
|
||
}
|
||
}
|