diff --git a/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java b/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java index ddf2369..0de2049 100644 --- a/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java +++ b/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java @@ -15,4 +15,6 @@ public interface UserMoneyDao extends BaseMapper { void updateCashDeposit(@Param("type") Integer type, @Param("userId") Long userId,@Param("cashDeposit") Double cashDeposit); void updateMoney(UserMoney userMoney); + + void updateMaySad(@Param("type") Integer type, @Param("userId") Long userId, @Param("money") Double money); } diff --git a/src/main/java/com/sqx/modules/app/entity/UserMoney.java b/src/main/java/com/sqx/modules/app/entity/UserMoney.java index b8f615a..d41c95d 100644 --- a/src/main/java/com/sqx/modules/app/entity/UserMoney.java +++ b/src/main/java/com/sqx/modules/app/entity/UserMoney.java @@ -45,4 +45,8 @@ public class UserMoney implements Serializable { @TableField("user_id") private Long userId; + @ApiModelProperty("盛安豆") + @TableField("sad") + private BigDecimal sad; + } diff --git a/src/main/java/com/sqx/modules/app/service/UserMoneyService.java b/src/main/java/com/sqx/modules/app/service/UserMoneyService.java index b88c95b..0666307 100644 --- a/src/main/java/com/sqx/modules/app/service/UserMoneyService.java +++ b/src/main/java/com/sqx/modules/app/service/UserMoneyService.java @@ -28,4 +28,5 @@ public interface UserMoneyService extends IService { Result profitDetailed(@RequestAttribute Long userId, Page ipage, String startTime,String endTime); + void updateSad(int i, Long userId, double payMoney); } diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java index c6988e8..9c20b34 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java @@ -173,4 +173,9 @@ public class UserMoneyServiceImpl extends ServiceImpl i return Result.success().put("data", page2); } + @Override + public void updateSad(int i, Long userId, double payMoney) { + baseMapper.updateMaySad(i, userId, payMoney); + } + } diff --git a/src/main/java/com/sqx/modules/artificer/entity/FundDetailsResult.java b/src/main/java/com/sqx/modules/artificer/entity/FundDetailsResult.java index 691ea5e..2e7f47f 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/FundDetailsResult.java +++ b/src/main/java/com/sqx/modules/artificer/entity/FundDetailsResult.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.core.metadata.IPage; import com.fasterxml.jackson.annotation.JsonFormat; import com.sqx.modules.app.entity.UserMoneyDetails; +import com.sqx.modules.app.entity.UserSadDetails; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -29,6 +30,10 @@ public class FundDetailsResult implements Serializable { * 钱包明细 */ private IPage userMoneyDetailsList; + /** + * 钱包明细 + */ + private IPage userSadDetailsList; /** * 查询开始时间 */ diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java index 39ca0c6..22ba454 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java @@ -491,6 +491,7 @@ public class ArtificerServiceImpl extends ServiceImpl i result.put("monthMoney",monthMoney); result.put("cashMoney",cashMoney); result.put("money",userMoney.getMoney()); + result.put("mysad",userMoney.getSad());//盛安豆 return Result.success().put("data",result); } diff --git a/src/main/java/com/sqx/modules/shopping/controller/app/AppOrdersController.java b/src/main/java/com/sqx/modules/shopping/controller/app/AppOrdersController.java index ec3ba18..5fbdb55 100644 --- a/src/main/java/com/sqx/modules/shopping/controller/app/AppOrdersController.java +++ b/src/main/java/com/sqx/modules/shopping/controller/app/AppOrdersController.java @@ -94,6 +94,13 @@ public class AppOrdersController { return service.changePay(ordersId); } + @Login + @ApiOperation("盛安豆支付") + @GetMapping("/changeSadPay") + public Result changeSadPay(String ordersId){ + return service.changeSadPay(ordersId); + } + @ApiOperation("检测是否完成支付") @GetMapping("/wxPay") public Result wxPayWeb(Long ordersId){ diff --git a/src/main/java/com/sqx/modules/shopping/entity/SelfGoods.java b/src/main/java/com/sqx/modules/shopping/entity/SelfGoods.java index 3d5ac1d..94c83af 100644 --- a/src/main/java/com/sqx/modules/shopping/entity/SelfGoods.java +++ b/src/main/java/com/sqx/modules/shopping/entity/SelfGoods.java @@ -73,5 +73,9 @@ public class SelfGoods implements Serializable { @Transient private SelfGoodsBrand brand; //品牌实体 + @Column + private Long sad; //购买获得盛安豆 + + } diff --git a/src/main/java/com/sqx/modules/shopping/entity/SelfOrders.java b/src/main/java/com/sqx/modules/shopping/entity/SelfOrders.java index 37b81a2..c012b08 100644 --- a/src/main/java/com/sqx/modules/shopping/entity/SelfOrders.java +++ b/src/main/java/com/sqx/modules/shopping/entity/SelfOrders.java @@ -112,6 +112,8 @@ public class SelfOrders { private Long userCouponsId; //用户优惠券id @Column private Double couponMoney; //优惠券优惠金额 + @Column + private Long sfrxdh; //是否允许兑换 /**分销*/ @Transient private List relationList; //订单分销列表 diff --git a/src/main/java/com/sqx/modules/shopping/service/OrdersService.java b/src/main/java/com/sqx/modules/shopping/service/OrdersService.java index 0989a09..f31f1b8 100644 --- a/src/main/java/com/sqx/modules/shopping/service/OrdersService.java +++ b/src/main/java/com/sqx/modules/shopping/service/OrdersService.java @@ -85,4 +85,5 @@ public interface OrdersService { //查快递 Result findExpress(String expressNumber); + Result changeSadPay(String ordersId); } diff --git a/src/main/java/com/sqx/modules/shopping/service/impl/OrdersRelationServiceImpl.java b/src/main/java/com/sqx/modules/shopping/service/impl/OrdersRelationServiceImpl.java index dd01127..c43468b 100644 --- a/src/main/java/com/sqx/modules/shopping/service/impl/OrdersRelationServiceImpl.java +++ b/src/main/java/com/sqx/modules/shopping/service/impl/OrdersRelationServiceImpl.java @@ -2,6 +2,7 @@ package com.sqx.modules.shopping.service.impl; import com.sqx.modules.app.entity.UserMoney; import com.sqx.modules.app.entity.UserMoneyDetails; +import com.sqx.modules.app.entity.UserSadDetails; import com.sqx.modules.app.service.UserMoneyDetailsService; import com.sqx.modules.app.service.UserMoneyService; import com.sqx.modules.app.service.UserService; @@ -155,7 +156,7 @@ public class OrdersRelationServiceImpl implements OrdersRelationService { userMoneyDetails.setType(1); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetailsService.save(userMoneyDetails); + userMoneyDetailsService.insert(userMoneyDetails); //3.修改分销记录为已到账 s.setStatus(2); //已到账 this.updateBody(s); @@ -164,6 +165,7 @@ public class OrdersRelationServiceImpl implements OrdersRelationService { SelfOrders order = ordersJpaRepository.getOne(orderId); order.setIsRefund(2); //不可退款 ordersJpaRepository.save(order); + } /** diff --git a/src/main/java/com/sqx/modules/shopping/service/impl/SelfGoodsServiceImpl.java b/src/main/java/com/sqx/modules/shopping/service/impl/SelfGoodsServiceImpl.java index 1b43a76..757c9c7 100644 --- a/src/main/java/com/sqx/modules/shopping/service/impl/SelfGoodsServiceImpl.java +++ b/src/main/java/com/sqx/modules/shopping/service/impl/SelfGoodsServiceImpl.java @@ -1,6 +1,7 @@ package com.sqx.modules.shopping.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.sqx.modules.common.service.CommonInfoService; import com.sqx.modules.shopping.controller.SkuUtil; import com.sqx.modules.shopping.dao.*; import com.sqx.modules.shopping.entity.*; @@ -52,6 +53,9 @@ public class SelfGoodsServiceImpl implements GoodsService { @Autowired private GoodsTypeService goodsTypeService; + @Autowired + private CommonInfoService commonRepository; + /** * 后台管理商品列表、创建时间排序 * @param page 页数 @@ -397,6 +401,7 @@ public class SelfGoodsServiceImpl implements GoodsService { if (g.getBrandId() != null){ g.setBrand(selfGoodsBrandJpaRepository.findById(g.getBrandId()).orElse(null)); } + return ResultUtil.success(g); } diff --git a/src/main/java/com/sqx/modules/shopping/service/impl/SelfOrdersServiceImpl.java b/src/main/java/com/sqx/modules/shopping/service/impl/SelfOrdersServiceImpl.java index aa1c250..c6c2322 100644 --- a/src/main/java/com/sqx/modules/shopping/service/impl/SelfOrdersServiceImpl.java +++ b/src/main/java/com/sqx/modules/shopping/service/impl/SelfOrdersServiceImpl.java @@ -1,14 +1,8 @@ package com.sqx.modules.shopping.service.impl; import com.alibaba.fastjson.JSON; -import com.sqx.modules.app.entity.UserEntity; -import com.sqx.modules.app.entity.UserMoney; -import com.sqx.modules.app.entity.UserMoneyDetails; -import com.sqx.modules.app.entity.UserVip; -import com.sqx.modules.app.service.UserMoneyDetailsService; -import com.sqx.modules.app.service.UserMoneyService; -import com.sqx.modules.app.service.UserService; -import com.sqx.modules.app.service.UserVipService; +import com.sqx.modules.app.entity.*; +import com.sqx.modules.app.service.*; import com.sqx.modules.common.service.CommonInfoService; import com.sqx.modules.material.service.MaterialArtificerService; import com.sqx.modules.shopping.dao.*; @@ -80,6 +74,8 @@ public class SelfOrdersServiceImpl implements OrdersService { private UserVipService userVipService; @Autowired private MaterialArtificerService materialArtificerService; + @Autowired + private UserSadDetailsService userSadDetailsService; @@ -322,7 +318,7 @@ public class SelfOrdersServiceImpl implements OrdersService { /* * 支付金额 需要后端去验证金额 */ - UserEntity userById = userService.selectUserById(entity.getUserId()); +// UserEntity userById = userService.selectUserById(entity.getUserId()); Long goodsId = entity.getGoodsId(); SelfGoods byId = goodsService.findById(goodsId); if(byId.getStatus().equals(2)){ @@ -334,19 +330,45 @@ public class SelfOrdersServiceImpl implements OrdersService { } skuService.lessStock(entity.getSkuId(), entity.getNumber()); //sku库存减少对应数量 - entity.setPrice(byId.getPrice()); + entity.setPrice(byId.getMemberPrice()); entity.setMemberPrice(byId.getMemberPrice()); - UserVip userVip = userVipService.selectUserVipByUserId(userById.getUserId()); - if(userVip==null || userVip.getIsVip()!=1){ - Double aDouble = AmountCalUtil.moneyMul(byId.getPrice(), entity.getNumber()); - entity.setPayMoney(aDouble); - }else{ - Double aDouble = AmountCalUtil.moneyMul(byId.getMemberPrice(), entity.getNumber()); - entity.setPayMoney(aDouble); - } +// UserVip userVip = userVipService.selectUserVipByUserId(userById.getUserId()); +// if(userVip==null || userVip.getIsVip()!=1){ +// Double aDouble = AmountCalUtil.moneyMul(byId.getPrice(), entity.getNumber()); +// entity.setPayMoney(aDouble); +// }else{ +// Double aDouble = AmountCalUtil.moneyMul(byId.getMemberPrice(), entity.getNumber()); +// entity.setPayMoney(aDouble); +// } if(entity.getSendWay()==1 && byId.getPostagePrice()!=null){ entity.setPayMoney(AmountCalUtil.add(entity.getPayMoney(),byId.getPostagePrice())); } + + + if(entity.getSfrxdh()!=null && entity.getSfrxdh()>0){ + UserSadDetails userMoneyDetails=new UserSadDetails(); + userMoneyService.updateSad(2,entity.getUserId(),entity.getSfrxdh()); + //查询用户当前余额 + UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(entity.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney.getSad()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setUserId(entity.getUserId()); + userMoneyDetails.setTitle("[购买商品]标题:"+entity.getTitle()); + userMoneyDetails.setContent("盛安豆优惠:"+entity.getSfrxdh()); + userMoneyDetails.setType(2); + userMoneyDetails.setMoney(userNowMoney.getSad()); + userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + userMoneyDetails.setBlRole(2); + userMoneyDetails.setBlFlag(1); + userSadDetailsService.insert(userMoneyDetails); + } + + //添加盛安豆 + this.addSad(entity); + + return ResultUtil.success(jpaRepository.save(entity)); } @@ -552,10 +574,12 @@ public class SelfOrdersServiceImpl implements OrdersService { //立刻到账 s.setFinishTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); ordersRelationService.addMoney(s); + } Long userId = orders.getUserId(); //8.商品销量+1 goodsService.salesAddOne(orders.getGoodsId()); + return ResultUtil.success(jpaRepository.save(orders)); } @@ -598,7 +622,7 @@ public class SelfOrdersServiceImpl implements OrdersService { userMoneyDetails.setCreateTime(date); userMoneyDetails.setBlRole(2); userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); + userMoneyDetailsService.insert(userMoneyDetails); //订单分销 this.fenXiao(orders); //4.支付成功处理订单 @@ -628,6 +652,36 @@ public class SelfOrdersServiceImpl implements OrdersService { return ResultUtil.success(); } + //添加盛安豆及盛安豆记录 + public void addSad(SelfOrders orders){ + Long goodsId = orders.getGoodsId(); + SelfGoods goodsPar = goodsService.findById(goodsId); + Double sad = 0.0; + if(goodsPar.getSad()>0){ + sad = Double.parseDouble(goodsPar.getSad()+"") * orders.getNumber(); + } + if(sad>0){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String date=sdf.format(new Date()); + userMoneyService.updateSad(1,orders.getUserId(),sad); + UserSadDetails userMoneyDetails=new UserSadDetails(); + //查询用户当前余额 + UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney.getSad()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setUserId(orders.getUserId()); + userMoneyDetails.setTitle("[购买商品]标题:"+orders.getTitle()); + userMoneyDetails.setContent("获得盛安豆:"+sad); + userMoneyDetails.setType(1); + userMoneyDetails.setMoney(userNowMoney.getSad()); + userMoneyDetails.setCreateTime(date); + userMoneyDetails.setBlRole(2); + userMoneyDetails.setBlFlag(1); + userSadDetailsService.insert(userMoneyDetails); + } + } /** * 订单分销处理 @@ -953,6 +1007,68 @@ public class SelfOrdersServiceImpl implements OrdersService { return ResultUtil.error(-1, "查询失败"); } + @Override + public Result changeSadPay(String ordersId) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String date=sdf.format(new Date()); + String[] ids = ordersId.split(","); + for (String s : ids) { + //1.获取订单、用户信息 + SelfOrders orders = jpaRepository.findById(Long.valueOf(s)).orElse(null); + if(orders==null){ + continue; + } + double payMoney = orders.getPayMoney(); + UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); + double money = userMoney.getSad().doubleValue(); + if (payMoney > money){ + return ResultUtil.error(500,"盛安豆余额不足!"); + } + userMoneyService.updateSad(2,orders.getUserId(),payMoney); + UserSadDetails userMoneyDetails=new UserSadDetails(); + //查询用户当前余额 + UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney.getSad()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setUserId(orders.getUserId()); + userMoneyDetails.setTitle("[购买商品]标题:"+orders.getTitle()); + userMoneyDetails.setContent("盛安豆支付:"+payMoney); + userMoneyDetails.setType(2); + userMoneyDetails.setMoney(userNowMoney.getSad()); + userMoneyDetails.setCreateTime(date); + userMoneyDetails.setBlRole(2); + userMoneyDetails.setBlFlag(1); + userSadDetailsService.insert(userMoneyDetails); + + //4.支付成功处理订单 + orders.setPayWay(6); //支付方式(1app微信 2微信公众号 3微信小程序 4app支付宝 5H5支付宝 6零钱) + orders.setPayTime(DateUtil.createTime()); //设置支付时间 + orders.setStatus(2); //订单状态(1待付款 2已付款 3已发货 4已收货 5已取消 6退款中 7已退款 8拒绝退款 9拼团中) + //虚拟商品处理 + if (orders.getOrderType() == 1) { //普通订单 + if (orders.getIsExpress() == 2){ //是否需要发货(1需要发货 2无需发货) + //虚拟商品发货,发货成功为确认收货,否则不做变化 + SelfGoodsVirtual v = this.sendExpress(orders); + if (v != null){ + orders.setVirtualId(v.getId()); //虚拟商品id + orders.setExpressTime(DateUtil.createTime()); //发货时间 + orders.setStatus(4); //确认收货 + } + }else if (orders.getIsExpress() == 3){ //核销订单 + orders.setStatus(3); //待收货、待使用 + } + } + jpaRepository.save(orders); + //执行物料包添加操作 + materialArtificerService.changePay(orders.getGoodsId(),orders.getUserId(),orders.getNumber()); + //公众号消息通知 + //userService.orderPay(orders.getUserId(), orders.getOrderNum(),orders.getPayMoney().toString(),orders.getCreateAt()); + } + return ResultUtil.success(); + } + /* * 读取返回结果 */ diff --git a/src/main/resources/mapper/app/UserMoneyDao.xml b/src/main/resources/mapper/app/UserMoneyDao.xml index 3be3b15..5387fe7 100644 --- a/src/main/resources/mapper/app/UserMoneyDao.xml +++ b/src/main/resources/mapper/app/UserMoneyDao.xml @@ -14,6 +14,17 @@ where user_id=#{userId} + + update user_money set + + sad=sad+#{money} + + + sad=sad-#{money} + + where user_id=#{userId} + + update user_money set