123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- package com.caimei.modules.hehe.web;
- import com.caimei.modules.bulkpurchase.entity.BpClause;
- import com.caimei.modules.bulkpurchase.service.BpClauseService;
- import com.caimei.modules.hehe.dao.CmHeheUserDao;
- import com.caimei.modules.hehe.entity.CmHeheUser;
- import com.caimei.modules.hehe.service.HeHeNewOrderService;
- import com.caimei.modules.order.dao.CmDiscernReceiptDao;
- import com.caimei.modules.order.dao.CmReceiptOrderRelationDao;
- import com.caimei.modules.order.dao.CmReturnedPurchaseDao;
- import com.caimei.modules.order.entity.*;
- import com.caimei.modules.order.service.CmDiscernReceiptService;
- import com.caimei.modules.order.service.CmReceiptOrderRelationService;
- import com.caimei.modules.order.service.CmReturnedPurchaseService;
- import com.caimei.modules.order.service.NewOrderConfigService;
- import com.thinkgem.jeesite.common.persistence.Page;
- import com.thinkgem.jeesite.common.utils.StringUtils;
- import com.thinkgem.jeesite.common.web.BaseController;
- import org.apache.commons.collections.CollectionUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * Description
- *
- * @author : plf
- * @date : 2021/4/27
- */
- @Controller
- @RequestMapping(value = "${adminPath}/hehe/new/order")
- public class HeHeNewOrderController extends BaseController {
- @Autowired
- private HeHeNewOrderService heHeNewOrderService;
- @Autowired
- private CmHeheUserDao cmHeheUserDao;
- @Resource
- private BpClauseService bpClauseService;
- @Resource
- private CmReturnedPurchaseDao cmReturnedPurchaseDao;
- @Resource
- private NewOrderConfigService newOrderConfigService;
- @Resource
- private CmDiscernReceiptService cmDiscernReceiptService;
- @Resource
- private CmReturnedPurchaseService cmReturnedPurchaseService;
- @Resource
- private CmReceiptOrderRelationDao cmReceiptOrderRelationDao;
- @Autowired
- private CmDiscernReceiptDao cmDiscernReceiptDao;
- @Autowired
- private CmReceiptOrderRelationService cmReceiptOrderRelationService;
- @ModelAttribute
- public NewOrder get(@RequestParam(required = false) String id) {
- NewOrder entity = null;
- if (StringUtils.isNotBlank(id)) {
- entity = heHeNewOrderService.get(id);
- }
- if (entity == null) {
- entity = new NewOrder();
- }
- return entity;
- }
- @RequestMapping("orderList")
- public String orderList(NewOrder order, HttpServletRequest request, HttpServletResponse response, Model model) {
- if (null != order.getStartTime() && !"".equals(order.getStartTime()) && !order.getStartTime().endsWith("00:00:00")) {
- model.addAttribute("startTime", order.getStartTime());
- order.setStartTime(order.getStartTime() + " 00:00:00");
- }
- if (null != order.getEndTime() && !"".equals(order.getEndTime()) && !order.getEndTime().endsWith("23:59:59")) {
- model.addAttribute("endTime", order.getEndTime());
- order.setEndTime(order.getEndTime() + " 23:59:59");
- }
- if (null != order.getStartConfirmTime() && !"".equals(order.getStartConfirmTime()) && !order.getStartConfirmTime().endsWith("00:00:00")) {
- model.addAttribute("startConfirmTime", order.getStartConfirmTime());
- order.setStartConfirmTime(order.getStartConfirmTime() + " 00:00:00");
- }
- if (null != order.getEndConfirmTime() && !"".equals(order.getEndConfirmTime()) && !order.getEndConfirmTime().endsWith("23:59:59")) {
- model.addAttribute("endConfirmTime", order.getEndConfirmTime());
- order.setEndConfirmTime(order.getEndConfirmTime() + " 23:59:59");
- }
- if (null != order.getStartRefundTime() && !"".equals(order.getStartRefundTime()) && !order.getStartRefundTime().endsWith("00:00:00")) {
- model.addAttribute("startRefundTime", order.getStartRefundTime());
- order.setStartRefundTime(order.getStartRefundTime() + " 00:00:00");
- }
- if (null != order.getEndRefundTime() && !"".equals(order.getEndRefundTime()) && !order.getEndRefundTime().endsWith("23:59:59")) {
- model.addAttribute("endRefundTime", order.getEndRefundTime());
- order.setEndRefundTime(order.getEndRefundTime() + " 23:59:59");
- }
- model.addAttribute("orderRefundType", order.getOrderRefundType());
- if (null != order.getBuyer()) {
- order.setBuyer(order.getBuyer().trim());
- }
- if (null != order.getReceiver()) {
- order.setReceiver(order.getReceiver().trim());
- }
- //查询内部处理了已收,未付统计(包含运费)
- Page<NewOrder> page = heHeNewOrderService.findPage(new Page<>(request, response, 20), order);
- CmHeheUser user = new CmHeheUser();
- user.setUserIdentity("2");
- List<CmHeheUser> heUsers = cmHeheUserDao.findList(user);
- model.addAttribute("page", page);
- model.addAttribute("heUsers", heUsers);
- return "modules/hehe/heheNewOrderList";
- }
- /**
- * 订单详情
- */
- @RequestMapping("detail")
- public String detail(NewOrder order, Model model) {
- BpClause bpClause = new BpClause();
- bpClause.setEnabledStatus("1");
- List<BpClause> bpClauses = bpClauseService.findList(bpClause);
- model.addAttribute("bpClauses", bpClauses);
- //获取订单是否可以申请付款
- List<Integer> oId = new ArrayList<>();
- oId.add(order.getOrderID());
- List<Integer> orderIdsInApplyReturn = cmReturnedPurchaseDao.findOrderIDsInApplyReturnFlag(oId);
- if (CollectionUtils.isNotEmpty(orderIdsInApplyReturn) && orderIdsInApplyReturn.size() > 0) {
- order.setApplyReturnedPurchaseFlag("0");
- } else {
- order.setApplyReturnedPurchaseFlag("1");
- }
- //判断是否有在收款审核的订单
- List<Integer> ids = cmReceiptOrderRelationDao.toAudit(order.getOrderID());
- if (ids != null && ids.size() > 0) {
- order.setToAudit("1");
- }
- //一个子订单只有一个商品时,不可拆分
- int count = 0;
- for (NewShopOrder newShopOrder : order.getNewShopOrders()) {
- if (newShopOrder.getShopID() != 998) {
- count++;
- }
- }
- if (order.getProductCount() == null) {
- order.setProductCount(1);
- }
- if (order.getProductCount() <= count) {
- order.setSplitFlag("0");
- }
- //是否抹平支付过(抹平最多只允许存在一次)
- CmDiscernReceipt cmDiscernReceipt = cmDiscernReceiptDao.findSmoothoutInfo(order.getOrderID().toString());
- if (null != cmDiscernReceipt) {
- order.setAssociationType(cmDiscernReceipt.getAssociationType());
- String confirmType = cmDiscernReceipt.getConfirmType();
- order.setConfirmType(confirmType);
- // 是否是一比款收了多个订单
- if (StringUtils.equals(confirmType, "1") || StringUtils.equals(confirmType, "2") || StringUtils.equals(confirmType, "3")) {
- List<CmReceiptOrderRelation> byReceiptList = cmReceiptOrderRelationService.findByReceiptID(cmDiscernReceipt.getId());
- if (CollectionUtils.isNotEmpty(byReceiptList) && byReceiptList.size() > 1) {
- order.setReceiptOrderFlag(true);
- }
- }
- }
- // 订单已收款才会出现抹平或者多收退余额,(已收再退款或者撤销退款订单即使存在抹平也需要当未抹平重新计算付款)
- String receiptStatus = order.getReceiptStatus();
- if (StringUtils.equals("3", receiptStatus)) {
- if (null != cmDiscernReceipt) {
- String confirmType = cmDiscernReceipt.getConfirmType();
- order.setConfirmType(confirmType);
- double associateAmount = cmDiscernReceiptDao.getAssociateAmount(String.valueOf(order.getOrderID()));
- order.setOrderReceivedAmount(associateAmount);
- //大额退余额
- if (StringUtils.equals("3", confirmType)) {
- String id = cmDiscernReceipt.getId();
- double returnBalanceAmount = cmDiscernReceiptDao.getReturnBalanceAmount(id);
- order.setReturnBalanceAmount(returnBalanceAmount);
- }
- }
- }
- model.addAttribute("order", order);
- if ("0".equals(order.getStatus())) {
- try {
- NewOrderConfig confirmOverTime = newOrderConfigService.getValueByKey("confirmOverTime");
- Double value = confirmOverTime.getValue(); //待确认超过 value 小时自动取消订单
- GregorianCalendar gc = new GregorianCalendar();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date orderTime = sdf.parse(order.getOrderTime());
- gc.setTime(orderTime);
- gc.add(Calendar.HOUR, value.intValue());
- Date time = gc.getTime();
- String ot = sdf.format(time);
- if (time.after(new Date()))
- model.addAttribute("time", ot);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- CmReturnedPurchase cmReturnedPurchase = new CmReturnedPurchase();
- cmReturnedPurchase.setStatus("2");
- cmReturnedPurchase.setOrderID(order.getOrderID());
- List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
- Double returnedPurchaseFee = 0D; //退款(退货)总金额
- Double refundFee = 0D; //退款总额(给买家)
- for (CmReturnedPurchase bean : dataList) {
- if (!bean.getStatus().equals("3")) {
- returnedPurchaseFee += bean.getReturnedPurchaseFee();
- refundFee += bean.getRefundFee();
- }
- }
- double returnValue = 0d; //退货价值
- if (order.getDiscountFee() >= returnedPurchaseFee) {
- returnValue = 0d; //如果经理折扣大于退款(退货)总金额之和 那么先抵扣经理折扣 退款价值为0
- } else {
- returnValue = returnedPurchaseFee - order.getDiscountFee(); //抵用完经理折扣后才是真实价值
- }
- //订单已收金额
- Double receiptAmount = cmDiscernReceiptService.findOrderReceipt(order.getOrderID());
- model.addAttribute("returnValue", returnValue);
- model.addAttribute("receiptAmount", receiptAmount == null ? 0 : receiptAmount);
- model.addAttribute("returnedPurchaseFee", returnedPurchaseFee);
- return "modules/hehe/heheNewOrderDetail";
- }
- }
|