|  |  |  | 
|---|
|  |  |  | package com.ruoyi.order.controller; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.math.BigDecimal; | 
|---|
|  |  |  | import java.text.SimpleDateFormat; | 
|---|
|  |  |  | import java.time.LocalDateTime; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.ruoyi.common.core.web.domain.AjaxResult; | 
|---|
|  |  |  | import com.ruoyi.common.core.web.page.PageInfo; | 
|---|
|  |  |  | import com.ruoyi.common.security.service.TokenService; | 
|---|
|  |  |  | import com.ruoyi.order.api.model.TChargingOrderRefund; | 
|---|
|  |  |  | import com.ruoyi.order.api.model.TExchangeOrder; | 
|---|
|  |  |  | import com.ruoyi.order.api.model.TShoppingOrder; | 
|---|
|  |  |  | import com.ruoyi.order.api.model.TShoppingOrderRefund; | 
|---|
|  |  |  | import com.ruoyi.order.api.query.ShoppingOrderQuery; | 
|---|
|  |  |  | import com.ruoyi.order.dto.*; | 
|---|
|  |  |  | import com.ruoyi.order.service.TShoppingOrderRefundService; | 
|---|
|  |  |  | import com.ruoyi.order.service.TShoppingOrderService; | 
|---|
|  |  |  | import com.ruoyi.other.api.domain.TCoupon; | 
|---|
|  |  |  | import com.ruoyi.other.api.domain.TGoods; | 
|---|
|  |  |  | import com.ruoyi.other.api.feignClient.CouponClient; | 
|---|
|  |  |  | import com.ruoyi.other.api.feignClient.GoodsClient; | 
|---|
|  |  |  | import com.ruoyi.payment.api.feignClient.AliPaymentClient; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  | import javax.servlet.http.HttpServletRequest; | 
|---|
|  |  |  | import java.time.format.DateTimeFormatter; | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * <p> | 
|---|
|  |  |  | *  前端控制器 | 
|---|
|  |  |  | * 前端控制器 | 
|---|
|  |  |  | * </p> | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @author xiaochen | 
|---|
|  |  |  | 
|---|
|  |  |  | private GoodsClient goodsClient; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private CouponClient couponClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private TokenService tokenService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private AliPaymentClient aliPaymentClient; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private WxPaymentClient wxPaymentClient; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private AppCouponClient appCouponClient; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private SysUserClient sysUserClient; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private TShoppingOrderRefundService shoppingOrderRefundService; | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 远程管理后台取消订单后退款回调 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping(value = "/shoppingOrderWxRefund") | 
|---|
|  |  |  | public void shoppingOrderWxRefund(@RequestParam("out_trade_no") String out_refund_no, | 
|---|
|  |  |  | @RequestParam("out_trade_no") String refund_id, | 
|---|
|  |  |  | @RequestParam("out_trade_no") String tradeState, | 
|---|
|  |  |  | @RequestParam("out_trade_no") String success_time){ | 
|---|
|  |  |  | if("SUCCESS".equals(tradeState)){ | 
|---|
|  |  |  | TShoppingOrderRefund one = shoppingOrderRefundService.getOne(new LambdaQueryWrapper<TShoppingOrderRefund>().eq(TShoppingOrderRefund::getRefundCode, out_refund_no)); | 
|---|
|  |  |  | one.setRefundSerialNumber(refund_id); | 
|---|
|  |  |  | one.setRefundStatus(2); | 
|---|
|  |  |  | one.setRefundTime(LocalDateTime.parse(success_time, DateTimeFormatter.ofPattern("yyyy-MM-DDTHH:mm:ss+TIMEZONE"))); | 
|---|
|  |  |  | shoppingOrderRefundService.updateById(one); | 
|---|
|  |  |  | TShoppingOrder byId = shoppingOrderService.getById(one.getShoppingOrderId()); | 
|---|
|  |  |  | byId.setStatus(4); | 
|---|
|  |  |  | shoppingOrderService.updateById(byId); | 
|---|
|  |  |  | if (byId.getAppCouponId() != null) { | 
|---|
|  |  |  | appCouponClient.refund(byId.getAppCouponId().toString()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/getShoppingOrderList") | 
|---|
|  |  |  | @ApiOperation(value = "列表查询", tags = {"管理后台-购物订单"}) | 
|---|
|  |  |  | public AjaxResult<PageInfo<TShoppingOrder>> getShoppingOrderList(@RequestBody ShoppingOrderQuery query) { | 
|---|
|  |  |  | if (StringUtils.hasLength(query.getPhone())) { | 
|---|
|  |  |  | List<Long> data = appUserClient.getUserIdsByPhone(query.getPhone()).getData(); | 
|---|
|  |  |  | if (data.isEmpty()){ | 
|---|
|  |  |  | if (data.isEmpty()) { | 
|---|
|  |  |  | return AjaxResult.success(new PageInfo<TShoppingOrder>()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | query.setUserIds(data); | 
|---|
|  |  |  | 
|---|
|  |  |  | query.setGoodsIds(data); | 
|---|
|  |  |  | List<Integer> data1 = couponClient.getCouponIdsByName(query.getName()).getData(); | 
|---|
|  |  |  | query.setCouponIds(data1); | 
|---|
|  |  |  | if (data.isEmpty() && data1.isEmpty()){ | 
|---|
|  |  |  | if (data.isEmpty() && data1.isEmpty()) { | 
|---|
|  |  |  | return AjaxResult.success(new PageInfo<TShoppingOrder>()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | PageInfo<TShoppingOrder> res = shoppingOrderService.pageList(query); | 
|---|
|  |  |  | return AjaxResult.success(res); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private SysUserClient sysUserClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/getShoppingOrderInfoById") | 
|---|
|  |  |  | @ApiOperation(value = "根据订单id查看订单详情", tags = {"管理后台-购物订单"}) | 
|---|
|  |  |  | public AjaxResult<TShoppingOrder> getShoppingOrderList(String id) { | 
|---|
|  |  |  | TShoppingOrder byId = shoppingOrderService.getById(id); | 
|---|
|  |  |  | if (byId.getConsignerId()!=null){ | 
|---|
|  |  |  | if (byId.getConsignerId() != null) { | 
|---|
|  |  |  | SysUser data = sysUserClient.getSysUser(byId.getConsignerId()).getData(); | 
|---|
|  |  |  | if (data!=null){ | 
|---|
|  |  |  | if (data != null) { | 
|---|
|  |  |  | byId.setConsignerName(data.getUserName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (byId.getCancellationId()!=null){ | 
|---|
|  |  |  | if (byId.getCancellationId() != null) { | 
|---|
|  |  |  | SysUser data = sysUserClient.getSysUser(byId.getCancellationId()).getData(); | 
|---|
|  |  |  | if (data!=null){ | 
|---|
|  |  |  | if (data != null) { | 
|---|
|  |  |  | byId.setCancellationName(data.getUserName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (byId.getAppUserAddressId()!=null){ | 
|---|
|  |  |  | if (byId.getAppUserAddressId() != null) { | 
|---|
|  |  |  | TAppUserAddress data = appUserClient.getAddressById(byId.getAppUserAddressId()).getData(); | 
|---|
|  |  |  | if (data!=null){ | 
|---|
|  |  |  | byId.setReceivingName(data.getName()+"-"+data.getPhone()); | 
|---|
|  |  |  | byId.setReceivingAddress(data.getAddress()); | 
|---|
|  |  |  | if (data != null) { | 
|---|
|  |  |  | byId.setReceivingName(data.getName() + "-" + data.getPhone()); | 
|---|
|  |  |  | byId.setReceivingAddress(data.getProvince()+data.getCity() | 
|---|
|  |  |  | +(data.getDistrict()==null?"":data.getDistrict()) | 
|---|
|  |  |  | +(data.getAddress()==null?"":data.getAddress()) | 
|---|
|  |  |  | +(data.getHouseNumber()==null?"":data.getHouseNumber())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (byId.getOrderType()==1){ | 
|---|
|  |  |  | TGoods data = goodsClient.getGoodsById(byId.getGoodsId()).getData(); | 
|---|
|  |  |  | if (data!=null){ | 
|---|
|  |  |  | byId.setName(data.getName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | TCoupon data = couponClient.getCouponById1(byId.getCouponId()).getData(); | 
|---|
|  |  |  | if (data!=null){ | 
|---|
|  |  |  | byId.setName(data.getName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return AjaxResult.success(byId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/deleteShoppingOrder") | 
|---|
|  |  |  | @ApiOperation(value = "批量删除订单", tags = {"管理后台-购物订单"}) | 
|---|
|  |  |  | public AjaxResult<TShoppingOrder> deleteShoppingOrder(String ids) { | 
|---|
|  |  |  | shoppingOrderService.removeBatchByIds(Arrays.asList(ids.split(","))); | 
|---|
|  |  |  | return AjaxResult.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private TokenService tokenService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private AliPaymentClient aliPaymentClient; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private WxPaymentClient wxPaymentClient; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private AppCouponClient appCouponClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/cancelShoppingOrder") | 
|---|
|  |  |  | @ApiOperation(value = "取消订单", tags = {"管理后台-购物订单"}) | 
|---|
|  |  |  | public AjaxResult cancelShoppingOrder(String id) { | 
|---|
|  |  |  | 
|---|
|  |  |  | byId.setCancellationId(userid); | 
|---|
|  |  |  | byId.setCancellationTime(LocalDateTime.now()); | 
|---|
|  |  |  | byId.setStatus(4); | 
|---|
|  |  |  | switch (byId.getPaymentType()){ | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); | 
|---|
|  |  |  | TShoppingOrderRefund tShoppingOrderRefund = new TShoppingOrderRefund(); | 
|---|
|  |  |  | tShoppingOrderRefund.setPayTime(byId.getPayTime()); | 
|---|
|  |  |  | tShoppingOrderRefund.setPayCode(byId.getSerialNumber()); | 
|---|
|  |  |  | tShoppingOrderRefund.setPayAmount(byId.getPaymentAmount()); | 
|---|
|  |  |  | tShoppingOrderRefund.setPayType(1); | 
|---|
|  |  |  | tShoppingOrderRefund.setShoppingOrderId(byId.getId()); | 
|---|
|  |  |  | tShoppingOrderRefund.setRefundAmount(byId.getPaymentAmount()); | 
|---|
|  |  |  | tShoppingOrderRefund.setRefundStatus(1); | 
|---|
|  |  |  | tShoppingOrderRefund.setCode("GWF" + sdf.format(new Date()) + Double.valueOf(Math.random() * 1000).intValue()); | 
|---|
|  |  |  | tShoppingOrderRefund.setRefundTitle("后台取消订单"); | 
|---|
|  |  |  | tShoppingOrderRefund.setRefundContent("后台取消订单"); | 
|---|
|  |  |  | tShoppingOrderRefund.setRefundReason("后台取消订单"); | 
|---|
|  |  |  | tShoppingOrderRefund.setRefundRemark("全额退款"); | 
|---|
|  |  |  | tShoppingOrderRefund.setRefundTotalAmount(byId.getPaymentAmount()); | 
|---|
|  |  |  | switch (byId.getPaymentType()) { | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | // 微信 | 
|---|
|  |  |  | WxPaymentRefundModel wxPaymentRefundModel = new WxPaymentRefundModel(); | 
|---|
|  |  |  | wxPaymentRefundModel.setTransaction_id(byId.getSerialNumber()); | 
|---|
|  |  |  | wxPaymentRefundModel.setOut_trade_no(byId.getCode()); | 
|---|
|  |  |  | wxPaymentRefundModel.setOut_refund_no(OrderCodeUtil.getOrderCode("GW")); | 
|---|
|  |  |  | // todo 部署到线上之后写回调地址 | 
|---|
|  |  |  | //            wxPaymentRefundModel.setNotify_url(""); | 
|---|
|  |  |  | wxPaymentRefundModel.setOut_refund_no(OrderCodeUtil.getOrderCode("GWTK")); | 
|---|
|  |  |  | wxPaymentRefundModel.setReason("后台购物订单退款"); | 
|---|
|  |  |  | wxPaymentRefundModel.setNotify_url("/payment/wx/refund/notify"); | 
|---|
|  |  |  | String string = byId.getPaymentAmount().multiply(new BigDecimal("100")).toString(); | 
|---|
|  |  |  | if (string.contains(".")){ | 
|---|
|  |  |  | string = string.substring(0,string.indexOf(".")); | 
|---|
|  |  |  | if (string.contains(".")) { | 
|---|
|  |  |  | string = string.substring(0, string.indexOf(".")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int i = Integer.parseInt(string); | 
|---|
|  |  |  | WxPaymentRefundModel.RefundAmount refundAmount = new WxPaymentRefundModel.RefundAmount(); | 
|---|
|  |  |  | refundAmount.setTotal(i); | 
|---|
|  |  |  | refundAmount.setCurrency("CNY"); | 
|---|
|  |  |  | refundAmount.setRefund(i); | 
|---|
|  |  |  | wxPaymentRefundModel.setAmount(refundAmount); | 
|---|
|  |  |  | wxPaymentClient.refundOrderR(wxPaymentRefundModel); | 
|---|
|  |  |  | R<String> stringR = wxPaymentClient.refundOrderR(wxPaymentRefundModel); | 
|---|
|  |  |  | if(200 == stringR.getCode()){ | 
|---|
|  |  |  | shoppingOrderRefundService.save(tShoppingOrderRefund); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | // 支付宝 | 
|---|
|  |  |  | RefundReq refundReq = new RefundReq(); | 
|---|
|  |  |  | refundReq.setOutTradeNo(byId.getSerialNumber()); | 
|---|
|  |  |  | String gw = OrderCodeUtil.getOrderCode("GW"); | 
|---|
|  |  |  | String gw = OrderCodeUtil.getOrderCode("GWF"); | 
|---|
|  |  |  | refundReq.setOutRequestNo(gw); | 
|---|
|  |  |  | refundReq.setRefundAmount(byId.getPaymentAmount().toString()); | 
|---|
|  |  |  | refundReq.setRefundReason("后台退款"); | 
|---|
|  |  |  | refundReq.setRefundReason("后台购物订单退款"); | 
|---|
|  |  |  | RefundResp data = aliPaymentClient.refund(refundReq).getData(); | 
|---|
|  |  |  | if (data!=null){ | 
|---|
|  |  |  | // 退款成功 回退优惠券 | 
|---|
|  |  |  | //               byId.setStatus(4); | 
|---|
|  |  |  | if (byId.getAppCouponId()!=null){ | 
|---|
|  |  |  | if (data != null) { | 
|---|
|  |  |  | byId.setStatus(4); | 
|---|
|  |  |  | SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE"); | 
|---|
|  |  |  | TShoppingOrderRefund one = shoppingOrderRefundService.getOne(new LambdaQueryWrapper<TShoppingOrderRefund>().eq(TShoppingOrderRefund::getRefundCode, data.getOutTradeNo())); | 
|---|
|  |  |  | one.setRefundSerialNumber(data.getTradeNo()); | 
|---|
|  |  |  | one.setRefundStatus(2); | 
|---|
|  |  |  | one.setRefundTime(LocalDateTime.parse(sdf1.format(new Date()), DateTimeFormatter.ofPattern("yyyy-MM-DDTHH:mm:ss+TIMEZONE"))); | 
|---|
|  |  |  | shoppingOrderRefundService.updateById(one); | 
|---|
|  |  |  | if (byId.getAppCouponId() != null) { | 
|---|
|  |  |  | // 退款成功 回退优惠券 | 
|---|
|  |  |  | appCouponClient.refund(byId.getAppCouponId().toString()); | 
|---|
|  |  |  | byId.setRefundCode(gw); | 
|---|
|  |  |  | byId.setRefundAmount(byId.getPaymentAmount()); | 
|---|
|  |  |  | byId.setRefundStatus(2); | 
|---|
|  |  |  | byId.setRefundSerialNumber(data.getTradeNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | byId.setRefundCode(gw); | 
|---|
|  |  |  | byId.setRefundAmount(byId.getPaymentAmount()); | 
|---|
|  |  |  | byId.setRefundStatus(2); | 
|---|
|  |  |  | byId.setRefundSerialNumber(data.getTradeNo()); | 
|---|
|  |  |  | shoppingOrderService.updateById(byId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | shoppingOrderService.updateById(byId); | 
|---|
|  |  |  | return AjaxResult.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/consignerShoppingOrder") | 
|---|
|  |  |  | @ApiOperation(value = "发货", tags = {"管理后台-购物订单"}) | 
|---|
|  |  |  | public AjaxResult consignerShoppingOrder(String id,String companyName,String code) { | 
|---|
|  |  |  | public AjaxResult consignerShoppingOrder(String id, String companyName, String code) { | 
|---|
|  |  |  | TShoppingOrder byId = shoppingOrderService.getById(id); | 
|---|
|  |  |  | byId.setExpressCompany(companyName); | 
|---|
|  |  |  | byId.setExpressNumber(code); | 
|---|
|  |  |  | 
|---|
|  |  |  | shoppingOrderService.updateById(byId); | 
|---|
|  |  |  | return AjaxResult.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/getMyShoppingOrderList") | 
|---|
|  |  |  | @ApiOperation(value = "获取购买订单列表", tags = {"小程序-商城购买订单"}) | 
|---|
|  |  |  | public AjaxResult<Map<String, Object>> getMyShoppingOrderList(GetMyShoppingOrderList query){ | 
|---|
|  |  |  | public AjaxResult<Map<String, Object>> getMyShoppingOrderList(GetMyShoppingOrderList query) { | 
|---|
|  |  |  | Map<String, Object> list = shoppingOrderService.getMyShoppingOrderList(query); | 
|---|
|  |  |  | return AjaxResult.success(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/getMyShoppingOrderListNum") | 
|---|
|  |  |  | @ApiOperation(value = "获取购买订单列表数量", tags = {"小程序-商城购买订单"}) | 
|---|
|  |  |  | public AjaxResult<Map<String, Object>> getMyShoppingOrderListNum(){ | 
|---|
|  |  |  | public AjaxResult<Map<String, Object>> getMyShoppingOrderListNum() { | 
|---|
|  |  |  | Long userId = tokenService.getLoginUserApplet().getUserId(); | 
|---|
|  |  |  | long dfh = shoppingOrderService.count(new LambdaQueryWrapper<TShoppingOrder>().eq(TShoppingOrder::getDelFlag, 0) | 
|---|
|  |  |  | .eq(TShoppingOrder::getStatus, 1).eq(TShoppingOrder::getAppUserId, userId)); | 
|---|
|  |  |  | .eq(TShoppingOrder::getStatus, 1).eq(TShoppingOrder::getAppUserId, userId).eq(TShoppingOrder::getPaymentStatus, 2)); | 
|---|
|  |  |  | long dsh = shoppingOrderService.count(new LambdaQueryWrapper<TShoppingOrder>().eq(TShoppingOrder::getDelFlag, 0) | 
|---|
|  |  |  | .eq(TShoppingOrder::getStatus, 2).eq(TShoppingOrder::getAppUserId, userId)); | 
|---|
|  |  |  | .eq(TShoppingOrder::getStatus, 2).eq(TShoppingOrder::getAppUserId, userId).eq(TShoppingOrder::getPaymentStatus, 2)); | 
|---|
|  |  |  | long ywc = shoppingOrderService.count(new LambdaQueryWrapper<TShoppingOrder>().eq(TShoppingOrder::getDelFlag, 0) | 
|---|
|  |  |  | .eq(TShoppingOrder::getStatus, 3).eq(TShoppingOrder::getAppUserId, userId)); | 
|---|
|  |  |  | .eq(TShoppingOrder::getStatus, 3).eq(TShoppingOrder::getAppUserId, userId).eq(TShoppingOrder::getPaymentStatus, 2)); | 
|---|
|  |  |  | Map<String, Object> map = new HashMap<>(); | 
|---|
|  |  |  | map.put("dfh", dfh); | 
|---|
|  |  |  | map.put("dsh", dsh); | 
|---|
|  |  |  | map.put("ywc", ywc); | 
|---|
|  |  |  | return AjaxResult.success(map); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/getMyShoppingOrderInfo/{id}") | 
|---|
|  |  |  | @ApiOperation(value = "获取购买订单详情", tags = {"小程序-商城购买订单","管理后台-支付订单-订单信息"}) | 
|---|
|  |  |  | public AjaxResult<MyShoppingOrderInfo> getMyShoppingOrderInfo(@PathVariable String id){ | 
|---|
|  |  |  | @ApiOperation(value = "获取购买订单详情", tags = {"小程序-商城购买订单", "管理后台-支付订单-订单信息"}) | 
|---|
|  |  |  | public AjaxResult<MyShoppingOrderInfo> getMyShoppingOrderInfo(@PathVariable String id) { | 
|---|
|  |  |  | MyShoppingOrderInfo info = shoppingOrderService.getMyShoppingOrderInfo(id); | 
|---|
|  |  |  | return AjaxResult.success(info); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PutMapping("/confirmReceipt/{id}") | 
|---|
|  |  |  | @ApiOperation(value = "确认收货操作", tags = {"小程序-商城购买订单"}) | 
|---|
|  |  |  | public AjaxResult confirmReceipt(@PathVariable String id){ | 
|---|
|  |  |  | public AjaxResult confirmReceipt(@PathVariable String id) { | 
|---|
|  |  |  | TShoppingOrder shoppingOrder = shoppingOrderService.getById(id); | 
|---|
|  |  |  | if(shoppingOrder.getStatus() == 3){ | 
|---|
|  |  |  | if (shoppingOrder.getStatus() == 3) { | 
|---|
|  |  |  | return AjaxResult.error("不能重复确认收货"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(shoppingOrder.getStatus() == 1){ | 
|---|
|  |  |  | if (shoppingOrder.getStatus() == 1) { | 
|---|
|  |  |  | return AjaxResult.error("订单还未发货呢"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(shoppingOrder.getStatus() == 4){ | 
|---|
|  |  |  | if (shoppingOrder.getStatus() == 4) { | 
|---|
|  |  |  | return AjaxResult.error("订单已取消,不允许操作。"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | shoppingOrder.setStatus(3); | 
|---|
|  |  |  | shoppingOrder.setReceivingTime(LocalDateTime.now()); | 
|---|
|  |  |  | shoppingOrderService.updateById(shoppingOrder); | 
|---|
|  |  |  | return AjaxResult.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PutMapping("/cancelOrder/{id}") | 
|---|
|  |  |  | @ApiOperation(value = "取消订单操作", tags = {"小程序-商城购买订单"}) | 
|---|
|  |  |  | public AjaxResult cancelOrder(@PathVariable String id){ | 
|---|
|  |  |  | public AjaxResult cancelOrder(@PathVariable String id) { | 
|---|
|  |  |  | return shoppingOrderService.cancelOrder(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * 商城订单取消微信退款回调 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @PostMapping("/cancelShoppingOrderWxRefund") | 
|---|
|  |  |  | public void cancelShoppingOrderWxRefund(HttpServletRequest request){ | 
|---|
|  |  |  | WxRefundNotifyResp data = wxPaymentClient.refundNotify(request).getData(); | 
|---|
|  |  |  | if(null != data){ | 
|---|
|  |  |  | String out_refund_no = data.getOut_refund_no(); | 
|---|
|  |  |  | String refund_id = data.getRefund_id(); | 
|---|
|  |  |  | String tradeState = data.getTradeState(); | 
|---|
|  |  |  | String success_time = data.getSuccess_time(); | 
|---|
|  |  |  | shoppingOrderService.cancelShoppingOrderWxRefund(out_refund_no, refund_id, tradeState, success_time); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public void cancelShoppingOrderWxRefund(@RequestParam("out_refund_no") String out_refund_no, | 
|---|
|  |  |  | @RequestParam("refund_id") String refund_id, | 
|---|
|  |  |  | @RequestParam("tradeState") String tradeState, | 
|---|
|  |  |  | @RequestParam("success_time") String success_time) { | 
|---|
|  |  |  | shoppingOrderService.cancelShoppingOrderWxRefund(out_refund_no, refund_id, tradeState, success_time); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @GetMapping(value = "/getNoInvoicedOrder") | 
|---|
|  |  |  | @ApiOperation(value = "获取未开票的订单数据", tags = {"小程序-充电发票"}) | 
|---|
|  |  |  | public AjaxResult<List<MyShoppingOrderList>> getNoInvoicedOrder(GetNoInvoicedOrder query){ | 
|---|
|  |  |  | public AjaxResult<List<MyShoppingOrderList>> getNoInvoicedOrder(GetNoInvoicedOrder query) { | 
|---|
|  |  |  | List<MyShoppingOrderList> list = shoppingOrderService.getNoInvoicedOrder(query); | 
|---|
|  |  |  | return AjaxResult.success(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/create") | 
|---|
|  |  |  | public R<TShoppingOrder> shopCreate(@RequestBody ExchangeDto exchangeDto){ | 
|---|
|  |  |  | public R<TShoppingOrder> shopCreate(@RequestBody ExchangeDto exchangeDto) { | 
|---|
|  |  |  | TShoppingOrder shoppingOrder = new TShoppingOrder(); | 
|---|
|  |  |  | shoppingOrder.setTitle(exchangeDto.getTitle()); | 
|---|
|  |  |  | shoppingOrder.setCode(OrderCodeUtil.getOrderCode("GW")); | 
|---|
|  |  |  | shoppingOrder.setAppUserId(exchangeDto.getUserId()); | 
|---|
|  |  |  | shoppingOrder.setOrderType(exchangeDto.getGoodType()); | 
|---|
|  |  |  | if (exchangeDto.getGoodType()==1) { | 
|---|
|  |  |  | if (exchangeDto.getGoodType() == 1) { | 
|---|
|  |  |  | shoppingOrder.setGoodsId(exchangeDto.getGoodId()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | shoppingOrder.setStatus(1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | shoppingOrder.setCouponId(exchangeDto.getGoodId()); | 
|---|
|  |  |  | shoppingOrder.setStatus(3); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | shoppingOrder.setPurchaseQuantity(exchangeDto.getNum()); | 
|---|
|  |  |  | shoppingOrder.setAppUserAddressId(exchangeDto.getAddressId()); | 
|---|
|  |  |  | shoppingOrder.setOrderAmount(exchangeDto.getOrderPrice()); | 
|---|
|  |  |  | if (exchangeDto.getCouponId()!=null) { | 
|---|
|  |  |  | if (exchangeDto.getCouponId() != null) { | 
|---|
|  |  |  | shoppingOrder.setAppCouponId(exchangeDto.getCouponId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | shoppingOrder.setCouponDiscountAmount(exchangeDto.getDiscountPrice()); | 
|---|
|  |  |  | 
|---|
|  |  |  | shoppingOrder.setPaymentStatus(1); | 
|---|
|  |  |  | shoppingOrder.setPaymentType(exchangeDto.getPayMethod()); | 
|---|
|  |  |  | shoppingOrder.setRemark(exchangeDto.getRemark()); | 
|---|
|  |  |  | shoppingOrder.setStatus(1); | 
|---|
|  |  |  | shoppingOrder.setPhone(exchangeDto.getPhone()); | 
|---|
|  |  |  | shoppingOrder.setCreateTime(LocalDateTime.now()); | 
|---|
|  |  |  | shoppingOrder.setDelFlag(false); | 
|---|
|  |  |  | shoppingOrderService.save(shoppingOrder); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(shoppingOrder); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/callBack") | 
|---|
|  |  |  | public R callBack(@RequestParam("code")String code,@RequestParam("outTradeNo")String outTradeNo){ | 
|---|
|  |  |  | shoppingOrderService.callBack(code,outTradeNo); | 
|---|
|  |  |  | public R callBack(@RequestParam("code") String code, @RequestParam("outTradeNo") String outTradeNo) { | 
|---|
|  |  |  | shoppingOrderService.callBack(code, outTradeNo); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|