package com.matrix.system.shopXcx.action;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
import com.google.gson.Gson;
|
import com.matrix.component.asyncmessage.AsyncMessageManager;
|
import com.matrix.core.anotations.RemoveRequestToken;
|
import com.matrix.core.anotations.SaveRequestToken;
|
import com.matrix.core.constance.MatrixConstance;
|
import com.matrix.core.constance.SystemErrorCode;
|
import com.matrix.core.constance.SystemMessageCode;
|
import com.matrix.core.exception.GlobleException;
|
import com.matrix.core.pojo.AjaxResult;
|
import com.matrix.core.pojo.PaginationVO;
|
import com.matrix.core.tools.*;
|
import com.matrix.core.tools.excl.ExcelSheetPO;
|
import com.matrix.core.tools.excl.ExcelUtil;
|
import com.matrix.core.tools.excl.ExcelVersion;
|
import com.matrix.system.common.bean.SysUsers;
|
import com.matrix.system.common.constance.AppConstance;
|
import com.matrix.system.hive.action.BaseController;
|
import com.matrix.system.hive.action.util.QueryUtil;
|
import com.matrix.system.hive.bean.SysShopInfo;
|
import com.matrix.system.hive.bean.SysVipInfo;
|
import com.matrix.system.hive.dao.SysShopInfoDao;
|
import com.matrix.system.hive.service.SysVipInfoService;
|
import com.matrix.system.shopXcx.bean.*;
|
import com.matrix.system.shopXcx.dao.*;
|
import com.matrix.system.shopXcx.dto.DiscountExplain;
|
import com.matrix.system.shopXcx.mqTask.AsyncMessageRouting;
|
import com.matrix.system.shopXcx.pojo.ShopOrderQueryPOJO;
|
import com.matrix.system.shopXcx.shopEnum.OrderStatusEnum;
|
import com.matrix.system.shopXcx.vo.LogisticsImportVo;
|
import org.apache.commons.collections.CollectionUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.File;
|
import java.io.IOException;
|
import java.io.OutputStream;
|
import java.math.BigDecimal;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
/**
|
* @author jyy
|
* @description 订单表
|
* @date 2019-06-10 10:58
|
*/
|
@Controller
|
@RequestMapping(value = "admin/shopOrder")
|
public class ShopOrderAction extends BaseController {
|
|
@Autowired
|
private ShopOrderDao shopOrderDao;
|
@Autowired
|
private ShopDeliveryInfoDao shopDeliveryInfoDao;
|
@Autowired
|
private ShopOrderDetailsDao orderDetailsDao;
|
@Autowired
|
private WxWithdrawApplyDao wxWithdrawApplyDao;
|
@Autowired
|
private WxApplyOrderRelateDao wxApplyOrderRelateDao;
|
@Autowired
|
private SysShopInfoDao sysShopInfoDao;
|
@Autowired
|
private SysVipInfoService vipInfoService;
|
|
//记录编辑前的值Before_Edit_Value
|
public static final String BEV = "ShopOrder_BEV";
|
|
public static final List<LogisticsImportVo> logisticsImportVoLists = new ArrayList<>();
|
@Autowired
|
private AsyncMessageManager asyncMessageManager;
|
|
|
/**
|
* 导入快递单
|
*/
|
@RequestMapping(value = "/logisticsImport")
|
@ResponseBody
|
public AjaxResult logisticsImport(HttpServletResponse response, HttpServletRequest request,
|
@RequestParam(value = "file", required = false) MultipartFile file) throws IOException {
|
|
String fileName = file.getOriginalFilename();
|
String dirPath = PropertiesUtil.getString(AppConstance.FILES_TORAGE_PATH);
|
// String dirPath = "E:/xcshop";
|
File fileDir = new File(dirPath);
|
LogUtil.info("#----->{}#", fileDir.exists());
|
if (!fileDir.exists()) {
|
fileDir.mkdirs();
|
}
|
File saveFile = new File(dirPath + "/" + fileName);
|
file.transferTo(saveFile);
|
|
String infoRemind = "提示:";
|
AjaxResult ajaxResult = new AjaxResult();
|
List<LogisticsImportVo> logisticsImportVos = logisticsImportFile(saveFile);
|
if(CollUtil.isNotEmpty(logisticsImportVos)){
|
ajaxResult = AjaxResult.buildSuccessInstance("部分数据导入失败");
|
ajaxResult.setStatus(AjaxResult.STATUS_FAIL);
|
}else{
|
ajaxResult = AjaxResult.buildSuccessInstance("导入成功");
|
ajaxResult.setStatus(AjaxResult.STATUS_SUCCESS);
|
}
|
return ajaxResult;
|
}
|
|
@RequestMapping(value = "/exportLogisticsImportExcel")
|
public void exportLogisticsImportExcel(HttpServletResponse res) {
|
OutputStream os = null;
|
try {
|
res.setCharacterEncoding("UTF-8");
|
res.setHeader("content-type", "application/octet-stream;charset=UTF-8");
|
res.setContentType("application/octet-stream;charset=UTF-8");
|
Date date = new Date();
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss");
|
res.setHeader("Content-Disposition", "attachment;filename=" +
|
java.net.URLEncoder.encode("快递单导入列表" + dateFormat.format(date) + ".xls".trim(), "UTF-8"));
|
|
os = res.getOutputStream();
|
ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, disPoseLogisticsImportExcel(logisticsImportVoLists), os, true);
|
logisticsImportVoLists.clear();
|
} catch (Exception e) {
|
LogUtil.error("快递单导入异常", e);
|
} finally {
|
if (os != null) {
|
try {
|
os.close();
|
} catch (IOException e) {
|
LogUtil.error("关闭资源异常", e);
|
}
|
}
|
}
|
}
|
private List<ExcelSheetPO> disPoseLogisticsImportExcel(List<LogisticsImportVo> logisticsImportVos) {
|
List<ExcelSheetPO> res = new ArrayList<>();
|
ExcelSheetPO orderSheet = new ExcelSheetPO();
|
orderSheet.setSheetName("快递单导入");
|
orderSheet.setTitle("快递单导入失败列表");
|
String[] header = new String[]{"订单编号", "物流公司编码", "物流公司名称", "快递单号", "失败原因"};
|
orderSheet.setHeaders(header);
|
List<List<Object>> body = new ArrayList<>();
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
|
if(CollUtil.isNotEmpty(logisticsImportVos)){
|
for (LogisticsImportVo logisticsImportVo : logisticsImportVos) {
|
List<Object> bodyItem = new ArrayList<>();
|
bodyItem.add(logisticsImportVo.getOrderNo());
|
bodyItem.add(logisticsImportVo.getLogisticsCompanyCode());
|
bodyItem.add(logisticsImportVo.getLogisticsCompany());
|
bodyItem.add(logisticsImportVo.getWaybillNo());
|
bodyItem.add(logisticsImportVo.getFailReason());
|
body.add(bodyItem);
|
}
|
}
|
orderSheet.setDataList(body);
|
res.add(orderSheet);
|
return res;
|
}
|
|
public List<LogisticsImportVo> logisticsImportFile(File file) throws IOException {
|
SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
|
List<ExcelSheetPO> excelList = ExcelUtil.readExcel(file, null,null);
|
ArrayList<LogisticsImportVo> logisticsImportVos = new ArrayList<>();
|
for (int i = 0; i < excelList.size(); i++) {
|
List<List<Object>> dataList = excelList.get(i).getDataList();
|
List<SysVipInfo> vipInfos = new ArrayList<>();
|
if (CollectionUtils.isNotEmpty(dataList)) {
|
for (int j = 1; j < dataList.size(); j++) {
|
/**
|
* 订单处于【待付款】【待配送】【待收货】都可以导入
|
* 其他状态生成一个提示
|
*/
|
|
LogisticsImportVo logisticsImportVo = new LogisticsImportVo();
|
List<Object> objects = dataList.get(j);
|
//订单编号
|
String orderNo = objects.get(0).toString();
|
ShopOrder shopOrder = shopOrderDao.selectShopOrderByOrderNo(orderNo);
|
if(ObjectUtil.isNotEmpty(shopOrder) &&
|
(shopOrder.getOrderStatus() == ShopOrder.ORDER_STATUS_WAIT_SEND ||
|
shopOrder.getOrderStatus() == ShopOrder.ORDER_STATUS_WAIT_RECEIVE )){
|
//物流公司编码
|
String logisticsCompanyCode = objects.get(1).toString();
|
//物流公司名称
|
String logisticsCompany = objects.get(2).toString();
|
//快递单号
|
String waybillNo = objects.get(3).toString();
|
|
ShopDeliveryInfo shopDeliveryInfo = new ShopDeliveryInfo();
|
shopDeliveryInfo.setOrderId(shopOrder.getId());
|
List<ShopDeliveryInfo> infoList = shopDeliveryInfoDao.selectByModel(shopDeliveryInfo);
|
if (CollectionUtils.isEmpty(infoList)) {
|
logisticsImportVo.setOrderNo(objects.get(0).toString());
|
logisticsImportVo.setLogisticsCompanyCode(objects.get(1).toString());
|
logisticsImportVo.setLogisticsCompany(objects.get(2).toString());
|
logisticsImportVo.setWaybillNo(objects.get(3).toString());
|
logisticsImportVo.setFailReason("未找到发货信息");
|
logisticsImportVos.add(logisticsImportVo);
|
logisticsImportVoLists.add(logisticsImportVo);
|
}else{
|
shopDeliveryInfo = infoList.get(0);
|
shopDeliveryInfo.setOrderNo(orderNo);
|
shopDeliveryInfo.setLogisticsCompanyCode(logisticsCompanyCode);
|
shopDeliveryInfo.setLogisticsCompany(logisticsCompany);
|
shopDeliveryInfo.setWaybillNo(waybillNo);
|
shopDeliveryInfo.setUpdateBy(sysUsers.getSuName());
|
shopDeliveryInfo.setLogisticsStatus(AppConstance.LOGISTICS_STATUS_OF_RECEIVE);
|
shopDeliveryInfo.setDeliveryTime(new Date());
|
shopDeliveryInfoDao.updateByModel(shopDeliveryInfo);
|
|
//构建需要修改订单信息Map
|
Map<String, Object> modifyMap = new HashMap<>();
|
modifyMap.put("id", shopOrder.getId());
|
modifyMap.put("orderStatus", ShopOrder.ORDER_STATUS_WAIT_RECEIVE);
|
shopOrderDao.updateByMap(modifyMap);
|
|
//发送创建订单的消息
|
asyncMessageManager.sendMsg(AsyncMessageRouting.ORDER_OUT_SOTORE ,"orderNo=%s");
|
|
}
|
}else{
|
if(ObjectUtil.isEmpty(shopOrder)){
|
logisticsImportVo.setOrderNo(objects.get(0).toString());
|
logisticsImportVo.setLogisticsCompanyCode(objects.get(1).toString());
|
logisticsImportVo.setLogisticsCompany(objects.get(2).toString());
|
logisticsImportVo.setWaybillNo(objects.get(3).toString());
|
logisticsImportVo.setFailReason("未找到订单信息");
|
logisticsImportVos.add(logisticsImportVo);
|
logisticsImportVoLists.add(logisticsImportVo);
|
}else if(shopOrder.getOrderStatus() != ShopOrder.ORDER_STATUS_WAIT_SEND ||
|
shopOrder.getOrderStatus() != ShopOrder.ORDER_STATUS_WAIT_RECEIVE ){
|
logisticsImportVo.setOrderNo(objects.get(0).toString());
|
logisticsImportVo.setLogisticsCompanyCode(objects.get(1).toString());
|
logisticsImportVo.setLogisticsCompany(objects.get(2).toString());
|
logisticsImportVo.setWaybillNo(objects.get(3).toString());
|
logisticsImportVo.setFailReason("订单状态不允许发货");
|
logisticsImportVos.add(logisticsImportVo);
|
logisticsImportVoLists.add(logisticsImportVo);
|
}else{
|
logisticsImportVo.setOrderNo(objects.get(0).toString());
|
logisticsImportVo.setLogisticsCompanyCode(objects.get(1).toString());
|
logisticsImportVo.setLogisticsCompany(objects.get(2).toString());
|
logisticsImportVo.setWaybillNo(objects.get(3).toString());
|
logisticsImportVo.setFailReason("导入失败");
|
logisticsImportVos.add(logisticsImportVo);
|
logisticsImportVoLists.add(logisticsImportVo);
|
}
|
}
|
}
|
}
|
}
|
return logisticsImportVos;
|
}
|
|
/**
|
* 导出Excel
|
*/
|
@RequestMapping(value = "/exportOrderExcel")
|
public void exportOrderExcel(ShopOrderQueryPOJO orderQuery, HttpServletResponse res) {
|
OutputStream os = null;
|
try {
|
PaginationVO pageVo = new PaginationVO();
|
pageVo.setSort("o.order_time");
|
pageVo.setOrder("desc");
|
QueryUtil.setQueryLimitCom(orderQuery);
|
List<ShopOrder> dataList = shopOrderDao.selectInPageByQueryOfExcel(orderQuery, pageVo);
|
res.setCharacterEncoding("UTF-8");
|
res.setHeader("content-type", "application/octet-stream;charset=UTF-8");
|
res.setContentType("application/octet-stream;charset=UTF-8");
|
|
Date date = new Date();
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss");
|
res.setHeader("Content-Disposition", "attachment;filename=" +
|
java.net.URLEncoder.encode("订单列表" + dateFormat.format(date) + ".xlsx".trim(), "UTF-8"));
|
|
os = res.getOutputStream();
|
ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, disPoseExcelData(dataList), os, true);
|
} catch (Exception e) {
|
LogUtil.error("订单导出异常", e);
|
} finally {
|
if (os != null) {
|
try {
|
os.close();
|
} catch (IOException e) {
|
LogUtil.error("关闭资源异常", e);
|
}
|
}
|
}
|
}
|
|
private List<ExcelSheetPO> disPoseExcelData(List<ShopOrder> orderList) {
|
List<ExcelSheetPO> res = new ArrayList<>();
|
ExcelSheetPO orderSheet = new ExcelSheetPO();
|
orderSheet.setSheetName("订单列表");
|
orderSheet.setTitle("订单列表");
|
String[] header = new String[]{"订单编号", "客户姓名", "客户电话", "收货地址", "店铺名称","订单状态","下单时间", "购买商品","订单金额",
|
"优惠总金额", "配送方式"};
|
orderSheet.setHeaders(header);
|
List<List<Object>> body = new ArrayList<>();
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
|
for (ShopOrder shopOrder : orderList) {
|
List<ShopOrderDetails> details = shopOrder.getDetails();
|
if (CollectionUtils.isEmpty(details)) {
|
continue;
|
}
|
for (ShopOrderDetails shopOrderDetails : details) {
|
List<Object> bodyItem = new ArrayList<>();
|
//订单编号
|
bodyItem.add(shopOrder.getOrderNo());
|
//客户姓名
|
bodyItem.add(shopOrder.getUserName());
|
//客户电话
|
bodyItem.add(shopOrder.getUserTel());
|
//收货地址
|
ShopDeliveryInfo deliveryInfo = shopOrder.getDeliveryInfo();
|
if (deliveryInfo != null && deliveryInfo.getReceiveAddress() != null) {
|
bodyItem.add(deliveryInfo.getReceiveAddress());
|
} else {
|
bodyItem.add("");
|
}
|
//店铺名称
|
bodyItem.add(shopOrder.getStoreName());
|
//订单状态
|
bodyItem.add(OrderStatusEnum.getNameByCode(shopOrder.getOrderStatus()));
|
//下单时间
|
bodyItem.add(dateFormat.format(shopOrder.getOrderTime()));
|
//购买商品
|
ShopSku shopSku = shopOrderDetails.getShopSku();
|
ShopProduct shopProduct = shopOrderDetails.getShopProduct();
|
if (shopProduct == null) {
|
bodyItem.add("");
|
} else {
|
bodyItem.add(shopProduct.getTitle()+ "(" +shopSku.getName()+ ")*" + shopOrderDetails.getCount());
|
}
|
//订单金额
|
bodyItem.add(shopOrder.getOrderMoney());
|
//优惠总金额
|
bodyItem.add(shopOrder.getDiscountAmount());
|
//配送方式 门店
|
bodyItem.add("物流");
|
body.add(bodyItem);
|
}
|
}
|
orderSheet.setDataList(body);
|
res.add(orderSheet);
|
return res;
|
}
|
|
/**
|
* 列表显示
|
*/
|
@RequestMapping(value = "/showList")
|
public @ResponseBody
|
AjaxResult showList(ShopOrderQueryPOJO orderQuery, PaginationVO pageVo) {
|
QueryUtil.setQueryLimitCom(orderQuery);
|
pageVo.setSort("order_time");
|
pageVo.setOrder("desc");
|
|
List<ShopOrder> dataList = shopOrderDao.selectInPageByQuery(orderQuery, pageVo);
|
return new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, shopOrderDao.selectTotalRecordByQuery(orderQuery));
|
}
|
|
/**
|
* 新增
|
*/
|
@RemoveRequestToken
|
@RequestMapping(value = "/addShopOrder")
|
public @ResponseBody
|
AjaxResult addShopOrder(ShopOrder shopOrder) {
|
SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
|
shopOrder.setCreateBy(user.getSuName());
|
shopOrder.setUpdateBy(user.getSuName());
|
int i = shopOrderDao.insert(shopOrder);
|
if (i > 0) {
|
return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.ADD_SUCCES, "订单表");
|
} else {
|
throw new GlobleException(SystemErrorCode.DATA_ADD_FAIL);
|
}
|
}
|
|
/**
|
* 修改
|
*/
|
@RemoveRequestToken
|
@RequestMapping(value = "/modifyShopOrder")
|
public @ResponseBody
|
AjaxResult modifyShopOrder(ShopOrder newShopOrder, String receiveAddr) {
|
if (StringUtils.isNotBlank(receiveAddr)) {
|
ShopDeliveryInfo deliveryInfo = shopDeliveryInfoDao.selectByOrderId(newShopOrder.getId());
|
if (deliveryInfo != null) {
|
Integer deliveryId = deliveryInfo.getId();
|
Map<String, Object> modifyDeliveryMap = new HashMap<>();
|
modifyDeliveryMap.put("id", deliveryId);
|
modifyDeliveryMap.put("receiveAddress", receiveAddr);
|
shopDeliveryInfoDao.updateByMap(modifyDeliveryMap);
|
}
|
}
|
ShopOrder oldShopOrder = WebUtil.getSessionAttribute(BEV);
|
int i = 0;
|
Map<String, Object> modifyMap = null;
|
try {
|
if (!ModelUtils.isModified(oldShopOrder, newShopOrder)) {
|
i = MatrixConstance.DML_SUCCESSS;
|
}
|
modifyMap = ModelUtils.comparePojo2Map(oldShopOrder, newShopOrder);
|
} catch (Exception e) {
|
throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newShopOrder);
|
}
|
if (modifyMap.size() > 0) {
|
|
//修改优惠说明
|
if (StringUtils.isNotBlank(oldShopOrder.getDiscountExplain())) {
|
Gson g = new Gson();
|
DiscountExplain discountExplain = g.fromJson(oldShopOrder.getDiscountExplain(), DiscountExplain.class);
|
discountExplain.setPayPrice(newShopOrder.getOrderMoney());
|
modifyMap.put("discountExplain", g.toJson(discountExplain));
|
}
|
|
|
modifyMap.put("id", oldShopOrder.getId());
|
shopOrderDao.updateByMap(modifyMap);
|
}
|
i = MatrixConstance.DML_SUCCESSS;
|
WebUtil.removeSessionAttribute(BEV);
|
|
//修改订单明细金额
|
List<ShopOrderDetails> orderDetails = newShopOrder.getDetails();
|
for (ShopOrderDetails orderDetail : orderDetails) {
|
orderDetailsDao.updateByModel(orderDetail);
|
}
|
|
|
if (i > 0) {
|
return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.UPDATE_SUCCES, "订单表");
|
} else {
|
throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL);
|
}
|
}
|
|
/**
|
* 进入修改界面
|
*/
|
@SaveRequestToken
|
@RequestMapping(value = "/editForm")
|
public ModelAndView editForm(Integer id) {
|
ShopOrder shopOrder = new ShopOrder();
|
ModelAndView modelAndView = new ModelAndView("admin/shop/shopOrder-form");
|
if (id != null) {
|
shopOrder = shopOrderDao.selectMyOrderById(id);
|
if (StringUtils.isNotBlank(shopOrder.getDiscountExplain())) {
|
Gson g = new Gson();
|
DiscountExplain discountExplain = g.fromJson(shopOrder.getDiscountExplain(), DiscountExplain.class);
|
modelAndView.addObject("discountExplain", discountExplain);
|
}
|
WebUtil.setSessionAttribute(BEV, shopOrder);
|
}
|
modelAndView.addObject("orderInfo", shopOrder);
|
return modelAndView;
|
}
|
|
/**
|
* 进入打印页面
|
*/
|
@SaveRequestToken
|
@RequestMapping(value = "/printOrder")
|
public ModelAndView printOrder(Integer id) {
|
ModelAndView modelAndView = new ModelAndView("admin/shop/shopOrder-print");
|
ShopOrder shopOrder = shopOrderDao.selectMyOrderById(id);
|
|
if (StringUtils.isNotBlank(shopOrder.getDiscountExplain())) {
|
Gson g = new Gson();
|
DiscountExplain discountExplain = g.fromJson(shopOrder.getDiscountExplain(), DiscountExplain.class);
|
modelAndView.addObject("discountExplain", discountExplain);
|
}
|
|
modelAndView.addObject("orderInfo", shopOrder);
|
|
return modelAndView;
|
}
|
|
|
/**
|
* 进入发货界面
|
*/
|
@SaveRequestToken
|
@RequestMapping(value = "/sendPackage")
|
public ModelAndView sendPackage(Integer id) {
|
ShopOrder shopOrder = new ShopOrder();
|
ModelAndView modelAndView = new ModelAndView("admin/shop/order-sendPackage-form");
|
if (id != null) {
|
shopOrder = shopOrderDao.selectById(id);
|
WebUtil.setSessionAttribute(BEV, shopOrder);
|
}
|
modelAndView.addObject("obj", shopOrder);
|
return modelAndView;
|
}
|
|
/**
|
* 门店发货
|
*
|
* @param id
|
* @return
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
@RequestMapping(value = "/storeSendPackage")
|
public @ResponseBody
|
AjaxResult storeSendPackage(Integer id) {
|
ShopDeliveryInfo shopDeliveryInfo = shopDeliveryInfoDao.selectByOrderId(id);
|
|
if (shopDeliveryInfo == null) {
|
throw new GlobleException("没有找到该订单物流信息");
|
}
|
|
//更新物流状态
|
Map<String, Object> deliveryModifyMap = new HashMap<>();
|
deliveryModifyMap.put("id", shopDeliveryInfo.getId());
|
deliveryModifyMap.put("pickUpStatus", AppConstance.PICK_UP_STATUS_RECEIVE);
|
shopDeliveryInfoDao.updateByMap(deliveryModifyMap);
|
|
//更新订单状态
|
Map<String, Object> orderModifyMap = new HashMap<>();
|
orderModifyMap.put("id", shopDeliveryInfo.getId());
|
orderModifyMap.put("orderStatus", ShopOrder.ORDER_STATUS_WAIT_REMARK);
|
shopOrderDao.updateByMap(orderModifyMap);
|
|
return new AjaxResult(AjaxResult.STATUS_SUCCESS, "门店发货成功");
|
}
|
|
/**
|
* 删除
|
*/
|
@RequestMapping(value = "/del")
|
public @ResponseBody
|
AjaxResult del(String keys) {
|
List<String> ids = StringUtils.strToCollToString(keys, ",");
|
int i = shopOrderDao.deleteByIds(ids);
|
if (i > 0) {
|
return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.DELETE_SUCCES, i);
|
} else {
|
throw new GlobleException(SystemErrorCode.DATA_DELETE_FAIL);
|
}
|
}
|
|
/**
|
* 获取订单状态下拉框
|
*/
|
@RequestMapping(value = "/getOrderStatusSelectValue")
|
public @ResponseBody
|
AjaxResult getOrderStatusSelectValue() {
|
List<Map<String, Object>> selectValue = OrderStatusEnum.getSelectValue();
|
return new AjaxResult(AjaxResult.STATUS_SUCCESS, selectValue);
|
}
|
|
|
@RequestMapping(value = "/applyMoneyWithOrder")
|
@ResponseBody
|
@Transactional
|
public AjaxResult applyMoneyWithOrder(String keys) {
|
if (StringUtils.isBlank(keys)) {
|
return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择订单");
|
}
|
SysUsers sysUsers = getMe();
|
List<String> list = StringUtils.strToColl(keys, ",");
|
|
List<ShopOrder> data = shopOrderDao.selectOrdersByIds(sysUsers.getShopId(), sysUsers.getCompanyId(), list);
|
if (CollectionUtils.isNotEmpty(data)) {
|
StringBuffer orderIds = new StringBuffer();
|
BigDecimal applyMoney = BigDecimal.ZERO;
|
|
SysShopInfo shopInfo = sysShopInfoDao.selectByIdAndComId(sysUsers.getShopId(), sysUsers.getCompanyId());
|
if (shopInfo == null) {
|
return new AjaxResult(AjaxResult.STATUS_FAIL, "门店不存在");
|
}
|
|
if (StringUtils.isBlank(shopInfo.getBankNo())) {
|
return new AjaxResult(AjaxResult.STATUS_FAIL, "请联系管理员添加银行卡号");
|
}
|
|
for (ShopOrder shopOrder : data) {
|
if (shopOrder.getStoreId().longValue() != sysUsers.getShopId()) {
|
return new AjaxResult(AjaxResult.STATUS_FAIL, "非本店操作人员");
|
}
|
|
// 判断该订单是否需要发货
|
if (shopOrder.getOrderType() != null && ShopOrder.ORDER_TYPE_GOODS == shopOrder.getOrderType()) {
|
if (ShopOrder.ORDER_STATUS_WAIT_REMARK != shopOrder.getOrderStatus() && ShopOrder.ORDER_STATUS_ALREADY_REMARK != shopOrder.getOrderStatus()) {
|
return new AjaxResult(AjaxResult.STATUS_FAIL, "存在订单状态不允许提现");
|
}
|
}
|
|
if (shopOrder.getApplyStatus() != null && ShopOrder.ORDER_APPLY_STATUS_Y == shopOrder.getApplyStatus()) {
|
return new AjaxResult(AjaxResult.STATUS_FAIL, "订单中存在已提现的订单");
|
}
|
|
applyMoney = applyMoney.add(shopOrder.getOrderMoney());
|
shopOrder.setApplyStatus(ShopOrder.ORDER_APPLY_STATUS_Y);
|
orderIds.append("," + shopOrder.getId());
|
|
}
|
WxWithdrawApply apply = new WxWithdrawApply();
|
apply.setApplyStatus(WxWithdrawApply.ORDER_APPLY_STATUS_DOING);
|
apply.setComId(sysUsers.getCompanyId());
|
apply.setShopId(sysUsers.getShopId());
|
apply.setApplyMoney(applyMoney);
|
apply.setApplyNo("T" + DateUtil.dateToString(new Date(), "yyyyMMddHHmmss"));
|
apply.setBankNo(shopInfo.getBankNo());
|
apply.setBankName(shopInfo.getBankName());
|
apply.setBankOwnerName(shopInfo.getBankOwnerName());
|
apply.setCreateBy(sysUsers.getSuName());
|
apply.setUpdateBy(sysUsers.getSuName());
|
Integer cnt = wxWithdrawApplyDao.insert(apply);
|
|
Long applyId = apply.getId();
|
LogUtil.info("申请表id为:{}", applyId);
|
WxApplyOrderRelate relate = new WxApplyOrderRelate();
|
relate.setApplyId(applyId);
|
relate.setCreateBy(sysUsers.getSuName());
|
relate.setUpdateBy(sysUsers.getSuName());
|
relate.setOrderIds(orderIds.toString());
|
|
wxApplyOrderRelateDao.insert(relate);
|
int i = shopOrderDao.updateOrderApplyStatus(data);
|
if (i > 0) {
|
return new AjaxResult(AjaxResult.STATUS_SUCCESS, "申请成功,等待审核");
|
}
|
}
|
|
return new AjaxResult(AjaxResult.STATUS_FAIL, "该订单非本店铺订单,不能进行此操作");
|
}
|
|
@RequestMapping(value = "/findOrderListInPageByApplyId")
|
@ResponseBody
|
public AjaxResult findOrderListInPageByApplyId(ShopOrderQueryPOJO orderQuery, PaginationVO pageVO) {
|
List<ShopOrder> orders = shopOrderDao.selectShopOrderInPageByApplyId(orderQuery.getApplyId(), pageVO);
|
return new AjaxResult(AjaxResult.STATUS_SUCCESS, orders, shopOrderDao.selectShopOrderTotalByApplyId(orderQuery.getApplyId()));
|
}
|
}
|