From 95f9ea7eb339c36cade6c67d0385c49ec2d81477 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Wed, 14 Apr 2021 19:39:45 +0800
Subject: [PATCH] Merge branch 'score_shop' into api_score_meger

---
 zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java |  294 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 294 insertions(+), 0 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
new file mode 100644
index 0000000..e784058
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
@@ -0,0 +1,294 @@
+package com.matrix.system.activity.service;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+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.core.constance.MatrixConstance;
+import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.tools.WebUtil;
+import com.matrix.system.activity.dao.ActivitySignAwardSetDao;
+import com.matrix.system.activity.dao.ActivitySignReceiveRecordDao;
+import com.matrix.system.activity.dao.ActivitySignWriteoffDao;
+import com.matrix.system.activity.dto.LogisticsSubmitDto;
+import com.matrix.system.activity.dto.SignWriteoffDto;
+import com.matrix.system.activity.dto.SignWriteoffListDto;
+import com.matrix.system.activity.dto.WriteoffCodeSubmitDto;
+import com.matrix.system.activity.entity.ActivitySignAwardSet;
+import com.matrix.system.activity.entity.ActivitySignReceiveRecord;
+import com.matrix.system.activity.entity.ActivitySignWriteoff;
+import com.matrix.system.activity.vo.LogisticsVo;
+import com.matrix.system.activity.vo.SignWriteoffListVo;
+import com.matrix.system.activity.vo.SignWriteoffVo;
+import com.matrix.system.activity.vo.ZjrVo;
+import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.bean.SystemDictionary;
+import com.matrix.system.common.dao.SystemDictionaryDao;
+import com.matrix.system.hive.action.util.QueryUtil;
+import com.matrix.system.hive.dao.SysVipInfoDao;
+import com.matrix.system.shopXcx.bean.ShopActivities;
+import com.matrix.system.shopXcx.bean.ShopDeliveryInfo;
+import com.matrix.system.shopXcx.bean.ShopLogisticsInfo;
+import com.matrix.system.shopXcx.dao.ShopActivitiesDao;
+import com.matrix.system.shopXcx.dao.ShopDeliveryInfoDao;
+import com.matrix.system.shopXcx.dao.ShopLogisticsInfoDao;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @description 核销记录
+ * @author yourName
+ * @date 2021-04-08 14:25
+ */
+@Service
+public class ActivitySignWriteoffService  extends ServiceImpl<ActivitySignWriteoffDao, ActivitySignWriteoff>{
+	
+	@Autowired
+	ActivitySignWriteoffDao activitySignWriteoffDao;
+	@Autowired
+    ShopActivitiesDao shopActivitiesDao;
+	@Autowired
+	ActivitySignAwardSetDao activitySignAwardSetDao;
+	@Autowired
+	ActivitySignReceiveRecordDao activitySignReceiveRecordDao;
+	@Autowired
+	SysVipInfoDao sysVipInfoDao;
+	@Autowired
+	SystemDictionaryDao systemDictionaryDao;
+	@Autowired
+	ShopDeliveryInfoDao shopDeliveryInfoDao;
+	@Autowired
+	ShopLogisticsInfoDao shopLogisticsInfoDao;
+
+	public IPage<SignWriteoffListVo> findSignWriteoffList(Page<SignWriteoffListVo> page,
+			SignWriteoffListDto signWriteoffListDto) {
+		return activitySignWriteoffDao.findSignWriteoffList(page,signWriteoffListDto);
+	}
+
+	public AjaxResult findSignWriteoff(SignWriteoffDto signWriteoffDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(signWriteoffDto);
+        Long writeoffId = signWriteoffDto.getWriteoffId();
+        AjaxResult result= AjaxResult.buildSuccessInstance("成功");
+        //获取核销信息
+        SignWriteoffVo signWriteoffVo = new SignWriteoffVo();
+        ActivitySignWriteoff activitySignWriteoff = activitySignWriteoffDao.selectById(writeoffId);
+        if(ObjectUtil.isNotEmpty(activitySignWriteoff)) {
+        	//获取奖品信息
+        	ActivitySignAwardSet activitySignAwardSet = activitySignAwardSetDao.selectById(activitySignWriteoff.getAwardId());
+        	signWriteoffVo.setJpmc(activitySignAwardSet.getAwardName());
+        	signWriteoffVo.setJptp(activitySignAwardSet.getIntroduceImg());
+        	signWriteoffVo.setSl(1);
+        	signWriteoffVo.setDjfs(activitySignAwardSet.getAwardWay());
+        	//获取中奖人信息
+        	ZjrVo zjrVo = activitySignWriteoffDao.selectUsernameByUserId(activitySignWriteoff.getUserId(),activitySignAwardSet.getId());
+        	signWriteoffVo.setZjr(zjrVo.getZjr());
+        	signWriteoffVo.setZjsj(zjrVo.getZjsj());
+        	signWriteoffVo.setDjsj(activitySignWriteoff.getWriteoffTime());
+        	signWriteoffVo.setState(activitySignWriteoff.getState());
+        	//获取活动主表信息
+        	ShopActivities shopActivities = shopActivitiesDao.selectById(activitySignWriteoff.getActId());
+        	signWriteoffVo.setHdmc(shopActivities.getActName());
+        	signWriteoffVo.setHdbh(shopActivities.getActCode());
+        	//获取收货地址信息
+        	int awardWay = activitySignAwardSet.getAwardWay();
+        	if(ActivitySignAwardSet.AWARDWAY_TWO == awardWay) {
+        		ActivitySignWriteoff activitySignWriteoffLogistics = activitySignWriteoffDao.selectById(writeoffId);
+        		Long receiveId = activitySignWriteoffLogistics.getReceiveId();
+        		ActivitySignReceiveRecord activitySignReceiveRecordLogistic = activitySignReceiveRecordDao.selectById(receiveId);
+        		signWriteoffVo.setConsignee(activitySignReceiveRecordLogistic.getConsignee());
+        		signWriteoffVo.setConsigneePhone(activitySignReceiveRecordLogistic.getConsigneePhone());
+        		signWriteoffVo.setConsigneeAddress(activitySignReceiveRecordLogistic.getConsigneeAddress());
+        		
+        		//物流跟踪
+        		Integer logisticsId = activitySignWriteoffLogistics.getLogisticsId();
+        		if(ObjectUtil.isNotEmpty(logisticsId)) {
+        			List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(logisticsId);
+        			if(CollUtil.isNotEmpty(shopLogisticsInfos)) {
+        				ArrayList<LogisticsVo> logisticsVos = new ArrayList<>();
+        				for(ShopLogisticsInfo shopLogistics : shopLogisticsInfos) {
+        					LogisticsVo logisticsVo = new LogisticsVo();
+        					logisticsVo.setContent(shopLogistics.getDescribe());
+        					logisticsVo.setTimestamp(shopLogistics.getLogisticsTime());
+        					logisticsVos.add(logisticsVo);
+        				}
+        				signWriteoffVo.setActivities(logisticsVos);
+        			}
+        		}
+        		
+        	}
+        }
+        result.putInMap("signWriteoffVo", signWriteoffVo);
+        return result;
+	}
+
+	@Transactional
+	public AjaxResult writeoffCodeSubmit(WriteoffCodeSubmitDto writeoffCodeSubmitDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(writeoffCodeSubmitDto);
+        SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
+        Long writeoffId = writeoffCodeSubmitDto.getWriteoffId();
+        String writeOffCode = writeoffCodeSubmitDto.getWriteOffCode();
+        /**
+         * 验证核销码是不是匹配
+         * 更新核销记录
+         * 更新领取记录
+         */
+        //验证核销码是不是匹配
+        ActivitySignWriteoff activitySignWriteoff = activitySignWriteoffDao.selectById(writeoffId);
+        if(ObjectUtil.isNotEmpty(activitySignWriteoff)) {
+        	String writeoffCodeReal = activitySignWriteoff.getWriteoffCode();
+        	if(!writeoffCodeReal.equals(writeOffCode)) {
+        		return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖码无效");
+        	}
+        }
+        //更新核销记录
+        activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE);
+        activitySignWriteoff.setWriteoffTime(new Date());
+        activitySignWriteoff.setWriteoffUser(sysUsers.getSuName());
+        activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId());
+        activitySignWriteoffDao.updateById(activitySignWriteoff);
+        //更新领取记录
+        ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(activitySignWriteoff.getReceiveId());
+        activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
+        activitySignReceiveRecordDao.updateById(activitySignReceiveRecord);
+        
+        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "核销成功");
+	}
+
+	@Transactional
+	public AjaxResult logisticsSubmit(LogisticsSubmitDto logisticsSubmitDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(logisticsSubmitDto);
+        SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
+        Long writeoffId = logisticsSubmitDto.getWriteoffId();
+        /**
+         * 更新领取记录表的收货信息和状态
+         * 更新核销记录表的状态和物流ID
+         */
+        ActivitySignWriteoff activitySignWriteoff = activitySignWriteoffDao.selectById(writeoffId);
+        //新增一条物流信息
+        ShopDeliveryInfo shopDeliveryInfo = new ShopDeliveryInfo();
+        Long receiveId = activitySignWriteoff.getReceiveId();
+        SystemDictionary systemDictionary = systemDictionaryDao.selectByCode(logisticsSubmitDto.getKdgs());
+        if (ObjectUtil.isEmpty(systemDictionary)) {
+            return new AjaxResult(AjaxResult.STATUS_FAIL, "没有找到物流公司信息!");
+        }
+        shopDeliveryInfo.setUserId(activitySignWriteoff.getUserId());
+        shopDeliveryInfo.setReceiveId(receiveId);
+        shopDeliveryInfo.setReceiveAddress(logisticsSubmitDto.getShdz());
+
+        shopDeliveryInfo.setLogisticsCompany(systemDictionary.getName());
+        shopDeliveryInfo.setLogisticsCompanyCode(systemDictionary.getCode());
+        shopDeliveryInfo.setDeliveryWay("物流配送");
+
+        shopDeliveryInfo.setWaybillNo(logisticsSubmitDto.getKddh());
+        shopDeliveryInfo.setUpdateBy(sysUsers.getSuName());
+        shopDeliveryInfo.setCreateBy(sysUsers.getSuName());
+
+        shopDeliveryInfo.setDeliveryTime(new Date());
+        shopDeliveryInfoDao.insert(shopDeliveryInfo);
+//		Integer id = shopDeliveryInfo.getId();
+//		if(ObjectUtil.isNotEmpty(id)) {
+//			List<ShopLogisticsInfo> shopLogisticsList = new ArrayList<ShopLogisticsInfo>();
+//	        AjaxResult result = new AjaxResult();
+//	        Map<String, String> logisticsInfo = new HashMap<String, String>();
+//	        try {
+//	            if (shopDeliveryInfo == null) {
+//	                return new AjaxResult(AjaxResult.STATUS_FAIL, "找不到发货信息");
+//	            }
+//	            if (!StringUtils.isNotBlank(shopDeliveryInfo.getWaybillNo()) || !StringUtils.isNotBlank(shopDeliveryInfo.getLogisticsCompanyCode())) {
+//	                return new AjaxResult(AjaxResult.STATUS_FAIL, "物流公司信息为空");
+//	            }
+//	            logisticsInfo.put("logisticsCompany", shopDeliveryInfo.getLogisticsCompany());
+//	            logisticsInfo.put("waybillNo", shopDeliveryInfo.getWaybillNo());
+//
+//	            //如果已经签收直接查数据库
+//	            if (AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR.equals(shopDeliveryInfo.getLogisticsStatus())) {
+//
+//	                List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
+//	                logisticsInfo.put("logisticsStatus", String.valueOf(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR));
+//	                result.setStatus(AjaxResult.STATUS_SUCCESS);
+//	                result.setRows(shopLogisticsInfos);
+//	                result.putInMap("logisticsInfo", logisticsInfo);
+//	                return result;
+//	            }
+//	            Map<String, String> param = new HashMap<String, String>();
+//	            param.put("ShipperCode", shopDeliveryInfo.getLogisticsCompanyCode());
+//	            param.put("LogisticCode", shopDeliveryInfo.getWaybillNo());
+//	            Map<String, String> paramsUrl = getparams(param);
+//	            LogUtil.info("物流查询参数" + paramsUrl);
+//	            String logisticsResult = HttpCurlUtil.sendPost(logisticsUrl, paramsUrl);
+//	            LogUtil.info("查询物流返回信息" + logisticsResult);
+//	            LogisticsInfoVo logisticsInfoVo = JSON.parseObject(logisticsResult, LogisticsInfoVo.class);
+//	            if (logisticsInfoVo.isSuccess()) {
+//	                ShopDeliveryInfo shopDelivery = new ShopDeliveryInfo();
+//	                shopDelivery.setLogisticsStatus(Integer.valueOf(logisticsInfoVo.getState()));
+//	                shopDelivery.setId(shopDeliveryInfo.getId());
+//	                logisticsInfo.put("logisticsStatus", logisticsInfoVo.getState());
+//	                //更新物流状态
+//	                shopDeliveryInfoDao.updateByModel(shopDelivery);
+//	                if (CollectionUtils.isNotEmpty(logisticsInfoVo.getTraces())) {
+//	                    List<Map<String, String>> mapTraces = logisticsInfoVo.getTraces();
+//	                    for (int i = 0; i < mapTraces.size(); i++) {
+//	                        ShopLogisticsInfo shopLogisticsInfo = new ShopLogisticsInfo();
+//	                        shopLogisticsInfo.setCreateBy(AppConstance.SYSTEM_USER);
+//	                        shopLogisticsInfo.setUpdateBy(AppConstance.SYSTEM_USER);
+//	                        shopLogisticsInfo.setLogisticsTime(mapTraces.get(i).get("AcceptTime"));
+//	                        String acceptStation = mapTraces.get(i).get("AcceptStation");
+//	                        shopLogisticsInfo.setDescribe(acceptStation);
+//	                        shopLogisticsInfo.setDelieryId(shopDeliveryInfo.getId());
+//	                        if (acceptStation.indexOf(AppConstance.KDN_IS_SIGN) != -1) {
+//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR);
+//	                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_RECEIVE) != -1) {
+//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_RECEIVE);
+//	                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_ON_WAY) != -1) {
+//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_ON_WAY);
+//	                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_MISTAKE) != -1) {
+//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_MISTAKE);
+//	                        } else {
+//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_NONE);
+//	                        }
+//	                        shopLogisticsList.add(shopLogisticsInfo);
+//	                    }
+//	                    shopLogisticsInfoDao.deleteByDelieryId(shopDeliveryInfo.getId());
+//	                    if (CollectionUtils.isNotEmpty(shopLogisticsList)) {
+//	                        shopLogisticsInfoDao.batchInsert(shopLogisticsList);
+//	                    }
+//	                }
+//	            } else {
+//	                throw new GlobleException(logisticsInfoVo.getReason());
+//	            }
+//
+//	        } catch (Exception e) {
+//	            throw new GlobleException("物流信息查询失败");
+//	        }
+	        //更新核销记录
+	        activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE);
+	        activitySignWriteoff.setWriteoffTime(new Date());
+	        activitySignWriteoff.setWriteoffUser(sysUsers.getSuName());
+	        activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId());
+	        activitySignWriteoff.setLogisticsId(shopDeliveryInfo.getId());
+	        activitySignWriteoffDao.updateById(activitySignWriteoff);
+	        //更新领取记录
+	        ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId);
+	        activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
+	        activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr());
+	        activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz());
+	        activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh());
+	        activitySignReceiveRecordDao.updateById(activitySignReceiveRecord);
+//		}
+        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "发货成功");
+	}
+
+
+
+
+  
+}
\ No newline at end of file

--
Gitblit v1.9.1