package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.panzhihua.service_community.entity.ComBatteryTradeOrder; import com.panzhihua.service_community.dao.ComBatteryTradeOrderMapper; import com.panzhihua.service_community.service.ComBatteryTradeOrderService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.BeanUtils; import com.panzhihua.common.model.dtos.common.*; import com.panzhihua.common.model.vos.R; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * title: 电动车商城-微信交易流水表表服务实现类 *

* projectName 成都呐喊信息技术有限公司-智慧社区项目 *

* description: 电动车商城-微信交易流水表表服务实现类 * * @author lyq * @date 2022-04-01 13:18:50 */ @Service("comBatteryTradeOrderService") public class ComBatteryTradeOrderServiceImpl extends ServiceImpl implements ComBatteryTradeOrderService { /** * description queryByPage 分页查询 * * @param comBatteryTradeOrder 请求参数 * @return 分页查询列表数据 * @author lyq * @date 2022-04-01 13:18:50 */ @Override public R queryByPage(PageComBatteryTradeOrderDto comBatteryTradeOrder) { return R.ok(this.baseMapper.queryAllByLimit(comBatteryTradeOrder, new Page(comBatteryTradeOrder.getPageNum(), comBatteryTradeOrder.getPageSize()))); } /** * description insert 新增数据 * * @param comBatteryTradeOrder 请求参数 * @return 新增结果 * @author lyq * @date 2022-04-01 13:18:50 */ @Override public R insert(AddComBatteryTradeOrderDto comBatteryTradeOrder) { ComBatteryTradeOrder entity = new ComBatteryTradeOrder(); BeanUtils.copyProperties(comBatteryTradeOrder, entity); if (this.baseMapper.insert(entity) > 0) { return R.ok(); } return R.fail("添加失败"); } /** * description update 修改数据 * * @param editDto 请求参数 * @return 修改结果 * @author lyq * @date 2022-04-01 13:18:50 */ @Override public R update(EditComBatteryTradeOrderDto editDto) { ComBatteryTradeOrder entity = this.baseMapper.selectById(editDto.getId()); if (entity == null) { return R.fail("未查询到该记录"); } BeanUtils.copyProperties(editDto, entity); if (this.baseMapper.updateById(entity) > 0) { return R.ok(); } return R.fail("修改失败"); } /** * description deleteById 通过主键删除数据 * * @param id 主键id * @return 删除结果 * @author lyq * @date 2022-04-01 13:18:50 */ @Override public R deleteById(Long id) { if (this.baseMapper.deleteById(id) > 0) { return R.ok(); } return R.fail("删除失败"); } /** * description detailById 查询详情 * * @param id 主键id * @return 详情数据 * @author lyq * @date 2022-04-01 13:18:50 */ @Override public R detailById(Long id) { return R.ok(this.baseMapper.queryById(id)); } /** * description queryByPage 查询列表 * * @param comBatteryTradeOrder 请求参数 * @return 列表数据 * @author lyq * @date 2022-04-01 13:18:50 */ @Override public R queryByList(PageComBatteryTradeOrderDto comBatteryTradeOrder) { return R.ok(this.baseMapper.queryAllByList(comBatteryTradeOrder)); } /** * 添加微信交易记录 * @param userId 用户id * @param openId 用户openId * @param orderNo 订单号 * @param payType 支付类型 * @param orderAmount 订单金额 * @param tradeType 交易类型(1.电动车商城购买商品) * @param tradeOrderId 交易业务订单id * @param tradeOrderNo 交易业务订单号 * @param createBy 创建人 * @param nowDate 创建时间 */ @Override public void addOrderTradeRecord(Long userId, String openId, String orderNo, Integer payType, BigDecimal orderAmount, Integer tradeType, Long tradeOrderId, String tradeOrderNo, Long createBy, Date nowDate) { ComBatteryTradeOrder entity = new ComBatteryTradeOrder(); entity.setUserId(userId); entity.setOpenId(openId); entity.setOrderNo(orderNo); entity.setStatus(ComBatteryTradeOrder.Status.DFZ); entity.setPayType(payType); entity.setPayStatus(ComBatteryTradeOrder.PayStatus.DZF); entity.setOrderAmount(orderAmount); entity.setTradeType(tradeType); entity.setTradeOrderId(tradeOrderId); entity.setTradeOrderNo(tradeOrderNo); entity.setCreateAt(nowDate); entity.setCreateBy(createBy); this.baseMapper.insert(entity); } /** * 更新微信支付流水记录 * * @param orderId 订单id * @param amount 实际支付金额 * @param wxTradeNo 微信支付订单号 * @param payTime 支付时间 * @param nowDate 当前处理时间 */ @Override public void renewPayTrade(Long orderId, BigDecimal amount, String wxTradeNo, Date payTime, Date nowDate) { List tradeOrderList = this.baseMapper.selectList(new QueryWrapper().lambda() .eq(ComBatteryTradeOrder::getTradeOrderId, orderId).orderByDesc(ComBatteryTradeOrder::getCreateAt)); if(tradeOrderList != null && tradeOrderList.size() > 0){ for (int i = 0; i < tradeOrderList.size(); i++) { ComBatteryTradeOrder tradeOrder = tradeOrderList.get(i); if (i == 0) { tradeOrder.setPayStatus(ComBatteryTradeOrder.PayStatus.YZF); tradeOrder.setStatus(ComBatteryTradeOrder.Status.YZF); tradeOrder.setPayAmount(amount); tradeOrder.setPayNo(wxTradeNo); tradeOrder.setPayTime(payTime); tradeOrder.setUpdateAt(nowDate); } else { tradeOrder.setStatus(ComBatteryTradeOrder.Status.YGB); tradeOrder.setUpdateAt(nowDate); } this.baseMapper.updateById(tradeOrder); } } } }