12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319 |
- package com.iamberry.rst.service.cm;
- import com.github.pagehelper.PageHelper;
- import com.iamberry.rst.core.cm.*;
- import com.iamberry.rst.core.fm.AwaitingSignclosedProductInfo;
- import com.iamberry.rst.core.fm.ComplaintDetectInfo;
- import com.iamberry.rst.core.fm.ComplaintSignclosedInfo;
- import com.iamberry.rst.core.order.*;
- import com.iamberry.rst.core.page.PagedResult;
- import com.iamberry.rst.faces.cm.*;
- import com.iamberry.rst.faces.order.EfastOrderService;
- import com.iamberry.rst.service.address.mapper.AddressMapper;
- import com.iamberry.rst.service.cm.mapper.*;
- import com.iamberry.rst.service.fm.mapper.ComplaintDetectInfoMapper;
- import com.iamberry.rst.service.fm.mapper.ComplaintSignclosedInfoMapper;
- import com.iamberry.rst.service.fm.mapper.ComplaintSignclosedProductInfoMapper;
- import com.iamberry.rst.service.product.mapper.ProductMapper;
- import com.iamberry.rst.util.CustomerCommonUtil;
- import com.iamberry.rst.util.PageUtil;
- import net.sf.json.JSONObject;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.*;
- @Service
- public class CustomerServiceImpl implements CustomerService {
- private static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class);
- @Autowired
- private CustomerInfoMapper customerInfoMapper;
- @Autowired
- private RepairMapper repairMapper;
- @Autowired
- private BackGoodsMapper backGoodsMapper;
- @Autowired
- private NoreasonBackMapper noreasonBackMapper;
- @Autowired
- private ReissueMapper reissueMapper;
- @Autowired
- private RenewedMapper renewedMapper;
- @Autowired
- private ClosedFittingMapper closedFittingMapper;
- @Autowired
- private ClosedProdcueMapper closedProdcueMapper;
- @Autowired
- private SendProdcueMapper sendProdcueMapper;
- @Autowired
- private SendFittingMapper sendFittingMapper;
- @Autowired
- private SalesOrderMapper salesOrderMapper;
- @Autowired
- private CustomerService customerService;
- @Autowired
- private VisitMapper visitMapper;
- @Autowired
- private ComplaintSignclosedInfoMapper complaintSignclosedInfoMapper;
- @Autowired
- private ComplaintDetectInfoMapper complaintDetectInfoMapper;
- @Autowired
- private QuestionDescribeMapper questionDescribeMapper;
- @Autowired
- private AddressMapper addressMapper;
- @Autowired
- private ProductMapper productMapper;
- @Autowired
- private ComplaintSignclosedProductInfoMapper complaintSignclosedProductInfoMapper;
- @Autowired
- private FittingsInfoMapper fittingsInfoMapper;
- @Autowired
- private EfastOrderService efastOrderService;
- @Autowired
- private StoreInfoMapper storeInfoMapper;
- @Autowired
- private CustomerCommonService customerCommonService;
- @Autowired
- private RelationOrderService relationOrderService;
- @Autowired
- private ProcMethodService procMethodService;
- @Autowired
- private CmRelationMapper cmRelationMapper;
- @Override
- public CustomerInfo getCustomerInfo(Integer customerId) {
- return customerInfoMapper.getCustomerInfo(customerId);
- }
- @Override
- @Transactional
- public Integer saveCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder){
- Integer isNeedSelectOrder = customerInfo.getIsNeedSelectOrder();
- List<SalesOrder> orderList = new ArrayList<>();
-
- Integer flag = 0;
- flag = customerInfoMapper.insert(customerInfo);
- if(flag < 1){
- throw new RuntimeException("添加客诉失败");
- }
- logger.info("-----------添加客诉-添加客诉基本信息---------------");
- QuestionDescribe questionDescribe = new QuestionDescribe();
- questionDescribe.setCustomerId(customerInfo.getCustomerId());
- questionDescribe.setDescribeTitle(customerInfo.getDescribeTitle());
- questionDescribe.setDescribeContent(customerInfo.getDescribeContent());
- questionDescribe.setDescribeHandleDesc(customerInfo.getDescribeHandleDesc());
- flag = questionDescribeMapper.insert(questionDescribe);
- if(flag < 1){
- throw new RuntimeException("添加客诉问题失败");
- }
- logger.info("-----------添加客诉-添加客诉问题---------------");
- if ("2".equals(customerInfo.getCustomerIsVisit())) {
- Visit visit = new Visit();
- visit.setCustomerId(customerInfo.getCustomerId());
- visit.setAdminId(customerInfo.getAdminId());
- visit.setDesignatedAdminId(customerInfo.getVisitAdminId());
- visit.setVisitName(customerInfo.getVisitName());
- visit.setVisitTel(customerInfo.getVisitTel());
- visit.setVisitDate(customerInfo.getVisitDate());
- visit.setVisitTimeSelect(customerInfo.getVisitTimeSelect());
- visit.setVisitStatus(1);
- flag = visitMapper.addVisitInfo(visit);
- if(flag < 1){
- throw new RuntimeException("添加客诉回访信息失败");
- }
- logger.info("-----------添加客诉-添加客诉回访信息---------------");
- }
- ProcMethod procMethod = procMethodService.getProcMethodById(customerInfo.getProcMethodId());
- if (2 == customerInfo.getCustomerCounselType() && (procMethod.getProcMethodIsBack()==1||procMethod.getProcMethodIsSend()==1)){
- if(isNeedSelectOrder == 1){
- SalesOrder so = new SalesOrder();
- if(salesOrder.getIds()!= null && salesOrder.getIds().indexOf("_") > -1){
- String[] salesIds = salesOrder.getIds().split("_");
- so.setSalesIds(salesIds);
- orderList = salesOrderMapper.listSalesOrder(so);
- if(orderList == null || orderList.size() < 1){
- throw new RuntimeException("添加客诉-订单为空-请重新添加订单");
- }
- }else{
- throw new RuntimeException("添加客诉-订单为空-请重新添加订单");
- }
- }
- logger.info("-----------添加客诉-添加订单校验 --------------");
- }
- CmRelation cmRelation = customerInfo.getCmRelation();
- cmRelation.setCustomerId(customerInfo.getCustomerId());
- cmRelation.setRelationBackStatus(1);
- cmRelation.setRelationSendStatus(1);
- cmRelation.setRelationState(1);
-
-
- cmRelation.setRelationIsTransfer(0);
- cmRelation.setRelationBackPostage(0);
- cmRelation.setRelationBackName(cmRelation.getRelationSendName());
- cmRelation.setRelationBackTel(cmRelation.getRelationSendTel());
-
- customerService.setName(cmRelation);
- logger.info("-----------添加客诉-初始化产品,配件信息--------------");
-
- flag = cmRelationMapper.save(cmRelation);
- if (flag < 1) {
- throw new RuntimeException("添加客诉处理结果失败");
- }
- logger.info("-----------添加客诉-添加客诉处理成功--------------");
-
- List<RelationOrder> relationOrderList = new ArrayList<>();
- for (SalesOrder sor : orderList) {
- RelationOrder ro = new RelationOrder();
- ro.setRelationId(cmRelation.getRelationId());
- ro.setSalesId(sor.getSalesId());
- ro.setRelationCustomerId(customerInfo.getCustomerId());
- relationOrderList.add(ro);
- }
- if(relationOrderList != null && relationOrderList.size() > 0){
- flag = relationOrderService.saveList(relationOrderList);
- if(flag < 1){
- throw new RuntimeException("添加客诉,关联订单失败");
- }
- }
- logger.info("-----------添加客诉-添加处理与订单关联表--------------");
- for (SalesOrder sor : orderList) {
- SalesOrder newOrder = new SalesOrder();
- newOrder.setSalesId(sor.getSalesId());
- newOrder.setSalesOrderStatus(procMethod.getProcTypeId());
- flag = salesOrderMapper.updateSalesOrder(newOrder);
- if(flag < 1){
- throw new RuntimeException("添加客诉,修改订单失败");
- }
- }
- logger.info("-----------添加客诉-修改订单--------------");
- CustomerCommonUtil.setProduce(cmRelation);
- if(cmRelation.getClosedProdcues() != null && cmRelation.getClosedProdcues().size()>0){
- closedProdcueMapper.insert(cmRelation.getClosedProdcues());
- }
- if(cmRelation.getSendProdcues() != null && cmRelation.getSendProdcues().size() > 0){
- sendProdcueMapper.insert(cmRelation.getSendProdcues());
- }
- logger.info("-----------添加客诉-寄回寄出产品配件成功--------------");
- return flag;
- }
- @Override
- @Transactional
- public Integer updateCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder){
- Integer isNeedSelectOrder = customerInfo.getIsNeedSelectOrder();
-
- CmRelation cr = customerInfo.getCmRelation();
-
- customerService.deleteCustomerAfterSales(customerInfo,cr);
- List<SalesOrder> orderList = new ArrayList<SalesOrder>();
-
- Integer flag = 0;
- flag = customerInfoMapper.updateCustomerInfo(customerInfo);
- if(flag < 1){
- throw new RuntimeException("修改客诉失败-修改客诉基本信息失败");
- }
- logger.info("-----------修改客诉-修改客诉基本信息---------------");
- QuestionDescribe questionDescribe = new QuestionDescribe();
- questionDescribe.setDescribeId(customerInfo.getDescribeId());
- questionDescribe.setDescribeTitle(customerInfo.getDescribeTitle());
- questionDescribe.setDescribeContent(customerInfo.getDescribeContent());
- questionDescribe.setDescribeHandleDesc(customerInfo.getDescribeHandleDesc());
- flag = questionDescribeMapper.updateByPrimaryKeySelective(questionDescribe);
- if(flag < 1){
- throw new RuntimeException("修改客诉失败-修改客诉问题信息失败");
- }
- logger.info("-----------修改客诉-修改客诉问题---------------");
- if ("2".equals(customerInfo.getCustomerIsVisit())) {
- Visit visit = new Visit();
- visit.setCustomerId(customerInfo.getCustomerId());
- visit.setAdminId(customerInfo.getAdminId());
- visit.setDesignatedAdminId(customerInfo.getVisitAdminId());
- visit.setVisitName(customerInfo.getVisitName());
- visit.setVisitTel(customerInfo.getVisitTel());
- visit.setVisitDate(customerInfo.getVisitDate());
- visit.setVisitTimeSelect(customerInfo.getVisitTimeSelect());
- visit.setVisitStatus(1);
- flag = visitMapper.addVisitInfo(visit);
- if(flag < 1){
- throw new RuntimeException("修改客诉失败-修改客诉回访失败");
- }
- logger.info("-----------修改客诉-修改客诉回访信息---------------");
- }
- ProcMethod procMethod = procMethodService.getProcMethodById(customerInfo.getProcMethodId());
- if (2 == customerInfo.getCustomerCounselType() && (procMethod.getProcMethodIsBack()==1||procMethod.getProcMethodIsSend()==1)){
- if(isNeedSelectOrder == 1){
- SalesOrder so = new SalesOrder();
- if(salesOrder.getIds()!= null && salesOrder.getIds().indexOf("_") > -1){
- String[] salesIds = salesOrder.getIds().split("_");
- so.setSalesIds(salesIds);
- orderList = salesOrderMapper.listSalesOrder(so);
- if(orderList == null || orderList.size() < 1){
- throw new RuntimeException("添加客诉-订单为空-请重新添加订单");
- }
- }else{
- throw new RuntimeException("添加客诉-订单查询出错-请重新添加订单");
- }
- }
- logger.info("-----------添加客诉-添加订单 --------------");
- }
- if (procMethod.getProcMethodIsBack()==2) {
- cr.setRelationBackStatus(1);
- cr.setRelationIsTransfer(0);
- cr.setRelationBackPostage(0);
- cr.setRelationBackLogisticsCompany("");
- cr.setRelationBackLogisticsNo("");
- cr.setRelationAlipay("");
- cr.setRelationAlipayName("");
- }
- if (procMethod.getProcMethodIsSend()==2) {
- cr.setRelationSendStatus(1);
- cr.setRelationSendLogisticsCompany("");
- cr.setRelationSendLogisticsNo("");
- }
-
- customerService.setName(cr);
- logger.info("-----------修改客诉-初始化产品,配件信息--------------");
- ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo();
- ComplaintSignclosedInfo complaintSignclosedInfo = new ComplaintSignclosedInfo();
- Map<String,Object> map;
- boolean isReturn = false;
- logger.info("-----------修改客诉-创建仓储/品检成功--------------");
- flag = cmRelationMapper.update(cr);
- if(flag < 1){
- throw new RuntimeException("修改客诉-修改处理信息失败");
- }
- logger.info("-----------修改客诉-修改处理信息失败--------------");
-
- List<RelationOrder> relationOrderList = new ArrayList<>();
- for (SalesOrder sor : orderList) {
- RelationOrder ro = new RelationOrder();
- ro.setRelationId(cr.getRelationId());
- ro.setSalesId(sor.getSalesId());
- ro.setRelationCustomerId(customerInfo.getCustomerId());
- relationOrderList.add(ro);
- }
- if(relationOrderList != null && relationOrderList.size() > 0){
- flag = relationOrderService.saveList(relationOrderList);
- if(flag < 1){
- throw new RuntimeException("添加客诉,关联订单失败");
- }
- }
- for (SalesOrder sor : orderList) {
- SalesOrder newOrder = new SalesOrder();
- newOrder.setSalesId(sor.getSalesId());
- newOrder.setSalesOrderStatus(procMethod.getProcTypeId());
- flag = salesOrderMapper.updateSalesOrder(newOrder);
- if(flag < 1){
- throw new RuntimeException("添加客诉,修改订单状态失败");
- }
- }
- logger.info("-----------添加客诉-添加处理与订单关联表--------------");
- logger.info("-----------添加客诉-修改订单--------------");
- CustomerCommonUtil.setProduce(cr);
- if(cr.getClosedProdcues() != null && cr.getClosedProdcues().size()>0){
- closedProdcueMapper.insert(cr.getClosedProdcues());
- }
- if(cr.getSendProdcues() != null && cr.getSendProdcues().size() > 0){
- sendProdcueMapper.insert(cr.getSendProdcues());
- }
- logger.info("-----------添加客诉-寄回寄出产品配件成功--------------");
- return flag;
- }
-
- @Override
- @Transactional
- public void deleteCustomerAfterSales(CustomerInfo customer,CmRelation cmRelation){
- Integer flag = 0;
- CustomerInfo customerInfo = customerInfoMapper.getCustomerInfo(customer.getCustomerId());
-
- if ("2".equals(customerInfo.getCustomerIsVisit())){
- flag = visitMapper.deleteByPrimaryKey(customer.getCustomerId());
- if(flag < 1){
- throw new RuntimeException("修改客诉-删除回访,删除回访失败");
- }
- }
-
- ClosedProdcue closedrecord = new ClosedProdcue();
- SendProdcue sendProdcue = new SendProdcue();
- closedrecord.setRelationId(cmRelation.getRelationId());
- closedProdcueMapper.deleteByPrimaryKey(closedrecord);
- sendProdcue.setRelationId(cmRelation.getRelationId());
- sendProdcueMapper.deleteByPrimaryKey(sendProdcue);
-
- RelationOrder relationOrder = new RelationOrder();
- relationOrder.setRelationId(cmRelation.getRelationId());
- List<RelationOrder> relationOrderList = relationOrderService.getRelationOrderList(relationOrder);
- for (int k=0; k<relationOrderList.size();k++){
- SalesOrder newOrder = new SalesOrder();
- newOrder.setSalesId(relationOrderList.get(k).getSalesId());
- newOrder.setSalesOrderStatus(1);
- salesOrderMapper.updateSalesOrder(newOrder);
- }
-
- relationOrderService.deleteByRelationId(cmRelation.getRelationId());
- }
- @Override
- public Integer selectNotSolvedCustomer(CustomerInfo customerInfo) {
- List<CustomerInfo> listCustomer = customerInfoMapper.listCustomer(customerInfo);
- return listCustomer.size();
- }
- @Override
- public List<CustomerInfo> listOnCustomer(CustomerInfo customerInfo) {
- List<CustomerInfo> customerList = customerInfoMapper.listOnCustomer(customerInfo);
-
- return customerList;
- }
-
- @Override
- @Transactional
- public void setName(CmRelation cr) {
- for (int i=0;i<cr.getSendProdcues().size();i++) {
- ProductColor productColor = productMapper.getProductBySku(cr.getSendProdcues().get(i).getColorBar());
- cr.getSendProdcues().get(i).setProductColor(productColor);
- cr.getSendProdcues().get(i).setColorId(productColor.getColorId());
- Product product = productMapper.getProduce(productColor.getColorProductId());
- cr.getSendProdcues().get(i).setProductId(product.getProductId());
- cr.getSendProdcues().get(i).setSendProduceName(product.getProductName());
- cr.getSendProdcues().get(i).setProductType(product.getProductType());
- cr.getSendProdcues().get(i).setProductNumber(product.getProductNumber());
- }
- for (int i=0;i<cr.getClosedProdcues().size();i++) {
- ProductColor productColor = productMapper.getProductBySku(cr.getClosedProdcues().get(i).getColorBar());
- cr.getClosedProdcues().get(i).setProductColor(productColor);
- cr.getClosedProdcues().get(i).setColorId(productColor.getColorId());
- Product product = productMapper.getProduce(productColor.getColorProductId());
- cr.getClosedProdcues().get(i).setProductId(product.getProductId());
- cr.getClosedProdcues().get(i).setClosedProductName(product.getProductName());
- cr.getClosedProdcues().get(i).setProductType(product.getProductType());
- cr.getClosedProdcues().get(i).setProductNumber(product.getProductNumber());
- }
- }
-
- @Override
- @Transactional
- public void setName(CustomerCommon cc){
- }
-
- @Transactional
- public void saveComplaintDetectInfo(ComplaintDetectInfo complaintDetectInfo,CustomerCommon customerCommon){
- if(customerCommon.getIsNeedSelectOrder() == 2){
- return;
- }
-
- }
-
- @Override
- @Transactional
- public void saveComplaintSignclosedInfo(ComplaintSignclosedInfo complaintSignclosedInfo,CustomerCommon customerCommon){
- if(customerCommon.getIsNeedSelectOrder() == 2){
- return;
- }
- Integer flag;
- complaintSignclosedInfo.setSignclosedType(1);
- complaintSignclosedInfo.setSignclosedCustomerId(customerCommon.getCustomerId());
- complaintSignclosedInfo.setSignclosedSendName(customerCommon.getRelationBackName());
- complaintSignclosedInfo.setSignclosedSendTel(customerCommon.getRelationBackTel());
- flag = complaintSignclosedInfoMapper.insert(complaintSignclosedInfo);
- if(flag < 1){
- throw new RuntimeException("添加签收失败");
- }
-
- List<AwaitingSignclosedProductInfo> awaitingSignclosedProductInfoArrayList = new ArrayList<>();
- for(int i=0 ;i< customerCommon.getClosedProdcues().size();i++){
- ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
- for(int k=0;k<closedProdcue.getClosedProdcueNumber();k++){
- AwaitingSignclosedProductInfo awaitingSignclosedProductInfo = new AwaitingSignclosedProductInfo();
- awaitingSignclosedProductInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId());
- awaitingSignclosedProductInfo.setSignclosedProductType(1);
- awaitingSignclosedProductInfo.setProductNum(1);
- awaitingSignclosedProductInfo.setSignclosedProductId(closedProdcue.getProductId());
- awaitingSignclosedProductInfo.setSignclosedProductColor(closedProdcue.getColorId());
- awaitingSignclosedProductInfo.setProductName(closedProdcue.getClosedProductName());
- awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
- }
- }
- for(int i=0 ;i< customerCommon.getClosedFittings().size();i++){
- ClosedFitting closedFitting = customerCommon.getClosedFittings().get(i);
- for(int k=0;k<closedFitting.getClosedFittingNumber();k++){
- AwaitingSignclosedProductInfo awaitingSignclosedProductInfo = new AwaitingSignclosedProductInfo();
- awaitingSignclosedProductInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId());
- awaitingSignclosedProductInfo.setSignclosedProductType(2);
- awaitingSignclosedProductInfo.setProductNum(1);
- awaitingSignclosedProductInfo.setSignclosedProductId(closedFitting.getFittingsId());
- awaitingSignclosedProductInfo.setSignclosedProductColor(null);
- awaitingSignclosedProductInfo.setProductName(closedFitting.getClosedFittingsName());
- awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
- }
- }
- flag = complaintSignclosedProductInfoMapper.insertList(awaitingSignclosedProductInfoArrayList);
- if(flag < 1){
- throw new RuntimeException("添加签收产品失败");
- }
- }
-
- @Transactional
- public Map<String,Object> sendEfastOrder(CustomerCommon customerCommon,SalesOrder salesOrder){
- Map<String,Object> map = new HashMap<String,Object>();
- List<EfastOrder> orderList = new ArrayList<EfastOrder>();
- List<OrderItem> itemList = new ArrayList<OrderItem>();
- Integer num = 0;
- Integer amout = 0;
- String orderProductBarCode = "";
- String productName = "";
- for(int i=0;i<customerCommon.getSendProdcues().size();i++){
- SendProdcue sendProdcue = customerCommon.getSendProdcues().get(i);
- OrderItem orderItem = new OrderItem();
- orderItem.setItemProductName(sendProdcue.getSendProduceName());
- orderItem.setItemProductNum(sendProdcue.getSendProdcueNumber());
- orderItem.setItemProductPrice(sendProdcue.getProductColor().getColorPrice());
- orderItem.setItemColorBar(sendProdcue.getProductColor().getColorBar());
- itemList.add(orderItem);
- orderProductBarCode = sendProdcue.getProductColor().getColorBar();
- productName = sendProdcue.getSendProduceName();
- num += sendProdcue.getSendProdcueNumber();
- amout += sendProdcue.getProductColor().getColorPrice();
- }
- EfastOrder efastOrder = new EfastOrder();
- efastOrder.setOrderAddressName(customerCommon.getRelationSendName());
- efastOrder.setOrderAddressTel(customerCommon.getRelationSendTel());
- efastOrder.setOrderOpenId("1");
- String[] address = customerCommon.getRelationSendMergeAddress().split("-");
- efastOrder.setOrderProvince(address[0]);
- efastOrder.setOrderCity(address[1]);
- efastOrder.setOrderArea(address[2]);
- efastOrder.setOrderAddress(customerCommon.getRelationSendAddress());
- efastOrder.setOrderStatus(2);
- efastOrder.setOrderStoreId(salesOrder.getStoreEfast());
- efastOrder.setOrderNum(num);
- efastOrder.setOrderAmount(amout);
- efastOrder.setOrderPayMoney(amout);
-
- switch (salesOrder.getSalesPayType()){
- case 1:
- efastOrder.setOrderPayType(1);
- break;
- case 2:
- efastOrder.setOrderPayType(2);
- break;
- case 3:
- break;
- case 4:
- efastOrder.setOrderPayType(4);
- break;
- case 5:
- efastOrder.setOrderPayType(5);
- break;
- default:
- efastOrder.setOrderPayType(2);
- break;
- }
- efastOrder.setOrderProductBarCode(orderProductBarCode);
- efastOrder.setOrderProductName(productName);
- efastOrder.setOrderId(customerCommon.getTransactionNumber());
- efastOrder.setOid(1);
- orderList.add(efastOrder);
- Integer status = 1;
- Map<String,Object> orderMap = new HashMap<String,Object>();
- try {
- orderMap = efastOrderService.sendOrder(orderList,itemList);
- } catch (Exception e) {
- status = 0;
- }
- List<EfastOrder> oList = (List<EfastOrder>) orderMap.get("efastOrderList");
- if(oList == null || oList.size() < 1){
- status = 0;
- }
- map.put("status",status);
- if(oList != null && oList.size() > 0){
- map.put("EfastOrderId",oList.get(0).getOrderId());
- logger.info("换新,维修 ,补发向Efast 推送订单成功,订单号为:" + oList.get(0).getOrderId());
- }else{
- logger.info("换新,维修 ,补发向Efast 推送订单,推送失败,交易号为:" + customerCommon.getTransactionNumber());
- }
- return map;
- }
- @Override
- public Integer getQuestionNumber(CustomerInfo customerInfo) {
- return customerInfoMapper.getQuestionNumber(customerInfo);
- }
-
- @Transactional
- public Integer addOrder(SalesOrder salesOrder) {
-
- int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
- if (orderNum <= 0) {
- throw new RuntimeException("系统添加订单失败");
- }
- for (SalesOrderItem item : salesOrder.getSalesOrderItemList()) {
- item.setItemOrderId(salesOrder.getSalesId());
- }
-
- int itemNum = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
- if (itemNum <= 0) {
- throw new RuntimeException("系统添加订单项失败");
- }
- return orderNum;
- }
- @Override
- public List<CustomerStatisticalInfo> listStatisticalCustomer() {
- return customerInfoMapper.listStatisticalCustomer();
- }
- @Override
- public List<ReturnStatisticsInfo> salesTotalSales(SalesOrder salesOrder) {
- return customerInfoMapper.salesTotalSales(salesOrder);
- }
- @Override
- public List<ReturnStatisticsInfo> salesTotalExchange(SalesOrder salesOrder) {
- return customerInfoMapper.salesTotalExchange(salesOrder);
- }
- @Override
- public List<ReturnStatisticsInfo> salesTotalReturn(SalesOrder salesOrder) {
- return customerInfoMapper.salesTotalReturn(salesOrder);
- }
- @Override
- public List<ReturnStatisticsInfo> salesSecondaryChangeNew(SalesOrder salesOrder) {
- return customerInfoMapper.salesSecondaryChangeNew(salesOrder);
- }
- @Override
- public List<ReturnStatisticsInfo> salesReturnForSecond(SalesOrder salesOrder) {
- return customerInfoMapper.salesReturnForSecond(salesOrder);
- }
- @Override
- public List<ProcType> listProcType() {
- return customerInfoMapper.listProcType();
- }
- @Override
- public List<ProcMethod> listProcMethod(Integer procTypeId) {
- return customerInfoMapper.listProcMethod(procTypeId);
- }
- @Override
- public ProcMethod getProcMethod(Integer procMethodId) {
- return customerInfoMapper.getProcMethod(procMethodId);
- }
- @Override
- public Integer updateCmRelation(CmRelation cmRelation) {
- return customerInfoMapper.updateCmRelation(cmRelation);
- }
- @Override
- public CmRelation getCmRelationInfo(CmRelation cmRelation) {
- return customerInfoMapper.getCmRelationInfo(cmRelation);
- }
-
- @Transactional
- public Map<String,Object> sendEfastOrder(SalesOrder salesOrder){
-
- int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
- if (orderNum <= 0) {
- throw new RuntimeException("系统添加订单失败");
- }
- for (SalesOrderItem item : salesOrder.getSalesOrderItemList()) {
- item.setItemOrderId(salesOrder.getSalesId());
- }
-
- int itemNum = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
- if (itemNum <= 0) {
- throw new RuntimeException("系统添加订单项失败");
- }
- Map<String,Object> map = new HashMap<String,Object>();
- List<EfastOrder> orderList = new ArrayList<EfastOrder>();
- List<OrderItem> itemList = new ArrayList<OrderItem>();
- Integer num = 0;
- Integer amout = 0;
- String orderProductBarCode = "";
- String productName = "";
- for(int i=0;i<salesOrder.getSalesOrderItemList().size();i++){
- SalesOrderItem salesOrderItem = salesOrder.getSalesOrderItemList().get(i);
- OrderItem orderItem = new OrderItem();
- orderItem.setItemProductName(salesOrderItem.getItemProductName());
- orderItem.setItemProductNum(salesOrderItem.getItemNum());
- orderItem.setItemProductPrice(salesOrderItem.getItemProductPrice());
- orderItem.setItemColorBar(salesOrderItem.getItemColorBar());
- itemList.add(orderItem);
- orderProductBarCode = salesOrderItem.getItemColorBar();
- productName = salesOrderItem.getItemProductName();
- num += salesOrderItem.getItemNum();
- amout += salesOrderItem.getItemProductPrice();
- }
- EfastOrder efastOrder = new EfastOrder();
- efastOrder.setOrderAddressName(salesOrder.getSalesAddressName());
- efastOrder.setOrderAddressTel(salesOrder.getSalesAddressTel());
- efastOrder.setOrderOpenId("1");
- efastOrder.setOrderRemark(salesOrder.getOrderNoteRemark());
- efastOrder.setOrderBuyerRemark(salesOrder.getSalesUserRemark());
- efastOrder.setOrderSellerRemark(salesOrder.getSalesAdminRemark());
- String[] address = salesOrder.getSalesAddressInfo().split("-");
- efastOrder.setOrderProvince(address[0]);
- efastOrder.setOrderCity(address[1]);
- efastOrder.setOrderArea(address[2]);
- String myAddress = "";
- if(address.length > 4){
- myAddress = address[3] + address[4];
- }else{
- myAddress = address[3];
- }
- efastOrder.setOrderAddress(myAddress);
- efastOrder.setOrderStatus(1);
- efastOrder.setOrderNum(num);
- efastOrder.setOrderAmount(amout);
- efastOrder.setOrderPayMoney(amout);
-
- switch (salesOrder.getSalesPayType()){
- case 1:
- efastOrder.setOrderPayType(1);
- break;
- case 2:
- efastOrder.setOrderPayType(2);
- break;
- case 3:
- break;
- case 4:
- efastOrder.setOrderPayType(4);
- break;
- case 5:
- efastOrder.setOrderPayType(5);
- break;
- default:
- efastOrder.setOrderPayType(2);
- break;
- }
- efastOrder.setOrderProductBarCode(orderProductBarCode);
- efastOrder.setOrderProductName(productName);
- efastOrder.setOrderId(salesOrder.getSalesDealCode());
- StoreInfo storeInfo = new StoreInfo();
- storeInfo = storeInfoMapper.getStoreInfoById(salesOrder.getSalesStoreId());
- efastOrder.setOrderStoreId(storeInfo.getStoreEfast());
- efastOrder.setOid(1);
- orderList.add(efastOrder);
- Integer status = 1;
- Map<String,Object> orderMap = new HashMap<String,Object>();
- try {
- orderMap = efastOrderService.sendOrder(orderList,itemList);
- } catch (Exception e) {
- status = 0;
- }
- List<EfastOrder> oList = (List<EfastOrder>) orderMap.get("efastOrderList");
- if(oList == null || oList.size() < 1){
- status = 0;
- }
- if(oList != null && oList.size() > 0){
- map.put("EfastOrderId",oList.get(0).getOrderId());
- SalesOrder sa = new SalesOrder();
- sa.setSalesId(salesOrder.getSalesId());
- sa.setSalesOrderId(oList.get(0).getOrderId());
- orderNum = salesOrderMapper.updateSalesOrder(sa);
- if (orderNum <= 0) {
- throw new RuntimeException("系统修改订单失败,订单回滚,Efast交易号:"+salesOrder.getSalesDealCode());
- }
- }else{
- throw new RuntimeException("添加Efast订单失败");
- }
- map.put("status",status);
- return map;
- }
-
- @Transactional
- public void chargebackEfastOrder(CustomerCommon customerCommon, SalesOrder salesOrder,Integer status,Integer returnType){
- SalesOrder order = new SalesOrder();
- order.setSalesId(salesOrder.getSalesId());
- order.setSalesOrderStatus(status);
- Integer flag = salesOrderMapper.updateSalesOrder(order);
- if(flag < 0){
- throw new RuntimeException("系统生成退单失败");
- }
- EfastOrder efastOrder = new EfastOrder();
- List<EfastOrderItem> itemList = new ArrayList<>();
-
- SalesOrderItem salesOrderItem = new SalesOrderItem();
- salesOrderItem.setItemOrderId(salesOrder.getSalesId());
- List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
- for(SalesOrderItem item : salesOrderItemList){
- EfastOrderItem efastOrderItem = new EfastOrderItem();
- efastOrderItem.setItemColorBar(item.getItemColorBar());
- efastOrderItem.setItemNum(item.getItemNum());
- efastOrderItem.setItemDiscount(item.getItemProductPrice());
- itemList.add(efastOrderItem);
- }
- efastOrder.setOrderDealCode(salesOrder.getSalesDealCode());
- efastOrder.setOrderPostFirm(salesOrder.getSalesPostFirm());
- efastOrder.setOrderPostNum(salesOrder.getSalesPostNum());
- efastOrder.setOrderId(salesOrder.getSalesOrderId());
- efastOrder.setItemList(itemList);
- efastOrder.setReturnOrderType(returnType);
- JSONObject jsonObject = new JSONObject();
- try{
- jsonObject = efastOrderService.returnOrderFormEfast(efastOrder);
- logger.info("------将原订单生成退货订单返回数据:" + jsonObject + "------");
-
- }catch (Exception e){
- logger.info("------将原订单生成退货订单报错------");
- }
- }
- @Override
- public Integer updateCustomerInfo(CustomerInfo record) {
- return customerInfoMapper.updateCustomerInfo(record);
- }
- @Override
- public PagedResult<CustomerInfo> listCustomer(int pageNO, int pageSize, CustomerInfo customerInfo, boolean isTotalNum) {
- PageHelper.startPage(pageNO, pageSize, isTotalNum);
-
- List<CustomerInfo> customerList = customerInfoMapper.listCustomer(customerInfo);
- return PageUtil.getPage(customerList);
- }
- @Override
- public Map<String,Object> getCustomerInfo(CustomerInfo customerInfo) {
- Map<String,Object> map = new HashMap<String,Object>();
- CustomerCommon customerCommon = new CustomerCommon();
-
- List<CustomerInfo> customerList = customerInfoMapper.listCustomer(customerInfo);
- if (customerList == null || customerList.size() == 0) {
- return null;
- }
- CustomerInfo customer = customerList.get(0);
- map.put("customer",customer);
- CmRelation cmRelation = new CmRelation();
- cmRelation.setCustomerId(customer.getCustomerId());
- cmRelation = customerInfoMapper.getCmRelationInfo(cmRelation);
- RelationOrder relationOrder = new RelationOrder();
- relationOrder.setRelationId(cmRelation.getRelationId());
- relationOrder.setRelationCustomerId(customer.getCustomerId());
- List<RelationOrder> relationOrderList = relationOrderService.getRelationOrderList(relationOrder);
- if(relationOrderList != null && relationOrderList.size() > 0){
- String[] salesIds = new String[relationOrderList.size()];
- for (int k=0; k<relationOrderList.size();k++){
- salesIds[k] = String.valueOf(relationOrderList.get(k).getSalesId());
- }
- SalesOrder so = new SalesOrder();
- so.setSalesIds(salesIds);
- List<SalesOrder> orderList = salesOrderMapper.listSalesOrder(so);
- if (orderList != null && orderList.size() > 0) {
- SalesOrder order = orderList.get(0);
- SalesOrderItem salesOrderItem = new SalesOrderItem();
- salesOrderItem.setItemOrderId(order.getSalesId());
- order.setSalesOrderItemList(salesOrderMapper.listSalesOrderItem(salesOrderItem));
- } else {
- map.put("orderList",null);
- }
- map.put("orderList",orderList);
- }
-
- ClosedProdcue record = new ClosedProdcue();
- record.setRelationId(cmRelation.getRelationId());
- customerCommon.setClosedProdcues(closedProdcueMapper.listclosedProdcue(record));
- SendProdcue sendrecord = new SendProdcue();
- sendrecord.setRelationId(cmRelation.getRelationId());
- customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(sendrecord));
- map.put("customerCommon",customerCommon);
- return map;
- }
- @Override
- public CustomerCommon selectProdcueAndFitting(CustomerCommon customerCommon, int isSolve) {
- if (customerCommon == null || customerCommon.getRelationId() == null) {
- return customerCommon;
- }
- List<SendProdcue> sendProdcues = null;
- List<SendFitting> sendFittings = null;
- List<ClosedFitting> closedfittings = null;
- List<ClosedProdcue> closedProdcues = null;
- SendProdcue sendProdcue = new SendProdcue();
- SendFitting sendFitting = new SendFitting();
- ClosedFitting fitting = new ClosedFitting();
- ClosedProdcue closedProdcue = new ClosedProdcue();
- customerCommon.setClosedFittings(closedfittings);
- customerCommon.setClosedProdcues(closedProdcues);
- customerCommon.setSendProdcues(sendProdcues);
- customerCommon.setSendFittings(sendFittings);
- return customerCommon;
- }
- @Override
- public ProductType getcompanyAffiliation(Integer customerId) {
- return customerInfoMapper.getcompanyAffiliation(customerId);
- }
- @Override
- public BackGoods getBackGoods(BackGoods backGoods) {
-
- return null;
- }
- @Override
- public NoreasonBack getNoreasonBack(NoreasonBack noreasonBack) {
-
- List<NoreasonBack> backList = noreasonBackMapper.listNoreasonBack(noreasonBack);
- if (backList == null || backList.size() == 0) {
- return null;
- }
- NoreasonBack noreasonBackInfo = backList.get(0);
- ClosedProdcue closedProdcue = new ClosedProdcue();
- closedProdcue.setRelationId(noreasonBackInfo.getNoreasonBackId());
- closedProdcue.setClosedProdcueType(7);
-
- List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
- ClosedFitting fitting = new ClosedFitting();
- fitting.setRelationId(noreasonBackInfo.getNoreasonBackId());
- fitting.setClosedFittingType(7);
-
- if (prodcueList != null && prodcueList.size() > 0) {
- noreasonBackInfo.setClosedProdcues(prodcueList);
- }
- return noreasonBackInfo;
- }
- @Override
- public Reissue getReissue(Reissue reissue) {
-
- return null;
- }
- @Override
- public Renewed getRenewedInfo(Renewed renewed) {
- return null;
- }
- @Override
- public Repair getRepairInfo(Repair repair) {
- return null;
- }
- }
|