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

233 lines
8.8 KiB
Plaintext
Raw Normal View History

2025-01-21 13:12:35 +08:00
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, "查询失败");
}
}
}