| | |
| | | package com.ruoyi.order.controller; |
| | | |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import cn.afterturn.easypoi.excel.ExcelExportUtil; |
| | | import cn.afterturn.easypoi.excel.entity.ExportParams; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.model.AppUser; |
| | | import com.ruoyi.common.core.constant.ExpressCompanyMap; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.WebUtils; |
| | | import com.ruoyi.common.core.utils.poi.ExcelUtil; |
| | | import com.ruoyi.common.core.web.controller.BaseController; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.common.core.web.page.TableDataInfo; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.order.dto.ConfirmOrderDTO; |
| | | |
| | | import com.ruoyi.order.enums.OrderStatus; |
| | | import com.ruoyi.order.export.ChargeOrderExport; |
| | | import com.ruoyi.order.mapper.OrderMapper; |
| | | import com.ruoyi.order.model.ChargeOrder; |
| | | import com.ruoyi.order.model.Order; |
| | | import com.ruoyi.order.service.ChargeOrderService; |
| | | import com.ruoyi.order.service.OrderService; |
| | | import com.ruoyi.order.util.payment.model.RefundCallbackResult; |
| | | import com.ruoyi.order.util.payment.model.UniPayCallbackResult; |
| | | import com.ruoyi.order.util.vo.MapTrackKD100Vo; |
| | | import com.ruoyi.order.util.payment.wechat.PayMoneyUtil; |
| | | import com.ruoyi.order.util.payment.wx.WechatPayService; |
| | | import com.ruoyi.order.util.payment.wx.vo.PayResult; |
| | | import com.ruoyi.order.util.vo.ShopAnalysisVO; |
| | | import com.ruoyi.order.vo.*; |
| | | import com.ruoyi.other.api.domain.BaseSetting; |
| | | import com.ruoyi.other.api.domain.Goods; |
| | | import com.ruoyi.other.api.domain.Shop; |
| | | import com.ruoyi.other.api.dto.ShopAnalysisDTO; |
| | | import com.ruoyi.other.api.feignClient.BaseSettingClient; |
| | | import com.ruoyi.other.api.feignClient.ShopClient; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import com.ruoyi.system.api.model.LoginUser; |
| | | import io.swagger.annotations.*; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.poi.ss.usermodel.Workbook; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.ServletOutputStream; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.io.PrintWriter; |
| | | import java.math.BigDecimal; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.Duration; |
| | | import java.net.URLEncoder; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.LocalTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | @Resource |
| | | private OrderService orderService; |
| | | @Resource |
| | | private ChargeOrderService chargeOrderService; |
| | | @Resource |
| | | private TokenService tokenService; |
| | | @Resource |
| | | private BaseSettingClient baseSettingClient; |
| | |
| | | |
| | | @Resource |
| | | private ShopClient shopClient; |
| | | |
| | | @Resource |
| | | private PayMoneyUtil payMoneyUtil; |
| | | @Resource |
| | | private WechatPayService wechatPayService; |
| | | |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/confirmOrder") |
| | | @ApiOperation(value = "确定订单", tags = {"商城-订单-小程序"}) |
| | | @ApiOperation(value = "确定订单", tags = {"商城-订单-小程序-确定订单"}) |
| | | public R<ConfirmOrderVo> confirmOrder(@RequestBody ConfirmOrderDTO confirmOrderDTO) { |
| | | ConfirmOrderVo confirmOrderVo = orderService.confirmOrder(confirmOrderDTO.getGoodId(),confirmOrderDTO.getType()); |
| | | return R.ok(confirmOrderVo); |
| | |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/orderPayment") |
| | | @ApiOperation(value = "订单支付", tags = {"商城-订单支付-小程序"}) |
| | | @ApiOperation(value = "订单支付", tags = {"商城-订单支付-小程序-订单支付"}) |
| | | public R orderPayment(@RequestBody OrderPayment orderPayment){ |
| | | return orderService.orderPayment(orderPayment); |
| | | } |
| | |
| | | * 订单支付回调通知 |
| | | */ |
| | | @ResponseBody |
| | | @GetMapping("/orderPaymentCallback") |
| | | public void orderPaymentCallback(UniPayCallbackResult uniPayCallbackResult, HttpServletResponse response){ |
| | | String jsonString = JSONObject.toJSONString(uniPayCallbackResult); |
| | | @PostMapping("/orderPaymentCallback") |
| | | public void orderPaymentCallback(HttpServletRequest request, HttpServletResponse response){ |
| | | // String jsonString = JSONObject.toJSONString(uniPayCallbackResult); |
| | | System.err.println("1111111111111"); |
| | | PayResult payResult= null; |
| | | try { |
| | | payResult = wechatPayService.processNotify(request); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | System.out.println("1111111111111111111111"); |
| | | System.out.println(jsonString); |
| | | R callback = orderService.orderPaymentCallback(uniPayCallbackResult); |
| | | // System.out.println(jsonString); |
| | | R callback = orderService.orderPaymentCallback(payResult); |
| | | if(callback.getCode() == 200){ |
| | | response.setStatus(200); |
| | | PrintWriter out = null; |
| | |
| | | /** |
| | | * 我的订单列表 |
| | | */ |
| | | @ApiOperation(value = "我的订单列表", tags = {"小程序-个人中心-我的订单"}) |
| | | @ApiOperation(value = "我的订单列表", tags = {"小程序-个人中心-我的订单-我的订单列表"}) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "订单状态", name = "status", required = true, dataType = "int"), |
| | | }) |
| | | @GetMapping("/getMyOrderList") |
| | | public TableDataInfo<OrderVO> getMyOrderList(@ApiParam("订单状态") Integer status) { |
| | | public TableDataInfo<OrderVO> getMyOrderList(@RequestParam(value = "status",required = false) Integer status) { |
| | | startPage(); |
| | | LoginUser loginUserApplet = tokenService.getLoginUserApplet(); |
| | | return getDataTable(orderService.selectOrderListByUserId(status, loginUserApplet.getUserid())); |
| | |
| | | /** |
| | | * 扫码校验 |
| | | */ |
| | | @ApiOperation(value = "扫码校验", tags = {"小程序-个人中心-门店管理"}) |
| | | @ApiOperation(value = "扫码校验", tags = {"小程序-个人中心-门店管理-扫码校验"}) |
| | | @GetMapping("/check/{orderNumber}/{shopId}") |
| | | public R<Boolean> check(@PathVariable("orderNumber") String orderNumber, @PathVariable("shopId") Integer shopId) { |
| | | LoginUser loginUserApplet = tokenService.getLoginUserApplet(); |
| | |
| | | /** |
| | | * 订单核销 |
| | | */ |
| | | @ApiOperation(value = "订单核销", tags = {"小程序-个人中心-门店管理"}) |
| | | @ApiOperation(value = "订单核销", tags = {"小程序-个人中心-门店管理-订单核销"}) |
| | | @GetMapping("/writeOff") |
| | | public R<Void> writeOff(@ApiParam("id") String id, @ApiParam("shopId") Integer shopId) { |
| | | public R<Void> writeOff(@RequestParam("id") String id, @RequestParam("shopId") Integer shopId) { |
| | | orderService.writeOff(id, shopId); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @GetMapping("/getShopOrderList") |
| | | @ApiOperation(value = "获取订单列表", tags = {"门店后台-订单管理", }) |
| | | public R<IPage<OrderPageListVo>> getShopOrderList(@ApiParam("模糊查询:订单编号/商品名/手机号 ") String content , |
| | | @ApiParam("订单状态") Integer status, |
| | | @ApiParam("门店id") Integer shopId, |
| | | @ApiParam("页码") @RequestParam("pageNum") Integer pageNum, |
| | | @ApiParam("每一页数据大小") @RequestParam("pageSize") Integer pageSize) { |
| | | @ApiOperation(value = "获取订单列表", tags = {"门店后台-订单管理-获取订单列表"}) |
| | | public R<IPage<OrderPageListVo>> getShopOrderList(@RequestParam(value = "content",required = false) String content , |
| | | @RequestParam(value = "status",required = false) Integer status, |
| | | @RequestParam("shopId") Integer shopId, |
| | | @RequestParam("pageNum") Integer pageNum, |
| | | @RequestParam("pageSize") Integer pageSize) { |
| | | return R.ok(orderService.getShopOrderList(content,status,shopId,pageNum,pageSize)); |
| | | } |
| | | @PostMapping("/importExpress") |
| | | @ApiOperation(value = "2.0新增导入订单", tags = {"门店后台-订单管理-2.0新增导入订单"}) |
| | | public R importExpress(@RequestParam("file") MultipartFile file) { |
| | | /* JSONObject jsonObject = JSONObject.parseObject(url); |
| | | String url2 = jsonObject.getString("url");*/ |
| | | if (file.isEmpty()) { |
| | | return R.fail("请选择要上传的文件"); |
| | | } |
| | | |
| | | return orderService.importExpress(file); |
| | | } |
| | | |
| | | @ApiOperation(value = "2.0订单导入模板下载", tags = {"门店后台-订单管理-2.0订单导入模板下载"}) |
| | | @GetMapping("/importOrder") |
| | | public void importOrder() { |
| | | List<OrderExport> orderExports = new ArrayList<>(); |
| | | Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), OrderExport.class, orderExports); |
| | | HttpServletResponse response = WebUtils.response(); |
| | | ServletOutputStream outputStream = null; |
| | | try { |
| | | String fileName = URLEncoder.encode("订单导入模板.xls", "utf-8"); |
| | | response.setHeader("Content-Disposition", "attachment;filename=" + fileName); |
| | | response.setHeader("content-Type", "application/vnd.ms-excel"); |
| | | response.setHeader("Pragma", "no-cache"); |
| | | response.setHeader("Cache-Control", "no-cache"); |
| | | outputStream = response.getOutputStream(); |
| | | workbook.write(outputStream); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | System.out.println("订单导入模板下载失败!"); |
| | | } finally { |
| | | try { |
| | | outputStream.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @PutMapping("/shopCancelOrder/{orderId}") |
| | | @ApiOperation(value = "取消订单", tags = {"门店后台-订单管理"}) |
| | | @ApiOperation(value = "取消订单", tags = {"门店后台-订单管理-取消订单"}) |
| | | public R shopCancelOrder(@PathVariable("orderId") Long orderId) { |
| | | return orderService.shopCancelOrder(orderId); |
| | | } |
| | |
| | | /** |
| | | * 取消订单 |
| | | */ |
| | | @ApiOperation(value = "取消订单", tags = {"小程序-个人中心-我的订单"}) |
| | | @ApiOperation(value = "取消订单小程序", tags = {"小程序-个人中心-我的订单-取消订单小程序"}) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), |
| | | }) |
| | |
| | | /** |
| | | * 确认收货 |
| | | */ |
| | | @ApiOperation(value = "确认收货", tags = {"小程序-个人中心-我的订单"}) |
| | | @ApiOperation(value = "确认收货", tags = {"小程序-个人中心-我的订单-确认收货"}) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), |
| | | }) |
| | |
| | | /** |
| | | * 更新订单状态 |
| | | */ |
| | | @ApiOperation(value = "更新订单状态", tags = {"后台-订单管理"}) |
| | | @ApiOperation(value = "更新订单状态", tags = {"后台-订单管理-更新订单状态"}) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "订单对象", name = "order", required = true, dataType = "Order"), |
| | | }) |
| | |
| | | |
| | | |
| | | @PutMapping("/cancelOrder/{orderId}") |
| | | @ApiOperation(value = "取消订单操作", tags = {"后台-订单管理"}) |
| | | @ApiOperation(value = "取消订单操作", tags = {"后台-订单管理-取消订单操作"}) |
| | | public R cancelOrder(@PathVariable("orderId") Long orderId) { |
| | | return orderService.cancelOrder(orderId); |
| | | } |
| | | |
| | | @PutMapping("/receivingOperation/{orderId}") |
| | | @ApiOperation(value = "收货操作", tags = {"管理后台-订单管理"}) |
| | | @ApiOperation(value = "收货操作", tags = {"管理后台-订单管理-收货操作"}) |
| | | public R receivingOperation(@PathVariable("orderId") Long orderId) { |
| | | return orderService.receivingOperation(orderId); |
| | | } |
| | | |
| | | |
| | | @GetMapping("/getOrderInfo/{orderId}") |
| | | @ApiOperation(value = "查询订单详情", tags = {"管理后台-订单管理"}) |
| | | @ApiOperation(value = "查询订单详情", tags = {"管理后台-订单管理-查询订单详情"}) |
| | | public R<OrderInfoVo> getOrderInfo(@PathVariable("orderId") Long orderId) { |
| | | OrderInfoVo orderInfo = orderService.getOrderInfo(orderId); |
| | | return R.ok(orderInfo); |
| | |
| | | |
| | | |
| | | @GetMapping("/getOrderPageList") |
| | | @ApiOperation(value = "获取订单列表", tags = {"后台-订单管理", }) |
| | | // @ApiOperation(value = "获取订单列表后台", tags = {"管理后台-订单管理-获取订单列表后台"}) |
| | | public R<PageInfo<OrderManagePageListVO>> getOrderPageList(OrderPageList orderPageList) { |
| | | return R.ok(orderService.getOrderPageList(orderPageList)); |
| | | } |
| | | |
| | | @PostMapping("/queryOrderPageList") |
| | | @ApiOperation(value = "获取订单列表后台", tags = {"管理后台-订单管理-获取订单列表后台"}) |
| | | public R<PageInfo<OrderManagePageListVO>> queryOrderPageList(@RequestBody OrderPageList orderPageList) { |
| | | return R.ok(orderService.getOrderPageList(orderPageList)); |
| | | } |
| | | |
| | |
| | | * 订单统计 |
| | | */ |
| | | /* @GetMapping("/getOrderStatistics") |
| | | @ApiOperation(value = "订单统计", tags = {"管理后台-首页统计"}) |
| | | //@ApiOperation(value = "订单统计", tags = {"管理后台-首页统计"}) |
| | | public R<OrderStatistics> getOrderStatistics(@RequestParam("startTime") String startTime, |
| | | @RequestParam("endTime") String endTime) { |
| | | |
| | |
| | | */ |
| | | /** |
| | | * 订单取消支付回退 |
| | | * |
| | | * @param refundCallbackResult |
| | | * @param response |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @GetMapping("/refundPayMoneyCallback") |
| | | public void refundPayMoneyCallback(RefundCallbackResult refundCallbackResult, HttpServletResponse response) { |
| | | R callback = orderService.refundPayMoneyCallback(refundCallbackResult); |
| | | @PostMapping("/refundPayMoneyCallback") |
| | | public String refundPayMoneyCallback( @RequestBody(required = false) String xmlData) { |
| | | R callback = orderService.refundPayMoneyCallback(xmlData); |
| | | if (callback.getCode() == 200) { |
| | | response.setStatus(200); |
| | | PrintWriter out = null; |
| | | try { |
| | | out = response.getWriter(); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | out.println("success"); |
| | | out.flush(); |
| | | out.close(); |
| | | return "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"; |
| | | }else { |
| | | System.err.println("支付回退错误:"+callback.getMsg()); |
| | | return "<xml><return_code><![CDATA[FAIL]]></return_code></xml>"; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取商品销售数量 |
| | | * |
| | | * @return |
| | | */ |
| | | @PostMapping(value = "/getList") |
| | | R<List<ChargeOrder>> getList(@RequestParam("siteId") Integer siteId) { |
| | | List<ChargeOrder> list = chargeOrderService.lambdaQuery().eq(ChargeOrder::getPowerStationId, siteId).list(); |
| | | return R.ok(list); |
| | | } |
| | | /** |
| | | * 获取商品销售数量 |
| | | * |
| | |
| | | * @return |
| | | *//* |
| | | @GetMapping("/getOrderExpress/{id}") |
| | | @ApiOperation(value = "获取订单快递明细", tags = {"小程序-订单管理"}) |
| | | //@ApiOperation(value = "获取订单快递明细", tags = {"小程序-订单管理"}) |
| | | public R<MapTrackKD100Vo> getOrderExpress(@PathVariable("id") Long id) { |
| | | Order order = orderService.getById(id); |
| | | String expressResult = order.getExpressResult(); |
| | |
| | | orderExport.setSupplierCostPrice(goods.getShopCost());*/ |
| | | } |
| | | }); |
| | | |
| | | List<Shop> data = shopClient.getAllShop().getData(); |
| | | // 转化为map |
| | | Map<Integer, Shop> shopMap = data.stream().collect(Collectors.toMap(Shop::getId, shop -> shop)); |
| | | for (OrderExport orderExport : orderExportList) { |
| | | Shop shop = shopMap.get(orderExport.getShopId()); |
| | | if (shop!=null){ |
| | | orderExport.setShopName(shop.getName()); |
| | | } |
| | | } |
| | | ExcelUtil<OrderExport> util = new ExcelUtil<OrderExport>(OrderExport.class); |
| | | util.exportExcel(response, orderExportList, "订单数据"); |
| | | } |
| | |
| | | return R.ok(orderService.getMap(queryWrapper)); |
| | | } |
| | | |
| | | /** |
| | | * 获取商户RSA加密公钥 |
| | | */ |
| | | |
| | | @GetMapping("/getRsaPublicKey") |
| | | public R<Void> getRsaPublicKey(){ |
| | | wechatPayService.getRsaPublicKey(); |
| | | return R.ok(); |
| | | } |
| | | |
| | | } |
| | | |