Compare commits

...

2 Commits

7 changed files with 84 additions and 18 deletions

View File

@ -32,7 +32,6 @@ public class MassagePackageController {
return Result.success();
}
@PostMapping("/updateEsteemRate")
@ApiOperation("修改好评")
public Result updateEsteemRate(MassagePackage massagePackage){
@ -40,6 +39,20 @@ public class MassagePackageController {
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")
@ApiOperation("修改状态")
public Result updateStatus(MassagePackage massagePackage){

View File

@ -13,6 +13,8 @@ public interface MassagePackageDao extends BaseMapper<MassagePackage> {
IPage<MassagePackage> findPage(Page<MassagePackage> page,@Param("params") MassagePackage massagePackage);
int updateSales(MassagePackage massagePackage);
int updateEsteemRate(MassagePackage massagePackage);
int updateCoupon(MassagePackage massagePackage);
int updateVip(MassagePackage massagePackage);
int updateStatus(MassagePackage massagePackage);
int updatePrice(MassagePackage massagePackage);
int delete(MassagePackage massagePackage);

View File

@ -97,6 +97,16 @@ public class MassagePackage implements Serializable {
*/
private String createTime;
/**
* 是否可用代金券 1是 2否
*/
private Integer isCanCoupon;
/**
* 是否可用会员优惠 1是 2否
*/
private Integer isCanVip;
@TableField(exist = false)
private Integer page;

View File

@ -9,6 +9,8 @@ public interface MassagePackageService extends IService<MassagePackage> {
Result findPage(MassagePackage massagePackage);
int updateSales(MassagePackage massagePackage);
int updateEsteemRate(MassagePackage massagePackage);
int updateCoupon(MassagePackage massagePackage);
int updateVip(MassagePackage massagePackage);
int updateStatus(MassagePackage massagePackage);
int updatePrice(MassagePackage massagePackage);
int delete(MassagePackage massagePackage);

View File

@ -28,6 +28,15 @@ public class MassagePackageServiceImpl extends ServiceImpl<MassagePackageDao, Ma
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
public int updateStatus(MassagePackage massagePackage){
return baseMapper.updateStatus(massagePackage);

View File

@ -118,11 +118,31 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
@Override
public Result insertOrders(UserPackageOrder userPackageOrder){
reentrantReadWriteLock.writeLock().lock();
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
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();
String couponIds = userPackageOrder.getCouponId();
if(couponIds.length()>0){
if(canCouponMoney.compareTo(BigDecimal.ZERO)==0){
return Result.error("此次购买的服务不支持优惠券!");
}
String[] couponArr = couponIds.trim().split(",");
BigDecimal couponMoney = new BigDecimal(0);
int count = 0;
@ -133,6 +153,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
if (!couponUser.getStatus().equals(0)) {
return Result.error("优惠券已被使用!");
}
couponMinMoney = couponMinMoney.add(couponUser.getMinMoney());
CouponUserList.add(couponUser);
BigDecimal money= couponUser.getMoney();
couponMoney = couponMoney.add(money);
@ -146,19 +167,24 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
userPackageOrder.setCouponMoney(BigDecimal.ZERO);
}
if(userPackageOrder.getVipRate() == null || BigDecimal.ZERO.compareTo(userPackageOrder.getVipRate()) == 0){
if(canCouponMoney.compareTo(couponMinMoney) < 0){
return Result.error("当前应付总金额不满足优惠券使用的最小额度,请重新选择优惠卷!");
}
//获取用户VIP的优惠信息
BigDecimal vipRate = new BigDecimal(100);
//服务包支持vip时获取vip优惠比例
if(canVipMoney.compareTo(BigDecimal.ZERO)>0) {
UserVip userVip = userVipService.selectUserVipByUserId(userPackageOrder.getUserId());
if (userVip != null) {
if(userVip.getIsVip() == 1){
if (userVip.getIsVip() == 1) {
//获取用户到期时间
Date date = null;
try {
date = simpleDateFormat.parse(userVip.getEndTime());
if (date.getTime() >= System.currentTimeMillis()) {
VipDetails vipDetails = vipDetailsDao.selectOne(new QueryWrapper<VipDetails>().eq("vip_name_type", userVip.getVipNameType()));
if(vipDetails != null){
if (vipDetails != null) {
vipRate = vipDetails.getRate();
}
}
@ -167,21 +193,18 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
}
}
}
}
userPackageOrder.setVipRate(vipRate);
}
if(userPackageOrder.getSumMoney() == null || BigDecimal.ZERO.compareTo(userPackageOrder.getSumMoney()) == 0){
BigDecimal oldSumMoney = userPackageOrder.getOldSumMoney();
BigDecimal sumMoney = oldSumMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));
userPackageOrder.setSumMoney(sumMoney);
}
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
totalMoney = totalMoney.subtract(userPackageOrder.getCouponMoney());//减去优惠卷额度后的总金额
userPackageOrder.setPayMoney(totalMoney);
userPackageOrder.setCreateTime(simpleDateFormat.format(new Date()));
userPackageOrder.setStatus(0);
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);
Long ordersId = userPackageOrder.getOrdersId();
@ -202,7 +225,6 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
}
//插入用户-服务包-订单-服务包与订单映射关系表
List<UserPackageOrdersMapping> ordersPackageList = userPackageOrder.getOrdersPackageList();
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
ordersPackage.setOrdersId(ordersId);
userPackageOrdersMappingService.insert(ordersPackage);

View File

@ -30,6 +30,14 @@
update bl_massage_package set esteem_rate=#{esteemRate} where id=#{id}
</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 bl_massage_package set status=#{status} where id=#{id}
</update>