fix:问题修复

This commit is contained in:
wangff
2025-11-13 10:40:30 +08:00
parent b35903010c
commit 13c44053c2
15 changed files with 61 additions and 30 deletions

View File

@@ -134,7 +134,16 @@ public class DictService {
}
private Field[] getFieldCache(Class<?> clazz) {
return fieldCache.computeIfAbsent(clazz, Class::getDeclaredFields);
return fieldCache.computeIfAbsent(clazz, this::getAllFields);
}
private Field[] getAllFields(Class<?> clazz) {
List<Field> fields = new ArrayList<>();
while (clazz != null && !clazz.equals(Object.class)) {
Collections.addAll(fields, clazz.getDeclaredFields());
clazz = clazz.getSuperclass();
}
return fields.toArray(new Field[0]);
}
private <T> List<Pair<Field, Field>> getDictField(Class<T> clazz) {
@@ -142,7 +151,7 @@ public class DictService {
}
private <T> List<Pair<Field, Field>> computeDictFields(Class<T> clazz) {
Field[] fields = clazz.getDeclaredFields();
Field[] fields = getFieldCache(clazz);
Map<String, Field> fieldMap = CollStreamUtil.toMap(Arrays.asList(fields), Field::getName, v -> v);
List<Pair<Field, Field>> dictFields = new ArrayList<>();
for (Field field : fields) {

View File

@@ -21,6 +21,7 @@ import com.cool.store.response.AuditInfoResponse;
import com.cool.store.service.dict.impl.DictService;
import com.cool.store.service.tp.TpApplyService;
import com.cool.store.utils.BeanUtil;
import com.cool.store.utils.CoolDateUtils;
import com.cool.store.utils.TpHelper;
import com.cool.store.vo.tp.*;
import com.cool.store.vo.tp.mini.*;
@@ -75,8 +76,7 @@ public class TpApplyServiceImpl implements TpApplyService {
throw new ServiceException(ErrorCodeEnum.TP_SCORE_EQUAL_TWELVE);
}
TpApplyFormDO formDO = BeanUtil.toBean(request, TpApplyFormDO.class);
boolean isInsert = Objects.isNull(request.getId());
if (isInsert) {
if (Objects.isNull(request.getId())) {
formDO.setApplyNo(TpHelper.generateApplyNo(TpFormTypeEnum.REWARD.getType()));
formDO.setType(TpFormTypeEnum.REWARD.getType());
formDO.setPayStatus(TpPayStatusEnum.NO_NEED_PAY.getStatus());
@@ -84,8 +84,8 @@ public class TpApplyServiceImpl implements TpApplyService {
fillRuleFields(formDO);
tpApplyFormDAO.insertOrUpdate(formDO);
// 第一次提交后添加审批记录
if (isInsert && !isDraft) {
tpAuditRecordDAO.addRecord(formDO.getId(), TpFormTypeEnum.REWARD.getType(), request.getApplyUserId(), request.getApplyUserName());
if (!isDraft) {
tpAuditRecordDAO.firstAddRecord(formDO.getId(), formDO.getType(), request.getApplyUserId(), request.getApplyUserName());
}
return true;
}
@@ -126,12 +126,13 @@ public class TpApplyServiceImpl implements TpApplyService {
throw new ServiceException(ErrorCodeEnum.TP_EXISTS_PENDING_APPLY);
}
boolean isInsert = Objects.isNull(request.getId());
formDO.setType(isInsert ? TpFormTypeEnum.PENALTY.getType() : null);
formDO.setApplyNo(isInsert ? TpHelper.generateApplyNo(formDO.getType()) : null);
fillRuleFields(formDO);
tpApplyFormDAO.insertOrUpdate(formDO);
// 第一次提交后添加审批记录
if (isInsert && !isDraft) {
tpAuditRecordDAO.addRecord(formDO.getId(), TpFormTypeEnum.PENALTY.getType(), request.getApplyUserId(), request.getApplyUserName());
if (!isDraft) {
tpAuditRecordDAO.firstAddRecord(formDO.getId(), formDO.getType(), request.getApplyUserId(), request.getApplyUserName());
}
return true;
}
@@ -225,8 +226,8 @@ public class TpApplyServiceImpl implements TpApplyService {
fillRuleFields(formDO);
tpApplyFormDAO.insertOrUpdate(formDO);
// 第一次提交后添加审批记录
if (isInsert && !isDraft) {
tpAuditRecordDAO.addRecord(formDO.getId(), TpFormTypeEnum.APPEAL.getType(), request.getApplyUserId(), request.getApplyUserName());
if (!isDraft) {
tpAuditRecordDAO.firstAddRecord(formDO.getId(), formDO.getType(), request.getApplyUserId(), request.getApplyUserName());
}
return true;
}
@@ -452,11 +453,16 @@ public class TpApplyServiceImpl implements TpApplyService {
// 扣分
if (CommonConstants.INDEX_ZERO.equals(ruleDO.getType())) {
if (Objects.isNull(formDO.getAppealEndDate())) {
formDO.setAppealEndDate(LocalDate.now().plusDays(ruleDO.getAppealDeadline()));
formDO.setAppealEndDate(CoolDateUtils.localDate2Date(LocalDate.now().plusDays(ruleDO.getAppealDeadline())));
}
// 超过警告次数的为处罚单,否则警告单
int penaltyCount = tpApplyFormDAO.getPenaltyCount(formDO.getStoreId(), formDO.getRuleId());
formDO.setType(ruleDO.getWarningLimit().compareTo(penaltyCount) <= 0 ? TpFormTypeEnum.PENALTY.getType() : TpFormTypeEnum.WARNING.getType());
Integer type = ruleDO.getWarningLimit().compareTo(penaltyCount) <= 0 ? TpFormTypeEnum.PENALTY.getType() : TpFormTypeEnum.WARNING.getType();
formDO.setType(type);
if (TpFormTypeEnum.WARNING.getType().equals(type)) {
formDO.setAmount(null);
formDO.setScore(null);
}
// 是否缴费
formDO.setPayStatus(Objects.nonNull(ruleDO.getAmount()) && BigDecimal.ZERO.compareTo(ruleDO.getAmount()) < 0 ? TpPayStatusEnum.UNPAID.getStatus() : TpPayStatusEnum.NO_NEED_PAY.getStatus());
}
@@ -466,7 +472,7 @@ public class TpApplyServiceImpl implements TpApplyService {
* 填充列表相关字段
*/
private void fillListFields(List<? extends TpApplyListBaseVO> list) {
if (CollectionUtils.isNotEmpty(list)) return;
if (CollectionUtils.isEmpty(list)) return;
dictService.fillDictField(list);
Set<String> storeIds = CollStreamUtil.toSet(list, TpApplyListBaseVO::getStoreId);
Set<String> approveUserIds = CollStreamUtil.toSet(list, TpApplyListBaseVO::getApproveUserId);