@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;
}
- 浏览: 49415 次
文章分类
最新评论
发表评论
-
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 732package com.qhkj.goodChance.c ...
相关推荐
临时表本质上是一种cache的表现形式,Oracle的临时表都是事先建好的,一旦用了临时表,存放的是和本会话相关的数据,没有人会傻乎乎地用临时表来保存本应该共享的数据。 with子查询实际上也是用了临时表,...
建筑工程临时建筑、用电、用水设施验收记录表.pdf 本文件是关于建筑工程临时建筑、用电、用水设施验收记录表的规范性文件。该文件涵盖了临时建筑设施、临时用电设施和临时用水设施的验收记录内容。 一、临时建筑...
清除系统临时文件夹中和IE临时文件夹一切可删除信息包括COOKIE的清除
11.如何创建一个临时文件?(Visual C++编程 源代码)11.如何创建一个临时文件?(Visual C++编程 源代码)11.如何创建一个临时文件?(Visual C++编程 源代码)11.如何创建一个临时文件?(Visual C++编程 源代码)...
在使用Windows XP的过程中,不同的应用程序都会或多或少地产生一些临时文件,Windows XP把这些临时文件存放在一个专门的文件夹中,时间一长,这个文件夹中的临时文件便会占用大量的硬盘空间。如果有一天你觉得硬盘...
很好的,经典.创建Oracle 临时表,可以有两种类型的临时表:会话级的临时表,事务级的临时表 。
1、局部临时表(#开头)只对当前连接有效,当前连接断开时自动删除。 2、全局临时表(##开头)对其它连接也有效,在当前连接和其他访问过它的连接都断开时自动删除。 3、不管局部临时表还是全局临时表,只要连接有...
C# 取ipv4 ,ipv6地址(有临时地址时取临时Ipv6地址)
oracle11gR2创建临时表空间组. 使用临时表空间组而非普通的临时表空间,有如下好处: 由于SQL查询可以并发使用几个临时表空间进行排序操作,因此SQL查询很少会出现排序空间超出,避免当临时表空间不足时所引起的磁盘...
"Oracle 临时表(事务级、会话级)" Oracle 临时表是 Oracle 数据库中的一种特殊类型的表,它可以保存一个会话或事务中的数据。当会话或事务结束时,临时表中的数据自动清空,但是临时表的结构和元数据还存储在...
javascript获取浏览器临时目录javascript获取浏览器临时目录javascript获取浏览器临时目录javascript获取浏览器临时目录
临时房屋是相对于永久性固定房屋的临时房屋。 由于临时住房的临时性和低效率因素,人们对此的关注较少。 临时住房存在单一空间模式,功能混乱,舒适度低,生态效率差等问题。 这项研究面临着人类社会的发展,自然...
在Oracle数据库中 进行排序、分组汇总、索引等到作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后...
Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会...
不加好友强制性临时会话 适合于网上宣传广告 宣传产品等宣传是一种网上营销手段
Oracle存储过程中使用临时表 会话级临时表 事务级临时表
2023最新临时文件上传存储分享系统 临时文件网盘源码 带简易后台 后台登录地址http://你的域名/admin 后台key秘钥为123456
软件名称:批量清除Delphi临时文件 软件功能: 1.可选择某个目录,默认为本文件所在目录 2.[所有文件] 默认遍历该目录下所有文件 (含子目录) 3.[自定义] 支持自定义文件类型查找文件 (含子目录) 如:*.txt 多种类型...
SQL Server中关于临时表概念及创建和插入数据等问题 本地临时表 全局临时表 在程序中向临时表插入数据时报错……
Oracle 临时表功能介绍: Oracle中的临时表是全局的,需要在数据库设计时创建完成,而不是程序使用时。每个登陆用户都使用这一个相同的临时表,但互相之间看不到彼此的数据,也就是说临时表是会话独立的。