@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";
}
- 浏览: 49427 次
文章分类
最新评论
发表评论
-
java 如何判断操作系统是Linux还是Windows
2014-02-11 09:59 811System.out.println("== ... -
MyEclipse控制台输入中文乱码解决
2013-11-21 22:46 1351修改MyEclipse的配置文件,在myeclipse的安装目 ... -
struts2 <result type="redirect">
2013-11-21 12:12 657今天在用struts2在做项目时候,从一个action我想跳转 ... -
ref bean与ref local区别
2013-11-08 09:32 402<bean id="userDAOPro ... -
win7 系统中host文件的位置
2013-10-31 11:06 659C:\Windows\System32\drivers\etc ... -
MyEclipse设置JSP页面默认编码方式以及设置在Java文件中作者、日期等说明
2013-10-24 17:48 551MyEclipse设置JSP页面默认编码方式: windo ... -
获取当前的准确时间
2013-09-16 12:10 594Calendar c=Calendar.getInstance ... -
myeclipse中svn图标状态(同步标记)不显示问题的解决方法
2013-09-05 10:21 627今天从SVN服务器上down下工程后,发现myeclipse ... -
hibernate Criteria
2013-08-05 10:31 563方法 描述 Expressio ... -
比较大小
2013-08-04 17:13 490int a=5000; int b=5000; a==b ... -
时间类型的转化
2013-05-29 15:09 646SimpleDateFormat df=new SimpleD ... -
java list 判断对象是否存在
2013-11-11 15:20 4201String tags=this.getPublish() ... -
GET方式传中文参数给Struts2 Action时出现乱码
2013-05-10 09:43 1009GET方式传中文参数给Struts2 Action时出现乱码 ... -
proteced 作用范围
2013-04-27 19:27 570struts2 ajax 页面得不到类中的变量的值。可能是因 ... -
自动生成java注册码的java代码
2013-04-02 16:47 0import java.io.BufferedReader ... -
hibernate查询的6种方法
2013-03-23 10:22 427hibernate查询的6种方法。分别是HQL查询,对象化查 ... -
hibernate Criteria DetachedCriteria
2013-03-23 10:11 521Criteria 是在线的,所 以它是由 Hibernat ... -
支付宝源码
2013-03-22 11:16 522支付宝的相关操作 -
java获得图片的像素
2013-03-22 10:21 676ImageIcon img= new Imag ... -
java 发邮件
2013-03-21 14:31 733package com.qhkj.goodChance.c ...
相关推荐
本文主要讲了51单片机软件抗干扰的技术误区。
工程机械中内燃机维修中的技术误区.docx
加油站建设中对储罐埋地处理的技术误区.docx
技术面试十大误区.rar技术面试十大误区.rar技术面试十大误区.rar
随着科学技术的发展,尤其是CAE技术在不同行业的拓展...然而,欣喜的同时,我们却发现,在CAE技术普及推广的过程中,不少企业存在有盲目跟从的现象,其主要原因在于,目前人们对CAE技术的认识至少存在有以下三大误区:
今天,在很多人希望了解内存技术而众多媒体的文章又“力不从心”时,我们觉得有必要再次站出来以正视听,也就是说,我们这次的专题不再以内存使用为中心,更多的是纯技术性介绍,并对目前现存的主要内存技术误区进行...
今天,在很多人希望了解内存技术而众多媒体的文章又“力不从心”时,我们觉得有必要再次站出来以正视听,也就是说,我们这次的专题不再以内存使用为中心,更多的是纯技术性介绍,并对目前现存的主要内存技术误区进行...
计算的发展不仅导致人们脱离了其技术复杂性,而且使他们屈服于了解信息技术数学复杂性的“科学家”的神圣能力。 苏格拉底认为,“错误的人类行为”和“错误的生物学”都源于对不可靠的人和不合理的论点的“信仰”。 ...
管理就是效率,管理创造财富……但不少老总并不重视管理,也没下决心做好管理,这是因为很多老总在管理问题上存在种种的误区,并由此忽略了管理的重要性;本人根据25年的企业管理经验总结了几种常见的管理误区及相关...
教育技术的误区和实际应用.doc
区块链技术高清图谱(包含区块链的常见误区及深入的技术)
初中英语信息技术课程整合误区.ppt
信息技术与课程整合的误区分析-教育评价方法与技术.pptx
在很多人希望了解内存技术而众多媒体的文章又“力不从心”时,我们觉得有必要再次站出来以正视听,也就是说,我们这次的专题不再以内存使用为中心,更多的是纯技术性介绍,并对目前现存的主要内存技术误区进行重点...
走出信息化技术游戏化误区.docx
CAD软件使用中的几个误区.pdf
随着语音、视频和数据网络的...随着这些技术的不断发展,也出现了很多问题和一些常见的误区。在本文中,我们将介绍关于这些误区的实际情况,提供一些可以帮助您明智地决定是否部署融合式网络和IP通信解决方案的信息。
新能源检测技术材料检测文档
走出误区,让多媒体技术与科学真正整合