From f770b1a9a18218f2c09974528001d2bfe097923a Mon Sep 17 00:00:00 2001 From: Administrator <Administrator@S0ZHK00LKCA6OYY> Date: 星期二, 13 十一月 2018 10:25:36 +0800 Subject: [PATCH] 订单丢失相关处理 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java | 75 +++++++++++++++++++++++++++++++++++++ 1 files changed, 74 insertions(+), 1 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java index c537094..5298cf1 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java @@ -8,7 +8,10 @@ import javax.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.yeshi.utils.NumberUtil; +import com.yeshi.fanli.dao.mybatis.order.LostOrderMapper; import com.yeshi.fanli.dao.order.LostOrderDao; import com.yeshi.fanli.dao.order.PidOrderDao; import com.yeshi.fanli.entity.bus.user.LostOrder; @@ -17,7 +20,6 @@ import com.yeshi.fanli.service.inter.order.OrderService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.Utils; -import org.yeshi.utils.NumberUtil; @Service public class LostOrderServiceImpl implements LostOrderService { @@ -31,6 +33,9 @@ @Resource private PidOrderDao pidOrderDao; + @Resource + private LostOrderMapper lostOrderMapper; + @Override public int addLostOrder(LostOrder lostOrder) { String orderId = lostOrder.getOrderId(); @@ -38,6 +43,16 @@ if (type == null) { // 榛樿涓烘窐瀹濊鍗� lostOrder.setType(1); type = 1; + } + + // 鏌ヨ鏄惁鎻愪氦 + List<LostOrder> orderList = lostOrderMapper.selectByOrderId(orderId); + if (orderList != null && orderList.size() > 0) { + if (orderList.get(0).getState() == 0) { + return -2; + } else { + return -1; + } } Order order = orderService.findOrderByOrderIdAndType(orderId, type); @@ -177,4 +192,62 @@ return lostOrderDao.find(LostOrder.class, id); } + @Override + public List<LostOrder> getLostOrderListByUid(Long uid, int page, int pageSize) { + + return lostOrderDao.list("from LostOrder lo where lo.userInfo.id=? order by lo.createTime desc", + (page - 1) * pageSize, pageSize, new Serializable[] { uid }); + } + + @Override + public long getLostOrderCountByUid(Long uid) { + return lostOrderDao.getCount("select count(*) from LostOrder lo where lo.userInfo.id=?", + new Serializable[] { uid }); + } + + @Transactional + @Override + public void processSuceess(String orderId) { + // 鏌ヨ璁㈠崟鍙锋槸鍚﹀湪鐢宠瘔鍒楄〃涓� + List<LostOrder> list = lostOrderMapper.selectByOrderId(orderId); + if (list == null || list.size() == 0) + return; + for (LostOrder lo : list) { + if (lo.getState() == 1 && lo.getResultCode() != null + && lo.getResultCode() == LostOrder.RESULT_CODE_VERFING) { + LostOrder update = new LostOrder(); + update.setId(lo.getId()); + update.setResultCode(LostOrder.RESULT_CODE_SUCCESS); + lostOrderMapper.updateByPrimaryKeySelective(update); + } + } + } + + @Override + public void processFail(String orderId) { + lostOrderDao.update("update LostOrder lo set lo.resultCode=? where lo.orderId=?", + new Serializable[] { LostOrder.RESULT_CODE_FAIL, orderId }); + } + + @Override + public void processFail() { + // 璁㈠崟鐢宠瘔浜哄伐閫氳繃鍚庯紝浣嗘槸闅斾簡3澶╄繕鏈鐞嗘垚鍔熷氨瑙嗕负璇ヨ鍗曠敵璇夊け璐� + lostOrderDao.update( + "update LostOrder lo set lo.resultCode=? where lo.state=1 and lo.resultCode=? and lo.handleTime<?", + new Serializable[] { LostOrder.RESULT_CODE_FAIL, LostOrder.RESULT_CODE_VERFING, + System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 3L }); + } + + @Override + public void deleteLostOrder(long id) { + LostOrder lostOrder = new LostOrder(); + lostOrder.setId(id); + lostOrderDao.delete(lostOrder); + } + + @Override + public void deleteLostOrderByUid(long uid) { + lostOrderDao.update("delete from LostOrder lo where lo.userInfo.id=?", new Serializable[] { uid }); + } + } -- Gitblit v1.8.0