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_THREE);
|
activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr());
|
activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz());
|
activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh());
|
activitySignReceiveRecordDao.updateById(activitySignReceiveRecord);
|
// }
|
return new AjaxResult(AjaxResult.STATUS_SUCCESS, "发货成功");
|
}
|
|
|
|
|
|
}
|