# Conflicts:
#	src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java
This commit is contained in:
yangjun 2024-06-27 16:15:02 +08:00
commit 5af88a3884
16 changed files with 235 additions and 30 deletions

View File

@ -334,6 +334,7 @@ public class ArtificerController {
}
// @Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 2/5 * * * ?")
public void endOrders(){
ordersService.endOrders();
}

View File

@ -358,6 +358,16 @@ public class Orders implements Serializable {
*/
private String jsTsbz;
/**
* 项目单价
*/
private BigDecimal massagePrice;
/**
* 项目数量
*/
private Integer massageNum;
/**
* 项目名称
*/

View File

@ -354,6 +354,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
BigDecimal artificerPrice = new BigDecimal("0.00");
for (OrdersMassage ordersMassage : ordersMassageList) {
orders.setMassagePrice(massageType.getPrice());
orders.setMassageNum(ordersMassage.getNum());
price = massageType.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum()));
BigDecimal massagePrice = price.multiply(orders.getTechnicianRate()).divide(new BigDecimal(100)).add(price);//技师等级加成金额
massagePrice = massagePrice.multiply(orders.getVipRate()).divide(new BigDecimal(100));//会员优惠后金额
@ -371,7 +373,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
//判断金额是否满足代金券金额最少消费额度
if(payMoney.compareTo(couponMinMoney) < 0){
return Result.error("当前应付总金额不满足优惠券使用的最小额度,请重新选择优惠");
return Result.error("当前应付总金额不满足优惠券使用的最小额度,请重新选择优惠");
}
//减去代金券的金额
@ -1332,7 +1334,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setMassageTypeId(massageType.getMassageTypeId());
orders.setEntryName(massageType.getTitle());
//获取原优惠
//获取原优惠
List<String> oldCouponList = Lists.newArrayList();
String oldCouponId = oldOrders.getCouponId();
if (oldCouponId.length() > 0) {
@ -1344,7 +1346,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
}
}
//判断新优惠是否可用
//判断新优惠是否可用
BigDecimal couponMinMoney = BigDecimal.ZERO;//所有代金券的使用额度总和
//获取并判断代金券信息
List<CouponUser> CouponUserList = Lists.newArrayList();
@ -1365,7 +1367,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
if (!isGoon) {
if (oldCouponList.size() > 0) {
if (oldCouponList.contains(couponIdStr)) {
isGoon = true;//被占用的新优惠卷在原优惠卷中存在则继续
isGoon = true;//被占用的新优惠券在原优惠券中存在则继续
}
}
}
@ -1447,7 +1449,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
//判断金额是否满足代金券金额最少消费额度
if (payMoney.compareTo(couponMinMoney) < 0) {
return Result.error("当前应付总金额不满足优惠券使用的最小额度,请重新选择优惠");
return Result.error("当前应付总金额不满足优惠券使用的最小额度,请重新选择优惠");
}
//减去代金券的金额
@ -1607,7 +1609,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
ordersMassageService.save(ordersMassage);
}
//释放原优惠
//释放原优惠
if (oldCouponList.size() > 0) {
for (String couponIdStr : oldCouponList) {
CouponUser couponUser = new CouponUser();
@ -5507,6 +5509,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
}
// @Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 1/5 * * * ?")
public void updateOrdersWarning() {
String value = commonInfoService.findOne(376).getValue();
baseMapper.updateOrdersWarning(value);
@ -5625,7 +5628,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
treeNode.putExtra("serveTime", object.getServeTime());//服务时间
treeNode.putExtra("payTime", object.getPayTime());//下单时间
treeNode.putExtra("ordersNo", object.getOrdersNo());//订单号
treeNode.putExtra("couponMoney", object.getCouponMoney());//优惠金额
treeNode.putExtra("couponMoney", object.getCouponMoney());//优惠金额
treeNode.putExtra("price", object.getPrice());//服务金额
treeNode.putExtra("artificerRate", object.getArtificerRate());//提成比例
treeNode.putExtra("projectBenefits", object.getProjectBenefits());//项目收益

View File

@ -23,4 +23,5 @@ public interface MassagePackageDetailDao extends BaseMapper<MassagePackageDetail
int delete(MassagePackageDetail massagePackageDetail);
MassagePackage findPackagePrice(MassagePackageDetail massagePackageDetail);
MassagePackageDetail getAppPackageDetail(Long id);
MassagePackageDetail findCkLcDetailCount(Long mainId);
}

View File

@ -46,12 +46,17 @@ public class MassagePackageDetail implements Serializable {
/**
* 服务次数
*/
private Long serviceCount;
private Integer serviceCount;
/**
* 间隔天数
*/
private Integer intervalDays;
/**
* 疗程描述
*/
@TableField(exist = false)
private String intervalDaysStr;
/**
* 图片

View File

@ -21,7 +21,7 @@ public class AppUserPackageOrderController {
@Autowired
private UserPackageOrderService service;
// @Login
@Login
@PostMapping("/insertOrders")
@ApiOperation("添加订单")
public Result insertOrders(@RequestBody UserPackageOrder userPackageOrder){
@ -29,7 +29,7 @@ public class AppUserPackageOrderController {
return service.insertOrders(userPackageOrder);
}
// @Login
@Login
@PostMapping("/payOrder")
@ApiOperation("钱包支付订单")
public Result payOrder(Long ordersId){
@ -37,7 +37,7 @@ public class AppUserPackageOrderController {
return service.payOrder(ordersId);
}
// @Login
@Login
@PostMapping("/findUserPackageOrders")
@ApiOperation("查询服务包订单")
public Result findUserPackageOrders(@RequestBody UserPackageOrder userPackageOrder){
@ -45,4 +45,13 @@ public class AppUserPackageOrderController {
return service.findUserPackageOrders(userPackageOrder);
}
@Login
@PostMapping("/selectOrdersDetails")
@ApiOperation("获取订单详情")
public Result selectOrdersDetails(Long ordersId){
//入参ordersId
return service.selectOrdersDetails(ordersId);
}
}

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sqx.modules.coupon.entity.CouponUser;
import lombok.Data;
import java.io.Serializable;
@ -108,6 +109,7 @@ public class UserPackageOrder implements Serializable {
/**
* 用户优惠券id
*/
@TableField(exist = false)
private Long userCouponId;
/**
@ -120,6 +122,7 @@ public class UserPackageOrder implements Serializable {
*/
@TableField(exist = false)
private Long type;
/**
* 代金券名称
*/
@ -135,5 +138,8 @@ public class UserPackageOrder implements Serializable {
@TableField(exist = false)
private List<UserPackageOrdersMapping> ordersPackageList;
@TableField(exist = false)
private List<CouponUser> couponUserList;
public UserPackageOrder() {}
}

View File

@ -1,11 +1,13 @@
package com.sqx.modules.bl.order.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description bl_user_package_order_mapping
@ -40,5 +42,125 @@ public class UserPackageOrdersMapping implements Serializable {
*/
private Integer num;
/**
* 名称
*/
@TableField(exist = false)
private String title;
/**
* 类型
*/
@TableField(exist = false)
private Integer type;
/**
* 原价
*/
@TableField(exist = false)
private BigDecimal oldPrice;
/**
* 现价
*/
@TableField(exist = false)
private BigDecimal price;
/**
* 图片
*/
@TableField(exist = false)
private String packageImg;
/**
* 内容
*/
@TableField(exist = false)
private String content;
/**
* 详细内容
*/
@TableField(exist = false)
private String contentImg;
/**
* 状态 1上 2下
*/
@TableField(exist = false)
private Integer status;
/**
* 加钟次数
*/
@TableField(exist = false)
private Integer addNum;
/**
* 好评率
*/
@TableField(exist = false)
private BigDecimal esteemRate;
/**
* 销量
*/
@TableField(exist = false)
private Integer sales;
/**
* 标签
*/
@TableField(exist = false)
private String labels;
/**
* 城市
*/
@TableField(exist = false)
private String city;
/**
* 创建时间
*/
@TableField(exist = false)
private String createTime;
/**
* 是否可用代金券 1是 2否
*/
@TableField(exist = false)
private Integer isCanCoupon;
/**
* 是否可用会员优惠 1是 2否
*/
@TableField(exist = false)
private Integer isCanVip;
/**
* 服务分类ID
*/
@TableField(exist = false)
private Long classifyId;
/**
* 类型名称
*/
@TableField(exist = false)
private String typeName;
/**
* 次数
*/
@TableField(exist = false)
private Integer serviceCount;
/**
* 疗程描述
*/
@TableField(exist = false)
private String intervalDaysStr;
public UserPackageOrdersMapping() {}
}

View File

@ -11,6 +11,8 @@ public interface UserPackageOrderService extends IService<UserPackageOrder> {
Result findCoupon(UserPackageOrder userPackageOrder);
void refund(UserPackageOrder userPackageOrder);
Result selectOrdersDetails(Long ordersId);
Result insertOrders(UserPackageOrder userPackageOrder);
Result payOrder(Long ordersId);

View File

@ -8,14 +8,16 @@ import com.google.common.collect.Lists;
import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.dao.VipDetailsDao;
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.entity.VipDetails;
import com.sqx.modules.app.entity.*;
import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserMoneyService;
import com.sqx.modules.app.service.UserVipService;
import com.sqx.modules.artificer.entity.Artificer;
import com.sqx.modules.artificer.entity.Orders;
import com.sqx.modules.artificer.entity.OrdersMassage;
import com.sqx.modules.bl.massage.dao.MassagePackageDetailDao;
import com.sqx.modules.bl.massage.entity.MassagePackage;
import com.sqx.modules.bl.massage.entity.MassagePackageDetail;
import com.sqx.modules.bl.massage.service.MassagePackageService;
import com.sqx.modules.bl.order.dao.UserPackageOrderDao;
import com.sqx.modules.bl.order.entity.UserPackage;
@ -69,6 +71,9 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
@Autowired
UserPackageOrdersMappingService userPackageOrdersMappingService;
@Autowired
MassagePackageDetailDao massagePackageDetailDao;
@Autowired
private CommonInfoService commonInfoService;
@ -119,6 +124,21 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
userPackageService.updateStatusByOrder(userPackage);
}
@Override
public Result selectOrdersDetails(Long ordersId){
UserPackageOrder orders = baseMapper.selectById(ordersId);
List<UserPackageOrdersMapping> ordersPackageList = userPackageOrdersMappingService.findListByOrdersId(ordersId);
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
if(ordersPackage.getType() == 105 || ordersPackage.getType() == 106){
MassagePackageDetail massagePackageDetail = massagePackageDetailDao.findCkLcDetailCount(ordersPackage.getPackageId());
ordersPackage.setServiceCount(massagePackageDetail.getServiceCount());
ordersPackage.setIntervalDaysStr(massagePackageDetail.getIntervalDaysStr());
}
}
orders.setOrdersPackageList(ordersPackageList);
return Result.success().put("data", orders);
}
@Override
public Result insertOrders(UserPackageOrder userPackageOrder){
reentrantReadWriteLock.writeLock().lock();
@ -180,7 +200,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
}
if(canCouponMoney.compareTo(couponMinMoney) < 0){
return Result.error("当前应付总金额不满足优惠券使用的最小额度,请重新选择优惠");
return Result.error("当前应付总金额不满足优惠券使用的最小额度,请重新选择优惠");
}
//获取用户VIP的优惠信息
@ -211,7 +231,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
totalMoney = totalMoney.subtract(userPackageOrder.getCouponMoney());//减去优惠额度后的总金额
totalMoney = totalMoney.subtract(userPackageOrder.getCouponMoney());//减去优惠额度后的总金额
userPackageOrder.setPayMoney(totalMoney);
userPackageOrder.setCreateTime(simpleDateFormat.format(new Date()));
@ -234,6 +254,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
//更新用户代金卷表
couponUserService.update(Wrappers.<CouponUser>lambdaUpdate().eq(CouponUser::getId, couponUser.getId()).set(CouponUser::getStatus, 1));
}
userPackageOrder.setCouponUserList(CouponUserList);
}
//插入用户-服务包-订单-服务包与订单映射关系表

View File

@ -26,5 +26,4 @@ public class UserPackageOrdersMappingServiceImpl extends ServiceImpl<UserPackage
public int insert(UserPackageOrdersMapping userPackageOrdersMapping){
return baseMapper.insert(userPackageOrdersMapping);
}
}

View File

@ -44,7 +44,7 @@ public class AppCouponUserController extends AbstractController {
}
//将所有超过失效时间的优惠券改为失效状态
// @Scheduled(cron = "0 */1 * * * ?", zone = "Asia/Shanghai")
@Scheduled(cron = "0 */1 * * * ?", zone = "Asia/Shanghai")
public void couponEnd(){
couponUserService.updateExpiration();
}

View File

@ -122,7 +122,7 @@ public class CouponUserServiceImpl extends ServiceImpl<CouponUserDao, CouponUser
if(daysBetween>7){
return Result.error("已过新人优惠期");
}
//获取所有新人优惠
//获取所有新人优惠
QueryWrapper<Coupon> couponQueryWrapper = new QueryWrapper<Coupon>();
couponQueryWrapper.eq("cou_type",1);

View File

@ -42,7 +42,7 @@ public class PayClassifyController {
payClassify.setCreateTime(sdf.format(new Date()));
payClassifyService.save(payClassify);
//删除以前的优惠
//删除以前的优惠
QueryWrapper<PayClassifyDetail> query = new QueryWrapper<PayClassifyDetail>();
query.eq("pay_classify_id",payClassify.getPayClassifyId());
payClassifyDetailService.remove(query);
@ -59,7 +59,7 @@ public class PayClassifyController {
@ApiOperation("修改充值分类")
public Result updatePayClassify(@RequestBody PayClassify payClassify){
payClassifyService.updateById(payClassify);
//删除以前的优惠
//删除以前的优惠
QueryWrapper<PayClassifyDetail> query = new QueryWrapper<PayClassifyDetail>();
query.eq("pay_classify_id",payClassify.getPayClassifyId());
payClassifyDetailService.remove(query);
@ -76,7 +76,7 @@ public class PayClassifyController {
@ApiOperation("删除充值分类")
public Result deletePayClassify(Long payClassifyId){
payClassifyService.removeById(payClassifyId);
//删除以前的优惠
//删除以前的优惠
QueryWrapper<PayClassifyDetail> query = new QueryWrapper<PayClassifyDetail>();
query.eq("pay_classify_id",payClassifyId);
payClassifyDetailService.remove(query);

View File

@ -217,4 +217,12 @@
where a.id = #{id}
</select>
<select id="findCkLcDetailCount" resultType="com.sqx.modules.bl.massage.entity.MassagePackageDetail">
select
sum(service_count) as serviceCount,
concat(round(sum(service_count)*avg(interval_days)),'天一疗程,每隔',round(avg(interval_days)),'天一次,共',round(sum(service_count)),'次') as interval_days_str
from bl_massage_package_detail a
where a.main_id = #{mainId}
</select>
</mapper>

View File

@ -22,13 +22,31 @@
<select id="findListByOrdersId" resultType="com.sqx.modules.bl.order.entity.UserPackageOrdersMapping">
select
mapping_id,
orders_id,
package_id,
num
from bl_user_package_order_mapping
where orders_id=#{ordersId}
order by mapping_id
a.mapping_id,
a.orders_id,
a.package_id,
a.num,
b.title,
b.type,
b.old_price,
b.price,
b.package_img,
b.content,
b.content_img,
b.status,
b.add_num,
b.esteem_rate,
b.sales,
b.labels,
b.city,
b.create_time,
b.is_can_coupon,
b.is_can_vip,
b.classify_id
from bl_user_package_order_mapping a
inner join bl_massage_package b on a.package_id = b.id
where a.orders_id=#{ordersId}
order by a.mapping_id
</select>
<insert id="insert" parameterType="com.sqx.modules.bl.order.entity.UserPackageOrdersMapping">