From 7ee466ebc953bb5640bcf42f2b8e2a87aa471c21 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 15 四月 2026 20:12:21 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/gtzxinglijicun
---
server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java | 299 ++++++++++++++++++++++++++++++++++-------------------------
1 files changed, 174 insertions(+), 125 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
index b7d603d..2602c77 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
@@ -1,44 +1,39 @@
package com.doumee.service.business.impl;
-import com.alibaba.fastjson.JSONObject;
-import com.doumee.config.wx.SendWxMessage;
-import com.doumee.config.wx.WXPayUtility;
-import com.doumee.config.wx.WxMiniConfig;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.MemberMapper;
-import com.doumee.dao.business.MemberRevenueMapper;
+import com.doumee.dao.business.DriverInfoMapper;
+import com.doumee.dao.business.ShopInfoMapper;
import com.doumee.dao.business.WithdrawalOrdersMapper;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.MemberRevenue;
+import com.doumee.dao.business.model.DriverInfo;
+import com.doumee.dao.business.model.ShopInfo;
import com.doumee.dao.business.model.WithdrawalOrders;
-import com.doumee.dao.dto.WithdrawalDTO;
+import com.doumee.dao.dto.WithdrawalApproveDTO;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.WithdrawalOrdersService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-import java.math.BigDecimal;
+import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
-import java.util.UUID;
/**
* 鎻愮幇鐢宠璁板綍Service瀹炵幇
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
+ * @author rk
+ * @date 2026/04/10
*/
@Service
public class WithdrawalOrdersServiceImpl implements WithdrawalOrdersService {
@@ -47,13 +42,13 @@
private WithdrawalOrdersMapper withdrawalOrdersMapper;
@Autowired
- private MemberMapper memberMapper;
+ private SystemUserMapper systemUserMapper;
@Autowired
- private MemberRevenueMapper memberRevenueMapper;
+ private ShopInfoMapper shopInfoMapper;
@Autowired
- private SendWxMessage sendWxMessage;
+ private DriverInfoMapper driverInfoMapper;
@Override
public Integer create(WithdrawalOrders withdrawalOrders) {
@@ -63,7 +58,9 @@
@Override
public void deleteById(Integer id) {
- withdrawalOrdersMapper.deleteById(id);
+ withdrawalOrdersMapper.update(new UpdateWrapper<WithdrawalOrders>().lambda()
+ .set(WithdrawalOrders::getDeleted, Constants.ONE)
+ .eq(WithdrawalOrders::getId, id));
}
@Override
@@ -74,7 +71,7 @@
@Override
public void deleteByIdInBatch(List<Integer> ids) {
- if (CollectionUtils.isEmpty(ids)) {
+ if (ids == null || ids.isEmpty()) {
return;
}
withdrawalOrdersMapper.deleteBatchIds(ids);
@@ -86,18 +83,30 @@
}
@Override
- public void updateByIdInBatch(List<WithdrawalOrders> withdrawalOrderss) {
- if (CollectionUtils.isEmpty(withdrawalOrderss)) {
+ public void updateByIdInBatch(List<WithdrawalOrders> withdrawalOrdersList) {
+ if (withdrawalOrdersList == null || withdrawalOrdersList.isEmpty()) {
return;
}
- for (WithdrawalOrders withdrawalOrders: withdrawalOrderss) {
+ for (WithdrawalOrders withdrawalOrders : withdrawalOrdersList) {
this.updateById(withdrawalOrders);
}
}
@Override
public WithdrawalOrders findById(Integer id) {
- return withdrawalOrdersMapper.selectById(id);
+ WithdrawalOrders order = withdrawalOrdersMapper.selectById(id);
+ if (Objects.isNull(order)) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ // 鏌ヨ瀹℃壒浜哄悕绉�
+ fillUpdateUserName(order);
+ // 鏍规嵁鐢ㄦ埛绫诲瀷鏌ヨ鍏宠仈淇℃伅
+ if (Constants.ONE.equals(order.getMemberType())) {
+ fillMemberInfo(order);
+ } else {
+ fillShopInfo(order);
+ }
+ return order;
}
@Override
@@ -111,63 +120,69 @@
QueryWrapper<WithdrawalOrders> wrapper = new QueryWrapper<>(withdrawalOrders);
return withdrawalOrdersMapper.selectList(wrapper);
}
-
+
@Override
public PageData<WithdrawalOrders> findPage(PageWrap<WithdrawalOrders> pageWrap) {
IPage<WithdrawalOrders> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
- QueryWrapper<WithdrawalOrders> queryWrapper = new QueryWrapper<>();
+ MPJLambdaWrapper<WithdrawalOrders> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
- if (pageWrap.getModel().getId() != null) {
- queryWrapper.lambda().eq(WithdrawalOrders::getId, pageWrap.getModel().getId());
+ pageWrap.getModel().setDeleted(Constants.ZERO);
+
+ // 鍏叡锛氬鎵逛汉鍚嶇О
+ queryWrapper.selectAll(WithdrawalOrders.class)
+ .selectAs(SystemUser::getUsername, WithdrawalOrders::getUpdateUserName)
+ .leftJoin(SystemUser.class, SystemUser::getId, WithdrawalOrders::getUserId);
+
+ // 鏍规嵁鐢ㄦ埛绫诲瀷鍏宠仈涓嶅悓琛�
+ Integer memberType = pageWrap.getModel().getMemberType();
+ if (Constants.ONE.equals(memberType)) {
+ // 鍙告満绔細鍏宠仈 DriverInfo 琛�
+ queryWrapper.selectAs(DriverInfo::getName, WithdrawalOrders::getMemberName)
+ .selectAs(DriverInfo::getTelephone, WithdrawalOrders::getMemberTelephone)
+ .leftJoin(DriverInfo.class, DriverInfo::getMemberId, WithdrawalOrders::getMemberId);
+ } else {
+ // 搴楅摵绔� / 涓嶇瓫閫夛細鍏宠仈 ShopInfo 琛�
+ queryWrapper.selectAs(ShopInfo::getName, WithdrawalOrders::getShopName)
+ .selectAs(ShopInfo::getLinkName, WithdrawalOrders::getLinkName)
+ .leftJoin(ShopInfo.class, ShopInfo::getId, WithdrawalOrders::getMemberId,
+ ext -> ext.eq(ShopInfo::getDeleted, Constants.ZERO));
}
- if (pageWrap.getModel().getDeleted() != null) {
- queryWrapper.lambda().eq(WithdrawalOrders::getDeleted, pageWrap.getModel().getDeleted());
+
+ queryWrapper.eq(WithdrawalOrders::getDeleted, pageWrap.getModel().getDeleted());
+ if (memberType != null) {
+ queryWrapper.eq(WithdrawalOrders::getMemberType, memberType);
}
- if (pageWrap.getModel().getCreateUser() != null) {
- queryWrapper.lambda().eq(WithdrawalOrders::getCreateUser, pageWrap.getModel().getCreateUser());
- }
- if (pageWrap.getModel().getCreateTime() != null) {
- queryWrapper.lambda().ge(WithdrawalOrders::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime()));
- queryWrapper.lambda().le(WithdrawalOrders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime()));
- }
- if (pageWrap.getModel().getUpdateUser() != null) {
- queryWrapper.lambda().eq(WithdrawalOrders::getUpdateUser, pageWrap.getModel().getUpdateUser());
- }
- if (pageWrap.getModel().getUpdateTime() != null) {
- queryWrapper.lambda().ge(WithdrawalOrders::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime()));
- queryWrapper.lambda().le(WithdrawalOrders::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime()));
- }
- if (pageWrap.getModel().getRemark() != null) {
- queryWrapper.lambda().eq(WithdrawalOrders::getRemark, pageWrap.getModel().getRemark());
+ if (StringUtils.isNotBlank(pageWrap.getModel().getOutBillNo())) {
+ queryWrapper.like(WithdrawalOrders::getOutBillNo, pageWrap.getModel().getOutBillNo());
}
if (pageWrap.getModel().getMemberId() != null) {
- queryWrapper.lambda().eq(WithdrawalOrders::getMemberId, pageWrap.getModel().getMemberId());
- }
- if (pageWrap.getModel().getAmount() != null) {
- queryWrapper.lambda().eq(WithdrawalOrders::getAmount, pageWrap.getModel().getAmount());
- }
- if (pageWrap.getModel().getWxExternalNo() != null) {
- queryWrapper.lambda().eq(WithdrawalOrders::getWxExternalNo, pageWrap.getModel().getWxExternalNo());
+ queryWrapper.eq(WithdrawalOrders::getMemberId, pageWrap.getModel().getMemberId());
}
if (pageWrap.getModel().getStatus() != null) {
- queryWrapper.lambda().eq(WithdrawalOrders::getStatus, pageWrap.getModel().getStatus());
+ queryWrapper.eq(WithdrawalOrders::getStatus, pageWrap.getModel().getStatus());
}
- if (pageWrap.getModel().getDoneTime() != null) {
- queryWrapper.lambda().ge(WithdrawalOrders::getDoneTime, Utils.Date.getStart(pageWrap.getModel().getDoneTime()));
- queryWrapper.lambda().le(WithdrawalOrders::getDoneTime, Utils.Date.getEnd(pageWrap.getModel().getDoneTime()));
+ if (pageWrap.getModel().getType() != null) {
+ queryWrapper.eq(WithdrawalOrders::getType, pageWrap.getModel().getType());
}
- if (pageWrap.getModel().getDoneInfo() != null) {
- queryWrapper.lambda().eq(WithdrawalOrders::getDoneInfo, pageWrap.getModel().getDoneInfo());
+ if (pageWrap.getModel().getCreateStartTime() != null) {
+ queryWrapper.ge(WithdrawalOrders::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateStartTime()));
}
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (pageWrap.getModel().getCreateEndTime() != null) {
+ queryWrapper.le(WithdrawalOrders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateEndTime()));
+ }
+ for (PageWrap.SortData sortData : pageWrap.getSorts()) {
if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
queryWrapper.orderByDesc(sortData.getProperty());
} else {
queryWrapper.orderByAsc(sortData.getProperty());
}
}
- return PageData.from(withdrawalOrdersMapper.selectPage(page, queryWrapper));
+ return PageData.from(withdrawalOrdersMapper.selectJoinPage(page, WithdrawalOrders.class, queryWrapper));
}
+
+
+
+
@Override
public long count(WithdrawalOrders withdrawalOrders) {
@@ -175,69 +190,103 @@
return withdrawalOrdersMapper.selectCount(wrapper);
}
-
- /************************************绉诲姩绔帴鍙�*******************************************/
-
-
-
-
@Override
- public void transferSuccess(String outBillNo,Boolean isSuccess){
- WithdrawalOrders withdrawalOrders = withdrawalOrdersMapper.selectOne(new QueryWrapper<WithdrawalOrders>().lambda()
- .eq(WithdrawalOrders::getOutBillNo,outBillNo).last("limit 1"));
- Member member = memberMapper.selectById(withdrawalOrders.getMemberId());
- if(Objects.isNull(member)){
- return;
+ public Long totalAmount(PageWrap<WithdrawalOrders> pageWrap) {
+ QueryWrapper<WithdrawalOrders> queryWrapper = new QueryWrapper<>();
+ queryWrapper.select("IFNULL(SUM(amount), 0) as amount");
+ Utils.MP.blankToNull(pageWrap.getModel());
+ queryWrapper.lambda().eq(WithdrawalOrders::getDeleted, Constants.ZERO);
+ queryWrapper.lambda().in(WithdrawalOrders::getStatus, Arrays.asList(Constants.ZERO, Constants.ONE));
+ if (pageWrap.getModel().getOutBillNo() != null) {
+ queryWrapper.lambda().like(WithdrawalOrders::getOutBillNo, pageWrap.getModel().getOutBillNo());
}
- if(Objects.nonNull(withdrawalOrders)){
- //杞处鎴愬姛
- if(isSuccess){
- withdrawalOrdersMapper.update(new UpdateWrapper<WithdrawalOrders>().lambda()
- .set(WithdrawalOrders::getStatus,Constants.ONE)
- .set(WithdrawalOrders::getUpdateTime, DateUtil.getCurrDateTime())
- .eq(WithdrawalOrders::getOutBillNo,outBillNo)
- );
- //淇敼娴佹按璁板綍鐘舵��
- memberRevenueMapper.update(new UpdateWrapper<MemberRevenue>().lambda()
- .set(MemberRevenue::getStatus,Constants.ZERO)
- .set(MemberRevenue::getUpdateTime, DateUtil.getCurrDateTime())
- .eq(MemberRevenue::getObjId,withdrawalOrders.getId())
- .eq(MemberRevenue::getObjType,Constants.ONE)
- );
- withdrawalOrders.setUpdateTime(new Date());
- sendWxMessage.withdrawalMessage(member.getOpenid(),withdrawalOrders);
- }else {
- //鏇存柊鐢ㄦ埛浣欓
- memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" AMOUNT = AMOUNT + " + withdrawalOrders.getAmount() ).eq(Member::getId,withdrawalOrders.getMemberId()));
- //淇敼娴佹按璁板綍鐘舵��
- memberRevenueMapper.update(new UpdateWrapper<MemberRevenue>().lambda()
- .set(MemberRevenue::getStatus,Constants.ONE)
- .set(MemberRevenue::getUpdateTime, DateUtil.getCurrDateTime())
- .eq(MemberRevenue::getObjId,withdrawalOrders.getId())
- .eq(MemberRevenue::getObjType,Constants.ONE)
- );
- //瀛樺偍娴佹按璁板綍
- MemberRevenue memberRevenue = new MemberRevenue();
- memberRevenue.setCreateTime(new Date());
- memberRevenue.setTransactionNo(withdrawalOrders.getOutBillNo());
- memberRevenue.setDeleted(Constants.ZERO);
- memberRevenue.setMemberId(withdrawalOrders.getMemberId());
- memberRevenue.setType(Constants.FOUR);
- memberRevenue.setOptType(Constants.ONE);
- memberRevenue.setBeforeAmount(member.getAmount());
- memberRevenue.setAmount(withdrawalOrders.getAmount());
- memberRevenue.setAfterAmount(member.getAmount() + withdrawalOrders.getAmount());
- memberRevenue.setObjId(withdrawalOrders.getId());
- memberRevenue.setRemark(Constants.RevenueType.getInfo(memberRevenue.getType()));
- memberRevenue.setObjType(Constants.ONE);
- memberRevenue.setDeleted(Constants.ZERO);
- memberRevenue.setStatus(Constants.ZERO);
- memberRevenueMapper.insert(memberRevenue);
- }
+ if (pageWrap.getModel().getMemberId() != null) {
+ queryWrapper.lambda().eq(WithdrawalOrders::getMemberId, pageWrap.getModel().getMemberId());
}
-
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(WithdrawalOrders::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getType() != null) {
+ queryWrapper.lambda().eq(WithdrawalOrders::getType, pageWrap.getModel().getType());
+ }
+ if (pageWrap.getModel().getCreateStartTime() != null) {
+ queryWrapper.lambda().ge(WithdrawalOrders::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateStartTime()));
+ }
+ if (pageWrap.getModel().getCreateEndTime() != null) {
+ queryWrapper.lambda().le(WithdrawalOrders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateEndTime()));
+ }
+ WithdrawalOrders result = withdrawalOrdersMapper.selectOne(queryWrapper);
+ return result != null && result.getAmount() != null ? result.getAmount() : 0L;
}
+ @Override
+ public void approve(WithdrawalApproveDTO dto) {
+ if (dto == null || dto.getId() == null || dto.getStatus() == null) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀹℃壒鍙傛暟涓嶅畬鏁�");
+ }
+ if (!Constants.ONE.equals(dto.getStatus()) && !Constants.TWO.equals(dto.getStatus())) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀹℃壒缁撴灉浠呮敮鎸侀�氳繃鎴栨嫆缁�");
+ }
+ WithdrawalOrders order = withdrawalOrdersMapper.selectById(dto.getId());
+ if (Objects.isNull(order)) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if (!Constants.ZERO.equals(order.getStatus())) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浠呯敵璇蜂腑鐨勬彁鐜拌鍗曞彲瀹℃壒");
+ }
+
+ // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
+ Integer currentUserId = getCurrentUserId();
+
+ WithdrawalOrders update = new WithdrawalOrders();
+ update.setId(dto.getId());
+ update.setStatus(dto.getStatus());
+ update.setUserId(currentUserId);
+ update.setApproveTime(new Date());
+ update.setApproveRemark(dto.getApproveRemark());
+ update.setUpdateTime(new Date());
+ withdrawalOrdersMapper.updateById(update);
+ }
+
+ private Integer getCurrentUserId() {
+ com.doumee.core.model.LoginUserInfo user =
+ (com.doumee.core.model.LoginUserInfo) org.apache.shiro.SecurityUtils.getSubject().getPrincipal();
+ return user != null ? user.getId() : null;
+ }
+
+ private void fillUpdateUserName(WithdrawalOrders order) {
+ if (order.getUserId() != null) {
+ SystemUser user = systemUserMapper.selectById(order.getUserId());
+ if (user != null) {
+ order.setUpdateUserName(user.getUsername());
+ }
+ }
+ }
+
+ private void fillShopInfo(WithdrawalOrders order) {
+ if (order.getMemberId() != null) {
+ ShopInfo shop = shopInfoMapper.selectById(order.getMemberId());
+ if (shop != null && !Constants.ONE.equals(shop.getDeleted())) {
+ order.setShopInfo(shop);
+ order.setShopName(shop.getName());
+ order.setLinkName(shop.getLinkName());
+ }
+ }
+ }
+
+ private void fillMemberInfo(WithdrawalOrders order) {
+ if (order.getMemberId() != null) {
+ DriverInfo driver = driverInfoMapper.selectOne(
+ new QueryWrapper<DriverInfo>().lambda()
+ .eq(DriverInfo::getMemberId, order.getMemberId())
+ .eq(DriverInfo::getDeleted, Constants.ZERO)
+ .last("limit 1"));
+ if (driver != null) {
+ order.setMemberName(driver.getName());
+ order.setMemberTelephone(driver.getTelephone());
+ }
+ }
+ }
}
--
Gitblit v1.9.3