团购、限时秒杀
This commit is contained in:
parent
fa5b5ff12d
commit
1161def58a
|
@ -1,16 +1,15 @@
|
|||
package com.sqx.modules.bl.massage.app;
|
||||
|
||||
import com.sqx.common.utils.DateUtils;
|
||||
import com.sqx.common.utils.Result;
|
||||
import com.sqx.modules.app.annotation.Login;
|
||||
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 io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
@ -23,7 +22,7 @@ public class AppMassagePackageController {
|
|||
@Autowired
|
||||
private MassagePackageService service;
|
||||
|
||||
// @Login
|
||||
@Login
|
||||
@GetMapping("/findPage")
|
||||
@ApiOperation("查询按服务包(分页)")
|
||||
public Result findPage(MassagePackage massagePackage){
|
||||
|
@ -31,7 +30,7 @@ public class AppMassagePackageController {
|
|||
return service.findPage(massagePackage);
|
||||
}
|
||||
|
||||
// @Login
|
||||
@Login
|
||||
@GetMapping("/findPackageAndMassagePage")
|
||||
@ApiOperation("查询按服务包及项目(分页)")
|
||||
public Result findPackageAndMassagePage(MassagePackage massagePackage){
|
||||
|
@ -39,4 +38,25 @@ public class AppMassagePackageController {
|
|||
return service.findPackageAndMassagePage(massagePackage);
|
||||
}
|
||||
|
||||
@Login
|
||||
@GetMapping("/findAppActivityPage")
|
||||
@ApiOperation("查询按服务包(分页)")
|
||||
public Result findAppActivityPage(MassagePackage massagePackage){
|
||||
return service.findAppActivityPage(massagePackage);
|
||||
}
|
||||
|
||||
@Login
|
||||
@GetMapping("/getAppGroupDetail")
|
||||
@ApiOperation("查询团购详情")
|
||||
public Result getAppGroupDetail(@RequestAttribute("userId") Long userId,MassagePackage massagePackage){
|
||||
return service.getAppGroupDetail(userId,massagePackage);
|
||||
}
|
||||
|
||||
@Login
|
||||
@GetMapping("/getAppFlashDetail")
|
||||
@ApiOperation("查询限时秒杀详情")
|
||||
public Result getAppFlashDetail(@RequestAttribute("userId") Long userId,MassagePackage massagePackage){
|
||||
return service.getAppFlashDetail(userId,massagePackage);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,4 +19,6 @@ public interface MassagePackageDao extends BaseMapper<MassagePackage> {
|
|||
int updatePrice(MassagePackage massagePackage);
|
||||
int delete(MassagePackage massagePackage);
|
||||
IPage<MassagePackage> findPackageAndMassagePage(Page<MassagePackage> page,@Param("params") MassagePackage massagePackage);
|
||||
IPage<MassagePackage> findAppActivityPage(Page<MassagePackage> page,@Param("params") MassagePackage massagePackage);
|
||||
MassagePackage getAppActivityDetail(Long id);
|
||||
}
|
|
@ -37,6 +37,12 @@ public class MassagePackage implements Serializable {
|
|||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 类型名称
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String typeName;
|
||||
|
||||
/**
|
||||
* 原价
|
||||
*/
|
||||
|
@ -112,16 +118,47 @@ public class MassagePackage implements Serializable {
|
|||
*/
|
||||
private Long classifyId;
|
||||
|
||||
/**
|
||||
* 服务分类
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private Long classifyName;
|
||||
|
||||
/**
|
||||
* 等级 3新手 4专家 5资深
|
||||
*/
|
||||
private Integer level;
|
||||
|
||||
/**
|
||||
* 类型名称
|
||||
* 组团人数
|
||||
*/
|
||||
private Integer groupNum;
|
||||
|
||||
/**
|
||||
* 正在拼团人数
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String typeName;
|
||||
private Integer buyGroupNum;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private String startTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private String endTime;
|
||||
|
||||
/**
|
||||
* 是否活动0否1是
|
||||
*/
|
||||
private Integer isActivity;
|
||||
|
||||
/**
|
||||
* 是否只限新用户0否1是
|
||||
*/
|
||||
private Integer isNewer;
|
||||
|
||||
/**
|
||||
* 服务次数
|
||||
|
@ -129,6 +166,30 @@ public class MassagePackage implements Serializable {
|
|||
@TableField(exist = false)
|
||||
private Integer serviceCount;
|
||||
|
||||
/**
|
||||
* 服务时长
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private Integer duration;
|
||||
|
||||
/**
|
||||
* 是否限制性别 0不限制 1男 2女
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private Integer isSex;
|
||||
|
||||
/**
|
||||
* 适用人群
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String applyPeople;
|
||||
|
||||
/**
|
||||
* 简介
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String jianjie;
|
||||
|
||||
/**
|
||||
* 分类标识
|
||||
*/
|
||||
|
|
|
@ -14,6 +14,8 @@ public interface MassagePackageService extends IService<MassagePackage> {
|
|||
int updateStatus(MassagePackage massagePackage);
|
||||
int updatePrice(MassagePackage massagePackage);
|
||||
int delete(MassagePackage massagePackage);
|
||||
|
||||
Result findPackageAndMassagePage(MassagePackage massagePackage);
|
||||
Result findAppActivityPage(MassagePackage massagePackage);
|
||||
Result getAppGroupDetail(Long userId,MassagePackage massagePackage);
|
||||
Result getAppFlashDetail(Long userId,MassagePackage massagePackage);
|
||||
}
|
|
@ -2,16 +2,39 @@ package com.sqx.modules.bl.massage.service.impl;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sqx.common.utils.DateUtils;
|
||||
import com.sqx.common.utils.PageUtils;
|
||||
import com.sqx.common.utils.Result;
|
||||
import com.sqx.modules.app.entity.UserEntity;
|
||||
import com.sqx.modules.app.service.UserService;
|
||||
import com.sqx.modules.bl.collect.entity.CollectMassage;
|
||||
import com.sqx.modules.bl.collect.service.CollectMassageService;
|
||||
import com.sqx.modules.bl.massage.dao.MassagePackageDao;
|
||||
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.entity.UserPackageOrder;
|
||||
import com.sqx.modules.bl.order.service.UserPackageOrderService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class MassagePackageServiceImpl extends ServiceImpl<MassagePackageDao, MassagePackage> implements MassagePackageService {
|
||||
|
||||
@Autowired
|
||||
UserPackageOrderService orderService;
|
||||
|
||||
@Autowired
|
||||
private CollectMassageService collectMassageService;
|
||||
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
@Override
|
||||
public Result findPage(MassagePackage massagePackage){
|
||||
Page<MassagePackage> pages=new Page<>(massagePackage.getPage(),massagePackage.getLimit());
|
||||
|
@ -58,4 +81,78 @@ public class MassagePackageServiceImpl extends ServiceImpl<MassagePackageDao, Ma
|
|||
return Result.success().put("data",new PageUtils(baseMapper.findPackageAndMassagePage(pages,massagePackage)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result findAppActivityPage(MassagePackage massagePackage){
|
||||
massagePackage.setStartTime(DateUtils.format(new Date()));
|
||||
Page<MassagePackage> pages=new Page<>(massagePackage.getPage(),massagePackage.getLimit());
|
||||
return Result.success().put("data",new PageUtils(baseMapper.findAppActivityPage(pages,massagePackage)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询团购详情
|
||||
* @param userId
|
||||
* @param massagePackage
|
||||
* @return 团购详情(拼团人数,正在拼团订单,正在拼团人,时间,差几人拼成)
|
||||
*/
|
||||
@Override
|
||||
public Result getAppGroupDetail(Long userId,MassagePackage massagePackage){
|
||||
//插入浏览历史
|
||||
CollectMassage collectMassage=new CollectMassage();
|
||||
collectMassage.setClassify(2);
|
||||
collectMassage.setUserId(userId);
|
||||
collectMassage.setProjectId(massagePackage.getId());
|
||||
collectMassage.setFlag(3);
|
||||
collectMassageService.insertCollect(collectMassage);
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
MassagePackage entity = baseMapper.getAppActivityDetail(massagePackage.getId());
|
||||
List<UserPackageOrder> groupNoList = orderService.getActivityOrderList(massagePackage.getId(),4);
|
||||
int groupNum = entity.getGroupNum();
|
||||
Map<Long,String> userMap = new HashMap<Long,String>();
|
||||
if(groupNoList.size()>0){
|
||||
for(int i=0;i< groupNoList.size();i++){
|
||||
UserPackageOrder userPackageOrder = groupNoList.get(i);
|
||||
userPackageOrder.setStartTime(entity.getStartTime());
|
||||
userPackageOrder.setEndTime(entity.getEndTime());
|
||||
int lessNum = userPackageOrder.getLessNum();
|
||||
lessNum = groupNum - lessNum;
|
||||
userPackageOrder.setLessNum(lessNum);
|
||||
String groupNo = userPackageOrder.getGroupNo();
|
||||
List<UserPackageOrder> orderList = orderService.getActivityOrderListByGroupNo(groupNo);
|
||||
if(orderList.size()>0){
|
||||
for(UserPackageOrder order : orderList){
|
||||
UserEntity user = userService.selectUserById(order.getUserId());
|
||||
String phone = user.getPhone().trim();
|
||||
phone = phone.substring(phone.length()-4);
|
||||
order.setPhone(phone);
|
||||
order.setAvatar(user.getAvatar());
|
||||
userMap.put(order.getUserId(),phone);
|
||||
}
|
||||
userPackageOrder.setOrderList(orderList);
|
||||
}
|
||||
}
|
||||
}
|
||||
entity.setBuyGroupNum(map.size());
|
||||
map.put("groupData",entity);
|
||||
map.put("ordersData",groupNoList);
|
||||
return Result.success(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询限时秒杀详情
|
||||
* @param userId
|
||||
* @param massagePackage
|
||||
*/
|
||||
@Override
|
||||
public Result getAppFlashDetail(Long userId,MassagePackage massagePackage){
|
||||
//插入浏览历史
|
||||
CollectMassage collectMassage=new CollectMassage();
|
||||
collectMassage.setClassify(2);
|
||||
collectMassage.setUserId(userId);
|
||||
collectMassage.setProjectId(massagePackage.getId());
|
||||
collectMassage.setFlag(4);
|
||||
collectMassageService.insertCollect(collectMassage);
|
||||
MassagePackage entity = baseMapper.getAppActivityDetail(massagePackage.getId());
|
||||
return Result.success().put("data",entity);
|
||||
}
|
||||
|
||||
}
|
|
@ -41,7 +41,7 @@ public class AppUserPackageOrderController {
|
|||
@PostMapping("/findUserPackageOrders")
|
||||
@ApiOperation("查询服务包订单")
|
||||
public Result findUserPackageOrders(@RequestBody UserPackageOrder userPackageOrder){
|
||||
//入参:用户ID,代金券IDS,原总金额,应付总金额,会员优惠比,
|
||||
//入参:用户ID
|
||||
return service.findUserPackageOrders(userPackageOrder);
|
||||
}
|
||||
|
||||
|
@ -53,5 +53,28 @@ public class AppUserPackageOrderController {
|
|||
return service.selectOrdersDetails(ordersId);
|
||||
}
|
||||
|
||||
@Login
|
||||
@PostMapping("/insertGroupOrders")
|
||||
@ApiOperation("添加团购订单")
|
||||
public Result insertGroupOrders(@RequestBody UserPackageOrder userPackageOrder){
|
||||
//入参:用户ID,代金券IDS,会员优惠比,团号,开始时间,结束时间,是否只限新用户
|
||||
return service.insertGroupOrders(userPackageOrder);
|
||||
}
|
||||
|
||||
@Login
|
||||
@PostMapping("/payGroupOrders")
|
||||
@ApiOperation("支付团购订单")
|
||||
public Result payGroupOrders(Long ordersId){
|
||||
//入参:用户ID,代金券IDS,会员优惠比,团号,
|
||||
return service.payGroupOrders(ordersId);
|
||||
}
|
||||
|
||||
@Login
|
||||
@PostMapping("/insertFlashOrders")
|
||||
@ApiOperation("添加限时秒杀订单")
|
||||
public Result insertFlashOrders(@RequestBody UserPackageOrder userPackageOrder){
|
||||
//入参:用户ID,代金券IDS,会员优惠比,开始时间,结束时间,是否只限新用户
|
||||
return service.insertFlashOrders(userPackageOrder);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -24,4 +24,6 @@ public interface UserPackageDao extends BaseMapper<UserPackage> {
|
|||
|
||||
UserPackage getMyPackageById(Long id);
|
||||
|
||||
int deletePackageByOrders(Long ordersId);
|
||||
|
||||
}
|
|
@ -25,4 +25,6 @@ public interface UserPackageDetailDao extends BaseMapper<UserPackageDetail> {
|
|||
|
||||
UserPackageDetail findMassagePackageDetailsUsed(Long mainId);
|
||||
|
||||
int deleteDetailByMain(Long mainId);
|
||||
|
||||
}
|
|
@ -32,5 +32,12 @@ public interface UserPackageOrderDao extends BaseMapper<UserPackageOrder> {
|
|||
|
||||
int updateStatus(UserPackageOrder userPackageOrder);
|
||||
|
||||
List<UserPackageOrder> getActivityOrderList(Long id,Integer status);
|
||||
|
||||
List<UserPackageOrder> getActivityOrderListByGroupNo(String groupNo,Long userId);
|
||||
|
||||
int updateStatusByGroupNo(UserPackageOrder userPackageOrder);
|
||||
|
||||
List<UserPackageOrder> getUnGroupOrderList();
|
||||
|
||||
}
|
|
@ -15,4 +15,6 @@ public interface UserPackageOrdersMappingDao extends BaseMapper<UserPackageOrder
|
|||
|
||||
int insert(UserPackageOrdersMapping userPackageOrdersMapping);
|
||||
|
||||
int deleteByOrdersId(Long ordersId);
|
||||
|
||||
}
|
|
@ -46,11 +46,28 @@ public class UserPackageOrder implements Serializable {
|
|||
@TableField(exist = false)
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 电话
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 会员优惠比例
|
||||
*/
|
||||
private BigDecimal vipRate;
|
||||
|
||||
/**
|
||||
* VIP减免金额
|
||||
*/
|
||||
private BigDecimal vipReductionMoney;
|
||||
|
||||
/**
|
||||
* 原总金额
|
||||
*/
|
||||
|
@ -106,6 +123,17 @@ public class UserPackageOrder implements Serializable {
|
|||
*/
|
||||
private BigDecimal refundMoney;
|
||||
|
||||
/**
|
||||
* 团号
|
||||
*/
|
||||
private String groupNo;
|
||||
|
||||
/**
|
||||
* 代金券名称
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String couponName;
|
||||
|
||||
/**
|
||||
* 用户优惠券id
|
||||
*/
|
||||
|
@ -124,10 +152,28 @@ public class UserPackageOrder implements Serializable {
|
|||
private Long type;
|
||||
|
||||
/**
|
||||
* 代金券名称
|
||||
* 开始时间
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String couponName;
|
||||
private String startTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String endTime;
|
||||
|
||||
/**
|
||||
* 是否只限新用户
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private Integer isNewer;
|
||||
|
||||
/**
|
||||
* 差几个人数
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private Integer lessNum;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Integer page;
|
||||
|
@ -141,5 +187,8 @@ public class UserPackageOrder implements Serializable {
|
|||
@TableField(exist = false)
|
||||
private List<CouponUser> couponUserList;
|
||||
|
||||
@TableField(exist = false)
|
||||
private List<UserPackageOrder> orderList;
|
||||
|
||||
public UserPackageOrder() {}
|
||||
}
|
||||
|
|
|
@ -13,4 +13,5 @@ public interface UserPackageDetailService extends IService<UserPackageDetail> {
|
|||
Result findAppUsedQuantity(UserPackageDetail userPackageDetail);
|
||||
Result getMyPackageDetail(UserPackageDetail userPackageDetail);
|
||||
UserPackageDetail findMassagePackageDetailsUsed(Long mainId);
|
||||
int deleteDetailByMain(Long mainId);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.sqx.common.utils.Result;
|
|||
import com.sqx.modules.bl.order.entity.UserPackageOrder;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
|
||||
public interface UserPackageOrderService extends IService<UserPackageOrder> {
|
||||
Result findPage(UserPackageOrder userPackageOrder);
|
||||
|
@ -19,4 +20,15 @@ public interface UserPackageOrderService extends IService<UserPackageOrder> {
|
|||
|
||||
Result findUserPackageOrders(UserPackageOrder userPackageOrder);
|
||||
|
||||
List<UserPackageOrder> getActivityOrderList(Long id,Integer status);
|
||||
|
||||
List<UserPackageOrder> getActivityOrderListByGroupNo(String groupNo);
|
||||
|
||||
Result insertGroupOrders(UserPackageOrder userPackageOrder);
|
||||
|
||||
Result payGroupOrders(Long ordersId);
|
||||
|
||||
Result insertFlashOrders(UserPackageOrder userPackageOrder);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -12,4 +12,6 @@ public interface UserPackageOrdersMappingService extends IService<UserPackageOrd
|
|||
List<UserPackageOrdersMapping> findListByOrdersId(Long ordersId);
|
||||
|
||||
int insert(UserPackageOrdersMapping userPackageOrdersMapping);
|
||||
|
||||
int deleteByOrdersId(Long ordersId);
|
||||
}
|
|
@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||
import com.sqx.common.utils.Result;
|
||||
import com.sqx.modules.bl.order.entity.UserPackage;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface UserPackageService extends IService<UserPackage> {
|
||||
|
||||
Result findList(UserPackage userPackage);
|
||||
|
@ -15,4 +17,8 @@ public interface UserPackageService extends IService<UserPackage> {
|
|||
Result findMyPackageList(UserPackage userPackage);
|
||||
|
||||
UserPackage getMyPackageById(Long id);
|
||||
|
||||
int deletePackageByOrders(Long ordersId);
|
||||
|
||||
List<UserPackage> findList(Long ordersId);
|
||||
}
|
|
@ -75,4 +75,11 @@ public class UserPackageDetailServiceImpl extends ServiceImpl<UserPackageDetailD
|
|||
public UserPackageDetail findMassagePackageDetailsUsed(Long mainId){
|
||||
return baseMapper.findMassagePackageDetailsUsed(mainId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteDetailByMain(Long mainId){
|
||||
return baseMapper.deleteDetailByMain(mainId);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,16 +1,20 @@
|
|||
package com.sqx.modules.bl.order.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.sqx.common.utils.DateUtils;
|
||||
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.*;
|
||||
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.artificer.entity.Artificer;
|
||||
import com.sqx.modules.artificer.entity.MassageType;
|
||||
|
@ -33,6 +37,9 @@ import com.sqx.modules.bl.order.service.UserPackageService;
|
|||
import com.sqx.modules.common.service.CommonInfoService;
|
||||
import com.sqx.modules.coupon.entity.CouponUser;
|
||||
import com.sqx.modules.coupon.service.CouponUserService;
|
||||
import com.sqx.modules.pay.controller.app.AliPayController;
|
||||
import com.sqx.modules.pay.service.WxService;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -83,6 +90,15 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
|||
@Autowired
|
||||
private CommonInfoService commonInfoService;
|
||||
|
||||
@Autowired
|
||||
private WxService wxService;
|
||||
|
||||
@Autowired
|
||||
private AliPayController aliPayController;
|
||||
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
|
||||
|
||||
@Override
|
||||
|
@ -233,10 +249,12 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
|||
}
|
||||
}
|
||||
userPackageOrder.setVipRate(vipRate);
|
||||
|
||||
BigDecimal vipMoney = canVipMoney;
|
||||
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
|
||||
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
|
||||
canVipMoney = canVipMoney.setScale(2,BigDecimal.ROUND_HALF_UP);
|
||||
canVipMoney = canVipMoney.setScale(0,BigDecimal.ROUND_UP);
|
||||
BigDecimal vipReductionMoney = vipMoney.subtract(canVipMoney);
|
||||
userPackageOrder.setVipReductionMoney(vipReductionMoney);//会员减免金额
|
||||
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
|
||||
totalMoney = totalMoney.subtract(userPackageOrder.getCouponMoney());//减去优惠券额度后的总金额
|
||||
|
||||
|
@ -291,7 +309,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
|||
}else if(orders.getStatus()==2){
|
||||
return Result.error("订单已退款!");
|
||||
}else if(orders.getStatus()==3){
|
||||
return Result.error("订单支付超时,请发起支付!");
|
||||
return Result.error("订单支付超时,请重新发起购买!");
|
||||
}
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
|
@ -394,6 +412,480 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
|||
return Result.success().put("data", baseMapper.findUserPackageOrders(pages,userPackageOrder));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取拼团订单团号和拼团人数
|
||||
* @param id
|
||||
* @param status
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<UserPackageOrder> getActivityOrderList(Long id,Integer status){
|
||||
return baseMapper.getActivityOrderList(id,status);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取拼团订单信息
|
||||
* @param groupNo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<UserPackageOrder> getActivityOrderListByGroupNo(String groupNo){
|
||||
return baseMapper.getActivityOrderListByGroupNo(groupNo,null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Result insertGroupOrders(UserPackageOrder userPackageOrder){
|
||||
try {
|
||||
Long userId = userPackageOrder.getUserId();
|
||||
String groupNo = userPackageOrder.getGroupNo();
|
||||
int isNewer = userPackageOrder.getIsNewer();
|
||||
String startTimeStr = userPackageOrder.getStartTime();
|
||||
String endTimeStr = userPackageOrder.getEndTime();
|
||||
Date startTime = DateUtils.stringToDate(startTimeStr,"yyyy-MM-dd HH:mm:ss");
|
||||
Date endTime = DateUtils.stringToDate(endTimeStr,"yyyy-MM-dd HH:mm:ss");
|
||||
if(startTime.getTime()>System.currentTimeMillis()){
|
||||
return Result.error("团购还未开始,请稍后重试!");
|
||||
}
|
||||
if(endTime.getTime()<System.currentTimeMillis()){
|
||||
return Result.error("团购已结束,无法进行团购!");
|
||||
}
|
||||
if(isNewer == 1){
|
||||
//只限新用户
|
||||
UserEntity user = userService.selectUserById(userId);
|
||||
String createTimeStr = user.getCreateTime();
|
||||
Date createTime = DateUtils.addDateDays(DateUtils.stringToDate(createTimeStr,"yyyy-MM-dd HH:mm:ss"),7);
|
||||
if(createTime.getTime()<System.currentTimeMillis()){
|
||||
return Result.error("该团购只限新用户,请选择其他团购!");
|
||||
}
|
||||
}
|
||||
if(groupNo != null && !groupNo.equals("")){
|
||||
List<UserPackageOrder> list = baseMapper.getActivityOrderListByGroupNo(groupNo,userId);
|
||||
if(list.size()>0){
|
||||
for(UserPackageOrder orders : list){
|
||||
if(orders.getStatus().equals(1) || orders.getStatus().equals(4)){
|
||||
return Result.error("您已参与此团购,无法重复参加!");
|
||||
}
|
||||
//取消代金券
|
||||
if (orders.getCouponId() != null) {
|
||||
String couponIds = orders.getCouponId();
|
||||
if(couponIds.length()>0) {
|
||||
String[] couponArr = couponIds.trim().split(",");
|
||||
for(int i=0;i<couponArr.length;i++){
|
||||
if(couponArr[i]!=null && !couponArr[i].equals("")){
|
||||
Long couponId = Long.valueOf(couponArr[i]);
|
||||
CouponUser couponUser = couponUserService.getById(couponId);
|
||||
if (couponUser != null && couponUser.getStatus().equals(1)) {
|
||||
couponUser.setStatus(0);
|
||||
couponUserService.updateById(couponUser);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//删除订单项目
|
||||
userPackageOrdersMappingService.deleteByOrdersId(orders.getOrdersId());
|
||||
//删除订单
|
||||
baseMapper.deleteById(orders.getOrdersId());
|
||||
}
|
||||
}
|
||||
}
|
||||
BigDecimal canCouponMoney = BigDecimal.ZERO;//当可用代金券时的金额
|
||||
BigDecimal canVipMoney = BigDecimal.ZERO;//当可用vip时的金额
|
||||
BigDecimal totalMoney = BigDecimal.ZERO;//总金额
|
||||
List<Long> classifyIdArr = Lists.newArrayList();
|
||||
List<UserPackageOrdersMapping> ordersPackageList = userPackageOrder.getOrdersPackageList();
|
||||
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
|
||||
MassagePackage massagePackage = massagePackageService.getById(ordersPackage.getPackageId());
|
||||
BigDecimal sum = massagePackage.getPrice().multiply(new BigDecimal(ordersPackage.getNum()));
|
||||
sum = sum.setScale(0,BigDecimal.ROUND_UP);
|
||||
if(massagePackage.getIsCanCoupon() == 1){
|
||||
canCouponMoney = canCouponMoney.add(sum);
|
||||
}
|
||||
if(massagePackage.getIsCanVip() == 1){
|
||||
canVipMoney = canVipMoney.add(sum);
|
||||
}
|
||||
totalMoney = totalMoney.add(sum);
|
||||
Long classifyId = massagePackage.getClassifyId();
|
||||
classifyIdArr.add(classifyId);
|
||||
}
|
||||
|
||||
BigDecimal couponMinMoney = BigDecimal.ZERO;//所有代金券的使用额度总和
|
||||
List<CouponUser> CouponUserList = Lists.newArrayList();
|
||||
String couponIds = userPackageOrder.getCouponId();
|
||||
if(couponIds!=null && 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;
|
||||
for(int i=0;i<couponArr.length;i++){
|
||||
if(couponArr[i]!=null && !couponArr[i].equals("")){
|
||||
Long couponId = Long.valueOf(couponArr[i]);
|
||||
CouponUser couponUser = couponUserService.getById(couponId);
|
||||
if (!couponUser.getStatus().equals(0)) {
|
||||
return Result.error("优惠券已被使用!");
|
||||
}
|
||||
if(couponUser.getClassifyId()!=0){
|
||||
if(!classifyIdArr.contains(couponUser.getClassifyId())){
|
||||
return Result.error("优惠券不满足使用条件!");
|
||||
}
|
||||
}
|
||||
couponMinMoney = couponMinMoney.add(couponUser.getMinMoney());
|
||||
CouponUserList.add(couponUser);
|
||||
BigDecimal money= couponUser.getMoney();
|
||||
couponMoney = couponMoney.add(money);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
userPackageOrder.setCouponCount(count);
|
||||
userPackageOrder.setCouponMoney(couponMoney);
|
||||
}else{
|
||||
userPackageOrder.setCouponCount(0);
|
||||
userPackageOrder.setCouponMoney(BigDecimal.ZERO);
|
||||
}
|
||||
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) {
|
||||
//获取用户到期时间
|
||||
Date date = DateUtils.stringToDate(userVip.getEndTime(),"yyyy-MM-dd HH:mm:ss");
|
||||
if (date.getTime() >= System.currentTimeMillis()) {
|
||||
VipDetails vipDetails = vipDetailsDao.selectOne(new QueryWrapper<VipDetails>().eq("vip_name_type", userVip.getVipNameType()));
|
||||
if (vipDetails != null) {
|
||||
vipRate = vipDetails.getRate();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
userPackageOrder.setVipRate(vipRate);
|
||||
BigDecimal vipMoney = canVipMoney;
|
||||
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
|
||||
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
|
||||
canVipMoney = canVipMoney.setScale(0,BigDecimal.ROUND_UP);
|
||||
BigDecimal vipReductionMoney = vipMoney.subtract(canVipMoney);
|
||||
userPackageOrder.setVipReductionMoney(vipReductionMoney);//会员减免金额
|
||||
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
|
||||
totalMoney = totalMoney.subtract(userPackageOrder.getCouponMoney());//减去优惠券额度后的总金额
|
||||
userPackageOrder.setPayMoney(totalMoney);
|
||||
userPackageOrder.setCreateTime(DateUtils.format(new Date()));
|
||||
userPackageOrder.setStatus(0);
|
||||
userPackageOrder.setOrdersNo(getGeneralOrder());
|
||||
userPackageOrder.setGroupNo(getGeneralGroupNo());
|
||||
//插入订单表
|
||||
baseMapper.insertOrders(userPackageOrder);
|
||||
Long ordersId = userPackageOrder.getOrdersId();
|
||||
//插入订单代金券表
|
||||
if(CouponUserList.size()>0){
|
||||
for(int i=0;i<CouponUserList.size();i++){
|
||||
CouponUser couponUser = CouponUserList.get(i);
|
||||
UserPackageOrder upo = new UserPackageOrder();
|
||||
upo.setOrdersId(ordersId);
|
||||
upo.setUserCouponId(couponUser.getId());
|
||||
upo.setCouponName(couponUser.getCouponName());
|
||||
upo.setCouponMoney(couponUser.getMoney());
|
||||
baseMapper.insertCoupon(upo);
|
||||
//更新用户代金券表
|
||||
couponUserService.update(Wrappers.<CouponUser>lambdaUpdate().eq(CouponUser::getId, couponUser.getId()).set(CouponUser::getStatus, 1));
|
||||
}
|
||||
userPackageOrder.setCouponUserList(CouponUserList);
|
||||
}
|
||||
//插入用户-服务包-订单-服务包与订单映射关系表
|
||||
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
|
||||
ordersPackage.setOrdersId(ordersId);
|
||||
userPackageOrdersMappingService.insert(ordersPackage);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("添加订单异常" + e.getMessage(), e);
|
||||
}
|
||||
return Result.success().put("data", userPackageOrder);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Result payGroupOrders(Long ordersId) {
|
||||
try {
|
||||
UserPackageOrder orders = baseMapper.getById(ordersId);
|
||||
if (orders == null) {
|
||||
return Result.error("订单生成失败,请重新下单!");
|
||||
}else if(orders.getStatus()==1){
|
||||
return Result.error("订单已支付!");
|
||||
}else if(orders.getStatus()==2){
|
||||
return Result.error("订单已退款!");
|
||||
}else if(orders.getStatus()==3){
|
||||
return Result.error("订单支付超时,请重新发起购买!");
|
||||
}
|
||||
UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId());
|
||||
if (userMoney.getMoney().doubleValue() < orders.getPayMoney().doubleValue()) {
|
||||
return Result.error("钱包余额不足,请充值!");
|
||||
}
|
||||
userMoneyService.updateMoney(2, orders.getUserId(), orders.getPayMoney().doubleValue());
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
//查询用户当前余额
|
||||
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId());
|
||||
//插入余额
|
||||
userMoneyDetails.setBalance(userNowMoney.getMoney());
|
||||
//插入操作类型为已操作用户余额
|
||||
userMoneyDetails.setManipulateType(2);
|
||||
userMoneyDetails.setMoney(orders.getPayMoney());
|
||||
userMoneyDetails.setUserId(orders.getUserId());
|
||||
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
|
||||
userMoneyDetails.setTitle("支付服务包订单");
|
||||
userMoneyDetails.setType(2);
|
||||
userMoneyDetails.setState(2);
|
||||
userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
|
||||
userMoneyDetails.setBlRole(1);
|
||||
userMoneyDetails.setBlFlag(1);
|
||||
userMoneyDetailsService.insert(userMoneyDetails);
|
||||
orders.setStatus(4);//团购中
|
||||
orders.setPayWay(5);
|
||||
orders.setPayTime(DateUtils.format(new Date()));
|
||||
baseMapper.updateStatus(orders);
|
||||
//获取支付已支付的数量是否满足此次团购人数,是则完成此次拼团,并将商品发送给客户
|
||||
int buyGroupNum = 0;
|
||||
int groupNum = 0;
|
||||
List<UserPackageOrder> list = baseMapper.getActivityOrderListByGroupNo(orders.getGroupNo(),null);
|
||||
if(list.size()>0){
|
||||
for(UserPackageOrder userPackageOrder : list) {
|
||||
if (userPackageOrder.getStatus().equals(1) || userPackageOrder.getStatus().equals(4)) {
|
||||
buyGroupNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
MassagePackage massagePackage = null;
|
||||
List<UserPackageOrdersMapping> mappingList = userPackageOrdersMappingService.findListByOrdersId(ordersId);
|
||||
if(mappingList.size()>0){
|
||||
Long packageId = mappingList.get(0).getPackageId();
|
||||
massagePackage = massagePackageService.getById(packageId);
|
||||
groupNum = massagePackage.getGroupNum();
|
||||
}
|
||||
if(buyGroupNum>0 && groupNum>0 && buyGroupNum>=groupNum){
|
||||
for(UserPackageOrder userPackageOrder : list) {
|
||||
if (userPackageOrder.getStatus().equals(1) || userPackageOrder.getStatus().equals(4)) {
|
||||
//删除单据防止重复数据
|
||||
List<UserPackage> userPackageList = userPackageService.findList(userPackageOrder.getOrdersId());
|
||||
if(userPackageList.size()>0){
|
||||
for(UserPackage userPackage : userPackageList){
|
||||
userPackageService.removeById(userPackage.getId());
|
||||
userPackageDetailService.deleteDetailByMain(userPackage.getId());
|
||||
}
|
||||
}
|
||||
//插入单据
|
||||
List<UserPackageOrdersMapping> packageOrderMappingList = userPackageOrdersMappingService.findListByOrdersId(userPackageOrder.getOrdersId());
|
||||
for (UserPackageOrdersMapping ordersPackage : packageOrderMappingList) {
|
||||
int quantity = ordersPackage.getNum();
|
||||
for(int i=0;i<quantity;i++){
|
||||
//拆分插入用户团购
|
||||
UserPackage userPackage = new UserPackage();
|
||||
userPackage.setUserId(userPackageOrder.getUserId());
|
||||
userPackage.setPackageId(massagePackage.getId());
|
||||
userPackage.setOrdersId(userPackageOrder.getOrdersId());
|
||||
userPackage.setOrdersNo(userPackageOrder.getOrdersNo());
|
||||
userPackage.setCreateTime(DateUtils.format(new Date()));
|
||||
userPackage.setTitle(massagePackage.getTitle());
|
||||
userPackage.setType(massagePackage.getType());
|
||||
userPackage.setOldPrice(massagePackage.getOldPrice());
|
||||
userPackage.setPrice(massagePackage.getPrice());
|
||||
userPackage.setPackageImg(massagePackage.getPackageImg());
|
||||
userPackage.setContent(massagePackage.getContent());
|
||||
userPackage.setContentImg(massagePackage.getContentImg());
|
||||
userPackage.setLabels(massagePackage.getLabels());
|
||||
userPackage.setCity(massagePackage.getCity());
|
||||
userPackage.setClassifyId(massagePackage.getClassifyId());
|
||||
userPackage.setLevel(massagePackage.getLevel());
|
||||
userPackageService.insert(userPackage);
|
||||
Long mainId = userPackage.getId();
|
||||
//拆分插入用户服务器项目详情
|
||||
UserPackageDetail userPackageDetail = new UserPackageDetail();
|
||||
userPackageDetail.setMainId(ordersPackage.getPackageId());
|
||||
List<UserPackageDetail> userPackageDetailList = userPackageDetailService.findMassagePackageDetails(userPackageDetail);
|
||||
if(userPackageDetailList.size()>0){
|
||||
for(int j=0;j<userPackageDetailList.size();j++){
|
||||
UserPackageDetail upd = userPackageDetailList.get(j);
|
||||
upd.setMainId(mainId);
|
||||
upd.setCreateTime(DateUtils.format(new Date()));
|
||||
upd.setLevel(massagePackage.getLevel());
|
||||
int serviceCount = upd.getServiceCount();
|
||||
for(int k=0;k<serviceCount;k++){
|
||||
userPackageDetailService.insert(upd);
|
||||
updateMassageSale(upd.getMassageTypeId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//完成团购
|
||||
UserPackageOrder packageOrder = new UserPackageOrder();
|
||||
packageOrder.setGroupNo(orders.getGroupNo());
|
||||
packageOrder.setStatus(1);
|
||||
baseMapper.updateStatus(packageOrder);
|
||||
//修改团购销量
|
||||
int sales = massagePackage.getSales();
|
||||
sales = sales+1;
|
||||
massagePackage.setSales(sales);
|
||||
massagePackageService.updateSales(massagePackage);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("钱包支付服务包订单异常:" + e.getMessage(), e);
|
||||
return Result.error("钱包支付服务包订单异常!");
|
||||
}
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Result insertFlashOrders(UserPackageOrder userPackageOrder){
|
||||
try {
|
||||
Long userId = userPackageOrder.getUserId();
|
||||
String startTimeStr = userPackageOrder.getStartTime();
|
||||
String endTimeStr = userPackageOrder.getEndTime();
|
||||
int isNewer = userPackageOrder.getIsNewer();
|
||||
Date startTime = DateUtils.stringToDate(startTimeStr,"yyyy-MM-dd HH:mm:ss");
|
||||
Date endTime = DateUtils.stringToDate(endTimeStr,"yyyy-MM-dd HH:mm:ss");
|
||||
if(startTime.getTime()>System.currentTimeMillis()){
|
||||
return Result.error("限时秒杀还未开始,请稍后重试!");
|
||||
}
|
||||
if(endTime.getTime()<System.currentTimeMillis()){
|
||||
return Result.error("限时秒杀已结束,无法进行限时秒杀!");
|
||||
}
|
||||
if(isNewer == 1){
|
||||
//只限新用户
|
||||
UserEntity user = userService.selectUserById(userId);
|
||||
String createTimeStr = user.getCreateTime();
|
||||
Date createTime = DateUtils.addDateDays(DateUtils.stringToDate(createTimeStr,"yyyy-MM-dd HH:mm:ss"),7);
|
||||
if(createTime.getTime()<System.currentTimeMillis()){
|
||||
return Result.error("该限时秒杀只限新用户,请选择其他限时秒杀!");
|
||||
}
|
||||
}
|
||||
BigDecimal canCouponMoney = BigDecimal.ZERO;//当可用代金券时的金额
|
||||
BigDecimal canVipMoney = BigDecimal.ZERO;//当可用vip时的金额
|
||||
BigDecimal totalMoney = BigDecimal.ZERO;//总金额
|
||||
List<Long> classifyIdArr = Lists.newArrayList();
|
||||
List<UserPackageOrdersMapping> ordersPackageList = userPackageOrder.getOrdersPackageList();
|
||||
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
|
||||
MassagePackage massagePackage = massagePackageService.getById(ordersPackage.getPackageId());
|
||||
BigDecimal sum = massagePackage.getPrice().multiply(new BigDecimal(ordersPackage.getNum()));
|
||||
sum = sum.setScale(0,BigDecimal.ROUND_UP);
|
||||
if(massagePackage.getIsCanCoupon() == 1){
|
||||
canCouponMoney = canCouponMoney.add(sum);
|
||||
}
|
||||
if(massagePackage.getIsCanVip() == 1){
|
||||
canVipMoney = canVipMoney.add(sum);
|
||||
}
|
||||
totalMoney = totalMoney.add(sum);
|
||||
Long classifyId = massagePackage.getClassifyId();
|
||||
classifyIdArr.add(classifyId);
|
||||
}
|
||||
BigDecimal couponMinMoney = BigDecimal.ZERO;//所有代金券的使用额度总和
|
||||
List<CouponUser> CouponUserList = Lists.newArrayList();
|
||||
String couponIds = userPackageOrder.getCouponId();
|
||||
if(couponIds!=null && 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;
|
||||
for(int i=0;i<couponArr.length;i++){
|
||||
if(couponArr[i]!=null && !couponArr[i].equals("")){
|
||||
Long couponId = Long.valueOf(couponArr[i]);
|
||||
CouponUser couponUser = couponUserService.getById(couponId);
|
||||
if (!couponUser.getStatus().equals(0)) {
|
||||
return Result.error("优惠券已被使用!");
|
||||
}
|
||||
if(couponUser.getClassifyId()!=0){
|
||||
if(!classifyIdArr.contains(couponUser.getClassifyId())){
|
||||
return Result.error("优惠券不满足使用条件!");
|
||||
}
|
||||
}
|
||||
couponMinMoney = couponMinMoney.add(couponUser.getMinMoney());
|
||||
CouponUserList.add(couponUser);
|
||||
BigDecimal money= couponUser.getMoney();
|
||||
couponMoney = couponMoney.add(money);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
userPackageOrder.setCouponCount(count);
|
||||
userPackageOrder.setCouponMoney(couponMoney);
|
||||
}else{
|
||||
userPackageOrder.setCouponCount(0);
|
||||
userPackageOrder.setCouponMoney(BigDecimal.ZERO);
|
||||
}
|
||||
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) {
|
||||
//获取用户到期时间
|
||||
Date date = DateUtils.stringToDate(userVip.getEndTime(),"yyyy-MM-dd HH:mm:ss");
|
||||
if (date.getTime() >= System.currentTimeMillis()) {
|
||||
VipDetails vipDetails = vipDetailsDao.selectOne(new QueryWrapper<VipDetails>().eq("vip_name_type", userVip.getVipNameType()));
|
||||
if (vipDetails != null) {
|
||||
vipRate = vipDetails.getRate();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
userPackageOrder.setVipRate(vipRate);
|
||||
BigDecimal vipMoney = canVipMoney;
|
||||
BigDecimal unCanVipMoney = totalMoney.subtract(canVipMoney);//非会员优惠金额
|
||||
canVipMoney = canVipMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));//对可用vip的金额进行优惠
|
||||
canVipMoney = canVipMoney.setScale(0,BigDecimal.ROUND_UP);
|
||||
BigDecimal vipReductionMoney = vipMoney.subtract(canVipMoney);
|
||||
userPackageOrder.setVipReductionMoney(vipReductionMoney);//会员减免金额
|
||||
totalMoney = canVipMoney.add(unCanVipMoney);//优惠后的总金额
|
||||
totalMoney = totalMoney.subtract(userPackageOrder.getCouponMoney());//减去优惠券额度后的总金额
|
||||
userPackageOrder.setPayMoney(totalMoney);
|
||||
userPackageOrder.setCreateTime(DateUtils.format(new Date()));
|
||||
userPackageOrder.setStatus(0);
|
||||
userPackageOrder.setOrdersNo(getGeneralOrder());
|
||||
//插入订单表
|
||||
baseMapper.insertOrders(userPackageOrder);
|
||||
Long ordersId = userPackageOrder.getOrdersId();
|
||||
//插入订单代金券表
|
||||
if(CouponUserList.size()>0){
|
||||
for(int i=0;i<CouponUserList.size();i++){
|
||||
CouponUser couponUser = CouponUserList.get(i);
|
||||
UserPackageOrder upo = new UserPackageOrder();
|
||||
upo.setOrdersId(ordersId);
|
||||
upo.setUserCouponId(couponUser.getId());
|
||||
upo.setCouponName(couponUser.getCouponName());
|
||||
upo.setCouponMoney(couponUser.getMoney());
|
||||
baseMapper.insertCoupon(upo);
|
||||
//更新用户代金券表
|
||||
couponUserService.update(Wrappers.<CouponUser>lambdaUpdate().eq(CouponUser::getId, couponUser.getId()).set(CouponUser::getStatus, 1));
|
||||
}
|
||||
userPackageOrder.setCouponUserList(CouponUserList);
|
||||
}
|
||||
//插入用户-服务包-订单-服务包与订单映射关系表
|
||||
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
|
||||
ordersPackage.setOrdersId(ordersId);
|
||||
userPackageOrdersMappingService.insert(ordersPackage);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("添加订单异常" + e.getMessage(), e);
|
||||
}
|
||||
return Result.success().put("data", userPackageOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 每5分钟自动扫描未支付订单,进行取消,释放代金券
|
||||
|
@ -428,6 +920,88 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 每5分钟自动扫描未成团的订单,进行退款,释放代金券
|
||||
*/
|
||||
@Scheduled(cron = "0 0/5 * * * ?")
|
||||
public void autoRefundGroupOrders() {
|
||||
List<UserPackageOrder> ordersList = baseMapper.getUnGroupOrderList();
|
||||
for (UserPackageOrder orders : ordersList) {
|
||||
BigDecimal userMoney = orders.getPayMoney();
|
||||
//取消订单
|
||||
orders.setStatus(2);//取消状态
|
||||
orders.setRefundTime(DateUtils.format(new Date()));//取消时间
|
||||
orders.setRefundMoney(userMoney);
|
||||
baseMapper.updateById(orders);
|
||||
//取消代金券
|
||||
if (orders.getCouponId() != null) {
|
||||
String couponIds = orders.getCouponId();
|
||||
if(couponIds.length()>0) {
|
||||
String[] couponArr = couponIds.trim().split(",");
|
||||
for(int i=0;i<couponArr.length;i++){
|
||||
if(couponArr[i]!=null && !couponArr[i].equals("")){
|
||||
Long couponId = Long.valueOf(couponArr[i]);
|
||||
CouponUser couponUser = couponUserService.getById(couponId);
|
||||
if (couponUser != null && couponUser.getStatus().equals(1)) {
|
||||
couponUser.setStatus(0);
|
||||
couponUserService.updateById(couponUser);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
if (orders.getPayWay() == 1 || orders.getPayWay() == 2 || orders.getPayWay() == 3 || orders.getPayWay() == 4) {
|
||||
if(userMoney.compareTo(BigDecimal.ZERO) > 0){
|
||||
boolean refund = wxService.refund(orders.getOrdersNo(), orders.getPayMoney(), userMoney, orders.getPayWay());
|
||||
if (!refund) {
|
||||
log.error("订单号:"+orders.getOrdersNo()+"团购订单支付宝退款失败!");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
userMoneyDetails.setManipulateType(1);
|
||||
userMoneyDetails.setBlFlag(2);
|
||||
} else if (orders.getPayWay() == 6) {
|
||||
if(userMoney.compareTo(BigDecimal.ZERO) > 0) {
|
||||
String data = aliPayController.alipayRefund(orders.getOrdersNo(), userMoney);
|
||||
if (StringUtils.isNotBlank(data)) {
|
||||
log.error(data);
|
||||
JSONObject jsonObject = JSON.parseObject(data);
|
||||
JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response");
|
||||
String code1 = alipay_trade_refund_response.getString("code");
|
||||
if (!"10000".equals(code1)) {
|
||||
log.error("订单号:"+orders.getOrdersNo()+"团购订单微信退款失败!");
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
log.error("订单号:"+orders.getOrdersNo()+"团购订单微信退款失败!");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
userMoneyDetails.setManipulateType(1);
|
||||
userMoneyDetails.setBlFlag(2);
|
||||
} else {
|
||||
userMoneyService.updateMoney(1, orders.getUserId(), userMoney.doubleValue());
|
||||
//查询用户当前余额
|
||||
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId());
|
||||
//插入余额
|
||||
userMoneyDetails.setBalance(userNowMoney.getMoney());
|
||||
//插入操作类型为已操作用户余额
|
||||
userMoneyDetails.setManipulateType(2);
|
||||
userMoneyDetails.setBlFlag(1);
|
||||
}
|
||||
userMoneyDetails.setMoney(userMoney);
|
||||
userMoneyDetails.setUserId(orders.getUserId());
|
||||
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已原路退款!");
|
||||
userMoneyDetails.setTitle("团购订单退款");
|
||||
userMoneyDetails.setType(1);
|
||||
userMoneyDetails.setState(2);
|
||||
userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
|
||||
userMoneyDetails.setBlRole(1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
}
|
||||
}
|
||||
|
||||
public String getGeneralOrder() {
|
||||
Date date = new Date();
|
||||
String newString = String.format("%0" + 4 + "d", (int) ((Math.random() * 9 + 1) * 1000));
|
||||
|
@ -436,4 +1010,12 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
|||
return format + newString;
|
||||
}
|
||||
|
||||
public String getGeneralGroupNo() {
|
||||
Date date = new Date();
|
||||
String newString = String.format("%0" + 4 + "d", (int) ((Math.random() * 9 + 1) * 1000));
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
String format = sdf.format(date);
|
||||
return "G"+format + newString;
|
||||
}
|
||||
|
||||
}
|
|
@ -21,9 +21,13 @@ public class UserPackageOrdersMappingServiceImpl extends ServiceImpl<UserPackage
|
|||
return baseMapper.findListByOrdersId(ordersId);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int insert(UserPackageOrdersMapping userPackageOrdersMapping){
|
||||
return baseMapper.insert(userPackageOrdersMapping);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByOrdersId(Long ordersId){
|
||||
return baseMapper.deleteByOrdersId(ordersId);
|
||||
}
|
||||
}
|
|
@ -50,4 +50,16 @@ public class UserPackageServiceImpl extends ServiceImpl<UserPackageDao, UserPack
|
|||
return baseMapper.getMyPackageById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deletePackageByOrders(Long ordersId){
|
||||
return baseMapper.deletePackageByOrders(ordersId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UserPackage> findList(Long ordersId){
|
||||
UserPackage userPackage = new UserPackage();
|
||||
userPackage.setOrdersId(ordersId);
|
||||
return baseMapper.findList(userPackage);
|
||||
}
|
||||
|
||||
}
|
|
@ -1081,7 +1081,7 @@ public class AliPayController {
|
|||
userMoneyDetails.setBlFlag(1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
|
||||
orders.setStatus(2);
|
||||
orders.setStatus(1);
|
||||
orders.setPayWay(payDetails.getClassify());
|
||||
orders.setPayTime(sdf.format(new Date()));
|
||||
userPackageOrderDao.updateStatus(orders);
|
||||
|
@ -1138,6 +1138,112 @@ public class AliPayController {
|
|||
}
|
||||
}
|
||||
}
|
||||
}else if(payDetails.getType()==8) {
|
||||
UserPackageOrder orders = userPackageOrderDao.getByNo(outTradeNo);
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setManipulateType(1);
|
||||
userMoneyDetails.setUserId(orders.getUserId());
|
||||
userMoneyDetails.setMoney(orders.getPayMoney());
|
||||
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
|
||||
userMoneyDetails.setTitle("支付团购订单");
|
||||
userMoneyDetails.setType(2);
|
||||
userMoneyDetails.setState(2);
|
||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||
userMoneyDetails.setBlRole(1);
|
||||
userMoneyDetails.setBlFlag(1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
orders.setStatus(4);//拼团中
|
||||
orders.setPayWay(payDetails.getClassify());
|
||||
orders.setPayTime(sdf.format(new Date()));
|
||||
userPackageOrderDao.updateStatus(orders);
|
||||
//获取支付已支付的数量是否满足此次团购人数,是则完成此次拼团,并将商品发送给客户
|
||||
int buyGroupNum = 0;
|
||||
int groupNum = 0;
|
||||
List<UserPackageOrder> list = userPackageOrderDao.getActivityOrderListByGroupNo(orders.getGroupNo(),null);
|
||||
if(list.size()>0){
|
||||
for(UserPackageOrder userPackageOrder : list) {
|
||||
if (userPackageOrder.getStatus().equals(1) || userPackageOrder.getStatus().equals(4)) {
|
||||
buyGroupNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
MassagePackage massagePackage = null;
|
||||
List<UserPackageOrdersMapping> mappingList = userPackageOrdersMappingService.findListByOrdersId(orders.getOrdersId());
|
||||
if(mappingList.size()>0){
|
||||
Long packageId = mappingList.get(0).getPackageId();
|
||||
massagePackage = massagePackageService.getById(packageId);
|
||||
groupNum = massagePackage.getGroupNum();
|
||||
}
|
||||
if(buyGroupNum>0 && groupNum>0 && buyGroupNum>=groupNum){
|
||||
for(UserPackageOrder userPackageOrder : list) {
|
||||
if (userPackageOrder.getStatus().equals(1) || userPackageOrder.getStatus().equals(4)) {
|
||||
//删除单据防止重复数据
|
||||
List<UserPackage> userPackageList = userPackageService.findList(userPackageOrder.getOrdersId());
|
||||
if(userPackageList.size()>0){
|
||||
for(UserPackage userPackage : userPackageList){
|
||||
userPackageService.removeById(userPackage.getId());
|
||||
userPackageDetailService.deleteDetailByMain(userPackage.getId());
|
||||
}
|
||||
}
|
||||
//插入单据
|
||||
List<UserPackageOrdersMapping> packageOrderMappingList = userPackageOrdersMappingService.findListByOrdersId(userPackageOrder.getOrdersId());
|
||||
for (UserPackageOrdersMapping ordersPackage : packageOrderMappingList) {
|
||||
int quantity = ordersPackage.getNum();
|
||||
for(int i=0;i<quantity;i++){
|
||||
//拆分插入用户团购
|
||||
UserPackage userPackage = new UserPackage();
|
||||
userPackage.setUserId(userPackageOrder.getUserId());
|
||||
userPackage.setPackageId(massagePackage.getId());
|
||||
userPackage.setOrdersId(userPackageOrder.getOrdersId());
|
||||
userPackage.setOrdersNo(userPackageOrder.getOrdersNo());
|
||||
userPackage.setCreateTime(DateUtils.format(new Date()));
|
||||
userPackage.setTitle(massagePackage.getTitle());
|
||||
userPackage.setType(massagePackage.getType());
|
||||
userPackage.setOldPrice(massagePackage.getOldPrice());
|
||||
userPackage.setPrice(massagePackage.getPrice());
|
||||
userPackage.setPackageImg(massagePackage.getPackageImg());
|
||||
userPackage.setContent(massagePackage.getContent());
|
||||
userPackage.setContentImg(massagePackage.getContentImg());
|
||||
userPackage.setLabels(massagePackage.getLabels());
|
||||
userPackage.setCity(massagePackage.getCity());
|
||||
userPackage.setClassifyId(massagePackage.getClassifyId());
|
||||
userPackage.setLevel(massagePackage.getLevel());
|
||||
userPackageService.insert(userPackage);
|
||||
Long mainId = userPackage.getId();
|
||||
//拆分插入用户服务器项目详情
|
||||
UserPackageDetail userPackageDetail = new UserPackageDetail();
|
||||
userPackageDetail.setMainId(ordersPackage.getPackageId());
|
||||
List<UserPackageDetail> userPackageDetailList = userPackageDetailService.findMassagePackageDetails(userPackageDetail);
|
||||
if(userPackageDetailList.size()>0){
|
||||
for(int j=0;j<userPackageDetailList.size();j++){
|
||||
UserPackageDetail upd = userPackageDetailList.get(j);
|
||||
upd.setMainId(mainId);
|
||||
upd.setCreateTime(DateUtils.format(new Date()));
|
||||
upd.setLevel(massagePackage.getLevel());
|
||||
int serviceCount = upd.getServiceCount();
|
||||
for(int k=0;k<serviceCount;k++){
|
||||
userPackageDetailService.insert(upd);
|
||||
MassageType massageType = massageTypeService.getById(upd.getMassageTypeId());
|
||||
massageType.setSales(massageType.getSales()+1);
|
||||
massageTypeService.updateById(massageType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//完成团购
|
||||
UserPackageOrder packageOrder = new UserPackageOrder();
|
||||
packageOrder.setGroupNo(orders.getGroupNo());
|
||||
packageOrder.setStatus(1);
|
||||
userPackageOrderDao.updateStatus(packageOrder);
|
||||
//修改团购销量
|
||||
int sales = massagePackage.getSales();
|
||||
sales = sales+1;
|
||||
massagePackage.setSales(sales);
|
||||
massagePackageService.updateSales(massagePackage);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -1580,7 +1686,7 @@ public class AliPayController {
|
|||
}
|
||||
|
||||
@Login
|
||||
@ApiOperation("支付宝支付订单")
|
||||
@ApiOperation("支付宝支付套餐订单")
|
||||
@RequestMapping(value = "/payPackageOrder", method = RequestMethod.POST)
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result payPackageOrder(Long ordersId, Integer type) {
|
||||
|
@ -1592,7 +1698,7 @@ public class AliPayController {
|
|||
}else if(orders.getStatus()==2){
|
||||
return Result.error("订单已退款!");
|
||||
}else if(orders.getStatus()==3){
|
||||
return Result.error("订单支付超时,请发起支付!");
|
||||
return Result.error("订单支付超时,请重新发起购买!");
|
||||
}
|
||||
|
||||
//通知页面地址
|
||||
|
@ -1625,6 +1731,52 @@ public class AliPayController {
|
|||
return Result.success();
|
||||
}
|
||||
|
||||
@Login
|
||||
@ApiOperation("支付宝支付团购订单")
|
||||
@RequestMapping(value = "/payGroupOrders", method = RequestMethod.POST)
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result payGroupOrders(Long ordersId, Integer type) {
|
||||
UserPackageOrder orders = userPackageOrderDao.getById(ordersId);
|
||||
if (orders == null) {
|
||||
return Result.error("订单生成失败,请重新下单!");
|
||||
}else if(orders.getStatus()==1){
|
||||
return Result.error("订单已支付!");
|
||||
}else if(orders.getStatus()==2){
|
||||
return Result.error("订单已退款!");
|
||||
}else if(orders.getStatus()==3){
|
||||
return Result.error("订单支付超时,请重新发起购买!");
|
||||
}
|
||||
|
||||
//通知页面地址
|
||||
CommonInfo one = commonInfoService.findOne(19);
|
||||
String returnUrl = one.getValue() + "/#/pages/task/recharge";
|
||||
CommonInfo one3 = commonInfoService.findOne(12);
|
||||
String name = one3.getValue();
|
||||
PayDetails payDetails1 = payDetailsDao.selectByOrderId(orders.getOrdersNo());
|
||||
if(payDetails1==null){
|
||||
PayDetails payDetails = new PayDetails();
|
||||
payDetails.setState(0);
|
||||
payDetails.setCreateTime(sdf.format(new Date()));
|
||||
payDetails.setOrderId(orders.getOrdersNo());
|
||||
payDetails.setUserId(orders.getUserId());
|
||||
payDetails.setMoney(orders.getPayMoney().doubleValue());
|
||||
payDetails.setClassify(6);
|
||||
payDetails.setType(8);
|
||||
payDetailsDao.insert(payDetails);
|
||||
}else{
|
||||
payDetails1.setClassify(6);
|
||||
payDetails1.setType(8);
|
||||
payDetailsDao.updateById(payDetails1);
|
||||
}
|
||||
// if (type == 1) {
|
||||
// return payApp(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue());
|
||||
// } else {
|
||||
// return payH5(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue(), returnUrl);
|
||||
// }
|
||||
payOrderResult(orders.getOrdersNo());
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@Login
|
||||
@ApiOperation("支付宝支付订单")
|
||||
@RequestMapping(value = "/payOrderCashDeposit", method = RequestMethod.POST)
|
||||
|
@ -2266,7 +2418,7 @@ public class AliPayController {
|
|||
userMoneyDetails.setBlFlag(1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
|
||||
orders.setStatus(2);
|
||||
orders.setStatus(1);
|
||||
orders.setPayWay(payDetails.getClassify());
|
||||
orders.setPayTime(sdf.format(new Date()));
|
||||
userPackageOrderDao.updateStatus(orders);
|
||||
|
@ -2323,6 +2475,112 @@ public class AliPayController {
|
|||
}
|
||||
}
|
||||
}
|
||||
}else if(payDetails.getType()==8) {
|
||||
UserPackageOrder orders = userPackageOrderDao.getByNo(outTradeNo);
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setManipulateType(1);
|
||||
userMoneyDetails.setUserId(orders.getUserId());
|
||||
userMoneyDetails.setMoney(orders.getPayMoney());
|
||||
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
|
||||
userMoneyDetails.setTitle("支付团购订单");
|
||||
userMoneyDetails.setType(2);
|
||||
userMoneyDetails.setState(2);
|
||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||
userMoneyDetails.setBlRole(1);
|
||||
userMoneyDetails.setBlFlag(1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
orders.setStatus(4);//拼团中
|
||||
orders.setPayWay(payDetails.getClassify());
|
||||
orders.setPayTime(sdf.format(new Date()));
|
||||
userPackageOrderDao.updateStatus(orders);
|
||||
//获取支付已支付的数量是否满足此次团购人数,是则完成此次拼团,并将商品发送给客户
|
||||
int buyGroupNum = 0;
|
||||
int groupNum = 0;
|
||||
List<UserPackageOrder> list = userPackageOrderDao.getActivityOrderListByGroupNo(orders.getGroupNo(),null);
|
||||
if(list.size()>0){
|
||||
for(UserPackageOrder userPackageOrder : list) {
|
||||
if (userPackageOrder.getStatus().equals(1) || userPackageOrder.getStatus().equals(4)) {
|
||||
buyGroupNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
MassagePackage massagePackage = null;
|
||||
List<UserPackageOrdersMapping> mappingList = userPackageOrdersMappingService.findListByOrdersId(orders.getOrdersId());
|
||||
if(mappingList.size()>0){
|
||||
Long packageId = mappingList.get(0).getPackageId();
|
||||
massagePackage = massagePackageService.getById(packageId);
|
||||
groupNum = massagePackage.getGroupNum();
|
||||
}
|
||||
if(buyGroupNum>0 && groupNum>0 && buyGroupNum>=groupNum){
|
||||
for(UserPackageOrder userPackageOrder : list) {
|
||||
if (userPackageOrder.getStatus().equals(1) || userPackageOrder.getStatus().equals(4)) {
|
||||
//删除单据防止重复数据
|
||||
List<UserPackage> userPackageList = userPackageService.findList(userPackageOrder.getOrdersId());
|
||||
if(userPackageList.size()>0){
|
||||
for(UserPackage userPackage : userPackageList){
|
||||
userPackageService.removeById(userPackage.getId());
|
||||
userPackageDetailService.deleteDetailByMain(userPackage.getId());
|
||||
}
|
||||
}
|
||||
//插入单据
|
||||
List<UserPackageOrdersMapping> packageOrderMappingList = userPackageOrdersMappingService.findListByOrdersId(userPackageOrder.getOrdersId());
|
||||
for (UserPackageOrdersMapping ordersPackage : packageOrderMappingList) {
|
||||
int quantity = ordersPackage.getNum();
|
||||
for(int i=0;i<quantity;i++){
|
||||
//拆分插入用户团购
|
||||
UserPackage userPackage = new UserPackage();
|
||||
userPackage.setUserId(userPackageOrder.getUserId());
|
||||
userPackage.setPackageId(massagePackage.getId());
|
||||
userPackage.setOrdersId(userPackageOrder.getOrdersId());
|
||||
userPackage.setOrdersNo(userPackageOrder.getOrdersNo());
|
||||
userPackage.setCreateTime(DateUtils.format(new Date()));
|
||||
userPackage.setTitle(massagePackage.getTitle());
|
||||
userPackage.setType(massagePackage.getType());
|
||||
userPackage.setOldPrice(massagePackage.getOldPrice());
|
||||
userPackage.setPrice(massagePackage.getPrice());
|
||||
userPackage.setPackageImg(massagePackage.getPackageImg());
|
||||
userPackage.setContent(massagePackage.getContent());
|
||||
userPackage.setContentImg(massagePackage.getContentImg());
|
||||
userPackage.setLabels(massagePackage.getLabels());
|
||||
userPackage.setCity(massagePackage.getCity());
|
||||
userPackage.setClassifyId(massagePackage.getClassifyId());
|
||||
userPackage.setLevel(massagePackage.getLevel());
|
||||
userPackageService.insert(userPackage);
|
||||
Long mainId = userPackage.getId();
|
||||
//拆分插入用户服务器项目详情
|
||||
UserPackageDetail userPackageDetail = new UserPackageDetail();
|
||||
userPackageDetail.setMainId(ordersPackage.getPackageId());
|
||||
List<UserPackageDetail> userPackageDetailList = userPackageDetailService.findMassagePackageDetails(userPackageDetail);
|
||||
if(userPackageDetailList.size()>0){
|
||||
for(int j=0;j<userPackageDetailList.size();j++){
|
||||
UserPackageDetail upd = userPackageDetailList.get(j);
|
||||
upd.setMainId(mainId);
|
||||
upd.setCreateTime(DateUtils.format(new Date()));
|
||||
upd.setLevel(massagePackage.getLevel());
|
||||
int serviceCount = upd.getServiceCount();
|
||||
for(int k=0;k<serviceCount;k++){
|
||||
userPackageDetailService.insert(upd);
|
||||
MassageType massageType = massageTypeService.getById(upd.getMassageTypeId());
|
||||
massageType.setSales(massageType.getSales()+1);
|
||||
massageTypeService.updateById(massageType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//完成团购
|
||||
UserPackageOrder packageOrder = new UserPackageOrder();
|
||||
packageOrder.setGroupNo(orders.getGroupNo());
|
||||
packageOrder.setStatus(1);
|
||||
userPackageOrderDao.updateStatus(packageOrder);
|
||||
//修改团购销量
|
||||
int sales = massagePackage.getSales();
|
||||
sales = sales+1;
|
||||
massagePackage.setSales(sales);
|
||||
massagePackageService.updateSales(massagePackage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,6 +56,13 @@ public class ApiWeiXinPayController {
|
|||
return wxService.payPackageOrder(ordersId,type,request);
|
||||
}
|
||||
|
||||
@Login
|
||||
@ApiOperation("微信app支付团购订单")
|
||||
@PostMapping("/payGroupOrders")
|
||||
public Result payGroupOrders(Long ordersId,Integer type,HttpServletRequest request) throws Exception {
|
||||
return wxService.payGroupOrders(ordersId,type,request);
|
||||
}
|
||||
|
||||
|
||||
@Login
|
||||
@ApiOperation("缴纳保证金")
|
||||
|
|
|
@ -20,6 +20,8 @@ public interface WxService {
|
|||
|
||||
Result payPackageOrder(Long id, Integer classify,HttpServletRequest request) throws Exception;
|
||||
|
||||
Result payGroupOrders(Long id, Integer classify,HttpServletRequest request) throws Exception;
|
||||
|
||||
Result payCoupon(Long userId, Integer type, Long couponIssueId,HttpServletRequest request) throws Exception;
|
||||
|
||||
Result pay(Double moneys, Integer type, Long userId, String outTradeNo,HttpServletRequest request) throws Exception;
|
||||
|
|
|
@ -688,7 +688,7 @@ public class WxServiceImpl implements WxService {
|
|||
}else if(orders.getStatus()==2){
|
||||
return Result.error("订单已退款!");
|
||||
}else if(orders.getStatus()==3){
|
||||
return Result.error("订单支付超时,请发起支付!");
|
||||
return Result.error("订单支付超时,请重新发起购买!");
|
||||
}
|
||||
|
||||
PayDetails payDetails1 = payDetailsDao.selectByOrderId(orders.getOrdersNo());
|
||||
|
@ -713,6 +713,41 @@ public class WxServiceImpl implements WxService {
|
|||
return Result.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result payGroupOrders(Long id, Integer classify,HttpServletRequest request) throws Exception {
|
||||
UserPackageOrder orders = userPackageOrderDao.getById(id);
|
||||
if (orders == null) {
|
||||
return Result.error("订单生成失败,请重新下单!");
|
||||
}else if(orders.getStatus()==1){
|
||||
return Result.error("订单已支付!");
|
||||
}else if(orders.getStatus()==2){
|
||||
return Result.error("订单已退款!");
|
||||
}else if(orders.getStatus()==3){
|
||||
return Result.error("订单支付超时,请重新发起购买!");
|
||||
}
|
||||
|
||||
PayDetails payDetails1 = payDetailsDao.selectByOrderId(orders.getOrdersNo());
|
||||
if (payDetails1 == null) {
|
||||
PayDetails payDetails = new PayDetails();
|
||||
payDetails.setState(0);
|
||||
payDetails.setCreateTime(sdf.format(new Date()));
|
||||
payDetails.setOrderId(orders.getOrdersNo());
|
||||
payDetails.setUserId(orders.getUserId());
|
||||
payDetails.setMoney(orders.getPayMoney().doubleValue());
|
||||
payDetails.setClassify(classify);
|
||||
payDetails.setType(8);
|
||||
payDetailsDao.insert(payDetails);
|
||||
} else {
|
||||
payDetails1.setClassify(classify);
|
||||
payDetails1.setType(8);
|
||||
payDetailsDao.updateById(payDetails1);
|
||||
}
|
||||
// return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
|
||||
payOrderResult(orders.getOrdersNo());
|
||||
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
private Result payPackageOrderResult(String ordersNo,Integer classify){
|
||||
Orders orders = ordersService.selectOrdersByOrderNo(ordersNo);
|
||||
if(orders.getIsSupplement() != null){
|
||||
|
@ -1847,7 +1882,7 @@ public class WxServiceImpl implements WxService {
|
|||
userMoneyDetails.setBlFlag(1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
|
||||
orders.setStatus(2);
|
||||
orders.setStatus(1);
|
||||
orders.setPayWay(payDetails.getClassify());
|
||||
orders.setPayTime(sdf.format(new Date()));
|
||||
userPackageOrderDao.updateStatus(orders);
|
||||
|
@ -1904,6 +1939,114 @@ public class WxServiceImpl implements WxService {
|
|||
}
|
||||
}
|
||||
}
|
||||
}else if(payDetails.getType()==8) {
|
||||
//服务包下单,分单
|
||||
UserPackageOrder orders = userPackageOrderDao.getByNo(out_trade_no);
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setManipulateType(1);
|
||||
userMoneyDetails.setUserId(orders.getUserId());
|
||||
userMoneyDetails.setMoney(orders.getPayMoney());
|
||||
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
|
||||
userMoneyDetails.setTitle("支付团购订单");
|
||||
userMoneyDetails.setType(2);
|
||||
userMoneyDetails.setState(2);
|
||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||
userMoneyDetails.setBlRole(1);
|
||||
userMoneyDetails.setBlFlag(1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
orders.setStatus(4);//团购中
|
||||
orders.setPayWay(payDetails.getClassify());
|
||||
orders.setPayTime(sdf.format(new Date()));
|
||||
userPackageOrderDao.updateStatus(orders);
|
||||
|
||||
//获取支付已支付的数量是否满足此次团购人数,是则完成此次拼团,并将商品发送给客户
|
||||
int buyGroupNum = 0;
|
||||
int groupNum = 0;
|
||||
List<UserPackageOrder> list = userPackageOrderDao.getActivityOrderListByGroupNo(orders.getGroupNo(),null);
|
||||
if(list.size()>0){
|
||||
for(UserPackageOrder userPackageOrder : list) {
|
||||
if (userPackageOrder.getStatus().equals(1) || userPackageOrder.getStatus().equals(4)) {
|
||||
buyGroupNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
MassagePackage massagePackage = null;
|
||||
List<UserPackageOrdersMapping> mappingList = userPackageOrdersMappingService.findListByOrdersId(orders.getOrdersId());
|
||||
if(mappingList.size()>0){
|
||||
Long packageId = mappingList.get(0).getPackageId();
|
||||
massagePackage = massagePackageService.getById(packageId);
|
||||
groupNum = massagePackage.getGroupNum();
|
||||
}
|
||||
if(buyGroupNum>0 && groupNum>0 && buyGroupNum>=groupNum){
|
||||
for(UserPackageOrder userPackageOrder : list) {
|
||||
if (userPackageOrder.getStatus().equals(1) || userPackageOrder.getStatus().equals(4)) {
|
||||
//删除单据防止重复数据
|
||||
List<UserPackage> userPackageList = userPackageService.findList(userPackageOrder.getOrdersId());
|
||||
if(userPackageList.size()>0){
|
||||
for(UserPackage userPackage : userPackageList){
|
||||
userPackageService.removeById(userPackage.getId());
|
||||
userPackageDetailService.deleteDetailByMain(userPackage.getId());
|
||||
}
|
||||
}
|
||||
//插入单据
|
||||
List<UserPackageOrdersMapping> packageOrderMappingList = userPackageOrdersMappingService.findListByOrdersId(userPackageOrder.getOrdersId());
|
||||
for (UserPackageOrdersMapping ordersPackage : packageOrderMappingList) {
|
||||
int quantity = ordersPackage.getNum();
|
||||
for(int i=0;i<quantity;i++){
|
||||
//拆分插入用户团购
|
||||
UserPackage userPackage = new UserPackage();
|
||||
userPackage.setUserId(userPackageOrder.getUserId());
|
||||
userPackage.setPackageId(massagePackage.getId());
|
||||
userPackage.setOrdersId(userPackageOrder.getOrdersId());
|
||||
userPackage.setOrdersNo(userPackageOrder.getOrdersNo());
|
||||
userPackage.setCreateTime(DateUtils.format(new Date()));
|
||||
userPackage.setTitle(massagePackage.getTitle());
|
||||
userPackage.setType(massagePackage.getType());
|
||||
userPackage.setOldPrice(massagePackage.getOldPrice());
|
||||
userPackage.setPrice(massagePackage.getPrice());
|
||||
userPackage.setPackageImg(massagePackage.getPackageImg());
|
||||
userPackage.setContent(massagePackage.getContent());
|
||||
userPackage.setContentImg(massagePackage.getContentImg());
|
||||
userPackage.setLabels(massagePackage.getLabels());
|
||||
userPackage.setCity(massagePackage.getCity());
|
||||
userPackage.setClassifyId(massagePackage.getClassifyId());
|
||||
userPackage.setLevel(massagePackage.getLevel());
|
||||
userPackageService.insert(userPackage);
|
||||
Long mainId = userPackage.getId();
|
||||
//拆分插入用户服务器项目详情
|
||||
UserPackageDetail userPackageDetail = new UserPackageDetail();
|
||||
userPackageDetail.setMainId(ordersPackage.getPackageId());
|
||||
List<UserPackageDetail> userPackageDetailList = userPackageDetailService.findMassagePackageDetails(userPackageDetail);
|
||||
if(userPackageDetailList.size()>0){
|
||||
for(int j=0;j<userPackageDetailList.size();j++){
|
||||
UserPackageDetail upd = userPackageDetailList.get(j);
|
||||
upd.setMainId(mainId);
|
||||
upd.setCreateTime(DateUtils.format(new Date()));
|
||||
upd.setLevel(massagePackage.getLevel());
|
||||
int serviceCount = upd.getServiceCount();
|
||||
for(int k=0;k<serviceCount;k++){
|
||||
userPackageDetailService.insert(upd);
|
||||
MassageType massageType = massageTypeService.getById(upd.getMassageTypeId());
|
||||
massageType.setSales(massageType.getSales()+1);
|
||||
massageTypeService.updateById(massageType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//完成团购
|
||||
UserPackageOrder packageOrder = new UserPackageOrder();
|
||||
packageOrder.setGroupNo(orders.getGroupNo());
|
||||
packageOrder.setStatus(1);
|
||||
userPackageOrderDao.updateStatus(packageOrder);
|
||||
//修改团购销量
|
||||
int sales = massagePackage.getSales();
|
||||
sales = sales+1;
|
||||
massagePackage.setSales(sales);
|
||||
massagePackageService.updateSales(massagePackage);
|
||||
}
|
||||
}
|
||||
}
|
||||
System.err.println("微信手机支付回调成功订单号:" + out_trade_no + "");
|
||||
|
@ -2495,7 +2638,7 @@ public class WxServiceImpl implements WxService {
|
|||
userMoneyDetails.setBlFlag(1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
|
||||
orders.setStatus(2);
|
||||
orders.setStatus(1);
|
||||
orders.setPayWay(payDetails.getClassify());
|
||||
orders.setPayTime(sdf.format(new Date()));
|
||||
userPackageOrderDao.updateStatus(orders);
|
||||
|
@ -2552,6 +2695,114 @@ public class WxServiceImpl implements WxService {
|
|||
}
|
||||
}
|
||||
}
|
||||
}else if(payDetails.getType()==8) {
|
||||
//服务包下单,分单
|
||||
UserPackageOrder orders = userPackageOrderDao.getByNo(out_trade_no);
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setManipulateType(1);
|
||||
userMoneyDetails.setUserId(orders.getUserId());
|
||||
userMoneyDetails.setMoney(orders.getPayMoney());
|
||||
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
|
||||
userMoneyDetails.setTitle("支付团购订单");
|
||||
userMoneyDetails.setType(2);
|
||||
userMoneyDetails.setState(2);
|
||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||
userMoneyDetails.setBlRole(1);
|
||||
userMoneyDetails.setBlFlag(1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
orders.setStatus(4);//团购中
|
||||
orders.setPayWay(payDetails.getClassify());
|
||||
orders.setPayTime(sdf.format(new Date()));
|
||||
userPackageOrderDao.updateStatus(orders);
|
||||
|
||||
//获取支付已支付的数量是否满足此次团购人数,是则完成此次拼团,并将商品发送给客户
|
||||
int buyGroupNum = 0;
|
||||
int groupNum = 0;
|
||||
List<UserPackageOrder> list = userPackageOrderDao.getActivityOrderListByGroupNo(orders.getGroupNo(),null);
|
||||
if(list.size()>0){
|
||||
for(UserPackageOrder userPackageOrder : list) {
|
||||
if (userPackageOrder.getStatus().equals(1) || userPackageOrder.getStatus().equals(4)) {
|
||||
buyGroupNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
MassagePackage massagePackage = null;
|
||||
List<UserPackageOrdersMapping> mappingList = userPackageOrdersMappingService.findListByOrdersId(orders.getOrdersId());
|
||||
if(mappingList.size()>0){
|
||||
Long packageId = mappingList.get(0).getPackageId();
|
||||
massagePackage = massagePackageService.getById(packageId);
|
||||
groupNum = massagePackage.getGroupNum();
|
||||
}
|
||||
if(buyGroupNum>0 && groupNum>0 && buyGroupNum>=groupNum){
|
||||
for(UserPackageOrder userPackageOrder : list) {
|
||||
if (userPackageOrder.getStatus().equals(1) || userPackageOrder.getStatus().equals(4)) {
|
||||
//删除单据防止重复数据
|
||||
List<UserPackage> userPackageList = userPackageService.findList(userPackageOrder.getOrdersId());
|
||||
if(userPackageList.size()>0){
|
||||
for(UserPackage userPackage : userPackageList){
|
||||
userPackageService.removeById(userPackage.getId());
|
||||
userPackageDetailService.deleteDetailByMain(userPackage.getId());
|
||||
}
|
||||
}
|
||||
//插入单据
|
||||
List<UserPackageOrdersMapping> packageOrderMappingList = userPackageOrdersMappingService.findListByOrdersId(userPackageOrder.getOrdersId());
|
||||
for (UserPackageOrdersMapping ordersPackage : packageOrderMappingList) {
|
||||
int quantity = ordersPackage.getNum();
|
||||
for(int i=0;i<quantity;i++){
|
||||
//拆分插入用户团购
|
||||
UserPackage userPackage = new UserPackage();
|
||||
userPackage.setUserId(userPackageOrder.getUserId());
|
||||
userPackage.setPackageId(massagePackage.getId());
|
||||
userPackage.setOrdersId(userPackageOrder.getOrdersId());
|
||||
userPackage.setOrdersNo(userPackageOrder.getOrdersNo());
|
||||
userPackage.setCreateTime(DateUtils.format(new Date()));
|
||||
userPackage.setTitle(massagePackage.getTitle());
|
||||
userPackage.setType(massagePackage.getType());
|
||||
userPackage.setOldPrice(massagePackage.getOldPrice());
|
||||
userPackage.setPrice(massagePackage.getPrice());
|
||||
userPackage.setPackageImg(massagePackage.getPackageImg());
|
||||
userPackage.setContent(massagePackage.getContent());
|
||||
userPackage.setContentImg(massagePackage.getContentImg());
|
||||
userPackage.setLabels(massagePackage.getLabels());
|
||||
userPackage.setCity(massagePackage.getCity());
|
||||
userPackage.setClassifyId(massagePackage.getClassifyId());
|
||||
userPackage.setLevel(massagePackage.getLevel());
|
||||
userPackageService.insert(userPackage);
|
||||
Long mainId = userPackage.getId();
|
||||
//拆分插入用户服务器项目详情
|
||||
UserPackageDetail userPackageDetail = new UserPackageDetail();
|
||||
userPackageDetail.setMainId(ordersPackage.getPackageId());
|
||||
List<UserPackageDetail> userPackageDetailList = userPackageDetailService.findMassagePackageDetails(userPackageDetail);
|
||||
if(userPackageDetailList.size()>0){
|
||||
for(int j=0;j<userPackageDetailList.size();j++){
|
||||
UserPackageDetail upd = userPackageDetailList.get(j);
|
||||
upd.setMainId(mainId);
|
||||
upd.setCreateTime(DateUtils.format(new Date()));
|
||||
upd.setLevel(massagePackage.getLevel());
|
||||
int serviceCount = upd.getServiceCount();
|
||||
for(int k=0;k<serviceCount;k++){
|
||||
userPackageDetailService.insert(upd);
|
||||
MassageType massageType = massageTypeService.getById(upd.getMassageTypeId());
|
||||
massageType.setSales(massageType.getSales()+1);
|
||||
massageTypeService.updateById(massageType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//完成团购
|
||||
UserPackageOrder packageOrder = new UserPackageOrder();
|
||||
packageOrder.setGroupNo(orders.getGroupNo());
|
||||
packageOrder.setStatus(1);
|
||||
userPackageOrderDao.updateStatus(packageOrder);
|
||||
//修改团购销量
|
||||
int sales = massagePackage.getSales();
|
||||
sales = sales+1;
|
||||
massagePackage.setSales(sales);
|
||||
massagePackageService.updateSales(massagePackage);
|
||||
}
|
||||
}
|
||||
}
|
||||
System.err.println("微信手机支付回调成功订单号:" + out_trade_no + "");
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
where d.main_id = m.id
|
||||
) as service_count
|
||||
from bl_massage_package m
|
||||
where 1=1
|
||||
where is_activity = #{params.isActivity}
|
||||
<if test="params.status!=null and params.status!=0">
|
||||
and m.status=#{params.status}
|
||||
</if>
|
||||
|
@ -73,6 +73,7 @@
|
|||
from bl_massage_package a
|
||||
left join sys_dict b on a.type = b.id
|
||||
where a.status = 1
|
||||
and a.is_activity = 0
|
||||
<if test="params.city!=null and params.city!=''">
|
||||
and (a.city like concat('%',#{params.city},'%') or a.city='不限')
|
||||
</if>
|
||||
|
@ -94,5 +95,95 @@
|
|||
order by sales desc,id asc
|
||||
</select>
|
||||
|
||||
<select id="findAppActivityPage" resultType="com.sqx.modules.bl.massage.entity.MassagePackage">
|
||||
select
|
||||
a.id,
|
||||
a.type,
|
||||
d.value as type_name,
|
||||
a.price,
|
||||
a.old_price as oldPrice,
|
||||
a.title,
|
||||
a.package_img as packageImg,
|
||||
a.content,
|
||||
a.content_img as contentImg,
|
||||
a.sales,
|
||||
a.labels,
|
||||
a.city,
|
||||
a.is_can_coupon as isCanCoupon,
|
||||
a.is_can_vip as isCanVip,
|
||||
a.classify_id as classifyId,
|
||||
c.value as classifyName,
|
||||
a.level,
|
||||
a.group_num as groupNum,
|
||||
0 as buyGroupNum,
|
||||
a.start_time as startTime,
|
||||
a.end_time as endTime,
|
||||
a.is_newer as isNewer,
|
||||
m.duration,
|
||||
m.is_sex as isSex,
|
||||
m.apply_people as applyPeople,
|
||||
m.jianjie
|
||||
from bl_massage_package a
|
||||
inner join bl_massage_package_detail b on b.main_id = a.id
|
||||
left join massage_type m on b.massage_type_id = m.massage_type_id
|
||||
left join sys_dict c on a.classify_id = c.id
|
||||
left join sys_dict d on a.type = d.id
|
||||
where a.is_activity = 1
|
||||
and a.status = 1
|
||||
<if test="params.startTime!=null and params.startTime!=''">
|
||||
and a.start_time <= #{params.startTime}
|
||||
and a.end_time >= #{params.startTime}
|
||||
</if>
|
||||
<if test="params.type!=null and params.type!=''">
|
||||
and a.type=#{params.type}
|
||||
</if>
|
||||
<if test="params.level!=null and params.level!=''">
|
||||
and a.level=#{params.level}
|
||||
</if>
|
||||
<if test="params.classifyId!=null and params.classifyId!=''">
|
||||
and a.classify_id=#{params.classifyId}
|
||||
</if>
|
||||
<if test="params.city!=null and params.city!=''">
|
||||
and (a.city like concat('%',#{params.city},'%') or a.city='不限')
|
||||
</if>
|
||||
<if test="params.title!=null and params.title!=''">
|
||||
and a.title like concat('%',#{params.title},'%')
|
||||
</if>
|
||||
order by a.is_newer desc,a.price asc,a.id desc
|
||||
</select>
|
||||
|
||||
<select id="getAppActivityDetail" resultType="com.sqx.modules.bl.massage.entity.MassagePackage">
|
||||
select
|
||||
a.id,
|
||||
a.price,
|
||||
a.old_price as oldPrice,
|
||||
a.title,
|
||||
a.package_img as packageImg,
|
||||
a.content,
|
||||
a.content_img as contentImg,
|
||||
a.sales,
|
||||
a.labels,
|
||||
a.city,
|
||||
a.is_can_coupon as isCanCoupon,
|
||||
a.is_can_vip as isCanVip,
|
||||
a.classify_id as classifyId,
|
||||
d.value as classifyName,
|
||||
a.level,
|
||||
a.group_num as groupNum,
|
||||
0 as buyGroupNum,
|
||||
a.start_time as startTime,
|
||||
a.end_time as endTime,
|
||||
a.is_newer as isNewer,
|
||||
m.duration,
|
||||
m.is_sex as isSex,
|
||||
m.apply_people as applyPeople,
|
||||
m.jianjie
|
||||
from bl_massage_package a
|
||||
inner join bl_massage_package_detail b on b.main_id = a.id
|
||||
left join massage_type m on b.massage_type_id = m.massage_type_id
|
||||
left join sys_dict d on a.classify_id = d.id
|
||||
where a.id = #{id}
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -156,4 +156,9 @@
|
|||
where a.id = #{id}
|
||||
</select>
|
||||
|
||||
<update id="deletePackageByOrders">
|
||||
DELETE FROM bl_user_package
|
||||
WHERE orders_id = #{ordersId}
|
||||
</update>
|
||||
|
||||
</mapper>
|
|
@ -218,5 +218,9 @@
|
|||
where a.main_id = #{mainId}
|
||||
</select>
|
||||
|
||||
<update id="deleteDetailByMain">
|
||||
DELETE FROM bl_user_package_detail
|
||||
WHERE main_id = #{mainId}
|
||||
</update>
|
||||
|
||||
</mapper>
|
|
@ -10,6 +10,7 @@
|
|||
a.user_id,
|
||||
b.user_name,
|
||||
a.vip_rate,
|
||||
a.vip_reduction_money,
|
||||
a.old_sum_money,
|
||||
a.sum_money,
|
||||
a.pay_money,
|
||||
|
@ -40,6 +41,7 @@
|
|||
a.user_id,
|
||||
b.user_name,
|
||||
a.vip_rate,
|
||||
a.vip_reduction_money,
|
||||
a.old_sum_money,
|
||||
a.sum_money,
|
||||
a.pay_money,
|
||||
|
@ -63,6 +65,7 @@
|
|||
a.user_id,
|
||||
b.user_name,
|
||||
a.vip_rate,
|
||||
a.vip_reduction_money,
|
||||
a.old_sum_money,
|
||||
a.sum_money,
|
||||
a.pay_money,
|
||||
|
@ -109,6 +112,9 @@
|
|||
<if test="null != vipRate ">
|
||||
vip_rate,
|
||||
</if>
|
||||
<if test="null != vipReductionMoney ">
|
||||
vip_reduction_money,
|
||||
</if>
|
||||
<if test="null != oldSumMoney ">
|
||||
old_sum_money,
|
||||
</if>
|
||||
|
@ -150,6 +156,9 @@
|
|||
<if test="null != vipRate ">
|
||||
#{vipRate},
|
||||
</if>
|
||||
<if test="null != vipReductionMoney ">
|
||||
#{vipReductionMoney},
|
||||
</if>
|
||||
<if test="null != oldSumMoney ">
|
||||
#{oldSumMoney},
|
||||
</if>
|
||||
|
@ -198,6 +207,7 @@
|
|||
a.orders_no,
|
||||
a.user_id,
|
||||
a.vip_rate,
|
||||
a.vip_reduction_money,
|
||||
a.old_sum_money,
|
||||
a.sum_money,
|
||||
a.pay_money,
|
||||
|
@ -223,4 +233,40 @@
|
|||
where orders_id = #{ordersId}
|
||||
</update>
|
||||
|
||||
<select id="getActivityOrderList" resultType="com.sqx.modules.bl.order.entity.UserPackageOrder">
|
||||
select count(a.user_id) as lessNum,a.group_no
|
||||
from bl_user_package_order a
|
||||
inner join bl_user_package_order_mapping b on a.orders_id = b.orders_id
|
||||
where a.status = #{status}
|
||||
and b.package_id = #{id}
|
||||
group by a.group_no
|
||||
order by a.group_no desc
|
||||
</select>
|
||||
|
||||
<select id="getActivityOrderListByGroupNo" resultType="com.sqx.modules.bl.order.entity.UserPackageOrder">
|
||||
select a.*
|
||||
from bl_user_package_order a
|
||||
where a.group_no = #{groupNo}
|
||||
<if test="null != userId ">
|
||||
a.user_id = #{userId}
|
||||
</if>
|
||||
order by a.orders_id desc
|
||||
</select>
|
||||
|
||||
<update id="updateStatusByGroupNo">
|
||||
update bl_user_package_order
|
||||
set status = #{status}
|
||||
where group_no = #{groupNo}
|
||||
</update>
|
||||
|
||||
<select id="getUnGroupOrderList" resultType="com.sqx.modules.bl.order.entity.UserPackageOrder">
|
||||
select a.*
|
||||
from bl_user_package_order a
|
||||
inner join bl_user_package_order_mapping b on a.orders_id = b.orders_id
|
||||
inner join bl_massage_package c on b.package_id = c.id
|
||||
where a.status = 4
|
||||
and c.end_time < date_format(now(), '%Y-%m-%d %H:%i:%s')
|
||||
order by a.orders_id desc
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -61,4 +61,9 @@
|
|||
)
|
||||
</insert>
|
||||
|
||||
<delete id="deleteByOrdersId">
|
||||
DELETE FROM bl_user_package_order_mapping
|
||||
WHERE orders_id = #{ordersId}
|
||||
</delete>
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue