|  |  |  | 
|---|
|  |  |  | package com.matrix.system.hive.action; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import cn.hutool.core.collection.CollUtil; | 
|---|
|  |  |  | import com.matrix.component.rabbitmq.RabiitMqTemplate; | 
|---|
|  |  |  | import com.matrix.core.constance.MatrixConstance; | 
|---|
|  |  |  | import com.matrix.core.exception.GlobleException; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.matrix.system.common.bean.SysUsers; | 
|---|
|  |  |  | import com.matrix.system.common.tools.ResponseHeadUtil; | 
|---|
|  |  |  | import com.matrix.system.constance.Dictionary; | 
|---|
|  |  |  | import com.matrix.system.constance.SystemConstance; | 
|---|
|  |  |  | import com.matrix.system.hive.bean.*; | 
|---|
|  |  |  | import com.matrix.system.hive.dao.*; | 
|---|
|  |  |  | import com.matrix.system.hive.plugin.util.CollectionUtils; | 
|---|
|  |  |  | import com.matrix.system.hive.pojo.ShoppingCarItem; | 
|---|
|  |  |  | import com.matrix.system.hive.pojo.ShoppingCarItemsVo; | 
|---|
|  |  |  | import com.matrix.system.hive.service.*; | 
|---|
|  |  |  | import com.matrix.system.shopXcx.mqTask.MQTaskRouting; | 
|---|
|  |  |  | import com.matrix.system.wechart.templateMsg.UniformMsgParam; | 
|---|
|  |  |  | 
|---|
|  |  |  | import java.net.URLEncoder; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.Arrays; | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | public class OrderController extends BaseController { | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private SysOrderService orderService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | ShoppingGoodsDao shoppingGoodsDao; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private CodeService codeService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SysOrderItemDao orderItemDao; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | RabiitMqTemplate rabiitMqTemplate; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SysProjServicesDao sysProjServicesDao; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Value("${evn}") | 
|---|
|  |  |  | private String evn; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | AjaxResult payOrder(@RequestBody SysOrder sysOrder) { | 
|---|
|  |  |  | SysUsers user = getMe(); | 
|---|
|  |  |  | sysOrder.setShopId(user.getShopId()); | 
|---|
|  |  |  | sysOrder.setOrderType(SysOrder.ORDER_TYPE_SEAL); | 
|---|
|  |  |  | sysOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_N); | 
|---|
|  |  |  | //校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新 | 
|---|
|  |  |  | sysOrder = orderService.checkAndSaveOrder(sysOrder); | 
|---|
|  |  |  | orderService.updateReceiptMoney(sysOrder); | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @RequestMapping(value = "/refundOrder") | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @Transactional(rollbackFor = Exception.class) | 
|---|
|  |  |  | public AjaxResult refundOrder(@RequestBody SysOrder sysOrder) { | 
|---|
|  |  |  | //储值卡订单不能通过退款渠道退款 | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(sysOrder.getItems())){ | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SysUsers user = getMe(); | 
|---|
|  |  |  | sysOrder.setShopId(user.getShopId()); | 
|---|
|  |  |  | sysOrder.setStatu(Dictionary.ORDER_STATU_TK); | 
|---|
|  |  |  | sysOrder.setOrderTime(new Date()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新 | 
|---|
|  |  |  | sysOrder = orderService.checkAndSaveOrder(sysOrder); | 
|---|
|  |  |  | orderService.refundOrderMoney(sysOrder); | 
|---|
|  |  |  | //处理用户购买的产品 | 
|---|
|  |  |  | return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrder), "订单退款成功"); | 
|---|
|  |  |  | 
|---|
|  |  |  | return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrder), "订单保存成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 新建订单 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @author jiangyouyao | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @RequestMapping(value = "/addOrder") | 
|---|
|  |  |  | public @ResponseBody | 
|---|
|  |  |  | AjaxResult addOrder(ShoppingCarItemsVo car) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<ShoppingCarItem> sessionCarItems = (List<ShoppingCarItem>) WebUtil.getSession().getAttribute( | 
|---|
|  |  |  | SystemConstance.SHOPPING_CAR); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<ShoppingCarItem> carItems = new ArrayList<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 设置购车中的具体类型信息,过滤没有被选中的商品 | 
|---|
|  |  |  | for (ShoppingCarItem carItem : car.getCarItems()) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (ShoppingCarItem sessionCar : sessionCarItems) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (carItem.getId().equals(sessionCar.getId())) { | 
|---|
|  |  |  | //已最后提交的数量为准 | 
|---|
|  |  |  | sessionCar.setCount(carItem.getCount()); | 
|---|
|  |  |  | carItems.add(sessionCar); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //设置过滤后的购物车条目 | 
|---|
|  |  |  | car.setCarItems(carItems); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SysVipInfo info = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER); | 
|---|
|  |  |  | car.setVipId(info.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 添加新订单 | 
|---|
|  |  |  | int i = orderService.createOrder(WebUtil.getSession(), car); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (i > 0) { | 
|---|
|  |  |  | WebUtil.getSession().removeAttribute(SystemConstance.SHOPPING_CAR); | 
|---|
|  |  |  | return new AjaxResult(AjaxResult.STATUS_SUCCESS, "下单成功"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return new AjaxResult(AjaxResult.STATUS_FAIL, "下单添加失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(orderVo.getId()!=null){ | 
|---|
|  |  |  | WebUtil.getRequest().setAttribute("orderParam", orderVo.getId()); | 
|---|
|  |  |  | WebUtil.getRequest().setAttribute("orderId", orderVo.getId()); | 
|---|
|  |  |  | }else if(StringUtils.isNotBlank(orderVo.getOrderNo())){ | 
|---|
|  |  |  | WebUtil.getRequest().setAttribute("orderParam", orderVo.getOrderNo()); | 
|---|
|  |  |  | WebUtil.getRequest().setAttribute("orderNo", orderVo.getOrderNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return "admin/hive/beautySalon/orderXq-form"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (order == null) { | 
|---|
|  |  |  | return new AjaxResult(AjaxResult.STATUS_FAIL, "订单不存在!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | orderService.cancelOrder(id); | 
|---|
|  |  |  | if (del > 0) { | 
|---|
|  |  |  | orderService.removeById(id); | 
|---|
|  |  |  | result.setInfo("删除成功!"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | result.setInfo("取消成功!"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<SysOrderItem> items = orderItemDao.selectByOrderId(id); | 
|---|
|  |  |  | for (SysOrderItem item : items) { | 
|---|
|  |  |  | List<SysProjServices> sysProjServices = sysProjServicesDao.selectProjServicesByOrderItemId(item.getId()); | 
|---|
|  |  |  | if (CollUtil.isNotEmpty(sysProjServices)) { | 
|---|
|  |  |  | return new AjaxResult(AjaxResult.STATUS_FAIL, "订单存在进行中的服务单无法取消/删除"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | orderService.cancelOrder(id); | 
|---|
|  |  |  | //        if (del > 0) { | 
|---|
|  |  |  | //            orderService.removeById(id); | 
|---|
|  |  |  | //            result.setInfo("删除成功!"); | 
|---|
|  |  |  | //        } else { | 
|---|
|  |  |  | result.setInfo("取消成功!"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | result.setStatus(AjaxResult.STATUS_SUCCESS); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return result; | 
|---|