From 9974b1fffff1cad712b7c30fb4c708ef45ec4b8c Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 17 Mar 2021 09:44:03 +0800
Subject: [PATCH] Merge branch 'score_shop' of http://120.27.238.55:7000/r/beauty-erp into score_shop

---
 zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderService.java |  165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 165 insertions(+), 0 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderService.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderService.java
index 8a6ca27..256be95 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderService.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderService.java
@@ -1,9 +1,43 @@
 package com.matrix.system.fenxiao.service;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.matrix.biz.bean.BizUser;
+import com.matrix.biz.dao.BizUserDao;
+import com.matrix.core.constance.MatrixConstance;
+import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.core.tools.WebUtil;
+import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.fenxiao.dao.ShopRevenueFlowDao;
+import com.matrix.system.fenxiao.dao.ShopSalemanSettlementDao;
 import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao;
+import com.matrix.system.fenxiao.dto.LoadFenxiaoOrderBasicDto;
+import com.matrix.system.fenxiao.dto.LoadFenxiaoOrderListDto;
+import com.matrix.system.fenxiao.dto.LoadSetOrderListDtoDto;
+import com.matrix.system.fenxiao.dto.UpdateSetOrderDoneDto;
+import com.matrix.system.fenxiao.entity.ShopRevenueFlow;
+import com.matrix.system.fenxiao.entity.ShopSalemanSettlement;
 import com.matrix.system.fenxiao.entity.ShopSalesmanOrder;
+import com.matrix.system.fenxiao.vo.LoadFenxiaoOrderBasicVo;
+import com.matrix.system.fenxiao.vo.LoadFenxiaoOrderListVo;
+import com.matrix.system.fenxiao.vo.LoadSetOrderListDtoVo;
+import com.matrix.system.hive.action.util.QueryUtil;
+import com.matrix.system.hive.service.CodeService;
+import com.matrix.system.shopXcx.bean.ShopOrder;
+import com.matrix.system.shopXcx.dao.ShopOrderDao;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @description 分销订单
@@ -12,6 +46,137 @@
  */
 @Service
 public class ShopSalesmanOrderService  extends ServiceImpl<ShopSalesmanOrderDao, ShopSalesmanOrder>{
+	
+	@Autowired
+	ShopSalesmanOrderDao shopSalesmanOrderDao;
+	@Autowired
+	CodeService codeService;
+	@Autowired
+	ShopSalemanSettlementDao shopSalemanSettlementDao;
+	@Autowired
+	ShopRevenueFlowDao shopRevenueFlowDao;
+	@Autowired
+	ShopOrderDao shopOrderDao;
+	@Autowired
+	BizUserDao bizUserDao;
+
+	public AjaxResult loadFenxiaoOrderBasic(LoadFenxiaoOrderBasicDto loadFenxiaoOrderBasicDto) {
+		//设置用户公司ID
+    	QueryUtil.setQueryLimitCom(loadFenxiaoOrderBasicDto);
+    	AjaxResult result= AjaxResult.buildSuccessInstance("查询成功");
+    	//根据OPENID查询基础信息
+    	Long companyId = loadFenxiaoOrderBasicDto.getCompanyId();
+    	LoadFenxiaoOrderBasicVo loadFenxiaoOrderBasicVo = shopSalesmanOrderDao.selectFenxiaoOrderBasicByCompanyId(companyId);
+    	result.putInMap("basicdetail", loadFenxiaoOrderBasicVo);
+        return result;
+	}
+
+	public AjaxResult loadFenxiaoOrderList(LoadFenxiaoOrderListDto loadFenxiaoOrderListDto) {
+		//设置用户公司ID
+    	QueryUtil.setQueryLimitCom(loadFenxiaoOrderListDto);
+        //排序
+        if(StringUtils.isBlank(loadFenxiaoOrderListDto.getSort())){
+        	loadFenxiaoOrderListDto.setSort("create_time");
+        	loadFenxiaoOrderListDto.setOrder("desc");
+        }
+        Page<LoadFenxiaoOrderListVo> page = new Page(loadFenxiaoOrderListDto.getPageNum(), loadFenxiaoOrderListDto.getPageSize());
+        IPage<LoadFenxiaoOrderListVo> loadFenxiaoOrderListVos = shopSalesmanOrderDao.findFenxiaoOrderList(page,loadFenxiaoOrderListDto);
+        return AjaxResult.buildSuccessInstance(loadFenxiaoOrderListVos.getRecords(),loadFenxiaoOrderListVos.getTotal());
+	}
+
+	public AjaxResult loadSetOrderList(LoadSetOrderListDtoDto loadSetOrderListDto) {
+		//设置用户公司ID
+		QueryUtil.setQueryLimitCom(loadSetOrderListDto);
+		//排序
+		if(StringUtils.isBlank(loadSetOrderListDto.getSort())){
+			loadSetOrderListDto.setSort("create_time");
+			loadSetOrderListDto.setOrder("desc");
+		}
+		Page<LoadSetOrderListDtoVo> page = new Page(loadSetOrderListDto.getPageNum(), loadSetOrderListDto.getPageSize());
+		IPage<LoadSetOrderListDtoVo> loadFenxiaoOrderListVos = shopSalesmanOrderDao.findSetOrderList(page,loadSetOrderListDto);
+		return AjaxResult.buildSuccessInstance(loadFenxiaoOrderListVos.getRecords(),loadFenxiaoOrderListVos.getTotal());
+	}
+
+	@Transactional(rollbackFor = Exception.class)
+	public AjaxResult updateSetOrderDone(UpdateSetOrderDoneDto updateSetOrderDoneDto) {
+		//设置用户公司ID
+		QueryUtil.setQueryLimitCom(updateSetOrderDoneDto);
+		SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+		Long companyId = updateSetOrderDoneDto.getCompanyId();
+		Integer setType = updateSetOrderDoneDto.getSetType();
+		
+		String orderIds = updateSetOrderDoneDto.getOrderIds();
+		if(StrUtil.isNotEmpty(orderIds)){
+			List<String> idsStringList = Arrays.asList(orderIds.split(","));
+			if(CollUtil.isEmpty(idsStringList)) {
+				return AjaxResult.buildFailInstance("请至少选择一条记录");
+			}
+			//产生订单结算记录
+			ShopSalemanSettlement shopSalemanSettlement = new ShopSalemanSettlement();
+			shopSalemanSettlement.setCompanyId(companyId);
+			shopSalemanSettlement.setCreateBy(MatrixConstance.SYSTEM_USER);
+			shopSalemanSettlement.setUpdateBy(MatrixConstance.SYSTEM_USER);
+			shopSalemanSettlement.setCreateTime(new Date());
+			shopSalemanSettlement.setUpdateTime(new Date());
+			shopSalemanSettlement.setOrderNo(codeService.getCodeByTyle(ShopSalemanSettlement.ORDERNO_START));
+			shopSalemanSettlement.setSettlementWay(setType);
+			shopSalemanSettlement.setManCount(updateSetOrderDoneDto.getManCount());
+			shopSalemanSettlement.setOrderCount(updateSetOrderDoneDto.getOrderCount());
+			shopSalemanSettlement.setUserId(user.getSuId().intValue());
+			shopSalemanSettlement.setAmount(updateSetOrderDoneDto.getAmount());
+			shopSalemanSettlement.setRemark(updateSetOrderDoneDto.getRemark());
+			shopSalemanSettlement.setCompanyId(companyId);
+			shopSalemanSettlementDao.insert(shopSalemanSettlement);
+			
+			for(String idString : idsStringList) {
+				long id = Long.parseLong(idString);
+				//更新分销订单
+				ShopSalesmanOrder shopSalesmanOrder = shopSalesmanOrderDao.selectById(id);
+				if(!ShopSalesmanOrder.STATUS_DJS.equals(shopSalesmanOrder.getOrderStatus())) {
+					return AjaxResult.buildFailInstance("选中记录中存在【已结算】的记录");
+				}
+				//判断原始订单的状态【4=待评价, 5=已评价】才能结算
+				ShopOrder shopOrder = shopOrderDao.selectById(shopSalesmanOrder.getOrderId().intValue());
+				if(ShopOrder.ORDER_STATUS_WAIT_REMARK != shopOrder.getOrderStatus() && 
+						ShopOrder.ORDER_STATUS_ALREADY_REMARK != shopOrder.getOrderStatus()) {
+					return AjaxResult.buildFailInstance("未收货订单不允许结算");
+				}
+				shopSalesmanOrder.setOrderStatus(ShopSalesmanOrder.STATUS_YJS);
+				shopSalesmanOrder.setSettlementId(shopSalemanSettlement.getId());
+				shopSalesmanOrderDao.updateById(shopSalesmanOrder);
+				//记录流水
+				ShopRevenueFlow salesRevenueFlow=new ShopRevenueFlow();
+				salesRevenueFlow.setCompanyId(companyId);
+				salesRevenueFlow.setCreateBy(MatrixConstance.SYSTEM_USER);
+				salesRevenueFlow.setUpdateBy(MatrixConstance.SYSTEM_USER);
+				salesRevenueFlow.setCreateTime(new Date());
+				salesRevenueFlow.setUpdateTime(new Date());
+				salesRevenueFlow.setAmount(shopSalesmanOrder.getAmount());
+				salesRevenueFlow.setUserId(shopSalesmanOrder.getSalesUserId());
+				if(ShopSalesmanOrder.REVENUE_TYPE_SALES.equals(shopSalesmanOrder.getRevenueType())) {
+					salesRevenueFlow.setRevenueContent(ShopRevenueFlow.TYPE_TGSY);
+				}
+				if(ShopSalesmanOrder.REVENUE_TYPE_INVITATION.equals(shopSalesmanOrder.getRevenueType())) {
+					salesRevenueFlow.setRevenueContent(ShopRevenueFlow.TYPE_YQSY);
+				}
+				salesRevenueFlow.setBusinessId(shopSalesmanOrder.getId());
+				shopRevenueFlowDao.insert(salesRevenueFlow);
+				//选择微信余额支付,更新用户的金额
+				if(ShopSalemanSettlement.SETTLEMENTWAY_YEJS == updateSetOrderDoneDto.getSetType()) {
+					BizUser findByOpenId = bizUserDao.findByOpenId(shopSalesmanOrder.getSalesUserId());
+					if(ObjectUtil.isEmpty(findByOpenId)) {
+						return AjaxResult.buildFailInstance("收益人信息不存在");
+					}
+					Double withdrawalCash = findByOpenId.getWithdrawalCash();
+					Double amount = shopSalesmanOrder.getAmount();
+					withdrawalCash = (withdrawalCash == null?0:withdrawalCash)+(amount== null?0:amount);
+					findByOpenId.setWithdrawalCash(withdrawalCash);
+					bizUserDao.updateByModel(findByOpenId);
+				}
+			}
+	    }
+		return AjaxResult.buildSuccessInstance("操作成功");
+	}
 
 
 

--
Gitblit v1.9.1