|
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.github.wxpay.sdk.WXPay;
|
|
import com.github.wxpay.sdk.WXPay;
|
|
|
import com.github.wxpay.sdk.WXPayConstants;
|
|
import com.github.wxpay.sdk.WXPayConstants;
|
|
|
import com.github.wxpay.sdk.WXPayUtil;
|
|
import com.github.wxpay.sdk.WXPayUtil;
|
|
|
|
|
+import com.sqx.common.utils.DistanceUtil;
|
|
|
import com.sqx.common.utils.Result;
|
|
import com.sqx.common.utils.Result;
|
|
|
import com.sqx.modules.address.dao.AddressDao;
|
|
import com.sqx.modules.address.dao.AddressDao;
|
|
|
import com.sqx.modules.address.entity.Address;
|
|
import com.sqx.modules.address.entity.Address;
|
|
@@ -143,264 +144,45 @@ public class WxServiceImpl implements WxService {
|
|
|
return Result.error("系统繁忙,请稍后再试!");
|
|
return Result.error("系统繁忙,请稍后再试!");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 钱包支付订单
|
|
|
|
|
+ * @param userId
|
|
|
|
|
+ * @param parentId
|
|
|
|
|
+ * @param orderType
|
|
|
|
|
+ * @param addressId
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
@Transactional
|
|
@Transactional
|
|
|
public Result balanceOrders(Long userId, Long parentId, Integer orderType, Long addressId){
|
|
public Result balanceOrders(Long userId, Long parentId, Integer orderType, Long addressId){
|
|
|
- String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
|
|
|
|
- TbOrder tbOrder2 = appOrderDao.selectById(parentId);
|
|
|
|
|
- Address address = addressDao.selectById(addressId);
|
|
|
|
|
- tbOrder2.setOrderType(orderType);
|
|
|
|
|
- //判断商品数量不能超过库存
|
|
|
|
|
- Long orderId1 = tbOrder2.getOrderId();
|
|
|
|
|
- List<OrderGoods> orderGoodsList1 = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>().eq("order_id", orderId1));
|
|
|
|
|
- for(int b = 0;b<orderGoodsList1.size();b++){
|
|
|
|
|
- Long goodsId = orderGoodsList1.get(b).getGoodsId();
|
|
|
|
|
- OrderGoods orderGoods = orderGoodsList1.get(b);
|
|
|
|
|
- Goods goods = goodsService.getById(orderGoods.getGoodsId());
|
|
|
|
|
- if(goods==null || goods.getStatus().equals(1)){
|
|
|
|
|
- orderGoodsDao.deleteById(orderGoods.getId());
|
|
|
|
|
- return Result.error("商品:"+orderGoods.getGoodsName()+",不存在,请刷新后重试!");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(new QueryWrapper<GoodsShopRelevancy>()
|
|
|
|
|
- .eq("goods_id", goodsId).eq("shop_id", tbOrder2.getShopId()));
|
|
|
|
|
- int i = goodsShopRelevancyDao.selectGoodsCount(orderId1, goodsId);
|
|
|
|
|
- if(goodsShopRelevancy.getInventory()<i){
|
|
|
|
|
- return Result.error("库存不足");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- List<TbOrder> tbOrderList = appOrderService.selectOrderByParentId(parentId);
|
|
|
|
|
- BigDecimal goodsPack = BigDecimal.valueOf(0);
|
|
|
|
|
- BigDecimal payMoney = BigDecimal.valueOf(0);
|
|
|
|
|
- for(int i = 0;i<tbOrderList.size();i++){
|
|
|
|
|
- List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>().eq("order_id", tbOrderList.get(i).getOrderId()));
|
|
|
|
|
- for (int a = 0; a < orderGoodsList.size(); a++) {
|
|
|
|
|
- BigDecimal goodsNum = new BigDecimal(orderGoodsList.get(a).getGoodsNum());
|
|
|
|
|
- BigDecimal goodsPrice = orderGoodsList.get(a).getGoodsPrice();
|
|
|
|
|
- BigDecimal goodsPacks = orderGoodsList.get(a).getGoodsPack();
|
|
|
|
|
- BigDecimal sumGoodsPack = goodsNum.multiply(goodsPacks);
|
|
|
|
|
- BigDecimal multiply1 = goodsNum.multiply(goodsPrice);
|
|
|
|
|
- goodsPack = goodsPack.add(sumGoodsPack);
|
|
|
|
|
- payMoney = payMoney.add(multiply1);
|
|
|
|
|
- BigDecimal multiply2 = goodsNum.multiply(orderGoodsList.get(a).getGoodsPack());
|
|
|
|
|
- payMoney = payMoney.add(multiply2);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- //查该商户的配送费 和 减免配送费最小订单金额
|
|
|
|
|
- GoodsShop goodsShop2 = goodsShopDao.selectById(tbOrder2.getShopId());
|
|
|
|
|
- BigDecimal errandMoney=BigDecimal.ZERO;
|
|
|
|
|
- if(orderType==2) {
|
|
|
|
|
- //计算用户位置到商户位置的距离,并判断是否在配送范围内
|
|
|
|
|
- double distance = distance(goodsShop2.getShopLat(), goodsShop2.getShopLng(), address.getLat(), address.getLng());
|
|
|
|
|
- if(distance>goodsShop2.getDistributionDistance()){
|
|
|
|
|
- return Result.error("超出商家配送范围,无法点餐!");
|
|
|
|
|
- }
|
|
|
|
|
- if(goodsShop2.getExemptMinMoney()!=null && payMoney.doubleValue()<goodsShop2.getExemptMinMoney().doubleValue() && goodsShop2.getErrandMoney()!=null && goodsShop2.getErrandMoney().doubleValue()>0){
|
|
|
|
|
- //加跑腿费
|
|
|
|
|
- payMoney = payMoney.add(goodsShop2.getErrandMoney());
|
|
|
|
|
- errandMoney=goodsShop2.getErrandMoney();
|
|
|
|
|
- tbOrder2.setErrandMoneyIsShop("本单未达到商家满减金额,跑腿费由用户承担");
|
|
|
|
|
- }else{
|
|
|
|
|
- tbOrder2.setErrandMoneyIsShop("本单已达到商家满减金额,跑腿费由商家承担");
|
|
|
|
|
- if(goodsShop2.getAutoSendOrder()!=null && goodsShop2.getAutoSendOrder()==0){
|
|
|
|
|
- errandMoney=goodsShop2.getErrandMoney() == null ? BigDecimal.ZERO : goodsShop2.getErrandMoney();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 获取订单信息
|
|
|
|
|
+ TbOrder tbOrder = appOrderService.prepareOrder(userId, parentId, orderType, addressId);
|
|
|
|
|
|
|
|
- tbOrder2.setErrandMoney(goodsShop2.getErrandMoney()==null?BigDecimal.ZERO:goodsShop2.getErrandMoney());
|
|
|
|
|
- //判断订单金额是否大于最低起送金额
|
|
|
|
|
- if(goodsShop2.getMinimumDelivery()==null){
|
|
|
|
|
- goodsShop2.setMinimumDelivery(BigDecimal.valueOf(0));
|
|
|
|
|
- }
|
|
|
|
|
- if(goodsShop2.getMinimumDelivery()!=null && payMoney.doubleValue()<goodsShop2.getMinimumDelivery().doubleValue()){
|
|
|
|
|
- return Result.error("订单金额未满足最低起送金额!");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if(tbOrder2.getCouponId()!=null){
|
|
|
|
|
- TbCouponUser tbCouponUser = tbCouponUserDao.selectById(tbOrder2.getCouponId());
|
|
|
|
|
- //计算总支付金额
|
|
|
|
|
- if(!tbCouponUser.getUserId().equals(userId)){
|
|
|
|
|
- return Result.error("优惠券与登录用户不匹配");
|
|
|
|
|
- }
|
|
|
|
|
- if(tbCouponUser.getStatus()!=0){
|
|
|
|
|
- return Result.error("该优惠券已失效");
|
|
|
|
|
- }
|
|
|
|
|
- if(tbCouponUser.getMinMoney().doubleValue()>payMoney.doubleValue()){
|
|
|
|
|
- return Result.error("订单金额不足,无法使用该优惠券");
|
|
|
|
|
- }
|
|
|
|
|
- if(!tbCouponUser.getShopId().equals(tbOrder2.getShopId()) && tbCouponUser.getShopId()!=0){
|
|
|
|
|
- return Result.error("优惠券使用错误,请刷新后重试");
|
|
|
|
|
- }
|
|
|
|
|
- payMoney = payMoney.subtract(tbCouponUser.getMoney());
|
|
|
|
|
- //如果使用红包后,订单价格小于0,则改为0.01元
|
|
|
|
|
- if(payMoney.doubleValue()<=0){
|
|
|
|
|
- payMoney = new BigDecimal("0.01");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if(tbOrderList.size()==0){
|
|
|
|
|
- return Result.error("订单不存在,请刷新后重试!");
|
|
|
|
|
- }
|
|
|
|
|
- if(orderType==2&&addressId==null){
|
|
|
|
|
- return Result.error("请填写地址地址!");
|
|
|
|
|
- }
|
|
|
|
|
- /*if(!tbOrderList.get(0).getOrderId().equals(tbOrderList.get(0).getParentId())){
|
|
|
|
|
- return Result.error("您不是订单发起人,无法支付该订单!");
|
|
|
|
|
- }*/
|
|
|
|
|
|
|
+ // 扣除用户余额
|
|
|
|
|
+ BigDecimal payMoney = tbOrder.getPayMoney();
|
|
|
UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userId);
|
|
UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userId);
|
|
|
- if(payMoney.doubleValue()>userMoney.getMoney().doubleValue()){
|
|
|
|
|
|
|
+ if(payMoney.doubleValue() > userMoney.getMoney().doubleValue()){
|
|
|
return Result.error("您的余额不足,请充值后再支付!");
|
|
return Result.error("您的余额不足,请充值后再支付!");
|
|
|
}
|
|
}
|
|
|
- tbOrder2.setPayMoney(payMoney);
|
|
|
|
|
- userMoneyService.updateMoney(2, userId, tbOrder2.getPayMoney().doubleValue());
|
|
|
|
|
- //支付成功,增加该商品和商铺的销量,减少该商品库存
|
|
|
|
|
- Long shopId1 = tbOrder2.getShopId();
|
|
|
|
|
- Long orderId = tbOrder2.getOrderId();
|
|
|
|
|
- List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>().eq("order_id", orderId));
|
|
|
|
|
- for(int a = 0;a<orderGoodsList.size();a++){
|
|
|
|
|
- Integer goodsNum = orderGoodsList.get(a).getGoodsNum();
|
|
|
|
|
- Long goodsId = orderGoodsList.get(a).getGoodsId();
|
|
|
|
|
- GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(new QueryWrapper<GoodsShopRelevancy>()
|
|
|
|
|
- .eq("shop_id", shopId1).eq("goods_id", goodsId));
|
|
|
|
|
- GoodsShopRelevancy goodsShopRelevancy1 = new GoodsShopRelevancy();
|
|
|
|
|
- goodsShopRelevancy1.setId(goodsShopRelevancy.getId());
|
|
|
|
|
- goodsShopRelevancy1.setSales(goodsShopRelevancy.getSales()+goodsNum);//加销量
|
|
|
|
|
- goodsShopRelevancy1.setInventory(goodsShopRelevancy.getInventory()-goodsNum);//减库存
|
|
|
|
|
- goodsShopRelevancyDao.updateById(goodsShopRelevancy1);
|
|
|
|
|
- goodsShopDao.updateShopSales(1,goodsNum, goodsShopRelevancy.getShopId());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //支付成功,修改订单状态
|
|
|
|
|
|
|
+ userMoneyService.updateMoney(2, userId, payMoney.doubleValue());
|
|
|
|
|
|
|
|
- TbOrder tbOrder = orderGoodsDao.selectByPayTime(format);
|
|
|
|
|
- String orderCode = null;
|
|
|
|
|
- if(tbOrder==null){
|
|
|
|
|
- String a = new SimpleDateFormat("yyyyMMdd").format(new Date());
|
|
|
|
|
- orderCode = a+"001";
|
|
|
|
|
- }else {
|
|
|
|
|
- Long a = Long.parseLong(tbOrder.getOrderCode())+ 1;
|
|
|
|
|
- orderCode = a.toString();
|
|
|
|
|
- }
|
|
|
|
|
- tbOrder2.setOrderCode(orderCode);
|
|
|
|
|
- //tbOrder1.setOrderCode(orderCode);
|
|
|
|
|
- tbOrder2.setIsPay(1);
|
|
|
|
|
- tbOrder2.setErrandMoney(errandMoney);
|
|
|
|
|
- tbOrder2.setPackMoney(goodsPack);
|
|
|
|
|
- tbOrder2.setOrderType(orderType);
|
|
|
|
|
- tbOrder2.setStatus(7);
|
|
|
|
|
- tbOrder2.setPayMoney(payMoney);
|
|
|
|
|
- tbOrder2.setPayType(2);
|
|
|
|
|
- tbOrder2.setPayTime(format);
|
|
|
|
|
- if(orderType==2){
|
|
|
|
|
- //添加地址
|
|
|
|
|
- String addressJson = JSONObject.toJSONString(address);
|
|
|
|
|
- tbOrder2.setAddress(addressJson);
|
|
|
|
|
- tbOrder2.setAddressId(addressId);
|
|
|
|
|
- }
|
|
|
|
|
- Integer autoSendOrder = 1;
|
|
|
|
|
- //如果是外卖订单,则生成一个跑腿的订单
|
|
|
|
|
- if(orderType==2){
|
|
|
|
|
- tbOrder2.setAddressId(addressId);
|
|
|
|
|
- GoodsShop goodsShop = goodsShopDao.selectById(tbOrder2.getShopId());
|
|
|
|
|
- //商户开启自动推单再生成订单
|
|
|
|
|
- if(goodsShop.getAutoSendOrder()==0){
|
|
|
|
|
- autoSendOrder = 0;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- indentService.insertIndent(tbOrder2);
|
|
|
|
|
- tbOrder2.setAutoSendOrder(autoSendOrder);
|
|
|
|
|
- appOrderDao.updateById(tbOrder2);
|
|
|
|
|
- //将优惠券改为已使用状态
|
|
|
|
|
- if(tbOrder2.getCouponId()!=null){
|
|
|
|
|
- TbCouponUser tbCouponUser = new TbCouponUser();
|
|
|
|
|
- tbCouponUser.setId(tbOrder2.getCouponId());
|
|
|
|
|
- tbCouponUser.setStatus(1);
|
|
|
|
|
- tbCouponUserService.updateById(tbCouponUser);
|
|
|
|
|
- }
|
|
|
|
|
- //添加钱包消费记录
|
|
|
|
|
|
|
+ // 添加钱包消费记录
|
|
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
|
|
userMoneyDetails.setUserId(userId);
|
|
userMoneyDetails.setUserId(userId);
|
|
|
userMoneyDetails.setTitle("余额支付");
|
|
userMoneyDetails.setTitle("余额支付");
|
|
|
userMoneyDetails.setType(2);
|
|
userMoneyDetails.setType(2);
|
|
|
userMoneyDetails.setClassify(3);
|
|
userMoneyDetails.setClassify(3);
|
|
|
userMoneyDetails.setState(2);
|
|
userMoneyDetails.setState(2);
|
|
|
- userMoneyDetails.setMoney(tbOrder2.getPayMoney());
|
|
|
|
|
- String money = String.format("%.2f", tbOrder2.getPayMoney());
|
|
|
|
|
- userMoneyDetails.setContent("使用余额支付:"+money+"元");
|
|
|
|
|
|
|
+ userMoneyDetails.setMoney(payMoney);
|
|
|
|
|
+ userMoneyDetails.setContent("使用余额支付:"+ String.format("%.2f", payMoney) +"元");
|
|
|
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
|
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
|
|
userMoneyDetailsDao.insert(userMoneyDetails);
|
|
userMoneyDetailsDao.insert(userMoneyDetails);
|
|
|
- //添加消息记录
|
|
|
|
|
- MessageInfo messageInfo = new MessageInfo();
|
|
|
|
|
- UserEntity userEntity = userDao.selectById(userId);
|
|
|
|
|
- messageInfo.setTitle("下单");
|
|
|
|
|
- messageInfo.setContent("恭喜您,下单成功!");
|
|
|
|
|
- messageInfo.setCreateAt(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
|
|
|
|
- messageInfo.setUserId(tbOrder2.getUserId().toString());
|
|
|
|
|
- messageInfo.setUserName(userEntity.getUserName());
|
|
|
|
|
- messageInfoDao.insert(messageInfo);
|
|
|
|
|
- //店铺端添加消息记录
|
|
|
|
|
- MessageInfo messageInfo1 = new MessageInfo();
|
|
|
|
|
- messageInfo1.setTitle("有新订单");
|
|
|
|
|
- messageInfo1.setCreateAt(format);
|
|
|
|
|
- messageInfo1.setContent("有新订单,请及时处理!");
|
|
|
|
|
- messageInfo1.setShopId(tbOrder2.getShopId());
|
|
|
|
|
- messageInfo1.setReadFlag(2);
|
|
|
|
|
- messageInfo1.setIsSee("2");
|
|
|
|
|
- messageInfoDao.insert(messageInfo1);
|
|
|
|
|
- //设置小程序消息推送
|
|
|
|
|
- CommonInfo one2 = commonInfoService.findOne(269);
|
|
|
|
|
- List<String> msgList=new ArrayList<>();
|
|
|
|
|
- Long shopId = tbOrder2.getShopId();
|
|
|
|
|
- GoodsShop goodsShop = shopMessageService.selectShopId(shopId);
|
|
|
|
|
- String shopName = goodsShop.getShopName();
|
|
|
|
|
-// String goodsMoney = tbOrder2.getPayMoney().toString();
|
|
|
|
|
- String orderNum1 = tbOrder2.getOrderNumber();
|
|
|
|
|
-// String payTime = tbOrder2.getPayTime();
|
|
|
|
|
- msgList.add("下单成功");
|
|
|
|
|
- msgList.add(orderNum1);
|
|
|
|
|
- msgList.add(shopName);
|
|
|
|
|
- msgList.add(format);
|
|
|
|
|
- SenInfoCheckUtil.sendMsg(userEntity.getOpenId(),one2.getValue(),msgList,1);
|
|
|
|
|
- userService.pushToSingle("下单成功", "亲爱的用户您好,您已下单成功,请等待商家接单!", userEntity.getClientid());
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
- CommonInfo shopTemplate = commonInfoService.findOne(352);
|
|
|
|
|
- //商家通知
|
|
|
|
|
- List<String> msgShopList=new ArrayList<>();
|
|
|
|
|
- msgShopList.add(tbOrder2.getOrderNumber());
|
|
|
|
|
- msgShopList.add(tbOrder2.getPayMoney().toString());
|
|
|
|
|
- msgShopList.add(tbOrder2.getPayTime());
|
|
|
|
|
- msgShopList.add("生意来了,立即去接单>");
|
|
|
|
|
- UserEntity shopUser = userService.selectUserById(goodsShop.getUserId());
|
|
|
|
|
- if(StringUtils.isNotEmpty(shopUser.getShopOpenId())){
|
|
|
|
|
- SenInfoCheckUtil.sendShopMsg(shopUser.getShopOpenId(),shopTemplate.getValue(),msgShopList,7);
|
|
|
|
|
- }
|
|
|
|
|
- if(StringUtils.isNotEmpty(shopUser.getShopClientId())){
|
|
|
|
|
- userService.pushToSingleShop("下单成功","生意来了,立即去接单>",shopUser.getShopClientId());
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 设置订单支付方式 2为余额支付
|
|
|
|
|
+ tbOrder.setPayType(2);
|
|
|
|
|
|
|
|
|
|
+ // 订单支付成功
|
|
|
|
|
+ appOrderService.updateOrderAfterPaySuccess(tbOrder);
|
|
|
|
|
|
|
|
- //处理如果是设置了自动接单 判断是否自动接单
|
|
|
|
|
- //商户开启自动推单再生成订单
|
|
|
|
|
- BigDecimal shopRate = goodsShop.getShopRate();
|
|
|
|
|
- BigDecimal sumMoney = tbOrder2.getPayMoney();
|
|
|
|
|
- if (tbOrder2.getCouponId() != null) {
|
|
|
|
|
- TbCouponUser tbCouponUser = tbCouponUserDao.selectById(tbOrder2.getCouponId());
|
|
|
|
|
- sumMoney = tbOrder2.getPayMoney().add(tbCouponUser.getMoney());
|
|
|
|
|
- }
|
|
|
|
|
- if (tbOrder2.getAutoSendOrder() == 0) {
|
|
|
|
|
- //再减去商户需要支付的配送费
|
|
|
|
|
-// sumMoney = sumMoney.subtract(tbOrder2.getErrandMoney());
|
|
|
|
|
- sumMoney = sumMoney.subtract(goodsShop2.getErrandMoney());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- BigDecimal shopMoney = sumMoney .multiply(shopRate);
|
|
|
|
|
- shopMoney = (shopMoney.setScale(2, BigDecimal.ROUND_DOWN));
|
|
|
|
|
- tbOrder2.setShopIncomeMoney(shopMoney);
|
|
|
|
|
- if(goodsShop.getAutoAcceptOrder()!=null && goodsShop.getAutoAcceptOrder()==0){
|
|
|
|
|
- tbOrder2.setStatus(6);
|
|
|
|
|
- appOrderService.updateOrder(tbOrder2);
|
|
|
|
|
- }else{
|
|
|
|
|
- appOrderService.updateOrder(tbOrder2);
|
|
|
|
|
- }
|
|
|
|
|
return Result.success();
|
|
return Result.success();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -450,13 +232,6 @@ public class WxServiceImpl implements WxService {
|
|
|
return Result.success();
|
|
return Result.success();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public double distance(double ol, double od, double dl, double dd) {
|
|
|
|
|
- GlobalCoordinates source = new GlobalCoordinates(ol, od);
|
|
|
|
|
- GlobalCoordinates target = new GlobalCoordinates(dl, dd);
|
|
|
|
|
- return LonLatUtil.getDistanceMeter(source, target, Ellipsoid.Sphere);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Result shopCashDeposit(Long shopId, Double money, String openId,Integer type) throws Exception {
|
|
public Result shopCashDeposit(Long shopId, Double money, String openId,Integer type) throws Exception {
|
|
|
GoodsShop goodsShop = goodsShopDao.selectById(shopId);
|
|
GoodsShop goodsShop = goodsShopDao.selectById(shopId);
|
|
@@ -476,127 +251,37 @@ public class WxServiceImpl implements WxService {
|
|
|
return pay(money.doubleValue(), type, userId, generalOrder, 2);
|
|
return pay(money.doubleValue(), type, userId, generalOrder, 2);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 微信/支付宝支付订单
|
|
|
|
|
+ * @param userId 用户id
|
|
|
|
|
+ * @param parentId 父订单id
|
|
|
|
|
+ * @param type 支付方式
|
|
|
|
|
+ * @param addressId 用户地址id
|
|
|
|
|
+ * @param orderType 订单类型 1到店、2外卖
|
|
|
|
|
+ */
|
|
|
@Override
|
|
@Override
|
|
|
public Result payOrder(Long userId, Long parentId, Integer type, Long addressId, Integer orderType) throws Exception {
|
|
public Result payOrder(Long userId, Long parentId, Integer type, Long addressId, Integer orderType) throws Exception {
|
|
|
- TbOrder tbOrder2 = appOrderDao.selectById(parentId);
|
|
|
|
|
- Address address = addressDao.selectById(addressId);
|
|
|
|
|
- //判断商品数量不能超过库存
|
|
|
|
|
- Long orderId1 = tbOrder2.getOrderId();
|
|
|
|
|
- List<OrderGoods> orderGoodsList1 = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>().eq("order_id", orderId1));
|
|
|
|
|
- for(int b = 0;b<orderGoodsList1.size();b++){
|
|
|
|
|
- Long goodsId = orderGoodsList1.get(b).getGoodsId();
|
|
|
|
|
- OrderGoods orderGoods = orderGoodsList1.get(b);
|
|
|
|
|
- Goods goods = goodsService.getById(orderGoods.getGoodsId());
|
|
|
|
|
- if(goods==null || goods.getStatus().equals(1)){
|
|
|
|
|
- orderGoodsDao.deleteById(orderGoods.getId());
|
|
|
|
|
- return Result.error("商品:"+orderGoods.getGoodsName()+",不存在,请刷新后重试!");
|
|
|
|
|
- }
|
|
|
|
|
- GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(new QueryWrapper<GoodsShopRelevancy>()
|
|
|
|
|
- .eq("goods_id", goodsId).eq("shop_id", tbOrder2.getShopId()));
|
|
|
|
|
- int i = goodsShopRelevancyDao.selectGoodsCount(orderId1, goodsId);
|
|
|
|
|
- if(goodsShopRelevancy.getInventory()<i){
|
|
|
|
|
- return Result.error("库存不足");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- List<TbOrder> tbOrder = appOrderService.selectOrderByParentId(parentId);
|
|
|
|
|
- BigDecimal goodsPack = BigDecimal.valueOf(0);
|
|
|
|
|
- BigDecimal payMoney = BigDecimal.valueOf(0);
|
|
|
|
|
- for(int i = 0;i<tbOrder.size();i++){
|
|
|
|
|
- List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>().eq("order_id", tbOrder.get(i).getOrderId()));
|
|
|
|
|
- for (int a = 0; a < orderGoodsList.size(); a++) {
|
|
|
|
|
- BigDecimal goodsNum = new BigDecimal(orderGoodsList.get(a).getGoodsNum());
|
|
|
|
|
- BigDecimal goodsPrice = orderGoodsList.get(a).getGoodsPrice();
|
|
|
|
|
- BigDecimal goodsPacks = orderGoodsList.get(a).getGoodsPack();
|
|
|
|
|
- BigDecimal sumGoodsPack = goodsNum.multiply(goodsPacks);
|
|
|
|
|
- BigDecimal multiply1 = goodsNum.multiply(goodsPrice);
|
|
|
|
|
- goodsPack = goodsPack.add(sumGoodsPack);
|
|
|
|
|
- payMoney = payMoney.add(multiply1);
|
|
|
|
|
- BigDecimal multiply2 = goodsNum.multiply(orderGoodsList.get(a).getGoodsPack());
|
|
|
|
|
- payMoney = payMoney.add(multiply2);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- //查该商户的配送费 和 减免配送费最小订单金额
|
|
|
|
|
- GoodsShop goodsShop2 = goodsShopDao.selectById(tbOrder2.getShopId());
|
|
|
|
|
- BigDecimal errandMoney=BigDecimal.ZERO;
|
|
|
|
|
-
|
|
|
|
|
- TbOrder tbOrder1 = new TbOrder();
|
|
|
|
|
|
|
+ TbOrder tbOrder = appOrderService.prepareOrder(userId, parentId, orderType, addressId);
|
|
|
|
|
|
|
|
- if(orderType==2) {
|
|
|
|
|
- //计算用户位置到商户位置的距离,并判断是否在配送范围内
|
|
|
|
|
- double distance = distance(goodsShop2.getShopLat(), goodsShop2.getShopLng(), address.getLat(), address.getLng());
|
|
|
|
|
- if(distance>goodsShop2.getDistributionDistance()) {
|
|
|
|
|
- return Result.error("超出商家配送范围,无法点餐!");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (goodsShop2.getExemptMinMoney() != null && payMoney.doubleValue() < goodsShop2.getExemptMinMoney().doubleValue()) {
|
|
|
|
|
- //加跑腿费
|
|
|
|
|
- errandMoney=goodsShop2.getErrandMoney() == null ? BigDecimal.ZERO : goodsShop2.getErrandMoney();
|
|
|
|
|
- payMoney = payMoney.add(errandMoney);
|
|
|
|
|
- tbOrder1.setErrandMoneyIsShop("本单未达到商家满减金额,跑腿费由用户承担");
|
|
|
|
|
- }else{
|
|
|
|
|
- tbOrder1.setErrandMoneyIsShop("本单已达到商家满减金额,跑腿费由商家承担");
|
|
|
|
|
- if(goodsShop2.getAutoSendOrder()!=null && goodsShop2.getAutoSendOrder()==0){
|
|
|
|
|
- errandMoney=goodsShop2.getErrandMoney() == null ? BigDecimal.ZERO : goodsShop2.getErrandMoney();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- tbOrder2.setErrandMoney(goodsShop2.getErrandMoney()==null?BigDecimal.ZERO:goodsShop2.getErrandMoney());
|
|
|
|
|
- //判断订单金额是否大于最低起送金额
|
|
|
|
|
- if(goodsShop2.getMinimumDelivery()==null){
|
|
|
|
|
- goodsShop2.setMinimumDelivery(BigDecimal.valueOf(0));
|
|
|
|
|
- }
|
|
|
|
|
- if(goodsShop2.getMinimumDelivery()!=null && payMoney.doubleValue()<goodsShop2.getMinimumDelivery().doubleValue()){
|
|
|
|
|
- return Result.error("订单金额未满足最低起送金额!");
|
|
|
|
|
- }
|
|
|
|
|
- if(addressId==null){
|
|
|
|
|
- return Result.error("请填写地址地址!");
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 设置支付方式 1表示微信支付、4或5表示支付宝支付
|
|
|
|
|
+ tbOrder.setPayType(1);
|
|
|
|
|
+ if(type== 4 || type== 5){
|
|
|
|
|
+ tbOrder.setPayType(3);
|
|
|
}
|
|
}
|
|
|
- if(tbOrder2.getCouponId()!=null){
|
|
|
|
|
- TbCouponUser tbCouponUser = tbCouponUserDao.selectById(tbOrder2.getCouponId());
|
|
|
|
|
- //计算总支付金额
|
|
|
|
|
- if(!tbCouponUser.getUserId().equals(userId)){
|
|
|
|
|
- return Result.error("优惠券与登录用户不匹配");
|
|
|
|
|
- }
|
|
|
|
|
- if(tbCouponUser.getStatus()!=0){
|
|
|
|
|
- return Result.error("该优惠券已失效");
|
|
|
|
|
- }
|
|
|
|
|
- if(tbCouponUser.getMinMoney().doubleValue()>payMoney.doubleValue()){
|
|
|
|
|
- return Result.error("订单金额不足,无法使用该优惠券");
|
|
|
|
|
- }
|
|
|
|
|
- if(!tbCouponUser.getShopId().equals(tbOrder2.getShopId()) && tbCouponUser.getShopId()!=0){
|
|
|
|
|
- return Result.error("优惠券使用错误,请刷新后重试");
|
|
|
|
|
- }
|
|
|
|
|
- payMoney = payMoney.subtract(tbCouponUser.getMoney());
|
|
|
|
|
- if(payMoney.doubleValue()<=0){
|
|
|
|
|
- payMoney = new BigDecimal(0.01);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- /*if(tbOrder.get(0).getOrderId().equals(tbOrder.get(0).getParentId())){
|
|
|
|
|
- return Result.error("您不是订单发起人,无法支付该订单!");
|
|
|
|
|
- }*/
|
|
|
|
|
|
|
|
|
|
- tbOrder1.setOrderId(tbOrder.get(0).getOrderId());
|
|
|
|
|
- tbOrder1.setPayMoney(payMoney);
|
|
|
|
|
- tbOrder1.setPackMoney(goodsPack);
|
|
|
|
|
- tbOrder1.setErrandMoney(errandMoney);
|
|
|
|
|
- tbOrder1.setOrderType(orderType);
|
|
|
|
|
- tbOrder1.setPayType(1);
|
|
|
|
|
- String generalOrder = getGeneralOrder();
|
|
|
|
|
- tbOrder1.setOrderNumber(generalOrder);
|
|
|
|
|
- if(orderType==2) {
|
|
|
|
|
- //添加地址
|
|
|
|
|
- String addressJson = JSONObject.toJSONString(address);
|
|
|
|
|
- tbOrder1.setAddress(addressJson);
|
|
|
|
|
- tbOrder1.setAddressId(addressId);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 设置订单号
|
|
|
|
|
+ tbOrder.setOrderNumber(getGeneralOrder());
|
|
|
|
|
|
|
|
- if(type==4||type==5){
|
|
|
|
|
- tbOrder1.setPayType(3);
|
|
|
|
|
- appOrderDao.updateById(tbOrder1);
|
|
|
|
|
- return aliPayController.payAppOrders(payMoney.doubleValue(), type, tbOrder2.getUserId(), generalOrder, 1);
|
|
|
|
|
|
|
+ // 保存订单信息
|
|
|
|
|
+ appOrderDao.updateById(tbOrder);
|
|
|
|
|
+
|
|
|
|
|
+ if (tbOrder.getPayType() == 1) {
|
|
|
|
|
+ // 微信支付
|
|
|
|
|
+ return pay(tbOrder.getPayMoney().doubleValue(), type, tbOrder.getUserId(), tbOrder.getOrderNumber(), 1);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 支付宝支付
|
|
|
|
|
+ return aliPayController.payAppOrders(tbOrder.getPayMoney().doubleValue(), type, tbOrder.getUserId(), tbOrder.getOrderNumber(), 1);
|
|
|
}
|
|
}
|
|
|
- appOrderDao.updateById(tbOrder1);
|
|
|
|
|
- return pay(payMoney.doubleValue(), type, tbOrder2.getUserId(), generalOrder, 1);
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -1093,153 +778,11 @@ public class WxServiceImpl implements WxService {
|
|
|
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
|
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
|
|
userMoneyDetailsDao.insert(userMoneyDetails);
|
|
userMoneyDetailsDao.insert(userMoneyDetails);
|
|
|
}else if(payDetails.getClassify()==1){
|
|
}else if(payDetails.getClassify()==1){
|
|
|
- //订单支付
|
|
|
|
|
|
|
+ // 根据订单编号查询订单
|
|
|
TbOrder tbOrder = appOrderService.selectOrderByNum(payDetails.getOrderId());
|
|
TbOrder tbOrder = appOrderService.selectOrderByNum(payDetails.getOrderId());
|
|
|
- Integer autoSendOrder = 1;
|
|
|
|
|
- //如果是外卖订单,则生成一个跑腿的订单
|
|
|
|
|
- if(tbOrder.getOrderType()==2){
|
|
|
|
|
- GoodsShop goodsShop = goodsShopDao.selectById(tbOrder.getShopId());
|
|
|
|
|
- //商户开启自动推单再生成订单
|
|
|
|
|
- if(goodsShop.getAutoSendOrder()==0){
|
|
|
|
|
- autoSendOrder = 0;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- tbOrder.setAutoSendOrder(autoSendOrder);
|
|
|
|
|
- appOrderDao.updateById(tbOrder);
|
|
|
|
|
- List<TbOrder> tbOrderList = appOrderDao.selectList(new QueryWrapper<TbOrder>().eq("parent_id", tbOrder.getParentId()));
|
|
|
|
|
- String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
|
|
|
|
- for(int i = 0;i<tbOrderList.size();i++){
|
|
|
|
|
- TbOrder tbOrder1 = new TbOrder();
|
|
|
|
|
- TbOrder tbOrder2 = orderGoodsDao.selectByPayTime(time);
|
|
|
|
|
- String orderCode = null;
|
|
|
|
|
- if(tbOrder2==null){
|
|
|
|
|
- String a = new SimpleDateFormat("yyyyMMdd").format(new Date());
|
|
|
|
|
- orderCode = a+"001";
|
|
|
|
|
- }else {
|
|
|
|
|
- Long a = Long.parseLong(tbOrder2.getOrderCode())+1;
|
|
|
|
|
- orderCode = a.toString();
|
|
|
|
|
- }
|
|
|
|
|
- tbOrder.setOrderCode(orderCode);
|
|
|
|
|
- tbOrder1.setOrderCode(orderCode);
|
|
|
|
|
- tbOrder1.setOrderId(tbOrderList.get(i).getOrderId());
|
|
|
|
|
- tbOrder1.setIsPay(1);
|
|
|
|
|
- tbOrder1.setStatus(7);
|
|
|
|
|
- tbOrder1.setPayTime(time);
|
|
|
|
|
- appOrderDao.updateById(tbOrder1);
|
|
|
|
|
- }
|
|
|
|
|
- tbOrder.setPayTime(time);
|
|
|
|
|
- tbOrder.setIsPay(1);
|
|
|
|
|
- tbOrder.setStatus(7);
|
|
|
|
|
- indentService.insertIndent(tbOrder);
|
|
|
|
|
- //将红包改为已使用状态
|
|
|
|
|
- TbCouponUser tbCouponUser = new TbCouponUser();
|
|
|
|
|
- tbCouponUser.setId(tbOrder.getCouponId());
|
|
|
|
|
- tbCouponUser.setStatus(1);
|
|
|
|
|
- tbCouponUserDao.updateById(tbCouponUser);
|
|
|
|
|
- //支付成功,增加该商品销量,减少该商品库存
|
|
|
|
|
- Long shopId1 = tbOrder.getShopId();
|
|
|
|
|
- Long orderId = tbOrder.getOrderId();
|
|
|
|
|
- List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>().eq("order_id", orderId));
|
|
|
|
|
- for(int a = 0;a<orderGoodsList.size();a++){
|
|
|
|
|
- Integer goodsNum = orderGoodsList.get(a).getGoodsNum();
|
|
|
|
|
- Long goodsId = orderGoodsList.get(a).getGoodsId();
|
|
|
|
|
- GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(new QueryWrapper<GoodsShopRelevancy>()
|
|
|
|
|
- .eq("shop_id", shopId1).eq("goods_id", goodsId));
|
|
|
|
|
- GoodsShopRelevancy goodsShopRelevancy1 = new GoodsShopRelevancy();
|
|
|
|
|
- goodsShopRelevancy1.setId(goodsShopRelevancy.getId());
|
|
|
|
|
- goodsShopRelevancy1.setSales(goodsShopRelevancy.getSales()+goodsNum);//加销量
|
|
|
|
|
- goodsShopRelevancy1.setInventory(goodsShopRelevancy.getInventory()-goodsNum);//减库存
|
|
|
|
|
- goodsShopRelevancyDao.updateById(goodsShopRelevancy1);
|
|
|
|
|
- goodsShopDao.updateShopSales(1,goodsNum, goodsShopRelevancy.getShopId());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //添加用户钱包消费记录
|
|
|
|
|
- UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
|
|
|
|
- userMoneyDetails.setUserId(tbOrder.getUserId());
|
|
|
|
|
- if(payDetails.getType()==1 || payDetails.getType()==2 || payDetails.getType()==3){
|
|
|
|
|
- userMoneyDetails.setTitle("微信支付");
|
|
|
|
|
- userMoneyDetails.setContent("使用微信支付:"+tbOrder.getPayMoney()+"元");
|
|
|
|
|
- }else{
|
|
|
|
|
- userMoneyDetails.setTitle("支付宝支付");
|
|
|
|
|
- userMoneyDetails.setContent("使用支付宝支付:"+tbOrder.getPayMoney()+"元");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- userMoneyDetails.setType(2);
|
|
|
|
|
- userMoneyDetails.setClassify(3);
|
|
|
|
|
- userMoneyDetails.setState(2);
|
|
|
|
|
- userMoneyDetails.setMoney(tbOrder.getPayMoney());
|
|
|
|
|
-
|
|
|
|
|
- userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
|
|
|
|
- userMoneyDetailsDao.insert(userMoneyDetails);
|
|
|
|
|
- //用户端添加消息记录
|
|
|
|
|
- MessageInfo messageInfo = new MessageInfo();
|
|
|
|
|
- UserEntity userEntity = userDao.selectById(tbOrder.getUserId());
|
|
|
|
|
- messageInfo.setTitle("下单");
|
|
|
|
|
- messageInfo.setContent("恭喜您,下单成功!");
|
|
|
|
|
- String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
|
|
|
|
- messageInfo.setCreateAt(format);
|
|
|
|
|
- messageInfo.setUserId(tbOrder.getUserId().toString());
|
|
|
|
|
- messageInfo.setUserName(userEntity.getUserName());
|
|
|
|
|
- messageInfoDao.insert(messageInfo);
|
|
|
|
|
- //店铺端添加消息记录
|
|
|
|
|
- MessageInfo messageInfo1 = new MessageInfo();
|
|
|
|
|
- messageInfo1.setTitle("有新订单");
|
|
|
|
|
- messageInfo1.setCreateAt(format);
|
|
|
|
|
- messageInfo1.setContent("有新订单,请及时处理!");
|
|
|
|
|
- messageInfo1.setShopId(tbOrder.getShopId());
|
|
|
|
|
- messageInfo1.setReadFlag(2);
|
|
|
|
|
- messageInfo1.setIsSee("2");
|
|
|
|
|
- messageInfoDao.insert(messageInfo1);
|
|
|
|
|
- //设置小程序消息推送
|
|
|
|
|
- CommonInfo one = commonInfoService.findOne(269);
|
|
|
|
|
- List<String> msgList=new ArrayList<>();
|
|
|
|
|
- Long shopId = tbOrder.getShopId();
|
|
|
|
|
- GoodsShop goodsShop = goodsShopDao.selectById(shopId);
|
|
|
|
|
- String shopName = goodsShop.getShopName();
|
|
|
|
|
- String orderNum = tbOrder.getOrderNumber();
|
|
|
|
|
- msgList.add("下单成功");
|
|
|
|
|
- msgList.add(orderNum);
|
|
|
|
|
- msgList.add(shopName);
|
|
|
|
|
- msgList.add(format);
|
|
|
|
|
- SenInfoCheckUtil.sendMsg(userEntity.getOpenId(),one.getValue(),msgList,1);
|
|
|
|
|
- userService.pushToSingle("下单成功", "亲爱的用户您好,您已下单成功!", userEntity.getClientid());
|
|
|
|
|
- BigDecimal shopRate = goodsShop.getShopRate();
|
|
|
|
|
- BigDecimal sumMoney = tbOrder.getPayMoney();
|
|
|
|
|
- if (tbOrder.getCouponId() != null) {
|
|
|
|
|
- tbCouponUser = tbCouponUserDao.selectById(tbOrder.getCouponId());
|
|
|
|
|
- sumMoney = tbOrder.getPayMoney().add(tbCouponUser.getMoney());
|
|
|
|
|
- }
|
|
|
|
|
- if (tbOrder.getAutoSendOrder() == 0) {
|
|
|
|
|
- //再减去商户需要支付的配送费
|
|
|
|
|
- sumMoney = sumMoney.subtract(goodsShop.getErrandMoney());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- BigDecimal shopMoney = sumMoney.multiply(shopRate);
|
|
|
|
|
- shopMoney = (shopMoney.setScale(2, BigDecimal.ROUND_DOWN));
|
|
|
|
|
- tbOrder.setShopIncomeMoney(shopMoney);
|
|
|
|
|
- if(goodsShop.getAutoAcceptOrder()!=null && goodsShop.getAutoAcceptOrder()==0){
|
|
|
|
|
- tbOrder.setStatus(6);
|
|
|
|
|
- tbOrder.setIsPay(1);
|
|
|
|
|
- appOrderService.updateOrder(tbOrder);
|
|
|
|
|
- }else{
|
|
|
|
|
- appOrderService.updateOrder(tbOrder);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- CommonInfo shopTemplate = commonInfoService.findOne(352);
|
|
|
|
|
- //商家通知
|
|
|
|
|
- List<String> msgShopList=new ArrayList<>();
|
|
|
|
|
- msgShopList.add(tbOrder.getOrderNumber());
|
|
|
|
|
- msgShopList.add(tbOrder.getPayMoney().toString());
|
|
|
|
|
- msgShopList.add(tbOrder.getPayTime());
|
|
|
|
|
- msgShopList.add("生意来了,立即去接单>");
|
|
|
|
|
- UserEntity shopUser = userService.selectUserById(goodsShop.getUserId());
|
|
|
|
|
- if(StringUtils.isNotEmpty(shopUser.getShopOpenId())){
|
|
|
|
|
- SenInfoCheckUtil.sendShopMsg(shopUser.getShopOpenId(),shopTemplate.getValue(),msgShopList,7);
|
|
|
|
|
- }
|
|
|
|
|
- if(StringUtils.isNotEmpty(shopUser.getShopClientId())){
|
|
|
|
|
- userService.pushToSingleShop("下单成功","生意来了,立即去接单>",shopUser.getShopClientId());
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
|
|
+ // 订单支付成功,修改订单状态
|
|
|
|
|
+ appOrderService.updateOrderAfterPaySuccess(tbOrder);
|
|
|
}else if(payDetails.getClassify()==3){
|
|
}else if(payDetails.getClassify()==3){
|
|
|
//商户交保证金
|
|
//商户交保证金
|
|
|
Double money = payDetails.getMoney();
|
|
Double money = payDetails.getMoney();
|