From c253b555c7905c5136d47cd615ef545fa50cc6ad Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Sun, 20 Feb 2022 21:24:16 +0800
Subject: [PATCH] Merge branch 'api_score_meger'
---
zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java | 255 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 255 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..b6d7560
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
@@ -0,0 +1,255 @@
+package com.matrix.system.activity.service;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
+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.constance.AppConstance;
+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.api.service.WxShopLogisticsQueryService;
+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;
+ @Autowired
+ private WxShopLogisticsQueryService wxShopLogisticsQueryService;
+
+ 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();
+ ShopDeliveryInfo shopDeliveryInfo = shopDeliveryInfoDao.selectById(logisticsId);
+ if(ObjectUtil.isNotEmpty(shopDeliveryInfo)){
+ signWriteoffVo.setLogisticsNum(shopDeliveryInfo.getWaybillNo());
+ signWriteoffVo.setLogisticsCompany(shopDeliveryInfo.getLogisticsCompany());
+ //查看物流信息
+ wxShopLogisticsQueryService.selectLogisticsInfo(shopDeliveryInfo);
+ List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
+ 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(ActivitySignWriteoff.STATE_ONE != activitySignWriteoff.getState()){
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖码已失效");
+ }
+ if(ObjectUtil.isNotEmpty(activitySignWriteoff)) {
+ String writeoffCodeReal = activitySignWriteoff.getWriteoffCode();
+ if(!writeoffCodeReal.equals(writeOffCode)) {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖码无效");
+ }
+ }
+ //线下兑换失效
+ Long awardId = activitySignWriteoff.getAwardId();
+ ActivitySignAwardSet activitySignAwardSet = activitySignAwardSetDao.selectById(awardId);
+ if(ActivitySignAwardSet.AWARDWAY_ONE == activitySignAwardSet.getAwardWay()
+ || ActivitySignAwardSet.AWARDWAY_THREE == activitySignAwardSet.getAwardWay()){
+ Date prizeStartTime = activitySignAwardSet.getPrizeStartTime();
+ if(DateUtil.date().getTime() < prizeStartTime.getTime()){
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖还没开始呢!");
+ }
+ Date prizeEndTime = activitySignAwardSet.getPrizeEndTime();
+ if(DateUtil.date().getTime() > prizeEndTime.getTime()){
+ Long receiveId = activitySignWriteoff.getReceiveId();
+ ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId);
+ if(ObjectUtil.isNotEmpty(activitySignReceiveRecord)){
+ activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_FIVE);
+ }
+ activitySignReceiveRecordDao.updateById(activitySignReceiveRecord);
+
+ activitySignWriteoff.setState(ActivitySignWriteoff.STATE_FOUR);
+ activitySignWriteoffDao.updateById(activitySignWriteoff);
+ 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.setLogisticsStatus(AppConstance.LOGISTICS_STATUS_OF_RECEIVE);
+
+ shopDeliveryInfo.setWaybillNo(logisticsSubmitDto.getKddh());
+ shopDeliveryInfo.setUpdateBy(sysUsers.getSuName());
+ shopDeliveryInfo.setCreateBy(sysUsers.getSuName());
+
+ shopDeliveryInfo.setDeliveryTime(new Date());
+ shopDeliveryInfoDao.insert(shopDeliveryInfo);
+ //更新核销记录
+ 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_FOUR);
+ 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