lidongdong
2022-12-06 2a212f983f35e1c569dfec3a172fb5f0c9f85fac
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderDeliveryServiceImpl.java
@@ -1,33 +1,44 @@
package com.panzhihua.service_community.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.panzhihua.common.constants.Constants;
import com.panzhihua.common.model.dtos.shop.ComShopFlowerOrderDeliveryDTO;
import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderDeliveryDTO;
import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderListDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointOrderVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderDeliveryVO;
import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderPageVO;
import com.panzhihua.common.model.vos.user.SysUserVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.OrderNoUtils;
import com.panzhihua.common.utlis.WxUtil;
import com.panzhihua.service_community.dao.ComShopFlowerOrderDAO;
import com.panzhihua.service_community.dao.ComShopFlowerOrderDeliveryDAO;
import com.panzhihua.service_community.dao.ConvenientElevatingPointDAO;
import com.panzhihua.service_community.entity.SysUser;
import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO;
import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDeliveryDO;
import com.panzhihua.service_community.model.dos.ConvenientElevatingPointDO;
import com.panzhihua.service_community.service.ComShopFlowerOrderDeliveryService;
import com.panzhihua.service_community.util.WxMaConfiguration;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import static java.util.Objects.nonNull;
@@ -45,9 +56,13 @@
    private ComShopFlowerOrderDAO comShopFlowerOrderDAO;
    @Resource
    private ConvenientElevatingPointDAO convenientElevatingPointDAO;
    @Resource
    private WxMaConfiguration wxMaConfiguration;
    @Resource
    private UserService userService;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R saveDelivery(ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
        ComShopFlowerOrderDeliveryDO comShopFlowerOrderDeliveryDO = new ComShopFlowerOrderDeliveryDO();
        BeanUtils.copyProperties(comShopFlowerOrderDeliveryDTO,comShopFlowerOrderDeliveryDO);
@@ -63,12 +78,31 @@
            List<Long> orderIds = comShopFlowerOrderDeliveryDTO.getOrderIds();
            if (CollUtil.isNotEmpty(orderIds)){
                comShopFlowerOrderDAO.updateOrder(orderIds,deliveryId,comShopFlowerOrderDeliveryDO.getDeliveryNo(), ComShopFlowerOrderDO.status.psz,comShopFlowerOrderDeliveryDO.getDeliveryTime());
                //订单配送通知
                WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID);
                List<ComShopFlowerOrderDO> comShopFlowerOrderDOS = comShopFlowerOrderDAO.selectList(new LambdaQueryWrapper<ComShopFlowerOrderDO>().in(ComShopFlowerOrderDO::getId, orderIds));
                for (ComShopFlowerOrderDO comShopFlowerOrderDO : comShopFlowerOrderDOS) {
                    Long userId = comShopFlowerOrderDO.getUserId();
                    R userOpenId = userService.getUserOpenId(userId);
                    if (R.isOk(userOpenId)) {
                        String openid = userOpenId.getData().toString();
                        try {
                            WxUtil.sendStartShipping(openid,maService.getAccessToken(),comShopFlowerOrderDO.getOrderNo());
                        } catch (WxErrorException e) {
                            e.printStackTrace();
            }
        }
        return R.ok();
                }
            }
        }
        return R.ok(comShopFlowerOrderDeliveryDO.getId());
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R updateDelivery(ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
        Long id = comShopFlowerOrderDeliveryDTO.getId();
        if (null == id){
@@ -79,10 +113,32 @@
            return R.fail("不存在该配送单");
        }
        comShopFlowerOrderDeliveryDO.setServiceTime(new Date());
        comShopFlowerOrderDeliveryDO.setDeleteStatus(ComShopFlowerOrderDeliveryDO.deliveryStatus.ysd);
        comShopFlowerOrderDeliveryDO.setDeliveryStatus(ComShopFlowerOrderDeliveryDO.deliveryStatus.ysd);
        int update = this.baseMapper.updateById(comShopFlowerOrderDeliveryDO);
        if (update > 0){
            //一个自提订单算一个货
            ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(comShopFlowerOrderDeliveryDO.getPointId());
            convenientElevatingPointDO.setCumulativeGoodsNum(convenientElevatingPointDO.getCumulativeGoodsNum() + comShopFlowerOrderDeliveryDO.getDeliveryOrderNum());
            convenientElevatingPointDO.setPrepareGoodsNum(convenientElevatingPointDO.getPrepareGoodsNum()+comShopFlowerOrderDeliveryDO.getDeliveryOrderNum());
            convenientElevatingPointDAO.updateById(convenientElevatingPointDO);
            comShopFlowerOrderDAO.updateOrderStatus(comShopFlowerOrderDeliveryDO.getId(),comShopFlowerOrderDeliveryDO.getServiceTime(),ComShopFlowerOrderDO.status.dsh);
            WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID);
            List<ComShopFlowerOrderDO> comShopFlowerOrderDOS = comShopFlowerOrderDAO.selectList(new LambdaQueryWrapper<ComShopFlowerOrderDO>().eq(ComShopFlowerOrderDO::getDeliveryId, id));
            for (ComShopFlowerOrderDO comShopFlowerOrderDO : comShopFlowerOrderDOS) {
                Long userId = comShopFlowerOrderDO.getUserId();
                R userOpenId = userService.getUserOpenId(userId);
                if (R.isOk(userOpenId)) {
                    String openid = userOpenId.getData().toString();
                    try {
                        WxUtil.sendService(openid,maService.getAccessToken(),comShopFlowerOrderDeliveryDO.getPointName());
                    } catch (WxErrorException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
        return  R.ok();
    }
@@ -113,7 +169,11 @@
    public R pageNoDeliveryOrderList(PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
        Page page = new Page<>(pageComFlowerOrderListDTO.getPageNum(),pageComFlowerOrderListDTO.getPageSize());
        IPage<ComShopFlowerOrderPageVO> iPage = comShopFlowerOrderDAO.pageOrderListNoDelivery(page, pageComFlowerOrderListDTO);
        return R.ok(iPage);
        ConvenientElevatingPointVO convenientElevatingPointVO = convenientElevatingPointDAO.selectOrderNum(pageComFlowerOrderListDTO);
        ConvenientElevatingPointOrderVO convenientElevatingPointOrderVO = new ConvenientElevatingPointOrderVO();
        convenientElevatingPointOrderVO.setConvenientElevatingPointVO(convenientElevatingPointVO);
        convenientElevatingPointOrderVO.setIPage(iPage);
        return R.ok(convenientElevatingPointOrderVO);
    }