|
@@ -5,17 +5,24 @@ import cn.hutool.core.date.DatePattern;
|
|
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
import com.aliyun.dts.subscribe.clients.record.OperationType;
|
|
import com.aliyun.dts.subscribe.clients.record.OperationType;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.kxs.product.api.model.KxsMachine;
|
|
import com.kxs.product.api.model.KxsMachine;
|
|
|
|
|
+import com.kxs.product.api.model.KxsTicket;
|
|
|
import com.kxs.store.api.model.KxsWarehouse;
|
|
import com.kxs.store.api.model.KxsWarehouse;
|
|
|
|
|
+import com.kxs.store.api.model.KxsWarehouseCreditAmount;
|
|
|
import com.kxs.store.api.model.KxsWarehouseLimit;
|
|
import com.kxs.store.api.model.KxsWarehouseLimit;
|
|
|
import com.kxs.store.api.model.KxsWarehouseStock;
|
|
import com.kxs.store.api.model.KxsWarehouseStock;
|
|
|
|
|
+import com.kxs.transfer.api.mapper.store.KxsWarehouseCreditAmountMapper;
|
|
|
|
|
+import com.kxs.transfer.api.mapper.store.KxsWarehouseLimitMapper;
|
|
|
import com.kxs.transfer.api.mapper.store.KxsWarehouseMapper;
|
|
import com.kxs.transfer.api.mapper.store.KxsWarehouseMapper;
|
|
|
import com.kxs.transfer.api.mapper.store.KxsWarehouseStockMapper;
|
|
import com.kxs.transfer.api.mapper.store.KxsWarehouseStockMapper;
|
|
|
import com.kxs.transfer.api.mapper.user.KxsUserMapper;
|
|
import com.kxs.transfer.api.mapper.user.KxsUserMapper;
|
|
|
import com.kxs.transfer.api.model.table.DMLData;
|
|
import com.kxs.transfer.api.model.table.DMLData;
|
|
|
|
|
+import com.kxs.transfer.api.model.table.FieldData;
|
|
|
import com.kxs.transfer.api.service.store.KxsWarehouseService;
|
|
import com.kxs.transfer.api.service.store.KxsWarehouseService;
|
|
|
import com.kxs.user.api.model.KxsUser;
|
|
import com.kxs.user.api.model.KxsUser;
|
|
|
|
|
+import com.kxs.user.api.model.KxsUserAmount;
|
|
|
import com.kxs.user.api.model.KxsUserReal;
|
|
import com.kxs.user.api.model.KxsUserReal;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -37,6 +44,8 @@ public class KxsWarehouseServiceImpl extends ServiceImpl<KxsWarehouseMapper, Kxs
|
|
|
private final KxsUserMapper kxsUserMapper;
|
|
private final KxsUserMapper kxsUserMapper;
|
|
|
|
|
|
|
|
private final KxsWarehouseStockMapper kxsWarehouseStockMapper;
|
|
private final KxsWarehouseStockMapper kxsWarehouseStockMapper;
|
|
|
|
|
+ private final KxsWarehouseLimitMapper kxsWarehouseLimitMapper;
|
|
|
|
|
+ private final KxsWarehouseCreditAmountMapper kxsWarehouseCreditAmountMapper;
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void changeData(DMLData dmlData) {
|
|
public void changeData(DMLData dmlData) {
|
|
@@ -53,7 +62,10 @@ public class KxsWarehouseServiceImpl extends ServiceImpl<KxsWarehouseMapper, Kxs
|
|
|
|
|
|
|
|
//操作类型
|
|
//操作类型
|
|
|
OperationType operation = dmlData.getOperation();
|
|
OperationType operation = dmlData.getOperation();
|
|
|
-
|
|
|
|
|
|
|
+ if(operation.equals(OperationType.DELETE)){
|
|
|
|
|
+ baseMapper.deleteById(id);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
for (String field : changeFieldList) {
|
|
for (String field : changeFieldList) {
|
|
|
|
|
|
|
|
switch (field) {
|
|
switch (field) {
|
|
@@ -176,5 +188,184 @@ public class KxsWarehouseServiceImpl extends ServiceImpl<KxsWarehouseMapper, Kxs
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void changeCreditData(DMLData dmlData) {
|
|
|
|
|
+ //修改的字段值
|
|
|
|
|
+ Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
|
|
|
|
|
+ //修改的字段
|
|
|
|
|
+ List<String> changeFieldList = dmlData.getChangeFieldList();
|
|
|
|
|
+ //操作的主键
|
|
|
|
|
+ int id = Integer.parseInt(dmlData.getId());
|
|
|
|
|
+
|
|
|
|
|
+ KxsWarehouseCreditAmount creditAmount = new KxsWarehouseCreditAmount();
|
|
|
|
|
+
|
|
|
|
|
+ creditAmount.setId(id);
|
|
|
|
|
+
|
|
|
|
|
+ //操作类型
|
|
|
|
|
+ OperationType operation = dmlData.getOperation();
|
|
|
|
|
+ if(operation.equals(OperationType.DELETE)){
|
|
|
|
|
+ kxsWarehouseCreditAmountMapper.deleteById(id);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ for (String field : changeFieldList) {
|
|
|
|
|
+
|
|
|
|
|
+ switch (field) {
|
|
|
|
|
+ case "Status":
|
|
|
|
|
+ if(Integer.parseInt(validFieldDataMap.get(field).toString()) == -1){
|
|
|
|
|
+ kxsWarehouseCreditAmountMapper.deleteById(id);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "PromissAmount":
|
|
|
|
|
+ creditAmount.setCreditAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "FromUserId":
|
|
|
|
|
+ Integer userId = Integer.valueOf(validFieldDataMap.get(field).toString());
|
|
|
|
|
+ KxsUser user = kxsUserMapper.selectById(userId);
|
|
|
|
|
+ creditAmount.setCreditUserId(userId);
|
|
|
|
|
+ creditAmount.setUsername(user.getUsername());
|
|
|
|
|
+ creditAmount.setUserCode(user.getUserCode());
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "ToUserId":
|
|
|
|
|
+ creditAmount.setToCreditUserId(Integer.valueOf(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "SeoDescription":
|
|
|
|
|
+ creditAmount.setRemark(validFieldDataMap.get(field).toString());
|
|
|
|
|
+ break;
|
|
|
|
|
+
|
|
|
|
|
+ case "CreateDate":
|
|
|
|
|
+ creditAmount.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "UpdateDate":
|
|
|
|
|
+ creditAmount.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if(operation.equals(OperationType.INSERT)){
|
|
|
|
|
+ KxsWarehouseCreditAmount kxsWarehouseCreditAmount = kxsWarehouseCreditAmountMapper.selectById(id);
|
|
|
|
|
+ if(kxsWarehouseCreditAmount == null){
|
|
|
|
|
+ kxsWarehouseCreditAmountMapper.insert(creditAmount);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if(operation.equals(OperationType.UPDATE)){
|
|
|
|
|
+
|
|
|
|
|
+ kxsWarehouseCreditAmountMapper.updateById(creditAmount);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void changeAccountData(DMLData dmlData) {
|
|
|
|
|
+ //修改的字段值
|
|
|
|
|
+ Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
|
|
|
|
|
+ //全部字段值
|
|
|
|
|
+ Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
|
|
|
|
|
+ //修改的字段
|
|
|
|
|
+ List<String> changeFieldList = dmlData.getChangeFieldList();
|
|
|
|
|
+ //操作的主键
|
|
|
|
|
+ int id = Integer.parseInt(dmlData.getId());
|
|
|
|
|
+ Integer userId = null;
|
|
|
|
|
+
|
|
|
|
|
+ KxsWarehouseLimit warehouseLimit = new KxsWarehouseLimit();
|
|
|
|
|
+
|
|
|
|
|
+ if(fieldDataMap.get("UserId").getValue() != null){
|
|
|
|
|
+ userId = Integer.valueOf(fieldDataMap.get("UserId").getValue().toString());
|
|
|
|
|
+ }
|
|
|
|
|
+ for (String field : changeFieldList) {
|
|
|
|
|
+
|
|
|
|
|
+ switch (field) {
|
|
|
|
|
+ case "UserId":
|
|
|
|
|
+ warehouseLimit.setUserId(Integer.valueOf(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "ValidAmount":
|
|
|
|
|
+ warehouseLimit.setValidAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "FixedAmount":
|
|
|
|
|
+ warehouseLimit.setFixedAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "TempAmount":
|
|
|
|
|
+ warehouseLimit.setForAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "TempAmountForBalance":
|
|
|
|
|
+ warehouseLimit.setYueForAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "CreateDate":
|
|
|
|
|
+ warehouseLimit.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "UpdateDate":
|
|
|
|
|
+ warehouseLimit.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (BeanUtil.isNotEmpty(warehouseLimit, "entityClass") && userId != null) {
|
|
|
|
|
+ KxsWarehouseLimit kxsWarehouseLimit = kxsWarehouseLimitMapper.selectOne(Wrappers.<KxsWarehouseLimit>lambdaQuery()
|
|
|
|
|
+ .eq(KxsWarehouseLimit::getWarehouseType, 0)
|
|
|
|
|
+ .eq(KxsWarehouseLimit::getUserId, userId));
|
|
|
|
|
+ if (kxsWarehouseLimit == null) {
|
|
|
|
|
+ warehouseLimit.setUserId(userId);
|
|
|
|
|
+ kxsWarehouseLimitMapper.insert(warehouseLimit);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ warehouseLimit.setId(kxsWarehouseLimit.getId());
|
|
|
|
|
+ kxsWarehouseLimitMapper.updateById(warehouseLimit);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void changeAccountMinData(DMLData dmlData) {
|
|
|
|
|
+ //修改的字段值
|
|
|
|
|
+ Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
|
|
|
|
|
+ //全部字段值
|
|
|
|
|
+ Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
|
|
|
|
|
+ //修改的字段
|
|
|
|
|
+ List<String> changeFieldList = dmlData.getChangeFieldList();
|
|
|
|
|
+ //操作的主键
|
|
|
|
|
+ int id = Integer.parseInt(dmlData.getId());
|
|
|
|
|
+ Integer userId = null;
|
|
|
|
|
+
|
|
|
|
|
+ KxsWarehouseLimit warehouseLimit = new KxsWarehouseLimit();
|
|
|
|
|
+
|
|
|
|
|
+ if(fieldDataMap.get("UserId").getValue() != null){
|
|
|
|
|
+ userId = Integer.valueOf(fieldDataMap.get("UserId").getValue().toString());
|
|
|
|
|
+ }
|
|
|
|
|
+ for (String field : changeFieldList) {
|
|
|
|
|
+
|
|
|
|
|
+ switch (field) {
|
|
|
|
|
+ case "UserId":
|
|
|
|
|
+ warehouseLimit.setUserId(Integer.valueOf(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "ValidPreAmount":
|
|
|
|
|
+ warehouseLimit.setValidAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "ThisMonthPreAmount":
|
|
|
|
|
+ warehouseLimit.setFixedAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "PreTempAmount":
|
|
|
|
|
+ warehouseLimit.setForAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "PreTempAmountForBalance":
|
|
|
|
|
+ warehouseLimit.setYueForAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "CreateDate":
|
|
|
|
|
+ warehouseLimit.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "UpdateDate":
|
|
|
|
|
+ warehouseLimit.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (BeanUtil.isNotEmpty(warehouseLimit, "entityClass") && userId != null) {
|
|
|
|
|
+ KxsWarehouseLimit kxsWarehouseLimit = kxsWarehouseLimitMapper.selectOne(Wrappers.<KxsWarehouseLimit>lambdaQuery()
|
|
|
|
|
+ .eq(KxsWarehouseLimit::getWarehouseType, 1)
|
|
|
|
|
+ .eq(KxsWarehouseLimit::getUserId, userId));
|
|
|
|
|
+ if (kxsWarehouseLimit == null) {
|
|
|
|
|
+ warehouseLimit.setUserId(userId);
|
|
|
|
|
+ kxsWarehouseLimitMapper.insert(warehouseLimit);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ warehouseLimit.setId(kxsWarehouseLimit.getId());
|
|
|
|
|
+ kxsWarehouseLimitMapper.updateById(warehouseLimit);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|