| | |
| | | package com.panzhihua.service_community.service.impl; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | import com.panzhihua.common.utlis.OrderNoUtils; |
| | | import com.panzhihua.common.utlis.StringUtils; |
| | | import com.panzhihua.common.utlis.WxPayUtils; |
| | | import com.panzhihua.common.utlis.wx.WXPayUtil; |
| | | import com.panzhihua.service_community.dao.*; |
| | | import com.panzhihua.service_community.model.dos.*; |
| | | import com.panzhihua.service_community.service.ComShopFlowerOrderService; |
| | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static java.util.Objects.nonNull; |
| | | |
| | |
| | | private ComShopFlowerEvaluateDAO comShopFlowerEvaluateDAO; |
| | | |
| | | |
| | | @Value("${hc_min.app.isTest}") |
| | | @Value("${hcMin.app.isTest}") |
| | | private Boolean isTest; |
| | | @Value("${hc_min.app.appid}") |
| | | @Value("${hcMin.app.appid}") |
| | | private String appid; |
| | | @Value("${hc_min.app.payKey}") |
| | | @Value("${hcMin.app.payKey}") |
| | | private String payKey; |
| | | @Value("${hc_min.app.mchId}") |
| | | @Value("${hcMin.app.mchId}") |
| | | private String mchId; |
| | | @Value("${hc_min.app.notifyUrl}") |
| | | @Value("${hcMin.app.notifyUrl}") |
| | | private String notifyUrl; |
| | | |
| | | /** |
| | | * 订单预览 |
| | | * |
| | | * @param orderPreviewDTO |
| | | * 请求参数 |
| | | * @param orderPreviewDTO 请求参数 |
| | | * @return 订单预览数据 |
| | | */ |
| | | @Override |
| | |
| | | /** |
| | | * 创建订单 |
| | | * |
| | | * @param orderCreateDTO |
| | | * 创建订单请求参数 |
| | | * @param orderCreateDTO 创建订单请求参数 |
| | | * @return 创建结果 |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | /** |
| | | * 分页查询用户订单列表 |
| | | * |
| | | * @param comOrderListDTO |
| | | * 请求参数 |
| | | * @param comOrderListDTO 请求参数 |
| | | * @return 查询结果 |
| | | */ |
| | | @Override |
| | |
| | | /** |
| | | * 根据订单id查询订单详情 |
| | | * |
| | | * @param orderId |
| | | * 订单id |
| | | * @param orderId 订单id |
| | | * @return 订单详情 |
| | | */ |
| | | @Override |
| | |
| | | orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttrName()); |
| | | } |
| | | orderGoodsVOS.add(orderGoodsVO); |
| | | sbr.append(orderGoods.getGoodsName() + " "); |
| | | sbr.append(orderGoods.getGoodsName()).append(" "); |
| | | }); |
| | | } |
| | | orderVO.setOrderGoodsVOList(orderGoodsVOS); |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | return R.ok(orderVO); |
| | | } |
| | | |
| | | /** |
| | | * 根据订单id取消订单 |
| | | * |
| | | * @param comShopOrderQueryDTO |
| | | * 订单信息 |
| | | * @param comShopOrderQueryDTO 订单信息 |
| | | * @return 取消结果 |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | } |
| | | // 取消订单 |
| | | shopOrderDO.setStatus(ComShopFlowerOrderDO.status.yqx); |
| | | //退款 |
| | | String refundNo = WXPayUtil.generateNonceStr(); |
| | | try { |
| | | String refundStr = WxPayUtils.refund(appid, mchId, shopOrderDO.getWxTardeNo(), shopOrderDO.getPayAmount(), |
| | | shopOrderDO.getPayAmount(), refundNo, isTest); |
| | | log.info("退款请求接口返回参数:{}", refundStr); |
| | | Map<String, String> mapResult = WXPayUtil.xmlToMap(refundStr); |
| | | if (CollUtil.isNotEmpty(mapResult)) { |
| | | String return_code = (String) mapResult.get("return_code"); |
| | | String result_code = (String) mapResult.get("result_code"); |
| | | String return_msg = mapResult.get("return_msg"); |
| | | ComShopFlowerOrderPayDO orderPayDO = new ComShopFlowerOrderPayDO(); |
| | | |
| | | orderPayDO.setOrderNo(shopOrderDO.getOrderNo()); |
| | | orderPayDO.setOrderAmount(shopOrderDO.getTotalAmount()); |
| | | orderPayDO.setPayTime(new Date()); |
| | | orderPayDO.setStoreId(shopOrderDO.getStoreId()); |
| | | orderPayDO.setDeliveryType(shopOrderDO.getDeliveryType()); |
| | | orderPayDO.setOrderId(shopOrderDO.getId()); |
| | | orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.qx); |
| | | if ("SUCCESS".equals(return_code) && return_code.equals(result_code)) { |
| | | //退款成功 |
| | | // 添加订单支付记录表 |
| | | orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes); |
| | | orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tkcg); |
| | | |
| | | } else { |
| | | //退款失败 |
| | | // 添加订单支付记录表 |
| | | orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.no); |
| | | orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tksb); |
| | | shopOrderDO.setRemark(shopOrderDO.getRemark() + "_" + return_msg); |
| | | } |
| | | comShopFlowerOrderPayDAO.insert(orderPayDO); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("申请退款失败," + e.getMessage()); |
| | | e.printStackTrace(); |
| | | } |
| | | if (this.baseMapper.updateById(shopOrderDO) > 0) { |
| | | // 添加订单操作记录 |
| | | ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO(); |
| | |
| | | /** |
| | | * 根据订单id删除订单 |
| | | * |
| | | * @param orderId |
| | | * 订单id |
| | | * @param orderId 订单id |
| | | * @return 删除结果 |
| | | */ |
| | | @Override |
| | |
| | | /** |
| | | * 根据订单id确认收货 |
| | | * |
| | | * @param orderId |
| | | * 订单id |
| | | * @param phone |
| | | * 手机号 |
| | | * @param orderId 订单id |
| | | * @param phone 手机号 |
| | | * @return 确认结果 |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | /** |
| | | * 统计用户订单数量 |
| | | * |
| | | * @param userId |
| | | * 用户id |
| | | * @param userId 用户id |
| | | * @return 统计结果 |
| | | */ |
| | | @Override |
| | |
| | | /** |
| | | * 订单发货 |
| | | * |
| | | * @param orderShipDTO |
| | | * 订单发货信息 |
| | | * @param orderShipDTO 订单发货信息 |
| | | * @return 发货结果 |
| | | */ |
| | | @Override |
| | |
| | | /** |
| | | * 微信支付订单回调 |
| | | * |
| | | * @param wxPayNotifyOrderDTO |
| | | * 订单支付回调参数 |
| | | * @param wxPayNotifyOrderDTO 订单支付回调参数 |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | |
| | | orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes); |
| | | orderPayDO.setPayAmount(shopOrderDO.getPayAmount()); |
| | | orderPayDO.setPayTime(shopOrderDO.getPayTime()); |
| | | orderPayDO.setStoreId(shopOrderDO.getStoreId()); |
| | | orderPayDO.setDeliveryType(shopOrderDO.getDeliveryType()); |
| | | orderPayDO.setOrderId(shopOrderDO.getId()); |
| | | orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.zf); |
| | | comShopFlowerOrderPayDAO.insert(orderPayDO); |
| | | } |
| | | |
| | | /** |
| | | * 订单去支付 |
| | | * |
| | | * @param orderPayDTO |
| | | * 请求参数 |
| | | * @param orderPayDTO 请求参数 |
| | | * @return 支付对象 |
| | | */ |
| | | public R wxPay(OrderPayDTO orderPayDTO) { |
| | |
| | | IPage<ComShopFlowerOrderStoreListVO> ipage = this.baseMapper.pageOrderByStoreId(page, pageComFlowerOrderListDTO); |
| | | return R.ok(ipage); |
| | | } |
| | | |
| | | @Override |
| | | public R selectCountByDeliveryType(Integer deliveryType) { |
| | | List<ComShopOrderCountVO> comShopOrderCountVOS = this.baseMapper.selectCountByDeliveryType(deliveryType); |
| | | Map<Integer, Integer> collect = comShopOrderCountVOS.stream().collect(Collectors.toMap(ComShopOrderCountVO::getStatus, ComShopOrderCountVO::getAmount)); |
| | | ComShopOrderCountVO comShopOrderCountVO = new ComShopOrderCountVO(); |
| | | comShopOrderCountVO.setStatus(8); |
| | | comShopOrderCountVO.setAmount(0); |
| | | for (int i = 1; i < 8; i++) { |
| | | if (collect.containsKey(i)) { |
| | | Integer amount = collect.get(i); |
| | | comShopOrderCountVO.setAmount(amount + comShopOrderCountVO.getAmount()); |
| | | }else { |
| | | collect.put(i,0); |
| | | } |
| | | } |
| | | collect.put(comShopOrderCountVO.getStatus(),comShopOrderCountVO.getAmount()); |
| | | |
| | | return R.ok(collect); |
| | | } |
| | | |
| | | |
| | | } |