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("权限")
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.util.List;
import com.ruoyi.common.core.domain.vo.LongCountVO;
import com.ruoyi.ss.storeStaff.domain.StoreStaff;
import com.ruoyi.ss.storeStaff.domain.StoreStaffVO;
import com.ruoyi.ss.storeStaff.domain.StoreStaffQuery;
@ -75,4 +77,8 @@ public interface StoreStaffMapper
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>
</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 into ss_store_staff
<trim prefix="(" suffix=")" suffixOverrides=",">

View File

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

View File

@ -1,7 +1,10 @@
package com.ruoyi.ss.storeStaff.service.impl;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.List;
import com.ruoyi.common.core.domain.vo.LongCountVO;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ServiceUtil;
import com.ruoyi.common.utils.collection.CollectionUtils;
@ -174,4 +177,9 @@ public class StoreStaffServiceImpl implements StoreStaffService
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();
DeviceVO device = bo.getDevice();
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(device == null, "设备不存在");
@ -1185,6 +1185,7 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
ServiceUtil.assertion(order == null, "订单不存在");
ServiceUtil.assertion(!SuitFeeMode.SMART.getMode().equals(order.getSuitFeeMode()), "当前订单非智能收费订单,无法提前结束");
ServiceUtil.assertion(order.getIsFinished() != null && order.getIsFinished(), "当前订单已结束,无法操作");
ServiceUtil.assertion(!TransactionBillStatus.SUCCESS.getStatus().equals(order.getStatus()), "当前订单状态不允许结束");
ServiceUtil.assertion(device == null, "设备不存在");
LocalDateTime endTime = LocalDateTime.now(); // 结束使用的时间
@ -1224,7 +1225,7 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
refundDto.setRefundReason(String.format("充值订单%s智能退款%s元", order.getBillNo(), refundAmount));
int refund = this.refund(refundDto);
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(dto.getRefundAmount().compareTo(bill.getMoney()) > 0, "退款金额不允许大于订单金额");
ServiceUtil.assertion(!TransactionBillStatus.SUCCESS.getStatus().equals(bill.getStatus()), "当前订单状态不允许退款");
ServiceUtil.assertion(bill.getIsFinished() == null || !bill.getIsFinished(), "当前订单未完成,不允许退款");
// 拼接分成列表
transactionAssembler.assembleBonusList(bill);
@ -1762,6 +1764,7 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
TransactionBillQuery billQuery = new TransactionBillQuery();
billQuery.setBillId(dto.getBillId());
billQuery.setStatus(TransactionBillStatus.SUCCESS.getStatus());
billQuery.setIsFinished(true);
int updateBill = this.updateByQuery(data, billQuery);
ServiceUtil.assertion(updateBill != 1, "退款时修改订单状态失败,订单状态已发生改变,请刷新后重试");

View File

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

View File

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

View File

@ -1,5 +1,6 @@
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.utils.ServiceUtil;
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.service.DeviceService;
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.service.UserAssembler;
import com.ruoyi.system.domain.enums.config.ConfigKey;
@ -45,6 +48,9 @@ public class UserAssemblerImpl implements UserAssembler {
@Autowired
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.assembleDeviceCount(list);
userAssembler.assembleWaitBonusAmount(list);
userAssembler.assembleIsStaff(list);
return AjaxResult.success(user);
}