package cn.exrick.xboot.your.controller; import cn.exrick.xboot.core.common.utils.PageUtil; import cn.exrick.xboot.core.common.utils.ResultUtil; import cn.exrick.xboot.core.common.utils.SecurityUtil; import cn.exrick.xboot.core.common.vo.PageVo; import cn.exrick.xboot.core.common.vo.Result; import cn.exrick.xboot.core.entity.User; import cn.exrick.xboot.core.service.UserService; import cn.exrick.xboot.your.entity.Area; import cn.exrick.xboot.your.entity.OrderDetail; import cn.exrick.xboot.your.entity.OrderTask; import cn.exrick.xboot.your.service.IAreaService; import cn.exrick.xboot.your.service.ICustomerService; import cn.exrick.xboot.your.service.IOrderDetailService; import cn.exrick.xboot.your.service.IOrderTaskService; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author whj */ @Slf4j @RestController @Api(tags = "订单接口") @RequestMapping("/xboot/orderTask") @Transactional public class OrderTaskController { @Autowired private IOrderTaskService iOrderTaskService; @Autowired private IAreaService iAreaService; @Autowired private ICustomerService iCustomerService; @Autowired private IOrderDetailService iOrderDetailService; @Autowired private SecurityUtil securityUtil; @Autowired private UserService userService; @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) @ApiOperation(value = "通过id获取") public Result get(@PathVariable String id) { OrderTask orderTask = iOrderTaskService.getById(id); return new ResultUtil().setData(orderTask); } @RequestMapping(value = "/getByUserId", method = RequestMethod.GET) @ApiOperation(value = "获取今日任务统计信息") public Result getAll() { QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("user_id",securityUtil.getCurrUser().getId()); Area area = iAreaService.getOne(wrapper); if(area==null){ return ResultUtil.error("请联系管理员绑定片区配送员"); } QueryWrapper wrapper2 = new QueryWrapper(); String format = DateUtil.format(new Date(), "yyyy-MM-dd"); wrapper2.eq("area_id",area.getId()); wrapper2.eq("send_date",format); int count = iOrderTaskService.count(wrapper2); int sum = iOrderTaskService.sum(area.getId(),format); Map map = new HashMap(); map.put("count",count); map.put("sum",sum); return new ResultUtil().setData(map); } @RequestMapping(value = "/getTodayOrder", method = RequestMethod.GET) @ApiOperation(value = "获取今日任务详情") public Result> getTodayOrder() { QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("user_id",securityUtil.getCurrUser().getId()); Area area = iAreaService.getOne(wrapper); if(area==null){ return ResultUtil.error("请联系管理员绑定片区配送员"); } QueryWrapper wrapper2 = new QueryWrapper(); String format = DateUtil.format(new Date(), "yyyy-MM-dd"); wrapper2.eq("a.area_id",area.getId()); wrapper2.eq("a.send_date",format); wrapper2.orderByAsc("a.seq"); List list = iOrderTaskService.list2(wrapper2); return new ResultUtil>().setData(list); } @RequestMapping(value = "/getTodayOrderDetail", method = RequestMethod.GET) @ApiOperation(value = "获取当前配送商户详情") public Result getTodayOrderDetail(String orderId) { OrderTask orderTask = new OrderTask(); if(!StrUtil.isEmpty(orderId)){ orderTask = iOrderTaskService.getById(orderId); if(orderTask.getStatus()!=0){ return ResultUtil.error("此商户已配送"); } }else{ QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("user_id",securityUtil.getCurrUser().getId()); Area area = iAreaService.getOne(wrapper); if(area==null){ return ResultUtil.error("请联系管理员绑定片区配送员"); } QueryWrapper wrapper2 = new QueryWrapper(); String format = DateUtil.format(new Date(), "yyyy-MM-dd"); wrapper2.eq("area_id",area.getId()); wrapper2.eq("send_date",format); wrapper2.eq("status",0); wrapper2.orderByAsc("seq"); List list = iOrderTaskService.list(wrapper2); if(list.size()>0){ orderTask = list.get(0); }else{ return new ResultUtil().setData(null); } } orderTask.setCustomer(iCustomerService.getById(orderTask.getCustomerId())); QueryWrapper wrapper3 = new QueryWrapper(); wrapper3.eq("order_id",orderTask.getId()); orderTask.setOrderDetails(iOrderDetailService.list(wrapper3)); return new ResultUtil().setData(orderTask); } @RequestMapping(value = "/getTodayOtherInfo", method = RequestMethod.GET) @ApiOperation(value = "获取其它信息") public Result getTodayOtherInfo() { QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("user_id",securityUtil.getCurrUser().getId()); Area area = iAreaService.getOne(wrapper); if(area==null){ return ResultUtil.error("请联系管理员绑定片区配送员"); } QueryWrapper wrapper2 = new QueryWrapper(); String format = DateUtil.format(new Date(), "yyyy-MM-dd"); wrapper2.eq("area_id",area.getId()); wrapper2.eq("send_date",format); wrapper2.ne("status",0); wrapper2.orderByAsc("seq"); int count = iOrderTaskService.count(wrapper2); QueryWrapper wrapper4 = new QueryWrapper(); wrapper4.eq("area_id",area.getId()); wrapper4.eq("send_date",format); int count2 = iOrderTaskService.count(wrapper4); Map map = new HashMap<>(); map.put("num",count+"/"+count2); QueryWrapper wrapper5 = new QueryWrapper(); wrapper5.ne("status",0); wrapper5.eq("send_date",format); PageVo page = new PageVo(); page.setSort("updateTime"); page.setOrder("desc"); page.setPageSize(1); page.setPageNumber(0); IPage data = iOrderTaskService.page(PageUtil.initMpPage(page), wrapper5); String content = ""; if(data.getRecords().size()>0){ String userId = data.getRecords().get(0).getUserId(); User user = userService.get(userId); QueryWrapper wrapper6 = new QueryWrapper(); wrapper6.eq("user_id",userId); wrapper6.eq("send_date",format); wrapper6.ne("status",0); int count6 = iOrderTaskService.count(wrapper6); if(count6>0){ content+=user.getNickname()+"已配送"+count6+"单"; } } map.put("content",content); return new ResultUtil().setData(map); } @RequestMapping(value = "/addImg", method = RequestMethod.POST) @ApiOperation(value = "上传门头照") public Object saveOrUpdate(String orderId,String imgUrl) { OrderTask orderTask = iOrderTaskService.getById(orderId); orderTask.setImg(imgUrl); iOrderTaskService.saveOrUpdate(orderTask); return ResultUtil.success("添加成功"); } @RequestMapping(value = "/signFor", method = RequestMethod.POST) @ApiOperation(value = "签收") public Object signFor(String orderId,int status,String content) { OrderTask orderTask = iOrderTaskService.getById(orderId); orderTask.setStatus(status); orderTask.setUserId(securityUtil.getCurrUser().getId()); if(!StrUtil.isEmpty(content)){ orderTask.setRemarks(content); }else{ if(status==2){ return ResultUtil.error("请填写异常签收原因"); } } iOrderTaskService.saveOrUpdate(orderTask); return ResultUtil.success("添加成功"); } @RequestMapping(value = "/getByPage", method = RequestMethod.GET) @ApiOperation(value = "分页获取") public Result> getByPage(PageVo page) { IPage data = iOrderTaskService.page(PageUtil.initMpPage(page)); return new ResultUtil>().setData(data); } @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST) @ApiOperation(value = "编辑或更新数据") public Result saveOrUpdate(OrderTask orderTask) { if (iOrderTaskService.saveOrUpdate(orderTask)) { return new ResultUtil().setData(orderTask); } return new ResultUtil().setErrorMsg("操作失败"); } @RequestMapping(value = "/delByIds", method = RequestMethod.POST) @ApiOperation(value = "批量通过id删除") public Result delAllByIds(@RequestParam String[] ids) { for (String id : ids) { iOrderTaskService.removeById(id); } return ResultUtil.success("批量通过id删除数据成功"); } }