package com.stylefeng.guns.modular.system.controller.general; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.common.constant.factory.PageFactory; import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.core.shiro.ShiroUser; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.SinataUtil; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.beans.factory.annotation.Autowired; import com.stylefeng.guns.core.log.LogObjectHolder; import org.springframework.web.bind.annotation.RequestParam; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 控制器 * * @author fengshuonan * @Date 2020-06-17 20:51:18 */ @Controller @RequestMapping("/driverActivity") public class DriverActivityController extends BaseController { private String PREFIX = "/system/driverActivity/"; @Autowired private IDriverActivityService driverActivityService; @Autowired private IDriverActivityOnlineService driverActivityOnlineService; @Autowired private IDriverActivityOrderService driverActivityOrderService; @Autowired private IDriverActivityRegisteredService driverActivityRegisteredService; @Autowired private IDriverActivityHistoryService driverActivityHistoryService; /** * 跳转到首页 */ @RequestMapping("") public String index() { return PREFIX + "driverActivity.html"; } /** * 跳转到添加 */ @RequestMapping("/driverActivity_add") public String driverActivityAdd() { return PREFIX + "driverActivity_add.html"; } /** * 跳转领取统计 * @return */ @RequestMapping("/receiveRecord") public String receiveRecord(Model model,Integer activityId){ model.addAttribute("activityId",activityId); DriverActivity driverActivity = driverActivityService.selectById(activityId); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); model.addAttribute("startTime", sdf.format(driverActivity.getStartTime())); model.addAttribute("endTime", sdf.format(driverActivity.getEndTime())); DriverActivityRegistered driverActivityRegistered = driverActivityRegisteredService.selectOne(new EntityWrapper().eq("driverActivityId",activityId).eq("type",1)); model.addAttribute("id1",driverActivityRegistered.getId()); driverActivityRegistered = driverActivityRegisteredService.selectOne(new EntityWrapper().eq("driverActivityId",activityId).eq("type",2)); model.addAttribute("id2",driverActivityRegistered.getId()); DriverActivityOnline driverActivityOnline = driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",activityId).eq("type",1)); model.addAttribute("id3",driverActivityOnline.getId()); //统计专车在线 driverActivityOnline = driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",activityId).eq("type",2)); model.addAttribute("id4",driverActivityOnline.getId()); driverActivityOnline = driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",activityId).eq("type",3)); model.addAttribute("id5",driverActivityOnline.getId()); DriverActivityOrder driverActivityOrder = driverActivityOrderService.selectOne(new EntityWrapper().eq("driverActivityId",activityId)); model.addAttribute("id6",driverActivityOrder.getId()); return PREFIX + "receiveRecord.html"; } @RequestMapping(value = "/receiveRecordDetail") @ResponseBody public Object receiveRecordDetail(String createTime,Integer activityId) { Date startTimes = null; Date endTimes = null; if (SinataUtil.isNotEmpty(createTime)){ String[] timeArray = createTime.split(" - "); startTimes = DateUtil.getDate_str3(timeArray[0]+" 00:00:00"); endTimes = DateUtil.getDate_str3(timeArray[1]+" 23:59:59"); }else{ DriverActivity driverActivity = driverActivityService.selectById(activityId); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); startTimes=driverActivity.getStartTime(); endTimes=driverActivity.getEndTime(); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Map map = new HashMap<>(); DriverActivityRegistered driverActivityRegistered = driverActivityRegisteredService.selectOne(new EntityWrapper().eq("driverActivityId",activityId) .eq("type",1).where("startTime >= '" + sdf.format(startTimes) + "' and endTime < '" + sdf.format(endTimes) + "'").orderBy("insertTime desc limit 0, 1")); //统计邀请司机注册 List historyList = driverActivityHistoryService.selectList(new EntityWrapper() .between("insertTime",startTimes,endTimes).eq("type",1).eq("activityId",driverActivityRegistered.getId()).eq("carryOut",2)); Double totalMOney=0d; Double money=0d; Integer number=0; for(DriverActivityHistory history:historyList){ totalMOney+=history.getMoney(); money+=history.getMoney(); number+=1; } map.put("money1",money); map.put("number1",number); driverActivityRegistered = driverActivityRegisteredService.selectOne(new EntityWrapper().eq("driverActivityId",activityId) .eq("type",2).where("startTime >= '" + sdf.format(startTimes) + "' and endTime < '" + sdf.format(endTimes) + "'").orderBy("insertTime desc limit 0, 1")); //统计邀请用户注册 historyList = driverActivityHistoryService.selectList(new EntityWrapper().between("insertTime",startTimes,endTimes).eq("type",2).eq("activityId",driverActivityRegistered.getId()).eq("carryOut",2)); money=0d; number=0; for(DriverActivityHistory history:historyList){ totalMOney+=history.getMoney(); money+=history.getMoney(); number+=1; } map.put("money2",money); map.put("number2",number); DriverActivityOnline driverActivityOnline = driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",activityId) .eq("type",1).where("startTime >= '" + sdf.format(startTimes) + "' and endTime < '" + sdf.format(endTimes) + "'").orderBy("insertTime desc limit 0, 1")); //统计专车在线 historyList = driverActivityHistoryService.selectList(new EntityWrapper().between("insertTime",startTimes,endTimes).eq("type",3).eq("activityId",driverActivityOnline.getId()).eq("carryOut",2)); money=0d; number=0; for(DriverActivityHistory history:historyList){ totalMOney+=history.getMoney(); money+=history.getMoney(); number+=1; } map.put("money3",money); map.put("number3",number); driverActivityOnline = driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",activityId) .eq("type",2).where("startTime >= '" + sdf.format(startTimes) + "' and endTime < '" + sdf.format(endTimes) + "'").orderBy("insertTime desc limit 0, 1")); //统计出租车在线 historyList = driverActivityHistoryService.selectList(new EntityWrapper().between("insertTime",startTimes,endTimes).eq("type",3).eq("activityId",driverActivityOnline.getId()).eq("carryOut",2)); money=0d; number=0; for(DriverActivityHistory history:historyList){ totalMOney+=history.getMoney(); money+=history.getMoney(); number+=1; } map.put("money4",money); map.put("number4",number); driverActivityOnline = driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",activityId) .eq("type",3).where("startTime >= '" + sdf.format(startTimes) + "' and endTime < '" + sdf.format(endTimes) + "'").orderBy("insertTime desc limit 0, 1")); //统计城际在线 historyList = driverActivityHistoryService.selectList(new EntityWrapper().between("insertTime",startTimes,endTimes).eq("type",3).eq("activityId",driverActivityOnline.getId()).eq("carryOut",2)); money=0d; number=0; for(DriverActivityHistory history:historyList){ totalMOney+=history.getMoney(); money+=history.getMoney(); number+=1; } map.put("money5",money); map.put("number5",number); DriverActivityOrder driverActivityOrder = driverActivityOrderService.selectOne(new EntityWrapper() .eq("driverActivityId",activityId).where("startTime >= '" + sdf.format(startTimes) + "' and endTime < '" + sdf.format(endTimes) + "'").orderBy("insertTime desc limit 0, 1")); //统计订单数 historyList = driverActivityHistoryService.selectList(new EntityWrapper().between("insertTime",startTimes,endTimes).eq("type",4).eq("activityId",driverActivityOrder.getId()).eq("carryOut",2)); money=0d; number=0; for(DriverActivityHistory history:historyList){ totalMOney+=history.getMoney(); money+=history.getMoney(); number+=1; } map.put("money6",money); map.put("number6",number); map.put("totalMOney",totalMOney); return map; } /** * 跳转到修改 */ @RequestMapping("/driverActivity_update/{driverActivityId}") public String driverActivityUpdate(@PathVariable Integer driverActivityId, Model model) { DriverActivity driverActivity = driverActivityService.selectById(driverActivityId); model.addAttribute("item",driverActivity); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); model.addAttribute("startTime", sdf.format(driverActivity.getStartTime())); model.addAttribute("endTime", sdf.format(driverActivity.getEndTime())); model.addAttribute("online1",driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId).eq("type",1))); model.addAttribute("online2",driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId).eq("type",2))); model.addAttribute("online3",driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId).eq("type",3))); DriverActivityOrder driverActivityOrder = driverActivityOrderService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId)); if(driverActivityOrder!=null){ model.addAttribute("startTime1", driverActivityOrder.getStart()+" - "+driverActivityOrder.getEnd()); }else{ model.addAttribute("startTime1", ""); } model.addAttribute("order",driverActivityOrder); model.addAttribute("regist1",driverActivityRegisteredService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId).eq("type",1))); model.addAttribute("regist2",driverActivityRegisteredService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId).eq("type",2))); LogObjectHolder.me().set(driverActivity); return PREFIX + "driverActivity_edit.html"; } /** * 获取列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String createTime,String name) { ShiroUser user = ShiroKit.getUser(); String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(createTime)){ String[] timeArray = createTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } Page> page = new PageFactory>().defaultPage(); page.setRecords(driverActivityService.getList(page,beginTime,endTime,name,user.getRoleType(),user.getObjectId())); return super.packForBT(page); } /** * 新增 */ @RequestMapping(value = "/add") @ResponseBody public Object add(String staTime, String startTime, String num1, Double num2 , Double num3 , Integer num4 , Double num5 , Integer num6 , Double num7 , Integer num8 , Double num9 , Integer num10 , Double num11) { driverActivityService.insertOrUpdate(null,staTime,startTime, num1, num2 , num3 , num4 , num5 , num6 , num7 , num8 , num9 , num10 , num11); return SUCCESS_TIP; } /** * 删除 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer driverActivityId) { driverActivityService.deleteById(driverActivityId); return SUCCESS_TIP; } /** * 修改 */ @RequestMapping(value = "/update") @ResponseBody public Object update(Integer id,String staTime, String startTime, String num1, Double num2 , Double num3 , Integer num4 , Double num5 , Integer num6 , Double num7 , Integer num8 , Double num9 , Integer num10 , Double num11) { driverActivityService.insertOrUpdate(id,staTime,startTime, num1, num2 , num3 , num4 , num5 , num6 , num7 , num8 , num9 , num10 , num11); return SUCCESS_TIP; } @RequestMapping(value = "/updateStatus") @ResponseBody public Object updateStatus(DriverActivity driverActivity) { driverActivityService.updateById(driverActivity); return SUCCESS_TIP; } @RequestMapping("/driverActivity_detail/{driverActivityId}") public String driverActivityDetail(@PathVariable Integer driverActivityId, Model model) { DriverActivity driverActivity = driverActivityService.selectById(driverActivityId); model.addAttribute("item",driverActivity); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); model.addAttribute("startTime", sdf.format(driverActivity.getStartTime())); model.addAttribute("endTime", sdf.format(driverActivity.getEndTime())); model.addAttribute("online1",driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId).eq("type",1))); model.addAttribute("online2",driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId).eq("type",2))); model.addAttribute("online3",driverActivityOnlineService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId).eq("type",3))); model.addAttribute("order",driverActivityOrderService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId))); model.addAttribute("regist1",driverActivityRegisteredService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId).eq("type",1))); model.addAttribute("regist2",driverActivityRegisteredService.selectOne(new EntityWrapper().eq("driverActivityId",driverActivityId).eq("type",2))); LogObjectHolder.me().set(driverActivity); return PREFIX + "driverActivity_detail.html"; } /** * 跳转到立即处理页面 */ @RequestMapping("/driverActivity_immediately/{id}") public String driverActivityImmediately(@PathVariable Integer id, Model model) { model.addAttribute("id",id); return PREFIX + "driverActivity_immediately.html"; } /** * 立即处理操作 */ @RequestMapping(value = "/immediately") @ResponseBody public Object immediately(@RequestParam Integer id,@RequestParam Integer state,@RequestParam String remark) { DriverActivity driverActivity = driverActivityService.selectById(id); if (SinataUtil.isNotEmpty(driverActivity)){ driverActivity.setStatus(state); driverActivity.setRemark(remark); driverActivityService.updateById(driverActivity); } return SUCCESS_TIP; } }