@JSON(serialize=false)
public String updateStatu() throws Exception {
BigDecimal percent=new BigDecimal(0);
String loginName = super.getLoginUsername();
if(loginName == null || loginName.length()==0)
{
return "login";
}else {
User user=this.getUserService().select(loginName);
BuyCart buyCart=(BuyCart)ActionContext.getContext().getSession().get("cart");
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();
if (buyCart.getTotalPrice()>Integer.valueOf(account.getRemainingMoney().toString())) {
this.trademsg="fail";
buyCart.getBuyCartDeal().setStatus(4);
buyCart.getBuyCartDeal().setDeliveryTime(getcurrent());
String res=buyCartDealService.insert(buyCart.getBuyCartDeal());
if (res==null) {
this.trademsg="not";
}
}else {
buyCart.getBuyCartDeal().setDeliveryTime(getcurrent());
String res=buyCartDealService.insert(buyCart.getBuyCartDeal());
//如果可以操作,将购买图片的用户的余额扣除
Account account22=this.getAccountService().select(user.getId(),"");
BigDecimal bigdecimal=new BigDecimal(buyCart.getBuyCartDeal().getTotalMoney());
account22.setRemainingMoney(account22.getRemainingMoney().subtract(bigdecimal));
this.getAccountService().update(account22);
account22.setTotalMoney(account22.getRemainingMoney());
this.getAccountService().update(account22);
BigDecimal bigDecimalTax=new BigDecimal(buyCart.getBuyCartDeal().getTotalMoney()*siteConfig.getTax());
BigDecimal bigDecimalBroker=new BigDecimal(buyCart.getBuyCartDeal().getTotalMoney()*0.1);
BigDecimal bigDecimalThird=new BigDecimal(buyCart.getBuyCartDeal().getTotalMoney()*siteConfig.getThirdPayRate());
BigDecimal adminMoney=bigDecimalTax.add(bigDecimalBroker.add(bigDecimalThird));//需要给网站管理员的扣费
//
// BigDecimal bigDecimaltotal=new BigDecimal(buyCart.getBuyCartDeal().getTotalMoney());
// BigDecimal totalRemain=bigDecimaltotal.subtract(adminMoney);//商品的总价格扣除管理员扣费后的价格
Account account3=this.accountService.select(3,"");
account3.setRemainingMoney(account3.getRemainingMoney().add(adminMoney));
accountService.update(account3);
account3.setTotalMoney(account3.getRemainingMoney());
accountService.update(account3);//管理员应得
Map<String, BigDecimal> percent1=new HashMap<String, BigDecimal>();
BigDecimal sum=new BigDecimal(buyCart.getBuyCartDeal().getTotalMoney());
//给发布图片的用户分钱
for (BuyCommodities buyCommodities:buyCart.getBuyCartDeal().getBuyCommoditiesSet()) {
buyCommodities.setBuyCartDeal(buyCart.getBuyCartDeal());
Publish publish=buyCommodities.getPublish();
if (buyCommodities.getCopyrightOrUsage()==0) {
BigDecimal usgeBigDecimal=new BigDecimal(buyCommodities.getUsgeTotalPrice());
BigDecimal usgePersent=usgeBigDecimal.divide(sum);
percent1.put(publish.getUser().getId()+"",usgePersent);
}else if (buyCommodities.getCopyrightOrUsage()==1) {
BigDecimal copy=new BigDecimal(buyCommodities.getCopyrighTotalPrice());
percent1.put(publish.getUser().getId()+"",copy.divide(sum));
}else if (buyCommodities.getCopyrightOrUsage()==2) {
BigDecimal total=new BigDecimal(buyCommodities.getCopyAndUsePrice());
percent1.put(publish.getUser().getId()+"",total.divide(sum));
}
buyCommoditiesService.insert(buyCommodities);
// User user2=buyCommodities.getPublish().getUser();
// Account account2=this.getAccountService().select(user2.getId(),"");
// if (buyCommodities.getCopyrightOrUsage()==0) {
// BigDecimal bigDecimal0=new BigDecimal(buyCommodities.getPublish().getUsagePrice());
// account2.setRemainingMoney(account2.getRemainingMoney().add(bigDecimal0));
// }
// if (buyCommodities.getCopyrightOrUsage()==1) {
// //BigDecimal bigDecimal1=new BigDecimal(buyCommodities.getPublish().getUsagePrice());
// BigDecimal bigDecimal4=new BigDecimal(buyCommodities.getPublish().getCopyrightPrice());
// account2.setRemainingMoney(account2.getRemainingMoney().add(bigDecimal4));
// }
// if (buyCommodities.getCopyrightOrUsage()==2) {
// BigDecimal bigDecimal12=new BigDecimal(buyCommodities.getPublish().getCopyrightPrice()+buyCommodities.getPublish().getUsagePrice());
// account2.setRemainingMoney(account2.getRemainingMoney().add(bigDecimal12));
// }
// accountService.update(account2);
// account2.setTotalMoney(account2.getRemainingMoney());
// accountService.update(account2);
}
List<Account> list=new ArrayList<Account>();
list.add(account22);
list.add(account3);
Set<String> Uid=percent1.keySet();
Iterator iterator=Uid.iterator();
BigDecimal tx=new BigDecimal(siteConfig.getTax());
BigDecimal third=new BigDecimal(siteConfig.getThirdPayRate());
BigDecimal tax=sum.multiply(tx);
BigDecimal td=sum.multiply(third);
BigDecimal broker=sum.multiply(new BigDecimal(0.15));
sum=sum.subtract((tax.add(td.add(broker))));
while (iterator.hasNext()) {
String key=(String)iterator.next();
BigDecimal per=percent1.get(key);
sum=sum.multiply(per);
Account account2=this.getAccountService().select(Integer.valueOf(key),"");
account2.setRemainingMoney(sum.add(account2.getRemainingMoney()));
accountService.update(account2);
account2.setTotalMoney(account2.getTotalMoney().add(account2.getRemainingMoney()));
accountService.update(account2);
list.add(account2);
}
buyCart.getBuyCartDeal().setStatus(5);
buyCart.getBuyCartDeal().setDeliveryTime(getcurrent());
buyCartDealService.update(buyCart.getBuyCartDeal());
buyCartDealService.dealCart(list);
this.trademsg="suc";
}
}
return "updateStatu";
}
技术误区啊。。。。。。。。。。
猜你喜欢
转载自hehaixia.iteye.com/blog/1832664
今日推荐
周排行