@Transactional
public String dealBusiness(BuyCart buyCart,User user) {
String res="fail";
int compareResult=0;
try {
buyCart.getBuyCartDeal().setUser(user);
buyCart.getBuyCartDeal().setTotalMoney(Double.valueOf(buyCart.getTotalPrice().toString()));
Set<String> keySet = buyCart.getShopCartMap().keySet();
for(String key : keySet){
buyCart.getBuyCartDeal().getBuyCommoditiesSet().add(buyCart.getShopCartMap().get(key)) ;
}
Account account=this.getAccountService().select(user.getId(),"");
SiteConfig siteConfig=this.getSiteConfigService().getCurrentSiteConfig();
BigDecimal bigDecimal=new BigDecimal(buyCart.getBuyCartDeal().getTotalMoney());//购物车中所有商品的总价格
compareResult=account.getRemainingMoney().compareTo(bigDecimal);
if (compareResult!=-1) {
//持久化对象
buyCart.getBuyCartDeal().setDeliveryTime(getcurrent());
buyCart.getBuyCartDeal().setStatus(3);
String result=this.getBuyCartDealDao().insert(buyCart.getBuyCartDeal());
//从买家账户扣钱
BuyAccountOperation buyAccountOpertation=new BuyAccountOperation();
buyAccountOpertation.setBuyCartDeal(buyCart.getBuyCartDeal());
buyAccountOpertation.setOperationType(4);
buyAccountOpertation.setOperationTime(getcurrent());
buyAccountOpertation.setMoneyUnit("元");
buyAccountOpertation.setAccount(account);
buyAccountOpertation.setMoney(bigDecimal);
buyAccountOpertation.setSiteConfig(siteConfig);
this.getBuyAccountOperationService().insert(buyAccountOpertation);
account.setRemainingMoney(account.getRemainingMoney().subtract(bigDecimal));
this.getAccountService().update(account);
account.setTotalMoney(account.getRemainingMoney());
this.getAccountService().update(account);
//给管理员以及发布图片的用户分钱
BigDecimal bigDecimal2=new BigDecimal(0);
for (BuyCommodities buyCommodities:buyCart.getBuyCartDeal().getBuyCommoditiesSet()) {
buyCommodities.setBuyCartDeal(buyCart.getBuyCartDeal());
Publish publish=buyCommodities.getPublish();
this.getBuyCommoditiesService().insert(buyCommodities);
Account account2=this.getAccountService().select(3,"");
User user2=buyCommodities.getPublish().getUser();
Account account3=this.getAccountService().select(user2.getId(),"");
BigDecimal tax=new BigDecimal(siteConfig.getTax());
BigDecimal third=new BigDecimal(siteConfig.getThirdPayRate());
BigDecimal other=new BigDecimal(0.15);
BigDecimal remain=new BigDecimal(0);
BigDecimal adminTotal=new BigDecimal(0);
if (buyCommodities.getCopyrightOrUsage()==0) {
bigDecimal2=new BigDecimal(buyCommodities.getPublish().getUsagePrice());
adminTotal=bigDecimal2.multiply(tax).add(bigDecimal2.multiply(third)).add(bigDecimal2.multiply(other));
account2.setRemainingMoney(account2.getRemainingMoney().add(adminTotal));
}else if (buyCommodities.getCopyrightOrUsage()==1) {
bigDecimal2=new BigDecimal(buyCommodities.getPublish().getCopyrightPrice());
adminTotal=bigDecimal2.multiply(tax).add(bigDecimal2.multiply(third)).add(bigDecimal2.multiply(other));
account2.setRemainingMoney(account2.getRemainingMoney().add(adminTotal));
}else if (buyCommodities.getCopyrightOrUsage()==2) {
BigDecimal bigDecimal3=new BigDecimal(buyCommodities.getPublish().getCopyrightPrice());
BigDecimal bigDecimal4=new BigDecimal(buyCommodities.getPublish().getUsagePrice());
bigDecimal2=bigDecimal3.add(bigDecimal4);
adminTotal=bigDecimal2.multiply(tax).add(bigDecimal2.multiply(third)).add(bigDecimal2.multiply(other));
account2.setRemainingMoney(account2.getRemainingMoney().add(adminTotal));
}
remain=bigDecimal.subtract(account2.getRemainingMoney());
account3.setRemainingMoney(account3.getRemainingMoney().add(remain));
BuyAccountOperation buyAccountOperation=new BuyAccountOperation();
buyAccountOperation.setBuyCartDeal(buyCart.getBuyCartDeal());
buyAccountOperation.setOperationTime(getcurrent());
buyAccountOperation.setOperationType(3);
buyAccountOperation.setMoney(adminTotal);
buyAccountOperation.setAccount(account2);
buyAccountOperation.setMoneyUnit("元");
buyAccountOperation.setSiteConfig(siteConfig);
this.getBuyAccountOperationService().insert(buyAccountOperation);
this.getAccountService().update(account2);
account2.setTotalMoney(account2.getRemainingMoney());
this.getAccountService().update(account2);
BuyAccountOperation buyAccountOperation2=new BuyAccountOperation();
buyAccountOperation2.setBuyCartDeal(buyCart.getBuyCartDeal());
buyAccountOperation2.setOperationTime(getcurrent());
buyAccountOperation2.setOperationType(3);
buyAccountOperation2.setMoney(remain);
buyAccountOperation2.setAccount(account3);
buyAccountOperation2.setMoneyUnit("元");
buyAccountOperation2.setSiteConfig(siteConfig);
this.getBuyAccountOperationService().insert(buyAccountOperation2);
this.getAccountService().update(account3);
account3.setTotalMoney(account3.getRemainingMoney());
this.getAccountService().update(account3);
}
buyCart.getBuyCartDeal().setStatus(5);
buyCart.getBuyCartDeal().setDeliveryTime(getcurrent());
this.getBuyCartDealDao().update(buyCart.getBuyCartDeal());
res="suc";
}
} catch (Exception e) {
// TODO: handle exception
res="fail";
buyCart.getBuyCartDeal().setStatus(4);
buyCart.getBuyCartDeal().setDeliveryTime(getcurrent());
boolean b=this.getBuyCartDealDao().update(buyCart.getBuyCartDeal());
if (b) {
res="not";
}else {
b=false;
}
}
return res;
}
临时的
最新推荐文章于 2023-11-30 09:08:24 发布