@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";
}
- 浏览: 51949 次
文章分类
最新评论
发表评论
-
java 如何判断操作系统是Linux还是Windows
2014-02-11 09:59 861System.out.println("== ... -
MyEclipse控制台输入中文乱码解决
2013-11-21 22:46 1399修改MyEclipse的配置文件,在myeclipse的安装目 ... -
struts2 <result type="redirect">
2013-11-21 12:12 688今天在用struts2在做项目时候,从一个action我想跳转 ... -
ref bean与ref local区别
2013-11-08 09:32 432<bean id="userDAOPro ... -
win7 系统中host文件的位置
2013-10-31 11:06 695C:\Windows\System32\drivers\etc ... -
MyEclipse设置JSP页面默认编码方式以及设置在Java文件中作者、日期等说明
2013-10-24 17:48 573MyEclipse设置JSP页面默认编码方式: windo ... -
获取当前的准确时间
2013-09-16 12:10 682Calendar c=Calendar.getInstance ... -
myeclipse中svn图标状态(同步标记)不显示问题的解决方法
2013-09-05 10:21 653今天从SVN服务器上down下工程后,发现myeclipse ... -
hibernate Criteria
2013-08-05 10:31 592方法 描述 Expressio ... -
比较大小
2013-08-04 17:13 532int a=5000; int b=5000; a==b ... -
时间类型的转化
2013-05-29 15:09 691SimpleDateFormat df=new SimpleD ... -
java list 判断对象是否存在
2013-11-11 15:20 4277String tags=this.getPublish() ... -
GET方式传中文参数给Struts2 Action时出现乱码
2013-05-10 09:43 1053GET方式传中文参数给Struts2 Action时出现乱码 ... -
proteced 作用范围
2013-04-27 19:27 602struts2 ajax 页面得不到类中的变量的值。可能是因 ... -
自动生成java注册码的java代码
2013-04-02 16:47 0import java.io.BufferedReader ... -
hibernate查询的6种方法
2013-03-23 10:22 459hibernate查询的6种方法。分别是HQL查询,对象化查 ... -
hibernate Criteria DetachedCriteria
2013-03-23 10:11 548Criteria 是在线的,所 以它是由 Hibernat ... -
支付宝源码
2013-03-22 11:16 564支付宝的相关操作 -
java获得图片的像素
2013-03-22 10:21 710ImageIcon img= new Imag ... -
java 发邮件
2013-03-21 14:31 769package com.qhkj.goodChance.c ...
相关推荐
### 加油站建设中对储罐埋地处理的技术误区 #### 标题解析 标题“加油站建设中对储罐埋地处理的技术误区”指出,在加油站的建设和管理过程中,对于储罐埋地处理方面存在一定的技术和认识上的误区。该标题旨在揭示...
以下是一些常见的技术误区及其详细解释: 1. **机油添加误区**:很多人认为机油越多越好,以防止轴承磨损。然而,机油过多会导致曲轴和连杆转动阻力增大,缸壁上机油过多则会增加积碳,降低功率,增加磨损,甚至...
### 51单片机软件抗干扰的技术误区详解 #### 一、引言 在51单片机的开发过程中,软件抗干扰是一项重要的技术环节。由于51单片机在实际应用中可能会遇到各种外部干扰,导致系统运行不稳定甚至出现故障。因此,合理...
#### 二、常见虚拟化技术误区详解 1. **误区1:虚拟化技术可以实现多台物理服务器资源整合,从而实现单个应用通过虚拟化技术而运行在多台物理硬件上** - **解析**:虚拟化技术的主要目标是提高资源利用率和灵活性...
在准备技术面试时,许多求职者可能会陷入一些常见的误区,这些误区可能导致他们无法充分发挥自己的实力,甚至失去理想的职位。以下是对“技术面试十大误区”的详细分析: 1. **过于依赖理论,忽视实践**:很多面试...
标题和描述中提到的“关注烟气脱硫两大误区”主要涉及的是在处理工业烟气中的二氧化硫污染时,常见的两种技术误区及其环境影响。这两个误区不仅没有彻底解决环境污染问题,反而可能导致新的环境问题。 首先,第一个...
因此,本文档在提供深入技术内容的同时,也着重纠正了那些流传甚广的内存技术误区。 从文档提供的信息来看,文章的主要内容和知识点包括但不限于: - 内存技术的重要性以及在电脑系统中的角色。 - 内存速度与系统...
- **深度技术介绍的必要性**: 本文旨在纠正现有的内存技术误区,为用户提供准确、深入的技术知识。 - **面向对象**: 适合已经具备一定技术基础的读者,能够满足他们对内存技术的深入了解需求。 - **期待与展望**: ...
通过以上知识点的学习,读者不仅能够更深入地了解内存技术,还能够识别并纠正常见的内存技术误区,从而在电脑硬件配置和性能优化方面做出更明智的选择。由于内存技术的复杂性,学习者需要具备一定的技术基础,才能够...
总结来说,文档主要讨论了FTTH实施过程中遇到的一些技术误区,特别是关于现场组装型连接器的一些错误观念。同时,也提到了标准化和质量控制对FTTH实施的影响,以及LabVIEW在相关领域的应用潜力。
本书的重点在于技术的准确性和深度,适合有一定技术基础的读者,它不仅仅关注内存的使用,更深入探讨了内存的工作原理和技术误区。通过讲述“仓库的故事”,作者用生动的方式解释了内存如何管理和处理数据,帮助读者...
SDRAM(Synchronous Dynamic Random-Access Memory)...随着技术的不断发展,内存技术也在不断进步,学习和掌握这些基础知识能够帮助用户更好地理解和利用内存资源,避免陷入技术误区,从而提升计算机系统的整体性能。
这篇指南旨在纠正这些误解,提供纯粹的技术介绍,特别是针对现存的内存技术误区进行澄清。文章指出,虽然篇幅有限,不适合初级读者,但对于有一定技术基础的读者来说,是深化内存知识的好机会。 文章将重新探讨...
### 内存技术指南 #### 重要性及发展历程 内存作为计算机硬件系统中不可或缺的...本文通过回顾内存技术的发展历程、基础概念以及技术误区等方面的内容,旨在为广大用户和DIY爱好者提供一份全面而深入的内存技术指南。
#### 内存技术误区 尽管内存技术得到了广泛关注,但许多文章和技术介绍中存在不少错误甚至是基本常识性的误解。例如: - **内存交错控制**:早期关于VIA芯片组4路交错内存控制的技术解析存在一定的误解。 - **内存...
正因为如此,有必要对现有的内存技术误区进行纠正和澄清。正确的技术认知不仅有助于用户正确使用内存,还能激发他们对内存技术深层次知识的探索欲望。 SDRAM内存模组的基本结构是了解内存技术的基础。SDRAM内存通常...
然而,企业在构建云计算基础架构时,必须避免陷入技术误区,如过分依赖某一种技术,而忽略了与业务系统的紧密结合。Power Systems作为其中的一个重要选项,提供了强大、可靠的计算能力,特别适合部署云计算、处理...
2. 学生可能存在技术误区:学生可能存在技术误区,需要教师的指导和纠正。 六、教学评价: 1. 学生掌握羽毛球基本移动步伐的技术。 2. 学生在羽毛球比赛和训练中的应用。 3. 学生的技术和能力的提高。 七、结语:...
然而,在CAE技术的普及过程中,存在一些常见的认识误区,这些误区可能导致企业投资不当,资源浪费,甚至影响技术创新的效果。 首先,误区之一是认为应用CAE技术必须购买昂贵的CAE软件。虽然CAE软件确实是实施CAE...