refactor(asset): 重构资产审批流程,分离审批商品信息
将审批商品信息从审批流程中分离出来,使用单独的模型和表进行存储 更新测试数据以匹配新的商品ID和名称
This commit is contained in:
parent
163dfeb3e8
commit
d451a93a4e
|
@ -22,8 +22,8 @@ public class AssetApiControllerTest {
|
|||
public void testPushExternalGoods() throws UnsupportedEncodingException {
|
||||
// 1.构建测试商品数据
|
||||
PostAssetGoodsCommand.GoodsInfo goodsInfo = new PostAssetGoodsCommand.GoodsInfo();
|
||||
goodsInfo.setExternalGoodsId(1003L);
|
||||
goodsInfo.setGoodsName("测试笔记本电脑3");
|
||||
goodsInfo.setExternalGoodsId(1004L);
|
||||
goodsInfo.setGoodsName("测试笔记本电脑4");
|
||||
goodsInfo.setPrice(new BigDecimal("5999.00"));
|
||||
goodsInfo.setStock(10);
|
||||
goodsInfo.setAutoApproval(0);
|
||||
|
@ -83,6 +83,11 @@ public class AssetApiControllerTest {
|
|||
goodsInfo.setApplyQuantity(2);
|
||||
approvalCommand.getGoodsInfoList().add(goodsInfo);
|
||||
|
||||
goodsInfo = new PostAssetApprovalCommand.ApprovalGoodsInfo();
|
||||
goodsInfo.setExternalGoodsId(1004L);
|
||||
goodsInfo.setApplyQuantity(5);
|
||||
approvalCommand.getGoodsInfoList().add(goodsInfo);
|
||||
|
||||
// 2.构造请求体
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put("timestamp", String.valueOf(System.currentTimeMillis()));
|
||||
|
|
|
@ -13,6 +13,9 @@ import com.agileboot.domain.qywx.user.db.QyUserService;
|
|||
import com.agileboot.domain.shop.approval.command.AddReturnApprovalCommand;
|
||||
import com.agileboot.domain.shop.approval.model.ReturnApprovalModel;
|
||||
import com.agileboot.domain.shop.approval.model.ReturnApprovalModelFactory;
|
||||
import com.agileboot.domain.shop.approvalGoods.command.AddApprovalGoodsCommand;
|
||||
import com.agileboot.domain.shop.approvalGoods.model.ApprovalGoodsModel;
|
||||
import com.agileboot.domain.shop.approvalGoods.model.ApprovalGoodsModelFactory;
|
||||
import com.agileboot.domain.shop.goods.db.ShopGoodsEntity;
|
||||
import com.agileboot.domain.shop.goods.db.ShopGoodsService;
|
||||
import com.agileboot.domain.shop.goods.model.GoodsModel;
|
||||
|
@ -36,6 +39,7 @@ public class AssetApplicationService {
|
|||
private final AuthCorpInfoApplicationService authCorpInfoApplicationService;
|
||||
private final AccessTokenApplicationService accessTokenApplicationService;
|
||||
private final QyUserService qyUserService;
|
||||
private final ApprovalGoodsModelFactory approvalGoodsModelFactory;
|
||||
|
||||
public void pushExternalGoods(PostAssetGoodsCommand postAssetGoodsCommand) {
|
||||
if (postAssetGoodsCommand == null || postAssetGoodsCommand.getGoodsInfoList() == null || postAssetGoodsCommand.getGoodsInfoList().isEmpty()) {
|
||||
|
@ -105,9 +109,19 @@ public class AssetApplicationService {
|
|||
throw new IllegalArgumentException("Corpid cannot be null");
|
||||
}
|
||||
|
||||
|
||||
AddReturnApprovalCommand returnApprovalCommand = new AddReturnApprovalCommand();
|
||||
BeanUtils.copyProperties(postAssetApprovalCommand, returnApprovalCommand);
|
||||
if (returnApprovalCommand.getApprovalType() == null) {
|
||||
returnApprovalCommand.setApprovalType(1);
|
||||
}
|
||||
|
||||
ReturnApprovalModel returnApprovalModel = returnApprovalModelFactory.create();
|
||||
returnApprovalModel.initBaseEntity();
|
||||
returnApprovalModel.loadAddCommand(returnApprovalCommand);
|
||||
|
||||
List<ApprovalGoodsModel> approvalGoodsModels = new ArrayList<>();
|
||||
for (PostAssetApprovalCommand.ApprovalGoodsInfo command : postAssetApprovalCommand.getGoodsInfoList()) {
|
||||
|
||||
|
||||
if (command.getApplyQuantity() == null || command.getApplyQuantity() <= 0) {
|
||||
throw new IllegalArgumentException("ApplyQuantity must be greater than 0");
|
||||
}
|
||||
|
@ -120,21 +134,23 @@ public class AssetApplicationService {
|
|||
throw new IllegalArgumentException("Insufficient stock");
|
||||
}
|
||||
|
||||
AddReturnApprovalCommand returnApprovalCommand = new AddReturnApprovalCommand();
|
||||
BeanUtils.copyProperties(postAssetApprovalCommand, returnApprovalCommand);
|
||||
BeanUtils.copyProperties(command, returnApprovalCommand);
|
||||
returnApprovalCommand.setGoodsId(shopGoodsEntity.getGoodsId());
|
||||
returnApprovalCommand.setGoodsPrice(shopGoodsEntity.getPrice());
|
||||
if (returnApprovalCommand.getApprovalType() == null) {
|
||||
returnApprovalCommand.setApprovalType(1);
|
||||
}
|
||||
|
||||
ReturnApprovalModel returnApprovalModel = returnApprovalModelFactory.create();
|
||||
returnApprovalModel.initBaseEntity();
|
||||
returnApprovalModel.loadAddCommand(returnApprovalCommand);
|
||||
returnApprovalCommand.insert();
|
||||
AddApprovalGoodsCommand approvalGoodsCommand = new AddApprovalGoodsCommand();
|
||||
approvalGoodsCommand.initBaseEntity();
|
||||
BeanUtils.copyProperties(postAssetApprovalCommand, approvalGoodsCommand);
|
||||
BeanUtils.copyProperties(command, approvalGoodsCommand);
|
||||
BeanUtils.copyProperties(shopGoodsEntity, approvalGoodsCommand);
|
||||
|
||||
ApprovalGoodsModel approvalGoodsModel = approvalGoodsModelFactory.create();
|
||||
approvalGoodsModel.loadAddCommand(approvalGoodsCommand);
|
||||
approvalGoodsModels.add(approvalGoodsModel);
|
||||
}
|
||||
|
||||
returnApprovalModel.insert();
|
||||
approvalGoodsModels.stream()
|
||||
.peek(approvalGoodsModel -> approvalGoodsModel.setApprovalId(returnApprovalModel.getApprovalId()))
|
||||
.forEach(ApprovalGoodsModel::insert);
|
||||
|
||||
ShopGoodsEntity firstGoods = shopGoodsService.getGoodsByExternalGoodsId(postAssetApprovalCommand.getCorpid(), postAssetApprovalCommand.getGoodsInfoList().get(0).getExternalGoodsId());
|
||||
// 发送审核消息
|
||||
try {
|
||||
|
|
Loading…
Reference in New Issue