debug:退款

This commit is contained in:
磷叶 2024-11-28 09:52:35 +08:00
parent 68770d6785
commit 3c1030b55b
11 changed files with 90 additions and 2 deletions

View File

@ -0,0 +1,17 @@
package com.ruoyi.common.core.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wjh
* 2024/11/28
*/
@Data
public class LongCountVO {
private Long key;
private Integer value;
}

View File

@ -24,4 +24,6 @@ public class StoreStaffQuery extends StoreStaffVO {
@ApiModelProperty("权限") @ApiModelProperty("权限")
private String permission; private String permission;
@ApiModelProperty("用户ID列表")
private List<Long> userIds;
} }

View File

@ -2,6 +2,8 @@ package com.ruoyi.ss.storeStaff.mapper;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
import com.ruoyi.common.core.domain.vo.LongCountVO;
import com.ruoyi.ss.storeStaff.domain.StoreStaff; import com.ruoyi.ss.storeStaff.domain.StoreStaff;
import com.ruoyi.ss.storeStaff.domain.StoreStaffVO; import com.ruoyi.ss.storeStaff.domain.StoreStaffVO;
import com.ruoyi.ss.storeStaff.domain.StoreStaffQuery; import com.ruoyi.ss.storeStaff.domain.StoreStaffQuery;
@ -75,4 +77,8 @@ public interface StoreStaffMapper
int bindUser(@Param("employId") Long employId,@Param("userId") Long userId); int bindUser(@Param("employId") Long employId,@Param("userId") Long userId);
/**
* 根据用户统计店员数量
*/
List<LongCountVO> selectCountGroupByUserId(@Param("query") StoreStaffQuery query);
} }

View File

@ -83,6 +83,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where> </where>
</select> </select>
<select id="selectCountGroupByUserId" resultType="LongCountVO">
select sss.user_id as `key`, count(sss.employ_id) as `value`
from ss_store_staff sss
<where>
<include refid="searchCondition"/>
</where>
group by `key`
</select>
<insert id="insertStoreStaff" parameterType="StoreStaff" useGeneratedKeys="true" keyProperty="employId"> <insert id="insertStoreStaff" parameterType="StoreStaff" useGeneratedKeys="true" keyProperty="employId">
insert into ss_store_staff insert into ss_store_staff
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">

View File

@ -2,6 +2,8 @@ package com.ruoyi.ss.storeStaff.service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
import com.ruoyi.common.core.domain.vo.LongCountVO;
import com.ruoyi.ss.storeStaff.domain.StoreStaff; import com.ruoyi.ss.storeStaff.domain.StoreStaff;
import com.ruoyi.ss.storeStaff.domain.StoreStaffVO; import com.ruoyi.ss.storeStaff.domain.StoreStaffVO;
import com.ruoyi.ss.storeStaff.domain.StoreStaffQuery; import com.ruoyi.ss.storeStaff.domain.StoreStaffQuery;
@ -81,4 +83,9 @@ public interface StoreStaffService
* 绑定用户为店铺员工 * 绑定用户为店铺员工
*/ */
int bindUser(Long employId, Long userId); int bindUser(Long employId, Long userId);
/**
* 根据用户查询店铺员工
*/
List<LongCountVO> selectCountGroupByUserId(StoreStaffQuery query);
} }

View File

@ -1,7 +1,10 @@
package com.ruoyi.ss.storeStaff.service.impl; package com.ruoyi.ss.storeStaff.service.impl;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Collections;
import java.util.List; import java.util.List;
import com.ruoyi.common.core.domain.vo.LongCountVO;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.common.utils.ServiceUtil;
import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.common.utils.collection.CollectionUtils;
@ -174,4 +177,9 @@ public class StoreStaffServiceImpl implements StoreStaffService
return result == null ? 0 : result; return result == null ? 0 : result;
} }
@Override
public List<LongCountVO> selectCountGroupByUserId(StoreStaffQuery query) {
return storeStaffMapper.selectCountGroupByUserId(query);
}
} }

View File

@ -1090,7 +1090,7 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
TransactionBillVO order = bo.getOrder(); TransactionBillVO order = bo.getOrder();
DeviceVO device = bo.getDevice(); DeviceVO device = bo.getDevice();
ServiceUtil.assertion(order == null, "订单不存在"); ServiceUtil.assertion(order == null, "订单不存在");
// ServiceUtil.assertion(!TransactionBillStatus.SUCCESS_DEPOSIT.getStatus().equals(order.getStatus()), "当前订单状态不允许结束"); ServiceUtil.assertion(!TransactionBillStatus.SUCCESS_DEPOSIT.getStatus().equals(order.getStatus()), "当前订单状态不允许结束");
ServiceUtil.assertion(order.getIsFinished() != null && order.getIsFinished(), "当前订单已结束,无法操作"); ServiceUtil.assertion(order.getIsFinished() != null && order.getIsFinished(), "当前订单已结束,无法操作");
ServiceUtil.assertion(device == null, "设备不存在"); ServiceUtil.assertion(device == null, "设备不存在");
@ -1185,6 +1185,7 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
ServiceUtil.assertion(order == null, "订单不存在"); ServiceUtil.assertion(order == null, "订单不存在");
ServiceUtil.assertion(!SuitFeeMode.SMART.getMode().equals(order.getSuitFeeMode()), "当前订单非智能收费订单,无法提前结束"); ServiceUtil.assertion(!SuitFeeMode.SMART.getMode().equals(order.getSuitFeeMode()), "当前订单非智能收费订单,无法提前结束");
ServiceUtil.assertion(order.getIsFinished() != null && order.getIsFinished(), "当前订单已结束,无法操作"); ServiceUtil.assertion(order.getIsFinished() != null && order.getIsFinished(), "当前订单已结束,无法操作");
ServiceUtil.assertion(!TransactionBillStatus.SUCCESS.getStatus().equals(order.getStatus()), "当前订单状态不允许结束");
ServiceUtil.assertion(device == null, "设备不存在"); ServiceUtil.assertion(device == null, "设备不存在");
LocalDateTime endTime = LocalDateTime.now(); // 结束使用的时间 LocalDateTime endTime = LocalDateTime.now(); // 结束使用的时间
@ -1224,7 +1225,7 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
refundDto.setRefundReason(String.format("充值订单%s智能退款%s元", order.getBillNo(), refundAmount)); refundDto.setRefundReason(String.format("充值订单%s智能退款%s元", order.getBillNo(), refundAmount));
int refund = this.refund(refundDto); int refund = this.refund(refundDto);
ServiceUtil.assertion(refund != 1, "申请退款失败"); ServiceUtil.assertion(refund != 1, "申请退款失败");
}, 0, TimeUnit.SECONDS); }, 10, TimeUnit.SECONDS);
} }
// 清零设备 // 清零设备
@ -1749,6 +1750,7 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
ServiceUtil.assertion(bill == null, "待退款的订单不存在"); ServiceUtil.assertion(bill == null, "待退款的订单不存在");
ServiceUtil.assertion(dto.getRefundAmount().compareTo(bill.getMoney()) > 0, "退款金额不允许大于订单金额"); ServiceUtil.assertion(dto.getRefundAmount().compareTo(bill.getMoney()) > 0, "退款金额不允许大于订单金额");
ServiceUtil.assertion(!TransactionBillStatus.SUCCESS.getStatus().equals(bill.getStatus()), "当前订单状态不允许退款"); ServiceUtil.assertion(!TransactionBillStatus.SUCCESS.getStatus().equals(bill.getStatus()), "当前订单状态不允许退款");
ServiceUtil.assertion(bill.getIsFinished() == null || !bill.getIsFinished(), "当前订单未完成,不允许退款");
// 拼接分成列表 // 拼接分成列表
transactionAssembler.assembleBonusList(bill); transactionAssembler.assembleBonusList(bill);
@ -1762,6 +1764,7 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
TransactionBillQuery billQuery = new TransactionBillQuery(); TransactionBillQuery billQuery = new TransactionBillQuery();
billQuery.setBillId(dto.getBillId()); billQuery.setBillId(dto.getBillId());
billQuery.setStatus(TransactionBillStatus.SUCCESS.getStatus()); billQuery.setStatus(TransactionBillStatus.SUCCESS.getStatus());
billQuery.setIsFinished(true);
int updateBill = this.updateByQuery(data, billQuery); int updateBill = this.updateByQuery(data, billQuery);
ServiceUtil.assertion(updateBill != 1, "退款时修改订单状态失败,订单状态已发生改变,请刷新后重试"); ServiceUtil.assertion(updateBill != 1, "退款时修改订单状态失败,订单状态已发生改变,请刷新后重试");

View File

@ -57,4 +57,8 @@ public class SmUserVO extends SmUser {
@JsonView(JsonViewProfile.App.class) @JsonView(JsonViewProfile.App.class)
private BigDecimal waitBonusAmount; private BigDecimal waitBonusAmount;
@ApiModelProperty("是否店铺员工")
@JsonView(JsonViewProfile.App.class)
private Boolean isStaff;
} }

View File

@ -35,4 +35,9 @@ public interface UserAssembler {
* @param list * @param list
*/ */
void assembleWaitBonusAmount(List<SmUserVO> list); void assembleWaitBonusAmount(List<SmUserVO> list);
/**
* 拼接是否店铺员工
*/
void assembleIsStaff(List<SmUserVO> list);
} }

View File

@ -1,5 +1,6 @@
package com.ruoyi.ss.user.service.impl; package com.ruoyi.ss.user.service.impl;
import com.ruoyi.common.core.domain.vo.LongCountVO;
import com.ruoyi.common.domain.vo.LongDecimalVO; import com.ruoyi.common.domain.vo.LongDecimalVO;
import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.common.utils.ServiceUtil;
import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.common.utils.collection.CollectionUtils;
@ -13,6 +14,8 @@ import com.ruoyi.ss.device.domain.enums.DeviceGroupBy;
import com.ruoyi.ss.device.domain.enums.DeviceGroupByTable; import com.ruoyi.ss.device.domain.enums.DeviceGroupByTable;
import com.ruoyi.ss.device.service.DeviceService; import com.ruoyi.ss.device.service.DeviceService;
import com.ruoyi.ss.store.service.StoreService; import com.ruoyi.ss.store.service.StoreService;
import com.ruoyi.ss.storeStaff.domain.StoreStaffQuery;
import com.ruoyi.ss.storeStaff.service.StoreStaffService;
import com.ruoyi.ss.user.domain.SmUserVO; import com.ruoyi.ss.user.domain.SmUserVO;
import com.ruoyi.ss.user.service.UserAssembler; import com.ruoyi.ss.user.service.UserAssembler;
import com.ruoyi.system.domain.enums.config.ConfigKey; import com.ruoyi.system.domain.enums.config.ConfigKey;
@ -45,6 +48,9 @@ public class UserAssemblerImpl implements UserAssembler {
@Autowired @Autowired
private BonusService bonusService; private BonusService bonusService;
@Autowired
private StoreStaffService storeStaffService;
/** /**
* 拼接用户店铺数量 * 拼接用户店铺数量
* *
@ -153,4 +159,24 @@ public class UserAssemblerImpl implements UserAssembler {
} }
} }
} }
@Override
public void assembleIsStaff(List<SmUserVO> list) {
if (CollectionUtils.isEmptyElement(list)) {
return;
}
StoreStaffQuery query = new StoreStaffQuery();
query.setUserIds(CollectionUtils.map(list, SmUserVO::getUserId));
List<LongCountVO> counts = storeStaffService.selectCountGroupByUserId(query);
for (SmUserVO user : list) {
LongCountVO count = counts.stream().filter(item -> Objects.equals(item.getKey(), user.getUserId())).findFirst().orElse(null);
if (count == null || count.getValue() == null || count.getValue() < 1) {
user.setIsStaff(false);
} else {
user.setIsStaff(true);
}
}
}
} }

View File

@ -94,6 +94,7 @@ public class AppUserController extends BaseController {
userAssembler.assembleStoreCount(list); userAssembler.assembleStoreCount(list);
userAssembler.assembleDeviceCount(list); userAssembler.assembleDeviceCount(list);
userAssembler.assembleWaitBonusAmount(list); userAssembler.assembleWaitBonusAmount(list);
userAssembler.assembleIsStaff(list);
return AjaxResult.success(user); return AjaxResult.success(user);
} }