package com.travel.controller; import com.alibaba.fastjson.JSONArray; import com.travel.model.*; import com.travel.service.PrivateOrderService; import com.travel.service.ReleaseTravelService; import com.travel.util.ParsingToken; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; /** * 发布游记 */ @RestController @RequestMapping("release") public class ReleaseTravelController { @Autowired private ReleaseTravelService releaseTravelService; @Autowired private PrivateOrderService privateOrderService; /** * 新增游记 * @param travel 参数 * @param request 参数 * @return 返回结果 */ @PostMapping("travelInster") public Map travelInster(@RequestBody Travel travel, HttpServletRequest request){ Map map = new HashMap<>(); Map userMap = ParsingToken.tokenParsing(request); travel.setCode((String) userMap.get("code")); DecimalFormat df = new DecimalFormat("#.00"); try{ //从定制单获得数据存入游记中 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); PrivateOrder privateOrder = releaseTravelService.getTravelVal(travel.getId()); travel.setDestination(privateOrder.getDestination()) // .setCapita(Integer.parseInt(df.format(Integer.parseInt(privateOrder.getPriceAll()) / Integer.parseInt(privateOrder.getPeopleAll())))) .setCapita(String.format("%.2f", (Double.parseDouble(privateOrder.getPriceAll()) / Double.parseDouble(privateOrder.getPeopleAll())))) .setTravelDate(privateOrder.getStartTime() + "~" + privateOrder.getEndTime()) .setTravelDay(((format.parse(privateOrder.getEndTime()).getTime() - format.parse(privateOrder.getStartTime()).getTime()) / (24 * 60 * 60 * 1000)) + 1 + "") .setPeopleAll(privateOrder.getPeopleAll()) .setDemandUuid(privateOrder.getUuid()) .setReleaseUuid(travel.getId()) .setAmount(privateOrder.getPriceAll()); //生成uuid String id = UUID.randomUUID().toString().replace("-", ""); travel.setUuid(id); //新增每天游记内容 多个每日游记处理 if(travel.getTravelArrayString() != null && travel.getTravelArrayString() != ""){ List list = JSONArray.parseArray(travel.getTravelArrayString(), TravelExperience.class); for(TravelExperience travelExperience : list){ travelExperience.setUuid(id); releaseTravelService.travelInsterExper(travelExperience); } } //游记新增 releaseTravelService.travelInster(travel); // Thread.sleep(1000 * 3);//延迟返回 map.put("data", id); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 查询游记列表 * @param travel 参数 * @return 返回结果 */ @GetMapping("getTravelAll") public Map getTravelAll(Travel travel, HttpServletRequest request){ Map map = new HashMap<>(); try{ Map userMap = ParsingToken.tokenParsing(request); travel.setCode((String) userMap.get("code")); List list = releaseTravelService.getTravelAll(travel); Map mapVal = new HashMap<>(); mapVal.put("list", list); mapVal.put("count", releaseTravelService.getTravelCountAll(travel)); mapVal.put("page", travel.getPage()); map.put("data", mapVal); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 查询随机一条游记 * @param travel 参数 * @return 返回结果 */ @GetMapping("getTravelOne") public Map getTravelOne(Travel travel, HttpServletRequest request){ Map map = new HashMap<>(); try{ Map userMap = ParsingToken.tokenParsing(request); travel.setCode((String) userMap.get("code")); List travel1 = releaseTravelService.getTravelOne(travel); map.put("data", travel1); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 查询游记列表 个人 * @param travel 参数 * @return 返回结果 */ @GetMapping("getTravel") public Map getTravel(Travel travel, HttpServletRequest request){ Map map = new HashMap<>(); try{ if(travel.getCode() == null){ Map userMap = ParsingToken.tokenParsing(request); travel.setCode((String) userMap.get("code")); } List list = releaseTravelService.getTravel(travel); Map mapVal = new HashMap<>(); mapVal.put("list", list); mapVal.put("count", releaseTravelService.getTravelCount(travel)); mapVal.put("page", travel.getPage()); map.put("data", mapVal); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 查询游记详情 * @param travel 参数 * @return 返回结果 */ @GetMapping("getTravelExper") public Map getTravelExper(Travel travel, HttpServletRequest request){ Map map = new HashMap<>(); try { //获取用户code Map userMap = ParsingToken.tokenParsing(request); travel.setCode((String) userMap.get("code")); Travel listTravel = new Travel(); if(travel.getTypeForm().equals("ptyh")){ releaseTravelService.updateLookNum(travel);//修改查看数量 listTravel = releaseTravelService.getTravelID(travel);//查询游记内容 System.out.println(listTravel.getReleaseUuid()); List list = releaseTravelService.getTravelExper(travel); if(list.size() != 0){ listTravel.setTravelArray(list);//查询游记每天内容 } //查询收藏 List list1 = releaseTravelService.getTravelConllection(travel.getUuid()); if(list1.size() != 0){ listTravel.setCollection(list1); } List listDay = privateOrderService.getSupplierReleaseDay(listTravel.getReleaseUuid()); if(listDay.size() != 0){ //判断时间是否为空 listTravel.setTravelArrayRouteTime(listDay); } } else { releaseTravelService.updateLookNumRoute(travel);//修改查看数量 listTravel = releaseTravelService.getTravelRoute(travel);//查询供应商路线内容 List list = privateOrderService.getSupplierReleasePlay(travel.getUuid()); List listDay = privateOrderService.getSupplierReleaseDay(travel.getUuid()); if(list.size() != 0){ //判断游玩是否有内容 listTravel.setTravelArrayRoute(list);//查询游记每天内容 } if(listDay.size() != 0){ //判断时间是否为空 listTravel.setTravelArrayRouteTime(listDay); } //查询收藏 List list1 = releaseTravelService.getTravelConllection(travel.getUuid()); if(list1.size() != 0){ listTravel.setCollection(list1); } } map.put("data", listTravel); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 删除游记 * @param travel 参数 * @return 返回结果 */ @DeleteMapping("delTravel") public Map delTravel(@RequestBody Travel travel, HttpServletRequest request){ Map map = new HashMap<>(); try{ Map userMap = ParsingToken.tokenParsing(request); travel.setCode((String) userMap.get("code")); releaseTravelService.delTravel(travel); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 删除每日游记 * @param travel 参数 * @return 返回结果 */ @DeleteMapping("delTravelExper") public Map delTravelExper(Travel travel, HttpServletRequest request){ Map map = new HashMap<>(); try{ releaseTravelService.delTravelExper(travel); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 修改游记 * @param travel 参数 * @return 返回结果 */ @PutMapping("updateTravel") public Map updateTravel(@RequestBody Travel travel, HttpServletRequest request){ Map map = new HashMap<>(); try{ releaseTravelService.updateTravel(travel);//更新游记信息 releaseTravelService.delTravelExper(travel);//删除每日游记 //新增每天游记内容 多个每日游记处理 if(travel.getTravelArrayString() != null){ List list = JSONArray.parseArray(travel.getTravelArrayString(), TravelExperience.class); for(TravelExperience travelExperience : list){ travelExperience.setUuid(travel.getUuid()); releaseTravelService.travelInsterExper(travelExperience); } } map.put("msg", "200"); }catch (Exception e) { e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 游记点赞 * @param travelGive 参数 * @return 返回结果 */ @PostMapping("addGive") public Map addGive(@RequestBody TravelGive travelGive, HttpServletRequest request){ Map map = new HashMap<>(); try{ Map userMap = ParsingToken.tokenParsing(request); travelGive.setCode((String) userMap.get("code")); //生成uuid String id = UUID.randomUUID().toString().replace("-", ""); travelGive.setUuid(id); //判断是否点赞防止两次点赞 int count = releaseTravelService.getGiveCount(travelGive); if(count == 0){ releaseTravelService.addGive(travelGive); } map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 取消点赞 * @param travelGive 参数 * @param request token * @return 返回结果 */ @DeleteMapping("delGive") public Map delGive(@RequestBody TravelGive travelGive, HttpServletRequest request){ Map map = new HashMap<>(); try{ Map userMap = ParsingToken.tokenParsing(request); travelGive.setCode((String) userMap.get("code")); releaseTravelService.delGive(travelGive); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 查看数量 * @param travel * @return */ @PutMapping("updateLookNum") public Map updateLookNum(Travel travel, HttpServletRequest request){ Map map = new HashMap<>(); try{ releaseTravelService.updateLookNum(travel); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 查询订单完成的定制单并且是没写过游记的 * @param privateOrder 参数 * @param request 参数 * @return 返回结果 */ @GetMapping("getTravelRelese") public Map getTravelRelese(PrivateOrder privateOrder, HttpServletRequest request){ Map map = new HashMap<>(); try{ Map userMap = ParsingToken.tokenParsing(request); privateOrder.setCode((String) userMap.get("code")); List list = releaseTravelService.getTravelRelese(privateOrder); map.put("data", list); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", ParsingToken.returnPrompt(request)); } return map; } /** * 查询供应商路线 * @return 返回结果 */ @GetMapping("getRoute") public Map getRoute(HttpServletRequest request){ return releaseTravelService.getRoute(request); } }