fix:问题修复
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user