服务包订单下单时根据服务判断会员与优惠卷
This commit is contained in:
parent
540bc77b1a
commit
194f2e28e3
|
@ -32,7 +32,6 @@ public class MassagePackageController {
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/updateEsteemRate")
|
@PostMapping("/updateEsteemRate")
|
||||||
@ApiOperation("修改好评")
|
@ApiOperation("修改好评")
|
||||||
public Result updateEsteemRate(MassagePackage massagePackage){
|
public Result updateEsteemRate(MassagePackage massagePackage){
|
||||||
|
@ -40,6 +39,20 @@ public class MassagePackageController {
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/updateCoupon")
|
||||||
|
@ApiOperation("修改代金券可用")
|
||||||
|
public Result updateCoupon(MassagePackage massagePackage){
|
||||||
|
service.updateCoupon(massagePackage);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/updateVip")
|
||||||
|
@ApiOperation("修改VIP可用")
|
||||||
|
public Result updateVip(MassagePackage massagePackage){
|
||||||
|
service.updateVip(massagePackage);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/updateStatus")
|
@PostMapping("/updateStatus")
|
||||||
@ApiOperation("修改状态")
|
@ApiOperation("修改状态")
|
||||||
public Result updateStatus(MassagePackage massagePackage){
|
public Result updateStatus(MassagePackage massagePackage){
|
||||||
|
|
|
@ -13,6 +13,8 @@ public interface MassagePackageDao extends BaseMapper<MassagePackage> {
|
||||||
IPage<MassagePackage> findPage(Page<MassagePackage> page,@Param("params") MassagePackage massagePackage);
|
IPage<MassagePackage> findPage(Page<MassagePackage> page,@Param("params") MassagePackage massagePackage);
|
||||||
int updateSales(MassagePackage massagePackage);
|
int updateSales(MassagePackage massagePackage);
|
||||||
int updateEsteemRate(MassagePackage massagePackage);
|
int updateEsteemRate(MassagePackage massagePackage);
|
||||||
|
int updateCoupon(MassagePackage massagePackage);
|
||||||
|
int updateVip(MassagePackage massagePackage);
|
||||||
int updateStatus(MassagePackage massagePackage);
|
int updateStatus(MassagePackage massagePackage);
|
||||||
int updatePrice(MassagePackage massagePackage);
|
int updatePrice(MassagePackage massagePackage);
|
||||||
int delete(MassagePackage massagePackage);
|
int delete(MassagePackage massagePackage);
|
||||||
|
|
|
@ -97,6 +97,16 @@ public class MassagePackage implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String createTime;
|
private String createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否可用代金券 1是 2否
|
||||||
|
*/
|
||||||
|
private Integer isCanCoupon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否可用会员优惠 1是 2否
|
||||||
|
*/
|
||||||
|
private Integer isCanVip;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Integer page;
|
private Integer page;
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,8 @@ public interface MassagePackageService extends IService<MassagePackage> {
|
||||||
Result findPage(MassagePackage massagePackage);
|
Result findPage(MassagePackage massagePackage);
|
||||||
int updateSales(MassagePackage massagePackage);
|
int updateSales(MassagePackage massagePackage);
|
||||||
int updateEsteemRate(MassagePackage massagePackage);
|
int updateEsteemRate(MassagePackage massagePackage);
|
||||||
|
int updateCoupon(MassagePackage massagePackage);
|
||||||
|
int updateVip(MassagePackage massagePackage);
|
||||||
int updateStatus(MassagePackage massagePackage);
|
int updateStatus(MassagePackage massagePackage);
|
||||||
int updatePrice(MassagePackage massagePackage);
|
int updatePrice(MassagePackage massagePackage);
|
||||||
int delete(MassagePackage massagePackage);
|
int delete(MassagePackage massagePackage);
|
||||||
|
|
|
@ -28,6 +28,15 @@ public class MassagePackageServiceImpl extends ServiceImpl<MassagePackageDao, Ma
|
||||||
return baseMapper.updateEsteemRate(massagePackage);
|
return baseMapper.updateEsteemRate(massagePackage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int updateCoupon(MassagePackage massagePackage){
|
||||||
|
return baseMapper.updateCoupon(massagePackage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int updateVip(MassagePackage massagePackage){
|
||||||
|
return baseMapper.updateVip(massagePackage);
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public int updateStatus(MassagePackage massagePackage){
|
public int updateStatus(MassagePackage massagePackage){
|
||||||
return baseMapper.updateStatus(massagePackage);
|
return baseMapper.updateStatus(massagePackage);
|
||||||
|
|
|
@ -118,11 +118,31 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
||||||
@Override
|
@Override
|
||||||
public Result insertOrders(UserPackageOrder userPackageOrder){
|
public Result insertOrders(UserPackageOrder userPackageOrder){
|
||||||
reentrantReadWriteLock.writeLock().lock();
|
reentrantReadWriteLock.writeLock().lock();
|
||||||
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
try {
|
try {
|
||||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
BigDecimal canCouponMoney = BigDecimal.ZERO;//当可用代金券时的金额
|
||||||
|
BigDecimal canVipMoney = BigDecimal.ZERO;//当可用vip时的金额
|
||||||
|
BigDecimal totalMoney = BigDecimal.ZERO;//总金额
|
||||||
|
List<UserPackageOrdersMapping> ordersPackageList = userPackageOrder.getOrdersPackageList();
|
||||||
|
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
|
||||||
|
MassagePackage massagePackage = massagePackageService.getById(ordersPackage.getPackageId());
|
||||||
|
BigDecimal sum = massagePackage.getPrice().multiply(new BigDecimal(ordersPackage.getNum()));
|
||||||
|
if(massagePackage.getIsCanCoupon() == 1){
|
||||||
|
canCouponMoney = canCouponMoney.add(sum);
|
||||||
|
}
|
||||||
|
if(massagePackage.getIsCanVip() == 1){
|
||||||
|
canVipMoney = canVipMoney.add(sum);
|
||||||
|
}
|
||||||
|
totalMoney = totalMoney.add(sum);
|
||||||
|
}
|
||||||
|
|
||||||
|
BigDecimal couponMinMoney = BigDecimal.ZERO;//所有代金券的使用额度总和
|
||||||
List<CouponUser> CouponUserList = Lists.newArrayList();
|
List<CouponUser> CouponUserList = Lists.newArrayList();
|
||||||
String couponIds = userPackageOrder.getCouponId();
|
String couponIds = userPackageOrder.getCouponId();
|
||||||
if(couponIds.length()>0){
|
if(couponIds.length()>0){
|
||||||
|
if(canCouponMoney.compareTo(BigDecimal.ZERO)==0){
|
||||||
|
return Result.error("此次购买的服务不支持优惠券!");
|
||||||
|
}
|
||||||
String[] couponArr = couponIds.trim().split(",");
|
String[] couponArr = couponIds.trim().split(",");
|
||||||
BigDecimal couponMoney = new BigDecimal(0);
|
BigDecimal couponMoney = new BigDecimal(0);
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
@ -133,6 +153,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
||||||
if (!couponUser.getStatus().equals(0)) {
|
if (!couponUser.getStatus().equals(0)) {
|
||||||
return Result.error("优惠券已被使用!");
|
return Result.error("优惠券已被使用!");
|
||||||
}
|
}
|
||||||
|
couponMinMoney = couponMinMoney.add(couponUser.getMinMoney());
|
||||||
CouponUserList.add(couponUser);
|
CouponUserList.add(couponUser);
|
||||||
BigDecimal money= couponUser.getMoney();
|
BigDecimal money= couponUser.getMoney();
|
||||||
couponMoney = couponMoney.add(money);
|
couponMoney = couponMoney.add(money);
|
||||||
|
@ -146,19 +167,24 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
||||||
userPackageOrder.setCouponMoney(BigDecimal.ZERO);
|
userPackageOrder.setCouponMoney(BigDecimal.ZERO);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(userPackageOrder.getVipRate() == null || BigDecimal.ZERO.compareTo(userPackageOrder.getVipRate()) == 0){
|
if(canCouponMoney.compareTo(couponMinMoney) < 0){
|
||||||
//获取用户VIP的优惠信息
|
return Result.error("当前应付总金额不满足优惠券使用的最小额度,请重新选择优惠卷!");
|
||||||
BigDecimal vipRate = new BigDecimal(100);
|
}
|
||||||
|
|
||||||
|
//获取用户VIP的优惠信息
|
||||||
|
BigDecimal vipRate = new BigDecimal(100);
|
||||||
|
//服务包支持vip时,获取vip优惠比例
|
||||||
|
if(canVipMoney.compareTo(BigDecimal.ZERO)>0) {
|
||||||
UserVip userVip = userVipService.selectUserVipByUserId(userPackageOrder.getUserId());
|
UserVip userVip = userVipService.selectUserVipByUserId(userPackageOrder.getUserId());
|
||||||
if (userVip != null) {
|
if (userVip != null) {
|
||||||
if(userVip.getIsVip() == 1){
|
if (userVip.getIsVip() == 1) {
|
||||||
//获取用户到期时间
|
//获取用户到期时间
|
||||||
Date date = null;
|
Date date = null;
|
||||||
try {
|
try {
|
||||||
date = simpleDateFormat.parse(userVip.getEndTime());
|
date = simpleDateFormat.parse(userVip.getEndTime());
|
||||||
if (date.getTime() >= System.currentTimeMillis()) {
|
if (date.getTime() >= System.currentTimeMillis()) {
|
||||||
VipDetails vipDetails = vipDetailsDao.selectOne(new QueryWrapper<VipDetails>().eq("vip_name_type", userVip.getVipNameType()));
|
VipDetails vipDetails = vipDetailsDao.selectOne(new QueryWrapper<VipDetails>().eq("vip_name_type", userVip.getVipNameType()));
|
||||||
if(vipDetails != null){
|
if (vipDetails != null) {
|
||||||
vipRate = vipDetails.getRate();
|
vipRate = vipDetails.getRate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -167,21 +193,18 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
userPackageOrder.setVipRate(vipRate);
|
|
||||||
}
|
}
|
||||||
|
userPackageOrder.setVipRate(vipRate);
|
||||||
|
|
||||||
if(userPackageOrder.getSumMoney() == null || BigDecimal.ZERO.compareTo(userPackageOrder.getSumMoney()) == 0){
|
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
|
||||||
BigDecimal oldSumMoney = userPackageOrder.getOldSumMoney();
|
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
|
||||||
BigDecimal sumMoney = oldSumMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));
|
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
|
||||||
userPackageOrder.setSumMoney(sumMoney);
|
totalMoney = totalMoney.subtract(userPackageOrder.getCouponMoney());//减去优惠卷额度后的总金额
|
||||||
}
|
|
||||||
|
userPackageOrder.setPayMoney(totalMoney);
|
||||||
userPackageOrder.setCreateTime(simpleDateFormat.format(new Date()));
|
userPackageOrder.setCreateTime(simpleDateFormat.format(new Date()));
|
||||||
userPackageOrder.setStatus(0);
|
userPackageOrder.setStatus(0);
|
||||||
userPackageOrder.setOrdersNo(getGeneralOrder());
|
userPackageOrder.setOrdersNo(getGeneralOrder());
|
||||||
if(userPackageOrder.getPayMoney() == null || BigDecimal.ZERO.compareTo(userPackageOrder.getPayMoney()) == 0){
|
|
||||||
BigDecimal payMoney = userPackageOrder.getSumMoney().subtract(userPackageOrder.getCouponMoney());
|
|
||||||
userPackageOrder.setPayMoney(payMoney);
|
|
||||||
}
|
|
||||||
//插入订单表
|
//插入订单表
|
||||||
baseMapper.insertOrders(userPackageOrder);
|
baseMapper.insertOrders(userPackageOrder);
|
||||||
Long ordersId = userPackageOrder.getOrdersId();
|
Long ordersId = userPackageOrder.getOrdersId();
|
||||||
|
@ -202,7 +225,6 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
||||||
}
|
}
|
||||||
|
|
||||||
//插入用户-服务包-订单-服务包与订单映射关系表
|
//插入用户-服务包-订单-服务包与订单映射关系表
|
||||||
List<UserPackageOrdersMapping> ordersPackageList = userPackageOrder.getOrdersPackageList();
|
|
||||||
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
|
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
|
||||||
ordersPackage.setOrdersId(ordersId);
|
ordersPackage.setOrdersId(ordersId);
|
||||||
userPackageOrdersMappingService.insert(ordersPackage);
|
userPackageOrdersMappingService.insert(ordersPackage);
|
||||||
|
|
|
@ -30,6 +30,14 @@
|
||||||
update bl_massage_package set esteem_rate=#{esteemRate} where id=#{id}
|
update bl_massage_package set esteem_rate=#{esteemRate} where id=#{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<update id="updateCoupon" parameterType="com.sqx.modules.bl.massage.entity.MassagePackage">
|
||||||
|
update bl_massage_package set is_can_coupon=#{isCanCoupon} where id=#{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<update id="updateVip" parameterType="com.sqx.modules.bl.massage.entity.MassagePackage">
|
||||||
|
update bl_massage_package set is_can_vip=#{isCanVip} where id=#{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
<update id="updateStatus" parameterType="com.sqx.modules.bl.massage.entity.MassagePackage">
|
<update id="updateStatus" parameterType="com.sqx.modules.bl.massage.entity.MassagePackage">
|
||||||
update bl_massage_package set status=#{status} where id=#{id}
|
update bl_massage_package set status=#{status} where id=#{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
Loading…
Reference in New Issue