服务包订单下单,支付:微信,支付宝,钱包,记录支付流水
This commit is contained in:
parent
53a236ab8f
commit
878e111867
|
@ -14,4 +14,5 @@ public interface UserMoneyDao extends BaseMapper<UserMoney> {
|
||||||
|
|
||||||
void updateCashDeposit(@Param("type") Integer type, @Param("userId") Long userId,@Param("cashDeposit") Double cashDeposit);
|
void updateCashDeposit(@Param("type") Integer type, @Param("userId") Long userId,@Param("cashDeposit") Double cashDeposit);
|
||||||
|
|
||||||
|
void updateMoney(UserMoney userMoney);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,4 +13,5 @@ public interface UserMoneyDetailsDao extends BaseMapper<UserMoneyDetails> {
|
||||||
|
|
||||||
BigDecimal selectSumRefund(Long userId,String startTime,String endTime);
|
BigDecimal selectSumRefund(Long userId,String startTime,String endTime);
|
||||||
|
|
||||||
|
int insert(UserMoneyDetails userMoneyDetails);
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,6 +78,7 @@ public class UserMoneyDetails implements Serializable {
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("余额")
|
@ApiModelProperty("余额")
|
||||||
private BigDecimal balance;
|
private BigDecimal balance;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否操作余额:1未操作余额 ,2操作余额
|
* 是否操作余额:1未操作余额 ,2操作余额
|
||||||
*/
|
*/
|
||||||
|
@ -86,4 +87,16 @@ public class UserMoneyDetails implements Serializable {
|
||||||
//技师id
|
//技师id
|
||||||
private Long artificerId;
|
private Long artificerId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属角色 1用户 2技师
|
||||||
|
*/
|
||||||
|
|
||||||
|
private Integer blRole;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 钱包现金标识 1钱包 2现金
|
||||||
|
*/
|
||||||
|
|
||||||
|
private Integer blFlag;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,4 +23,6 @@ public interface UserMoneyDetailsService extends IService<UserMoneyDetails> {
|
||||||
|
|
||||||
List<UserMoneyDetails> selectIncome(Period period);
|
List<UserMoneyDetails> selectIncome(Period period);
|
||||||
|
|
||||||
|
int insert(UserMoneyDetails userMoneyDetails);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,8 @@ public interface UserMoneyService extends IService<UserMoney> {
|
||||||
|
|
||||||
void updateMoney(int i, Long userId, double money);
|
void updateMoney(int i, Long userId, double money);
|
||||||
|
|
||||||
|
void updateMoney(UserMoney userMoney);
|
||||||
|
|
||||||
Double selectMyProfit(Long userId);
|
Double selectMyProfit(Long userId);
|
||||||
|
|
||||||
PageUtils balanceDetailed(@RequestAttribute Long userId, Page<UserMoneyDetails> ipage);
|
PageUtils balanceDetailed(@RequestAttribute Long userId, Page<UserMoneyDetails> ipage);
|
||||||
|
|
|
@ -352,4 +352,16 @@ public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao
|
||||||
List<UserMoneyDetails> page2 = baseMapper.selectList(queryWrapper);
|
List<UserMoneyDetails> page2 = baseMapper.selectList(queryWrapper);
|
||||||
return page2;
|
return page2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入明细表
|
||||||
|
* update by caolei 2024-6-9
|
||||||
|
* @param userMoneyDetails
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insert(UserMoneyDetails userMoneyDetails){
|
||||||
|
return baseMapper.insert(userMoneyDetails);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,6 +104,11 @@ public class UserMoneyServiceImpl extends ServiceImpl<UserMoneyDao, UserMoney> i
|
||||||
baseMapper.updateMayMoney(i, userId, money);
|
baseMapper.updateMayMoney(i, userId, money);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateMoney(UserMoney userMoney){
|
||||||
|
baseMapper.updateMoney(userMoney);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserMoney selectUserMoneyByUserId(Long userId) {
|
public UserMoney selectUserMoneyByUserId(Long userId) {
|
||||||
UserMoney userMoney = baseMapper.selectOne(new QueryWrapper<UserMoney>().eq("user_id", userId));
|
UserMoney userMoney = baseMapper.selectOne(new QueryWrapper<UserMoney>().eq("user_id", userId));
|
||||||
|
|
|
@ -1486,11 +1486,13 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
||||||
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
|
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
|
||||||
userMoneyDetails.setTitle("支付订单");
|
userMoneyDetails.setTitle("支付订单");
|
||||||
userMoneyDetails.setType(2);
|
userMoneyDetails.setType(2);
|
||||||
|
userMoneyDetails.setState(2);
|
||||||
userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date()));
|
userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(1);
|
||||||
userMoneyDetailsService.save(userMoneyDetails);
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
orders.setStatus(2);
|
orders.setStatus(2);
|
||||||
orders.setPayWay(5);
|
orders.setPayWay(5);
|
||||||
orders.setPayTime(simpleDateFormat.format(new Date()));
|
orders.setPayTime(simpleDateFormat.format(new Date()));
|
||||||
|
|
|
@ -11,8 +11,9 @@ import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description massage_package
|
* @description massage_package
|
||||||
|
* 服务包-服务套餐、项目次卡、服务疗程
|
||||||
* @author caolei
|
* @author caolei
|
||||||
* @date 2024-6-5
|
* @date 2024-06-05
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName("bl_massage_package")
|
@TableName("bl_massage_package")
|
||||||
|
|
|
@ -11,8 +11,9 @@ import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description bl_massage_package_detail
|
* @description bl_massage_package_detail
|
||||||
|
* 服务包-明细表
|
||||||
* @author caolei
|
* @author caolei
|
||||||
* @date 2024-6-5
|
* @date 2024-06-05
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName("bl_massage_package_detail")
|
@TableName("bl_massage_package_detail")
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
package com.sqx.modules.bl.order.app;
|
||||||
|
|
||||||
|
import com.sqx.common.utils.Result;
|
||||||
|
import com.sqx.modules.app.annotation.Login;
|
||||||
|
import com.sqx.modules.artificer.entity.Orders;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackageOrder;
|
||||||
|
import com.sqx.modules.bl.order.service.UserPackageOrderService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/app/user/package/order")
|
||||||
|
@Api(value = "用户购买服务包订单管理", tags = {"用户购买服务包订单"})
|
||||||
|
public class AppUserPackageOrderController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserPackageOrderService service;
|
||||||
|
|
||||||
|
// @Login
|
||||||
|
@PostMapping("/insertOrders")
|
||||||
|
@ApiOperation("添加订单")
|
||||||
|
public Result insertOrders(@RequestBody UserPackageOrder userPackageOrder){
|
||||||
|
//入参:用户ID,代金券IDS,原总金额,应付总金额,会员优惠比,
|
||||||
|
return service.insertOrders(userPackageOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/payOrder")
|
||||||
|
@ApiOperation("钱包支付订单")
|
||||||
|
public Result payOrder(Long ordersId){
|
||||||
|
//入参:ordersId
|
||||||
|
return service.payOrder(ordersId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -14,6 +14,10 @@ public interface UserPackageOrderDao extends BaseMapper<UserPackageOrder> {
|
||||||
|
|
||||||
IPage<UserPackageOrder> findPage(Page<UserPackageOrder> page, @Param("params") UserPackageOrder userPackageOrder);
|
IPage<UserPackageOrder> findPage(Page<UserPackageOrder> page, @Param("params") UserPackageOrder userPackageOrder);
|
||||||
|
|
||||||
|
UserPackageOrder getById(Long ordersId);
|
||||||
|
|
||||||
|
UserPackageOrder getByNo(String ordersNo);
|
||||||
|
|
||||||
List<UserPackageOrder> findCoupon(UserPackageOrder userPackageOrder);
|
List<UserPackageOrder> findCoupon(UserPackageOrder userPackageOrder);
|
||||||
|
|
||||||
int refund(UserPackageOrder userPackageOrder);
|
int refund(UserPackageOrder userPackageOrder);
|
||||||
|
@ -22,4 +26,8 @@ public interface UserPackageOrderDao extends BaseMapper<UserPackageOrder> {
|
||||||
|
|
||||||
int insertCoupon(UserPackageOrder userPackageOrder);
|
int insertCoupon(UserPackageOrder userPackageOrder);
|
||||||
|
|
||||||
|
List<UserPackageOrder> selectOrdersStatusByTime(String time);
|
||||||
|
|
||||||
|
int updateStatus(UserPackageOrder userPackageOrder);
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.sqx.modules.bl.order.dao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackageOrdersMapping;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface UserPackageOrdersMappingDao extends BaseMapper<UserPackageOrdersMapping> {
|
||||||
|
|
||||||
|
List<UserPackageOrdersMapping> findList(UserPackageOrdersMapping userPackageOrdersMapping);
|
||||||
|
|
||||||
|
List<UserPackageOrdersMapping> findListByOrdersId(Long ordersId);
|
||||||
|
|
||||||
|
int insert(UserPackageOrdersMapping userPackageOrdersMapping);
|
||||||
|
|
||||||
|
}
|
|
@ -11,6 +11,7 @@ import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description bl_user_package
|
* @description bl_user_package
|
||||||
|
* 用户-服务包表
|
||||||
* @author caolei
|
* @author caolei
|
||||||
* @date 2024-6-8
|
* @date 2024-6-8
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -10,7 +10,8 @@ import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description bl_user_package_order
|
* @description bl_user_package_detail
|
||||||
|
* 用户-服务包-明细表
|
||||||
* @author caolei
|
* @author caolei
|
||||||
* @date 2024-6-8
|
* @date 2024-6-8
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -8,9 +8,11 @@ import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description bl_user_package_order
|
* @description bl_user_package_order
|
||||||
|
* 用户-服务包-订单-主表
|
||||||
* @author caolei
|
* @author caolei
|
||||||
* @date 2024-6-8
|
* @date 2024-6-8
|
||||||
*/
|
*/
|
||||||
|
@ -43,36 +45,11 @@ public class UserPackageOrder implements Serializable {
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
/**
|
|
||||||
* 服务包id
|
|
||||||
*/
|
|
||||||
private Long packageId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 服务包名称
|
|
||||||
*/
|
|
||||||
private String packageName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 服务包类型
|
|
||||||
*/
|
|
||||||
private Integer type;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员优惠比例
|
* 会员优惠比例
|
||||||
*/
|
*/
|
||||||
private BigDecimal vipRate;
|
private BigDecimal vipRate;
|
||||||
|
|
||||||
/**
|
|
||||||
* 单价
|
|
||||||
*/
|
|
||||||
private BigDecimal price;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数量
|
|
||||||
*/
|
|
||||||
private Integer quantity;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 原总金额
|
* 原总金额
|
||||||
*/
|
*/
|
||||||
|
@ -133,6 +110,12 @@ public class UserPackageOrder implements Serializable {
|
||||||
*/
|
*/
|
||||||
private Long userCouponId;
|
private Long userCouponId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private String createTime;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 代金券名称
|
* 代金券名称
|
||||||
*/
|
*/
|
||||||
|
@ -145,5 +128,8 @@ public class UserPackageOrder implements Serializable {
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Integer limit;
|
private Integer limit;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private List<UserPackageOrdersMapping> ordersPackageList;
|
||||||
|
|
||||||
public UserPackageOrder() {}
|
public UserPackageOrder() {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
package com.sqx.modules.bl.order.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description bl_user_package_order_mapping
|
||||||
|
* 用户-服务包-订单-服务包与订单映射关系表
|
||||||
|
* @author caolei
|
||||||
|
* @date 2024-06-09
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("bl_user_package_order_mapping")
|
||||||
|
public class UserPackageOrdersMapping implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(type = IdType.AUTO)
|
||||||
|
/**
|
||||||
|
* 订单服务id
|
||||||
|
*/
|
||||||
|
private Long mappingId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单id
|
||||||
|
*/
|
||||||
|
private Long ordersId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 服务包id
|
||||||
|
*/
|
||||||
|
private Long packageId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数量
|
||||||
|
*/
|
||||||
|
private Integer num;
|
||||||
|
|
||||||
|
public UserPackageOrdersMapping() {}
|
||||||
|
}
|
|
@ -4,10 +4,14 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.sqx.common.utils.Result;
|
import com.sqx.common.utils.Result;
|
||||||
import com.sqx.modules.bl.order.entity.UserPackageOrder;
|
import com.sqx.modules.bl.order.entity.UserPackageOrder;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
public interface UserPackageOrderService extends IService<UserPackageOrder> {
|
public interface UserPackageOrderService extends IService<UserPackageOrder> {
|
||||||
Result findPage(UserPackageOrder userPackageOrder);
|
Result findPage(UserPackageOrder userPackageOrder);
|
||||||
Result findCoupon(UserPackageOrder userPackageOrder);
|
Result findCoupon(UserPackageOrder userPackageOrder);
|
||||||
int refund(UserPackageOrder userPackageOrder);
|
void refund(UserPackageOrder userPackageOrder);
|
||||||
|
|
||||||
void buy(UserPackageOrder userPackageOrder);
|
Result insertOrders(UserPackageOrder userPackageOrder);
|
||||||
|
|
||||||
|
Result payOrder(Long ordersId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.sqx.modules.bl.order.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackageOrdersMapping;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface UserPackageOrdersMappingService extends IService<UserPackageOrdersMapping> {
|
||||||
|
|
||||||
|
List<UserPackageOrdersMapping> findList(UserPackageOrdersMapping userPackageOrdersMapping);
|
||||||
|
|
||||||
|
List<UserPackageOrdersMapping> findListByOrdersId(Long ordersId);
|
||||||
|
|
||||||
|
int insert(UserPackageOrdersMapping userPackageOrdersMapping);
|
||||||
|
}
|
|
@ -8,8 +8,12 @@ import com.google.common.collect.Lists;
|
||||||
import com.sqx.common.utils.PageUtils;
|
import com.sqx.common.utils.PageUtils;
|
||||||
import com.sqx.common.utils.Result;
|
import com.sqx.common.utils.Result;
|
||||||
import com.sqx.modules.app.dao.VipDetailsDao;
|
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.UserVip;
|
||||||
import com.sqx.modules.app.entity.VipDetails;
|
import com.sqx.modules.app.entity.VipDetails;
|
||||||
|
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.app.service.UserVipService;
|
||||||
import com.sqx.modules.bl.massage.entity.MassagePackage;
|
import com.sqx.modules.bl.massage.entity.MassagePackage;
|
||||||
import com.sqx.modules.bl.massage.service.MassagePackageService;
|
import com.sqx.modules.bl.massage.service.MassagePackageService;
|
||||||
|
@ -17,18 +21,23 @@ import com.sqx.modules.bl.order.dao.UserPackageOrderDao;
|
||||||
import com.sqx.modules.bl.order.entity.UserPackage;
|
import com.sqx.modules.bl.order.entity.UserPackage;
|
||||||
import com.sqx.modules.bl.order.entity.UserPackageDetail;
|
import com.sqx.modules.bl.order.entity.UserPackageDetail;
|
||||||
import com.sqx.modules.bl.order.entity.UserPackageOrder;
|
import com.sqx.modules.bl.order.entity.UserPackageOrder;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackageOrdersMapping;
|
||||||
import com.sqx.modules.bl.order.service.UserPackageDetailService;
|
import com.sqx.modules.bl.order.service.UserPackageDetailService;
|
||||||
import com.sqx.modules.bl.order.service.UserPackageOrderService;
|
import com.sqx.modules.bl.order.service.UserPackageOrderService;
|
||||||
|
import com.sqx.modules.bl.order.service.UserPackageOrdersMappingService;
|
||||||
import com.sqx.modules.bl.order.service.UserPackageService;
|
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.entity.CouponUser;
|
||||||
import com.sqx.modules.coupon.service.CouponUserService;
|
import com.sqx.modules.coupon.service.CouponUserService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao, UserPackageOrder> implements UserPackageOrderService {
|
public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao, UserPackageOrder> implements UserPackageOrderService {
|
||||||
|
@ -51,6 +60,20 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
||||||
@Autowired
|
@Autowired
|
||||||
UserPackageDetailService userPackageDetailService;
|
UserPackageDetailService userPackageDetailService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
UserMoneyDetailsService userMoneyDetailsService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
UserMoneyService userMoneyService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
UserPackageOrdersMappingService userPackageOrdersMappingService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CommonInfoService commonInfoService;
|
||||||
|
|
||||||
|
private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result findPage(UserPackageOrder userPackageOrder){
|
public Result findPage(UserPackageOrder userPackageOrder){
|
||||||
Page<UserPackageOrder> pages=new Page<>(userPackageOrder.getPage(),userPackageOrder.getLimit());
|
Page<UserPackageOrder> pages=new Page<>(userPackageOrder.getPage(),userPackageOrder.getLimit());
|
||||||
|
@ -63,60 +86,42 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int refund(UserPackageOrder userPackageOrder){
|
public void refund(UserPackageOrder userPackageOrder){
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
BigDecimal refundMoney = userPackageOrder.getRefundMoney();
|
||||||
|
//获取钱包余额
|
||||||
|
UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userPackageOrder.getUserId());
|
||||||
|
BigDecimal money = userMoney.getMoney();
|
||||||
|
money = money.add(refundMoney);
|
||||||
|
userMoney.setMoney(money);
|
||||||
|
//修改钱包流水明细
|
||||||
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||||
|
userMoneyDetails.setUserId(userPackageOrder.getUserId());
|
||||||
|
userMoneyDetails.setTitle("订单退款");
|
||||||
|
userMoneyDetails.setType(1);
|
||||||
|
userMoneyDetails.setState(1);
|
||||||
|
userMoneyDetails.setMoney(refundMoney);
|
||||||
|
userMoneyDetails.setContent("订单号:"+userPackageOrder.getOrdersNo()+",已退款到钱包!");
|
||||||
|
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||||
|
userMoneyDetails.setManipulateType(1);
|
||||||
|
userMoneyDetails.setBalance(money);
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(1);
|
||||||
|
userMoneyDetailsService.insert(userMoneyDetails);
|
||||||
|
//修改钱包主表
|
||||||
|
userMoneyService.updateMoney(userMoney);
|
||||||
|
//修改订单表
|
||||||
userPackageOrder.setRefundTime(sdf.format(new Date()));
|
userPackageOrder.setRefundTime(sdf.format(new Date()));
|
||||||
return baseMapper.refund(userPackageOrder);
|
baseMapper.refund(userPackageOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void buy(UserPackageOrder userPackageOrder){
|
public Result insertOrders(UserPackageOrder userPackageOrder){
|
||||||
String ordersNo = userPackageOrder.getOrdersNo();
|
reentrantReadWriteLock.writeLock().lock();
|
||||||
Long packageId = userPackageOrder.getPackageId();
|
try {
|
||||||
Long userId = userPackageOrder.getUserId();
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
int quantity = userPackageOrder.getQuantity();
|
List<CouponUser> CouponUserList = Lists.newArrayList();
|
||||||
BigDecimal payMoney = userPackageOrder.getPayMoney();
|
String couponIds = userPackageOrder.getCouponId();
|
||||||
String couponIds = userPackageOrder.getCouponId();
|
|
||||||
|
|
||||||
//获取用户VIP的优惠信息
|
|
||||||
BigDecimal vipRate = new BigDecimal(100);
|
|
||||||
UserVip userVip = userVipService.selectUserVipByUserId(userId);
|
|
||||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
||||||
if (userVip != null) {
|
|
||||||
if(userVip.getIsVip() == 1){
|
|
||||||
//获取用户到期时间
|
|
||||||
Date date = null;
|
|
||||||
try {
|
|
||||||
date = simpleDateFormat.parse(userVip.getEndTime());
|
|
||||||
if (date.getTime() >= System.currentTimeMillis()) {
|
|
||||||
VipDetails vipDetails = vipDetailsDao.selectOne(new QueryWrapper<VipDetails>().eq("vip_name_type", userVip.getVipNameType()));
|
|
||||||
if(vipDetails != null){
|
|
||||||
vipRate = vipDetails.getRate();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.getMessage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
userPackageOrder.setVipRate(vipRate);
|
|
||||||
|
|
||||||
//获取服务包信息
|
|
||||||
MassagePackage massagePackage = massagePackageService.getById(packageId);
|
|
||||||
BigDecimal price = massagePackage.getPrice();
|
|
||||||
userPackageOrder.setPackageName(massagePackage.getTitle());
|
|
||||||
userPackageOrder.setType(massagePackage.getType());
|
|
||||||
userPackageOrder.setPrice(price);
|
|
||||||
BigDecimal oldSumMoney = (price.multiply(new BigDecimal(quantity)));
|
|
||||||
userPackageOrder.setOldSumMoney(oldSumMoney);
|
|
||||||
BigDecimal sumMoney = oldSumMoney.multiply(vipRate).divide(new BigDecimal(100));
|
|
||||||
userPackageOrder.setSumMoney(sumMoney);
|
|
||||||
|
|
||||||
List<CouponUser> CouponUserList = Lists.newArrayList();
|
|
||||||
if(payMoney != null && payMoney.compareTo(new BigDecimal(0)) > 0){
|
|
||||||
//不做处理
|
|
||||||
}else{
|
|
||||||
//获取代金券,计算
|
|
||||||
if(couponIds.length()>0){
|
if(couponIds.length()>0){
|
||||||
String[] couponArr = couponIds.trim().split(",");
|
String[] couponArr = couponIds.trim().split(",");
|
||||||
BigDecimal couponMoney = new BigDecimal(0);
|
BigDecimal couponMoney = new BigDecimal(0);
|
||||||
|
@ -125,6 +130,9 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
||||||
if(couponArr[i]!=null && !couponArr[i].equals("")){
|
if(couponArr[i]!=null && !couponArr[i].equals("")){
|
||||||
Long couponId = Long.valueOf(couponArr[i]);
|
Long couponId = Long.valueOf(couponArr[i]);
|
||||||
CouponUser couponUser = couponUserService.getById(couponId);
|
CouponUser couponUser = couponUserService.getById(couponId);
|
||||||
|
if (!couponUser.getStatus().equals(0)) {
|
||||||
|
return Result.error("优惠券已被使用!");
|
||||||
|
}
|
||||||
CouponUserList.add(couponUser);
|
CouponUserList.add(couponUser);
|
||||||
BigDecimal money= couponUser.getMoney();
|
BigDecimal money= couponUser.getMoney();
|
||||||
couponMoney = couponMoney.add(money);
|
couponMoney = couponMoney.add(money);
|
||||||
|
@ -133,73 +141,218 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
|
||||||
}
|
}
|
||||||
userPackageOrder.setCouponCount(count);
|
userPackageOrder.setCouponCount(count);
|
||||||
userPackageOrder.setCouponMoney(couponMoney);
|
userPackageOrder.setCouponMoney(couponMoney);
|
||||||
payMoney = sumMoney.subtract(couponMoney);
|
|
||||||
}else{
|
}else{
|
||||||
payMoney = sumMoney;
|
userPackageOrder.setCouponCount(0);
|
||||||
|
userPackageOrder.setCouponMoney(BigDecimal.ZERO);
|
||||||
}
|
}
|
||||||
userPackageOrder.setPayMoney(payMoney);
|
|
||||||
}
|
|
||||||
userPackageOrder.setPayTime(simpleDateFormat.format(new Date()));
|
|
||||||
userPackageOrder.setStatus(1);
|
|
||||||
//插入订单表
|
|
||||||
baseMapper.insert(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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(int i=0;i<quantity;i++){
|
if(userPackageOrder.getVipRate() == null || BigDecimal.ZERO.compareTo(userPackageOrder.getVipRate()) == 0){
|
||||||
//拆分插入用户服务包
|
//获取用户VIP的优惠信息
|
||||||
UserPackage userPackage = new UserPackage();
|
BigDecimal vipRate = new BigDecimal(100);
|
||||||
userPackage.setUserId(userId);
|
UserVip userVip = userVipService.selectUserVipByUserId(userPackageOrder.getUserId());
|
||||||
userPackage.setPackageId(massagePackage.getId());
|
if (userVip != null) {
|
||||||
userPackage.setOrdersId(ordersId);
|
if(userVip.getIsVip() == 1){
|
||||||
userPackage.setOrdersNo(ordersNo);
|
//获取用户到期时间
|
||||||
userPackage.setCreateTime(simpleDateFormat.format(new Date()));
|
Date date = null;
|
||||||
userPackage.setTitle(massagePackage.getTitle());
|
try {
|
||||||
userPackage.setType(massagePackage.getType());
|
date = simpleDateFormat.parse(userVip.getEndTime());
|
||||||
userPackage.setOldPrice(massagePackage.getOldPrice());
|
if (date.getTime() >= System.currentTimeMillis()) {
|
||||||
userPackage.setPrice(massagePackage.getPrice());
|
VipDetails vipDetails = vipDetailsDao.selectOne(new QueryWrapper<VipDetails>().eq("vip_name_type", userVip.getVipNameType()));
|
||||||
userPackage.setPackageImg(massagePackage.getPackageImg());
|
if(vipDetails != null){
|
||||||
userPackage.setContent(massagePackage.getContent());
|
vipRate = vipDetails.getRate();
|
||||||
userPackage.setContentImg(massagePackage.getContentImg());
|
}
|
||||||
userPackage.setLabels(massagePackage.getLabels());
|
}
|
||||||
userPackage.setCity(massagePackage.getCity());
|
} catch (Exception e) {
|
||||||
userPackageService.insert(userPackage);
|
e.getMessage();
|
||||||
Long mainId = userPackage.getId();
|
}
|
||||||
//拆分插入用户服务器项目详情
|
}
|
||||||
UserPackageDetail userPackageDetail = new UserPackageDetail();
|
}
|
||||||
userPackageDetail.setMainId(packageId);
|
userPackageOrder.setVipRate(vipRate);
|
||||||
List<UserPackageDetail> userPackageDetailList = userPackageDetailService.findMassagePackageDetails(userPackageDetail);
|
}
|
||||||
if(userPackageDetailList.size()>0){
|
|
||||||
for(int j=0;j<userPackageDetailList.size();j++){
|
if(userPackageOrder.getSumMoney() == null || BigDecimal.ZERO.compareTo(userPackageOrder.getSumMoney()) == 0){
|
||||||
UserPackageDetail upd = userPackageDetailList.get(j);
|
BigDecimal oldSumMoney = userPackageOrder.getOldSumMoney();
|
||||||
upd.setMainId(mainId);
|
BigDecimal sumMoney = oldSumMoney.multiply(userPackageOrder.getVipRate()).divide(new BigDecimal(100));
|
||||||
upd.setCreateTime(simpleDateFormat.format(new Date()));
|
userPackageOrder.setSumMoney(sumMoney);
|
||||||
int serviceCount = upd.getServiceCount();
|
}
|
||||||
for(int k=0;k<serviceCount;k++){
|
userPackageOrder.setCreateTime(simpleDateFormat.format(new Date()));
|
||||||
userPackageDetailService.insert(upd);
|
userPackageOrder.setStatus(0);
|
||||||
|
userPackageOrder.setOrdersNo(getGeneralOrder());
|
||||||
|
if(userPackageOrder.getPayMoney() == null || BigDecimal.ZERO.compareTo(userPackageOrder.getPayMoney()) == 0){
|
||||||
|
BigDecimal payMoney = userPackageOrder.getSumMoney().subtract(userPackageOrder.getCouponMoney());
|
||||||
|
userPackageOrder.setPayMoney(payMoney);
|
||||||
|
}
|
||||||
|
//插入订单表
|
||||||
|
baseMapper.insertOrders(userPackageOrder);
|
||||||
|
Long ordersId = userPackageOrder.getOrdersId();
|
||||||
|
|
||||||
|
//插入订单代金券表
|
||||||
|
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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//插入用户-服务包-订单-服务包与订单映射关系表
|
||||||
|
List<UserPackageOrdersMapping> ordersPackageList = userPackageOrder.getOrdersPackageList();
|
||||||
|
for (UserPackageOrdersMapping ordersPackage : ordersPackageList) {
|
||||||
|
ordersPackage.setOrdersId(ordersId);
|
||||||
|
userPackageOrdersMappingService.insert(ordersPackage);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
log.error("添加订单异常" + e.getMessage(), e);
|
||||||
|
} finally {
|
||||||
|
reentrantReadWriteLock.writeLock().unlock();
|
||||||
|
}
|
||||||
|
return Result.success().put("data", userPackageOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result payOrder(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("订单支付超时,请发起支付!");
|
||||||
|
}
|
||||||
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
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(simpleDateFormat.format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(1);
|
||||||
|
userMoneyDetailsService.insert(userMoneyDetails);
|
||||||
|
|
||||||
|
orders.setStatus(2);
|
||||||
|
orders.setPayWay(5);
|
||||||
|
orders.setPayTime(simpleDateFormat.format(new Date()));
|
||||||
|
baseMapper.updateStatus(orders);
|
||||||
|
|
||||||
|
//获取订单-服务包映射关系列表
|
||||||
|
List<UserPackageOrdersMapping> mappingList = userPackageOrdersMappingService.findListByOrdersId(ordersId);
|
||||||
|
for (UserPackageOrdersMapping ordersPackage : mappingList) {
|
||||||
|
int quantity = ordersPackage.getNum();
|
||||||
|
MassagePackage massagePackage = massagePackageService.getById(ordersPackage.getPackageId());
|
||||||
|
//修改服务包销量
|
||||||
|
int sales = massagePackage.getSales();
|
||||||
|
sales = sales+quantity;
|
||||||
|
massagePackage.setSales(sales);
|
||||||
|
massagePackageService.updateSales(massagePackage);
|
||||||
|
for(int i=0;i<quantity;i++){
|
||||||
|
//拆分插入用户服务包
|
||||||
|
UserPackage userPackage = new UserPackage();
|
||||||
|
userPackage.setUserId(orders.getUserId());
|
||||||
|
userPackage.setPackageId(massagePackage.getId());
|
||||||
|
userPackage.setOrdersId(ordersId);
|
||||||
|
userPackage.setOrdersNo(orders.getOrdersNo());
|
||||||
|
userPackage.setCreateTime(simpleDateFormat.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());
|
||||||
|
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(simpleDateFormat.format(new Date()));
|
||||||
|
int serviceCount = upd.getServiceCount();
|
||||||
|
for(int k=0;k<serviceCount;k++){
|
||||||
|
userPackageDetailService.insert(upd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
log.error("钱包支付服务包订单异常:" + e.getMessage(), e);
|
||||||
|
}
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每5分钟自动扫描未支付订单,进行取消,释放代金券
|
||||||
|
*/
|
||||||
|
// @Scheduled(cron = "0 0/5 * * * ?")
|
||||||
|
public void autoCancelOrders() {
|
||||||
|
String value1 = commonInfoService.findOne(388).getValue();
|
||||||
|
List<UserPackageOrder> ordersList = baseMapper.selectOrdersStatusByTime(value1);
|
||||||
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
for (UserPackageOrder orders : ordersList) {
|
||||||
|
//取消订单
|
||||||
|
orders.setStatus(3);//取消状态
|
||||||
|
orders.setPayTime(simpleDateFormat.format(new Date()));//取消时间
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//修改服务包销量
|
|
||||||
int sales = massagePackage.getSales();
|
|
||||||
sales = sales+quantity;
|
|
||||||
massagePackage.setSales(sales);
|
|
||||||
massagePackageService.updateSales(massagePackage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getGeneralOrder() {
|
||||||
|
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 format + newString;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
package com.sqx.modules.bl.order.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.sqx.modules.bl.order.dao.UserPackageOrdersMappingDao;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackageOrdersMapping;
|
||||||
|
import com.sqx.modules.bl.order.service.UserPackageOrdersMappingService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class UserPackageOrdersMappingServiceImpl extends ServiceImpl<UserPackageOrdersMappingDao, UserPackageOrdersMapping> implements UserPackageOrdersMappingService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<UserPackageOrdersMapping> findList(UserPackageOrdersMapping userPackageOrdersMapping){
|
||||||
|
return baseMapper.findList(userPackageOrdersMapping);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<UserPackageOrdersMapping> findListByOrdersId(Long ordersId){
|
||||||
|
return baseMapper.findListByOrdersId(ordersId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int insert(UserPackageOrdersMapping userPackageOrdersMapping){
|
||||||
|
return baseMapper.insert(userPackageOrdersMapping);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -22,13 +22,20 @@ import com.sqx.modules.app.dao.UserMoneyDao;
|
||||||
import com.sqx.modules.app.dao.UserVipDao;
|
import com.sqx.modules.app.dao.UserVipDao;
|
||||||
import com.sqx.modules.app.dao.VipDetailsDao;
|
import com.sqx.modules.app.dao.VipDetailsDao;
|
||||||
import com.sqx.modules.app.entity.*;
|
import com.sqx.modules.app.entity.*;
|
||||||
import com.sqx.modules.app.service.UserCertificationService;
|
import com.sqx.modules.app.service.*;
|
||||||
import com.sqx.modules.app.service.UserMoneyArtificerService;
|
|
||||||
import com.sqx.modules.app.service.UserMoneyDetailsService;
|
|
||||||
import com.sqx.modules.app.service.UserService;
|
|
||||||
import com.sqx.modules.artificer.dao.OrdersDao;
|
import com.sqx.modules.artificer.dao.OrdersDao;
|
||||||
import com.sqx.modules.artificer.entity.*;
|
import com.sqx.modules.artificer.entity.*;
|
||||||
import com.sqx.modules.artificer.service.*;
|
import com.sqx.modules.artificer.service.*;
|
||||||
|
import com.sqx.modules.bl.massage.entity.MassagePackage;
|
||||||
|
import com.sqx.modules.bl.massage.service.MassagePackageService;
|
||||||
|
import com.sqx.modules.bl.order.dao.UserPackageOrderDao;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackage;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackageDetail;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackageOrder;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackageOrdersMapping;
|
||||||
|
import com.sqx.modules.bl.order.service.UserPackageDetailService;
|
||||||
|
import com.sqx.modules.bl.order.service.UserPackageOrdersMappingService;
|
||||||
|
import com.sqx.modules.bl.order.service.UserPackageService;
|
||||||
import com.sqx.modules.common.entity.CommonInfo;
|
import com.sqx.modules.common.entity.CommonInfo;
|
||||||
import com.sqx.modules.common.service.CommonInfoService;
|
import com.sqx.modules.common.service.CommonInfoService;
|
||||||
import com.sqx.modules.consortia.entity.Consortia;
|
import com.sqx.modules.consortia.entity.Consortia;
|
||||||
|
@ -78,6 +85,8 @@ public class AliPayController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserMoneyDao userMoneyDao;
|
private UserMoneyDao userMoneyDao;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private UserMoneyService userMoneyService;
|
||||||
|
@Autowired
|
||||||
private PayDetailsDao payDetailsDao;
|
private PayDetailsDao payDetailsDao;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserMoneyDetailsService userMoneyDetailsService;
|
private UserMoneyDetailsService userMoneyDetailsService;
|
||||||
|
@ -113,6 +122,17 @@ public class AliPayController {
|
||||||
private UserMoneyArtificerService userMoneyArtificerService;
|
private UserMoneyArtificerService userMoneyArtificerService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ArtificerTimeService artificerTimeService;
|
private ArtificerTimeService artificerTimeService;
|
||||||
|
@Autowired
|
||||||
|
private UserPackageOrderDao userPackageOrderDao;
|
||||||
|
@Autowired
|
||||||
|
MassagePackageService massagePackageService;
|
||||||
|
@Autowired
|
||||||
|
UserPackageService userPackageService;
|
||||||
|
@Autowired
|
||||||
|
UserPackageDetailService userPackageDetailService;
|
||||||
|
@Autowired
|
||||||
|
UserPackageOrdersMappingService userPackageOrdersMappingService;
|
||||||
|
|
||||||
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
|
||||||
|
@ -329,6 +349,21 @@ public class AliPayController {
|
||||||
}
|
}
|
||||||
|
|
||||||
ordersService.sendMsg(orders);
|
ordersService.sendMsg(orders);
|
||||||
|
|
||||||
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||||
|
userMoneyDetails.setManipulateType(1);
|
||||||
|
userMoneyDetails.setMoney(orders.getPayMoney());
|
||||||
|
userMoneyDetails.setUserId(orders.getUserId());
|
||||||
|
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
|
||||||
|
userMoneyDetails.setTitle("支付服务包订单");
|
||||||
|
userMoneyDetails.setType(2);
|
||||||
|
userMoneyDetails.setState(2);
|
||||||
|
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
|
||||||
|
|
||||||
} else if (payDetails.getType() == 2) {
|
} else if (payDetails.getType() == 2) {
|
||||||
//缴纳保证金
|
//缴纳保证金
|
||||||
Double cashDeposit = payDetails.getMoney();
|
Double cashDeposit = payDetails.getMoney();
|
||||||
|
@ -342,23 +377,40 @@ public class AliPayController {
|
||||||
userMoneyDetails.setUserId(userId);
|
userMoneyDetails.setUserId(userId);
|
||||||
userMoneyDetails.setTitle("缴纳保证金");
|
userMoneyDetails.setTitle("缴纳保证金");
|
||||||
userMoneyDetails.setContent("已缴纳保证金:" + cashDeposit + "元");
|
userMoneyDetails.setContent("已缴纳保证金:" + cashDeposit + "元");
|
||||||
userMoneyDetails.setType(1);
|
// userMoneyDetails.setType(1);
|
||||||
|
userMoneyDetails.setManipulateType(1);
|
||||||
userMoneyDetails.setMoney(BigDecimal.valueOf(cashDeposit));
|
userMoneyDetails.setMoney(BigDecimal.valueOf(cashDeposit));
|
||||||
|
userMoneyDetails.setType(2);
|
||||||
userMoneyDetails.setState(2);
|
userMoneyDetails.setState(2);
|
||||||
userMoneyDetails.setClassify(1);
|
userMoneyDetails.setClassify(1);
|
||||||
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(2);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
userMoneyDetailsService.save(userMoneyDetails);
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
} else if (payDetails.getType() == 3) {
|
} else if (payDetails.getType() == 3) {
|
||||||
PayClassify payClassify = payClassifyService.getById(Long.parseLong(payDetails.getRemark()));
|
PayClassify payClassify = payClassifyService.getById(Long.parseLong(payDetails.getRemark()));
|
||||||
userMoneyDao.updateMayMoney(1, payDetails.getUserId(), payClassify.getPrice().doubleValue());
|
userMoneyDao.updateMayMoney(1, payDetails.getUserId(), payClassify.getPrice().doubleValue());
|
||||||
|
//查询用户当前余额
|
||||||
|
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(payDetails.getUserId());
|
||||||
|
//钱包明细需要做调整2条记录,充值时钱包类型增加金额,现金类型减少金额
|
||||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||||
|
//插入余额
|
||||||
|
userMoneyDetails.setBalance(userNowMoney.getMoney());
|
||||||
userMoneyDetails.setUserId(payDetails.getUserId());
|
userMoneyDetails.setUserId(payDetails.getUserId());
|
||||||
userMoneyDetails.setTitle("支付宝充值");
|
userMoneyDetails.setTitle("支付宝充值");
|
||||||
userMoneyDetails.setContent("支付宝充值:"+payClassify.getPrice());
|
userMoneyDetails.setContent("支付宝充值:"+payClassify.getPrice());
|
||||||
|
userMoneyDetails.setManipulateType(2);
|
||||||
userMoneyDetails.setType(1);
|
userMoneyDetails.setType(1);
|
||||||
|
userMoneyDetails.setState(2);
|
||||||
userMoneyDetails.setMoney(payClassify.getPrice());
|
userMoneyDetails.setMoney(payClassify.getPrice());
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(1);
|
||||||
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
userMoneyDetails.setType(2);
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
userMoneyDetailsService.save(userMoneyDetails);
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
|
||||||
|
|
||||||
|
@ -393,11 +445,15 @@ public class AliPayController {
|
||||||
UserMoneyDetails userMoneyDetails=new UserMoneyDetails();
|
UserMoneyDetails userMoneyDetails=new UserMoneyDetails();
|
||||||
userMoneyDetails.setClassify(1);
|
userMoneyDetails.setClassify(1);
|
||||||
userMoneyDetails.setType(2);
|
userMoneyDetails.setType(2);
|
||||||
|
userMoneyDetails.setState(2);
|
||||||
|
userMoneyDetails.setManipulateType(1);
|
||||||
userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney()));
|
userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney()));
|
||||||
userMoneyDetails.setUserId(payDetails.getUserId());
|
userMoneyDetails.setUserId(payDetails.getUserId());
|
||||||
userMoneyDetails.setTitle("微信购买优惠券,卷包:"+couponIssue.getCouponIssueName());
|
userMoneyDetails.setTitle("微信购买优惠券,卷包:"+couponIssue.getCouponIssueName());
|
||||||
userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney());
|
userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney());
|
||||||
userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
|
userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
userMoneyDetailsService.save(userMoneyDetails);
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
for(String couponId:couponIds){
|
for(String couponId:couponIds){
|
||||||
|
@ -478,7 +534,11 @@ public class AliPayController {
|
||||||
}
|
}
|
||||||
userMoneyDetails.setTitle("开通会员");
|
userMoneyDetails.setTitle("开通会员");
|
||||||
userMoneyDetails.setType(2);
|
userMoneyDetails.setType(2);
|
||||||
|
userMoneyDetails.setState(2);
|
||||||
|
userMoneyDetails.setManipulateType(1);
|
||||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
userMoneyDetailsService.save(userMoneyDetails);
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
UserEntity userEntity = userService.selectUserById(userId);
|
UserEntity userEntity = userService.selectUserById(userId);
|
||||||
messageInfo.setTitle("开通会员");
|
messageInfo.setTitle("开通会员");
|
||||||
|
@ -533,18 +593,109 @@ public class AliPayController {
|
||||||
userMoneyArtificerService.updateMoney(1, payDetails.getUserId(), artificerId,money);
|
userMoneyArtificerService.updateMoney(1, payDetails.getUserId(), artificerId,money);
|
||||||
}
|
}
|
||||||
Artificer artificer = artificerService.getById(artificerId);
|
Artificer artificer = artificerService.getById(artificerId);
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
//用户流水
|
||||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||||
userMoneyDetails.setClassify(8);
|
userMoneyDetails.setClassify(8);
|
||||||
|
userMoneyDetails.setManipulateType(1);
|
||||||
userMoneyDetails.setUserId(payDetails.getUserId());
|
userMoneyDetails.setUserId(payDetails.getUserId());
|
||||||
userMoneyDetails.setTitle("支付宝充值");
|
userMoneyDetails.setTitle("支付宝给技师充值");
|
||||||
userMoneyDetails.setContent("指定技师“"+artificer.getArtificerName()+"”钱包支付宝充值:"+money);
|
userMoneyDetails.setContent("指定技师“"+artificer.getArtificerName()+"”钱包支付宝充值:"+money);
|
||||||
userMoneyDetails.setType(1);
|
userMoneyDetails.setType(2);
|
||||||
|
userMoneyDetails.setState(2);
|
||||||
userMoneyDetails.setMoney(BigDecimal.valueOf(money));
|
userMoneyDetails.setMoney(BigDecimal.valueOf(money));
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
userMoneyDetails.setArtificerId(artificerId);
|
||||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
//技师流水
|
||||||
|
UserEntity userEntity = userService.queryByUserId(payDetails.getUserId());
|
||||||
|
userMoneyDao.updateMayMoney(1, artificerId, money);
|
||||||
|
//查询技师当前余额
|
||||||
|
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(artificerId);
|
||||||
|
UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails();
|
||||||
|
//插入余额
|
||||||
|
userMoneyDetails2.setBalance(userNowMoney.getMoney());
|
||||||
|
userMoneyDetails.setManipulateType(2);
|
||||||
|
userMoneyDetails2.setClassify(8);
|
||||||
|
userMoneyDetails2.setUserId(artificerId);
|
||||||
|
userMoneyDetails2.setTitle("用户支付宝充值");
|
||||||
|
userMoneyDetails2.setContent("用户“"+userEntity.getUserName()+"”支付宝充值:"+money);
|
||||||
|
userMoneyDetails2.setType(1);
|
||||||
|
userMoneyDetails2.setState(2);
|
||||||
|
userMoneyDetails2.setMoney(BigDecimal.valueOf(money));
|
||||||
|
userMoneyDetails2.setCreateTime(sdf.format(new Date()));
|
||||||
|
userMoneyDetails2.setBlRole(2);
|
||||||
|
userMoneyDetails2.setBlFlag(1);
|
||||||
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
}else if(payDetails.getType()==7){
|
||||||
|
//服务包下单,分单
|
||||||
|
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);
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
|
||||||
|
orders.setStatus(2);
|
||||||
|
orders.setPayWay(payDetails.getClassify());
|
||||||
|
orders.setPayTime(sdf.format(new Date()));
|
||||||
|
userPackageOrderDao.updateStatus(orders);
|
||||||
|
|
||||||
|
//获取订单-服务包映射关系列表
|
||||||
|
List<UserPackageOrdersMapping> mappingList = userPackageOrdersMappingService.findListByOrdersId(orders.getOrdersId());
|
||||||
|
for (UserPackageOrdersMapping ordersPackage : mappingList) {
|
||||||
|
int quantity = ordersPackage.getNum();
|
||||||
|
MassagePackage massagePackage = massagePackageService.getById(ordersPackage.getPackageId());
|
||||||
|
//修改服务包销量
|
||||||
|
int sales = massagePackage.getSales();
|
||||||
|
sales = sales+quantity;
|
||||||
|
massagePackage.setSales(sales);
|
||||||
|
massagePackageService.updateSales(massagePackage);
|
||||||
|
for(int i=0;i<quantity;i++){
|
||||||
|
//拆分插入用户服务包
|
||||||
|
UserPackage userPackage = new UserPackage();
|
||||||
|
userPackage.setUserId(orders.getUserId());
|
||||||
|
userPackage.setPackageId(massagePackage.getId());
|
||||||
|
userPackage.setOrdersId(orders.getOrdersId());
|
||||||
|
userPackage.setOrdersNo(orders.getOrdersNo());
|
||||||
|
userPackage.setCreateTime(sdf.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());
|
||||||
|
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(sdf.format(new Date()));
|
||||||
|
int serviceCount = upd.getServiceCount();
|
||||||
|
for(int k=0;k<serviceCount;k++){
|
||||||
|
userPackageDetailService.insert(upd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -650,6 +801,49 @@ public class AliPayController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Login
|
||||||
|
@ApiOperation("支付宝支付订单")
|
||||||
|
@RequestMapping(value = "/payPackageOrder", method = RequestMethod.POST)
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public Result payPackageOrder(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(7);
|
||||||
|
payDetailsDao.insert(payDetails);
|
||||||
|
}else{
|
||||||
|
payDetails1.setClassify(6);
|
||||||
|
payDetails1.setType(7);
|
||||||
|
payDetailsDao.updateById(payDetails1);
|
||||||
|
}
|
||||||
|
if (type == 1) {
|
||||||
|
return payApp(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue());
|
||||||
|
} else {
|
||||||
|
return payH5(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue(), returnUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Login
|
@Login
|
||||||
@ApiOperation("支付宝支付订单")
|
@ApiOperation("支付宝支付订单")
|
||||||
|
|
|
@ -49,6 +49,13 @@ public class ApiWeiXinPayController {
|
||||||
return wxService.payOrder(ordersId,type,request);
|
return wxService.payOrder(ordersId,type,request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Login
|
||||||
|
@ApiOperation("微信app支付套餐订单")
|
||||||
|
@PostMapping("/payPackageOrder")
|
||||||
|
public Result payPackageOrder(Long ordersId,Integer type,HttpServletRequest request) throws Exception {
|
||||||
|
return wxService.payPackageOrder(ordersId,type,request);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Login
|
@Login
|
||||||
@ApiOperation("缴纳保证金")
|
@ApiOperation("缴纳保证金")
|
||||||
|
|
|
@ -18,8 +18,12 @@ public interface WxService {
|
||||||
|
|
||||||
Result payOrder(Long id, Integer type,HttpServletRequest request) throws Exception;
|
Result payOrder(Long id, Integer type,HttpServletRequest request) throws Exception;
|
||||||
|
|
||||||
|
Result payPackageOrder(Long id, Integer classify,HttpServletRequest request) throws Exception;
|
||||||
|
|
||||||
Result payCoupon(Long userId, Integer type, Long couponIssueId,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;
|
||||||
|
|
||||||
String payBack(String resXml,Integer type);
|
String payBack(String resXml,Integer type);
|
||||||
|
|
||||||
String payBacks(String resXml, Integer type);
|
String payBacks(String resXml, Integer type);
|
||||||
|
|
|
@ -12,15 +12,22 @@ import com.sqx.modules.app.dao.UserMoneyDao;
|
||||||
import com.sqx.modules.app.dao.UserVipDao;
|
import com.sqx.modules.app.dao.UserVipDao;
|
||||||
import com.sqx.modules.app.dao.VipDetailsDao;
|
import com.sqx.modules.app.dao.VipDetailsDao;
|
||||||
import com.sqx.modules.app.entity.*;
|
import com.sqx.modules.app.entity.*;
|
||||||
import com.sqx.modules.app.service.UserCertificationService;
|
import com.sqx.modules.app.service.*;
|
||||||
import com.sqx.modules.app.service.UserMoneyArtificerService;
|
|
||||||
import com.sqx.modules.app.service.UserMoneyDetailsService;
|
|
||||||
import com.sqx.modules.app.service.UserService;
|
|
||||||
import com.sqx.modules.artificer.dao.OrdersDao;
|
import com.sqx.modules.artificer.dao.OrdersDao;
|
||||||
import com.sqx.modules.artificer.dao.RealNameDao;
|
import com.sqx.modules.artificer.dao.RealNameDao;
|
||||||
import com.sqx.modules.artificer.dao.UserRechargeDao;
|
import com.sqx.modules.artificer.dao.UserRechargeDao;
|
||||||
import com.sqx.modules.artificer.entity.*;
|
import com.sqx.modules.artificer.entity.*;
|
||||||
import com.sqx.modules.artificer.service.*;
|
import com.sqx.modules.artificer.service.*;
|
||||||
|
import com.sqx.modules.bl.massage.entity.MassagePackage;
|
||||||
|
import com.sqx.modules.bl.massage.service.MassagePackageService;
|
||||||
|
import com.sqx.modules.bl.order.dao.UserPackageOrderDao;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackage;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackageDetail;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackageOrder;
|
||||||
|
import com.sqx.modules.bl.order.entity.UserPackageOrdersMapping;
|
||||||
|
import com.sqx.modules.bl.order.service.UserPackageDetailService;
|
||||||
|
import com.sqx.modules.bl.order.service.UserPackageOrdersMappingService;
|
||||||
|
import com.sqx.modules.bl.order.service.UserPackageService;
|
||||||
import com.sqx.modules.common.entity.CommonInfo;
|
import com.sqx.modules.common.entity.CommonInfo;
|
||||||
import com.sqx.modules.common.service.CommonInfoService;
|
import com.sqx.modules.common.service.CommonInfoService;
|
||||||
import com.sqx.modules.consortia.entity.Consortia;
|
import com.sqx.modules.consortia.entity.Consortia;
|
||||||
|
@ -74,6 +81,8 @@ public class WxServiceImpl implements WxService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserMoneyDao userMoneyDao;
|
private UserMoneyDao userMoneyDao;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private UserMoneyService userMoneyService;
|
||||||
|
@Autowired
|
||||||
private UserMoneyDetailsService userMoneyDetailsService;
|
private UserMoneyDetailsService userMoneyDetailsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private OrdersService ordersService;
|
private OrdersService ordersService;
|
||||||
|
@ -109,6 +118,16 @@ public class WxServiceImpl implements WxService {
|
||||||
private ArtificerTimeService artificerTimeService;
|
private ArtificerTimeService artificerTimeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserRechargeDao userRechargeDao;
|
private UserRechargeDao userRechargeDao;
|
||||||
|
@Autowired
|
||||||
|
private UserPackageOrderDao userPackageOrderDao;
|
||||||
|
@Autowired
|
||||||
|
MassagePackageService massagePackageService;
|
||||||
|
@Autowired
|
||||||
|
UserPackageService userPackageService;
|
||||||
|
@Autowired
|
||||||
|
UserPackageDetailService userPackageDetailService;
|
||||||
|
@Autowired
|
||||||
|
UserPackageOrdersMappingService userPackageOrdersMappingService;
|
||||||
|
|
||||||
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
@ -146,7 +165,6 @@ public class WxServiceImpl implements WxService {
|
||||||
return pay(payClassify.getPrice().doubleValue(), classify, userId, generalOrder,request);
|
return pay(payClassify.getPrice().doubleValue(), classify, userId, generalOrder,request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result payOrder(Long id, Integer classify,HttpServletRequest request) throws Exception {
|
public Result payOrder(Long id, Integer classify,HttpServletRequest request) throws Exception {
|
||||||
Orders orders = ordersService.getById(id);
|
Orders orders = ordersService.getById(id);
|
||||||
|
@ -219,7 +237,38 @@ public class WxServiceImpl implements WxService {
|
||||||
payDetails1.setClassify(classify);
|
payDetails1.setClassify(classify);
|
||||||
payDetailsDao.updateById(payDetails1);
|
payDetailsDao.updateById(payDetails1);
|
||||||
}
|
}
|
||||||
|
return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result payPackageOrder(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(7);
|
||||||
|
payDetailsDao.insert(payDetails);
|
||||||
|
}else{
|
||||||
|
payDetails1.setClassify(classify);
|
||||||
|
payDetails1.setType(7);
|
||||||
|
payDetailsDao.updateById(payDetails1);
|
||||||
|
}
|
||||||
return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
|
return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -324,7 +373,8 @@ public class WxServiceImpl implements WxService {
|
||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private Result pay(Double moneys, Integer type, Long userId, String outTradeNo,HttpServletRequest request) throws Exception {
|
@Override
|
||||||
|
public Result pay(Double moneys, Integer type, Long userId, String outTradeNo,HttpServletRequest request) throws Exception {
|
||||||
//h5服务域名配置
|
//h5服务域名配置
|
||||||
CommonInfo oneu = commonInfoService.findOne(19);
|
CommonInfo oneu = commonInfoService.findOne(19);
|
||||||
String url;
|
String url;
|
||||||
|
@ -761,6 +811,7 @@ public class WxServiceImpl implements WxService {
|
||||||
|
|
||||||
|
|
||||||
ordersDao.updateById(orders1);
|
ordersDao.updateById(orders1);
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
MessageInfo messageInfo=new MessageInfo();
|
MessageInfo messageInfo=new MessageInfo();
|
||||||
messageInfo.setState("16");
|
messageInfo.setState("16");
|
||||||
|
@ -771,6 +822,20 @@ public class WxServiceImpl implements WxService {
|
||||||
}
|
}
|
||||||
|
|
||||||
ordersService.sendMsg(orders);
|
ordersService.sendMsg(orders);
|
||||||
|
|
||||||
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||||
|
userMoneyDetails.setManipulateType(1);
|
||||||
|
userMoneyDetails.setMoney(orders.getPayMoney());
|
||||||
|
userMoneyDetails.setUserId(orders.getUserId());
|
||||||
|
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
|
||||||
|
userMoneyDetails.setTitle("支付服务包订单");
|
||||||
|
userMoneyDetails.setType(2);
|
||||||
|
userMoneyDetails.setState(2);
|
||||||
|
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
|
||||||
}else if(payDetails.getType()==2){
|
}else if(payDetails.getType()==2){
|
||||||
//缴纳保证金
|
//缴纳保证金
|
||||||
Double cashDeposit = payDetails.getMoney();
|
Double cashDeposit = payDetails.getMoney();
|
||||||
|
@ -784,23 +849,41 @@ public class WxServiceImpl implements WxService {
|
||||||
userMoneyDetails.setUserId(userId);
|
userMoneyDetails.setUserId(userId);
|
||||||
userMoneyDetails.setTitle("缴纳保证金");
|
userMoneyDetails.setTitle("缴纳保证金");
|
||||||
userMoneyDetails.setContent("已缴纳保证金:"+cashDeposit+"元");
|
userMoneyDetails.setContent("已缴纳保证金:"+cashDeposit+"元");
|
||||||
userMoneyDetails.setType(1);
|
// userMoneyDetails.setType(1);
|
||||||
|
userMoneyDetails.setManipulateType(1);
|
||||||
|
userMoneyDetails.setType(2);
|
||||||
userMoneyDetails.setMoney(BigDecimal.valueOf(cashDeposit));
|
userMoneyDetails.setMoney(BigDecimal.valueOf(cashDeposit));
|
||||||
userMoneyDetails.setState(2);
|
userMoneyDetails.setState(2);
|
||||||
userMoneyDetails.setClassify(1);
|
userMoneyDetails.setClassify(1);
|
||||||
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(2);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
userMoneyDetailsService.save(userMoneyDetails);
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
}else if(payDetails.getType()==3){
|
}else if(payDetails.getType()==3){
|
||||||
|
|
||||||
PayClassify payClassify = payClassifyService.getById(Long.parseLong(payDetails.getRemark()));
|
PayClassify payClassify = payClassifyService.getById(Long.parseLong(payDetails.getRemark()));
|
||||||
userMoneyDao.updateMayMoney(1, payDetails.getUserId(), payClassify.getPrice().doubleValue());
|
userMoneyDao.updateMayMoney(1, payDetails.getUserId(), payClassify.getPrice().doubleValue());
|
||||||
|
//查询用户当前余额
|
||||||
|
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(payDetails.getUserId());
|
||||||
|
//钱包明细需要做调整2条记录,充值时钱包类型增加金额,现金类型减少金额
|
||||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||||
|
//插入余额
|
||||||
|
userMoneyDetails.setBalance(userNowMoney.getMoney());
|
||||||
userMoneyDetails.setUserId(payDetails.getUserId());
|
userMoneyDetails.setUserId(payDetails.getUserId());
|
||||||
userMoneyDetails.setTitle("微信充值");
|
userMoneyDetails.setTitle("微信充值");
|
||||||
userMoneyDetails.setContent("微信充值:"+payClassify.getPrice());
|
userMoneyDetails.setContent("微信充值:"+payClassify.getPrice());
|
||||||
|
userMoneyDetails.setManipulateType(2);
|
||||||
userMoneyDetails.setType(1);
|
userMoneyDetails.setType(1);
|
||||||
|
userMoneyDetails.setState(2);
|
||||||
userMoneyDetails.setMoney(payClassify.getPrice());
|
userMoneyDetails.setMoney(payClassify.getPrice());
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(1);
|
||||||
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
userMoneyDetails.setType(2);
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
userMoneyDetailsService.save(userMoneyDetails);
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
|
||||||
if(payClassify.getCouponId()!=null && payClassify.getGiveNum()>0){
|
if(payClassify.getCouponId()!=null && payClassify.getGiveNum()>0){
|
||||||
|
@ -834,11 +917,15 @@ public class WxServiceImpl implements WxService {
|
||||||
UserMoneyDetails userMoneyDetails=new UserMoneyDetails();
|
UserMoneyDetails userMoneyDetails=new UserMoneyDetails();
|
||||||
userMoneyDetails.setClassify(1);
|
userMoneyDetails.setClassify(1);
|
||||||
userMoneyDetails.setType(2);
|
userMoneyDetails.setType(2);
|
||||||
|
userMoneyDetails.setState(2);
|
||||||
|
userMoneyDetails.setManipulateType(1);
|
||||||
userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney()));
|
userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney()));
|
||||||
userMoneyDetails.setUserId(payDetails.getUserId());
|
userMoneyDetails.setUserId(payDetails.getUserId());
|
||||||
userMoneyDetails.setTitle("微信购买优惠券,卷包:"+couponIssue.getCouponIssueName());
|
userMoneyDetails.setTitle("微信购买优惠券,卷包:"+couponIssue.getCouponIssueName());
|
||||||
userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney());
|
userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney());
|
||||||
userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
|
userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
userMoneyDetailsService.save(userMoneyDetails);
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
for(String couponId:couponIds){
|
for(String couponId:couponIds){
|
||||||
|
@ -919,7 +1006,11 @@ public class WxServiceImpl implements WxService {
|
||||||
}
|
}
|
||||||
userMoneyDetails.setTitle("开通会员");
|
userMoneyDetails.setTitle("开通会员");
|
||||||
userMoneyDetails.setType(2);
|
userMoneyDetails.setType(2);
|
||||||
|
userMoneyDetails.setState(2);
|
||||||
|
userMoneyDetails.setManipulateType(1);
|
||||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
userMoneyDetailsService.save(userMoneyDetails);
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
UserEntity userEntity = userService.selectUserById(userId);
|
UserEntity userEntity = userService.selectUserById(userId);
|
||||||
messageInfo.setTitle("开通会员");
|
messageInfo.setTitle("开通会员");
|
||||||
|
@ -973,18 +1064,109 @@ public class WxServiceImpl implements WxService {
|
||||||
userMoneyArtificerService.updateMoney(1, payDetails.getUserId(),artificerId, money);
|
userMoneyArtificerService.updateMoney(1, payDetails.getUserId(),artificerId, money);
|
||||||
}
|
}
|
||||||
Artificer artificer = artificerService.getById(artificerId);
|
Artificer artificer = artificerService.getById(artificerId);
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
//用户流水
|
||||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||||
userMoneyDetails.setClassify(8);
|
userMoneyDetails.setClassify(8);
|
||||||
|
userMoneyDetails.setManipulateType(1);
|
||||||
userMoneyDetails.setUserId(payDetails.getUserId());
|
userMoneyDetails.setUserId(payDetails.getUserId());
|
||||||
userMoneyDetails.setTitle("微信充值");
|
userMoneyDetails.setTitle("微信给技师充值");
|
||||||
userMoneyDetails.setContent("指定技师“"+artificer.getArtificerName()+"”钱包微信充值:"+money);
|
userMoneyDetails.setContent("指定技师“"+artificer.getArtificerName()+"”钱包微信充值:"+money);
|
||||||
userMoneyDetails.setType(1);
|
userMoneyDetails.setType(2);
|
||||||
|
userMoneyDetails.setState(2);
|
||||||
userMoneyDetails.setMoney(BigDecimal.valueOf(money));
|
userMoneyDetails.setMoney(BigDecimal.valueOf(money));
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
userMoneyDetails.setArtificerId(artificerId);
|
||||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||||
|
userMoneyDetails.setBlRole(1);
|
||||||
|
userMoneyDetails.setBlFlag(2);
|
||||||
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
//技师流水
|
||||||
|
UserEntity userEntity = userService.queryByUserId(payDetails.getUserId());
|
||||||
|
userMoneyDao.updateMayMoney(1, artificerId, money);
|
||||||
|
//查询技师当前余额
|
||||||
|
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(artificerId);
|
||||||
|
UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails();
|
||||||
|
//插入余额
|
||||||
|
userMoneyDetails2.setBalance(userNowMoney.getMoney());
|
||||||
|
userMoneyDetails.setManipulateType(2);
|
||||||
|
userMoneyDetails2.setClassify(8);
|
||||||
|
userMoneyDetails2.setUserId(artificerId);
|
||||||
|
userMoneyDetails2.setTitle("用户微信充值");
|
||||||
|
userMoneyDetails2.setContent("用户“"+userEntity.getUserName()+"”微信充值:"+money);
|
||||||
|
userMoneyDetails2.setType(1);
|
||||||
|
userMoneyDetails2.setState(2);
|
||||||
|
userMoneyDetails2.setMoney(BigDecimal.valueOf(money));
|
||||||
|
userMoneyDetails2.setCreateTime(sdf.format(new Date()));
|
||||||
|
userMoneyDetails2.setBlRole(2);
|
||||||
|
userMoneyDetails2.setBlFlag(1);
|
||||||
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
}else if(payDetails.getType()==7){
|
||||||
|
//服务包下单,分单
|
||||||
|
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);
|
userMoneyDetailsService.save(userMoneyDetails);
|
||||||
|
|
||||||
|
orders.setStatus(2);
|
||||||
|
orders.setPayWay(payDetails.getClassify());
|
||||||
|
orders.setPayTime(sdf.format(new Date()));
|
||||||
|
userPackageOrderDao.updateStatus(orders);
|
||||||
|
|
||||||
|
//获取订单-服务包映射关系列表
|
||||||
|
List<UserPackageOrdersMapping> mappingList = userPackageOrdersMappingService.findListByOrdersId(orders.getOrdersId());
|
||||||
|
for (UserPackageOrdersMapping ordersPackage : mappingList) {
|
||||||
|
int quantity = ordersPackage.getNum();
|
||||||
|
MassagePackage massagePackage = massagePackageService.getById(ordersPackage.getPackageId());
|
||||||
|
//修改服务包销量
|
||||||
|
int sales = massagePackage.getSales();
|
||||||
|
sales = sales+quantity;
|
||||||
|
massagePackage.setSales(sales);
|
||||||
|
massagePackageService.updateSales(massagePackage);
|
||||||
|
for(int i=0;i<quantity;i++){
|
||||||
|
//拆分插入用户服务包
|
||||||
|
UserPackage userPackage = new UserPackage();
|
||||||
|
userPackage.setUserId(orders.getUserId());
|
||||||
|
userPackage.setPackageId(massagePackage.getId());
|
||||||
|
userPackage.setOrdersId(orders.getOrdersId());
|
||||||
|
userPackage.setOrdersNo(orders.getOrdersNo());
|
||||||
|
userPackage.setCreateTime(sdf.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());
|
||||||
|
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(sdf.format(new Date()));
|
||||||
|
int serviceCount = upd.getServiceCount();
|
||||||
|
for(int k=0;k<serviceCount;k++){
|
||||||
|
userPackageDetailService.insert(upd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.err.println("微信手机支付回调成功订单号:" + out_trade_no + "");
|
System.err.println("微信手机支付回调成功订单号:" + out_trade_no + "");
|
||||||
|
|
|
@ -25,6 +25,10 @@
|
||||||
where user_id=#{userId}
|
where user_id=#{userId}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<update id="updateMoney">
|
||||||
|
update user_money
|
||||||
|
set money=#{money}
|
||||||
|
where user_id=#{userId}
|
||||||
|
</update>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
|
@ -19,4 +19,96 @@
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<insert id="insert">
|
||||||
|
insert into user_money_details
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="null != userId ">
|
||||||
|
user_id,
|
||||||
|
</if>
|
||||||
|
<if test="null != byUserId ">
|
||||||
|
by_user_id,
|
||||||
|
</if>
|
||||||
|
<if test="null != title and '' != title ">
|
||||||
|
title,
|
||||||
|
</if>
|
||||||
|
<if test="null != classify ">
|
||||||
|
classify,
|
||||||
|
</if>
|
||||||
|
<if test="null != type ">
|
||||||
|
type,
|
||||||
|
</if>
|
||||||
|
<if test="null != state ">
|
||||||
|
state,
|
||||||
|
</if>
|
||||||
|
<if test="null != money ">
|
||||||
|
money,
|
||||||
|
</if>
|
||||||
|
<if test="null != content and '' != content ">
|
||||||
|
content,
|
||||||
|
</if>
|
||||||
|
<if test="null != createTime and '' != createTime ">
|
||||||
|
create_time,
|
||||||
|
</if>
|
||||||
|
<if test="null != artificerId ">
|
||||||
|
artificer_id,
|
||||||
|
</if>
|
||||||
|
<if test="null != manipulateType ">
|
||||||
|
manipulate_type,
|
||||||
|
</if>
|
||||||
|
<if test="null != balance ">
|
||||||
|
balance,
|
||||||
|
</if>
|
||||||
|
<if test="null != blRole ">
|
||||||
|
bl_role,
|
||||||
|
</if>
|
||||||
|
<if test="null != blFlag ">
|
||||||
|
bl_flag
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="null != userId ">
|
||||||
|
#{userId},
|
||||||
|
</if>
|
||||||
|
<if test="null != byUserId ">
|
||||||
|
#{byUserId},
|
||||||
|
</if>
|
||||||
|
<if test="null != title and '' != title ">
|
||||||
|
#{title},
|
||||||
|
</if>
|
||||||
|
<if test="null != classify ">
|
||||||
|
#{classify},
|
||||||
|
</if>
|
||||||
|
<if test="null != type ">
|
||||||
|
#{type},
|
||||||
|
</if>
|
||||||
|
<if test="null != state ">
|
||||||
|
#{state},
|
||||||
|
</if>
|
||||||
|
<if test="null != money ">
|
||||||
|
#{money},
|
||||||
|
</if>
|
||||||
|
<if test="null != content and '' != content ">
|
||||||
|
#{content},
|
||||||
|
</if>
|
||||||
|
<if test="null != createTime and '' != createTime ">
|
||||||
|
#{createTime},
|
||||||
|
</if>
|
||||||
|
<if test="null != artificerId ">
|
||||||
|
#{artificerId},
|
||||||
|
</if>
|
||||||
|
<if test="null != manipulateType ">
|
||||||
|
#{manipulateType},
|
||||||
|
</if>
|
||||||
|
<if test="null != balance ">
|
||||||
|
#{balance},
|
||||||
|
</if>
|
||||||
|
<if test="null != blRole ">
|
||||||
|
#{blRole},
|
||||||
|
</if>
|
||||||
|
<if test="null != blFlag ">
|
||||||
|
#{blFlag}
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
|
@ -9,12 +9,7 @@
|
||||||
a.orders_no,
|
a.orders_no,
|
||||||
a.user_id,
|
a.user_id,
|
||||||
b.user_name,
|
b.user_name,
|
||||||
a.package_id,
|
|
||||||
a.package_name,
|
|
||||||
a.type,
|
|
||||||
a.vip_rate,
|
a.vip_rate,
|
||||||
a.price,
|
|
||||||
a.quantity,
|
|
||||||
a.old_sum_money,
|
a.old_sum_money,
|
||||||
a.sum_money,
|
a.sum_money,
|
||||||
a.pay_money,
|
a.pay_money,
|
||||||
|
@ -25,24 +20,65 @@
|
||||||
a.coupon_count,
|
a.coupon_count,
|
||||||
a.coupon_money,
|
a.coupon_money,
|
||||||
a.refund_time,
|
a.refund_time,
|
||||||
a.refund_money
|
a.refund_money,
|
||||||
|
a.create_time
|
||||||
from bl_user_package_order a left join tb_user b on a.user_id = b.user_id
|
from bl_user_package_order a left join tb_user b on a.user_id = b.user_id
|
||||||
where 1=1
|
where 1=1
|
||||||
<if test="params.status!=null and params.status!=0">
|
<if test="params.status!=null and params.status!=0">
|
||||||
and a.status=#{params.status}
|
and a.status=#{params.status}
|
||||||
</if>
|
</if>
|
||||||
<if test="params.type!=null and params.type!=''">
|
|
||||||
and a.type=#{params.type}
|
|
||||||
</if>
|
|
||||||
<if test="params.ordersNo!=null and params.ordersNo!=''">
|
<if test="params.ordersNo!=null and params.ordersNo!=''">
|
||||||
and a.orders_no like concat('%',#{params.ordersNo},'%')
|
and a.orders_no like concat('%',#{params.ordersNo},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="params.packageName!=null and params.packageName!=''">
|
|
||||||
and a.package_name like concat('%',#{params.packageName},'%')
|
|
||||||
</if>
|
|
||||||
order by a.orders_id desc
|
order by a.orders_id desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getById" resultType="com.sqx.modules.bl.order.entity.UserPackageOrder">
|
||||||
|
select
|
||||||
|
a.orders_id,
|
||||||
|
a.orders_no,
|
||||||
|
a.user_id,
|
||||||
|
b.user_name,
|
||||||
|
a.vip_rate,
|
||||||
|
a.old_sum_money,
|
||||||
|
a.sum_money,
|
||||||
|
a.pay_money,
|
||||||
|
a.pay_time,
|
||||||
|
a.pay_way,
|
||||||
|
a.status,
|
||||||
|
a.coupon_id,
|
||||||
|
a.coupon_count,
|
||||||
|
a.coupon_money,
|
||||||
|
a.refund_time,
|
||||||
|
a.refund_money,
|
||||||
|
a.create_time
|
||||||
|
from bl_user_package_order a left join tb_user b on a.user_id = b.user_id
|
||||||
|
where a.orders_id = #{ordersId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getByNo" resultType="com.sqx.modules.bl.order.entity.UserPackageOrder">
|
||||||
|
select
|
||||||
|
a.orders_id,
|
||||||
|
a.orders_no,
|
||||||
|
a.user_id,
|
||||||
|
b.user_name,
|
||||||
|
a.vip_rate,
|
||||||
|
a.old_sum_money,
|
||||||
|
a.sum_money,
|
||||||
|
a.pay_money,
|
||||||
|
a.pay_time,
|
||||||
|
a.pay_way,
|
||||||
|
a.status,
|
||||||
|
a.coupon_id,
|
||||||
|
a.coupon_count,
|
||||||
|
a.coupon_money,
|
||||||
|
a.refund_time,
|
||||||
|
a.refund_money,
|
||||||
|
a.create_time
|
||||||
|
from bl_user_package_order a left join tb_user b on a.user_id = b.user_id
|
||||||
|
where a.orders_no = #{ordersNo}
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="findCoupon" resultType="com.sqx.modules.bl.order.entity.UserPackageOrder">
|
<select id="findCoupon" resultType="com.sqx.modules.bl.order.entity.UserPackageOrder">
|
||||||
select
|
select
|
||||||
coupon_name,
|
coupon_name,
|
||||||
|
@ -70,24 +106,9 @@
|
||||||
<if test="null != userId ">
|
<if test="null != userId ">
|
||||||
user_id,
|
user_id,
|
||||||
</if>
|
</if>
|
||||||
<if test="null != packageId ">
|
|
||||||
package_id,
|
|
||||||
</if>
|
|
||||||
<if test="null != packageName and '' != packageName ">
|
|
||||||
package_name,
|
|
||||||
</if>
|
|
||||||
<if test="null != type ">
|
|
||||||
type,
|
|
||||||
</if>
|
|
||||||
<if test="null != vipRate ">
|
<if test="null != vipRate ">
|
||||||
vip_rate,
|
vip_rate,
|
||||||
</if>
|
</if>
|
||||||
<if test="null != price ">
|
|
||||||
price,
|
|
||||||
</if>
|
|
||||||
<if test="null != quantity ">
|
|
||||||
quantity,
|
|
||||||
</if>
|
|
||||||
<if test="null != oldSumMoney ">
|
<if test="null != oldSumMoney ">
|
||||||
old_sum_money,
|
old_sum_money,
|
||||||
</if>
|
</if>
|
||||||
|
@ -113,7 +134,10 @@
|
||||||
coupon_count,
|
coupon_count,
|
||||||
</if>
|
</if>
|
||||||
<if test="null != couponMoney ">
|
<if test="null != couponMoney ">
|
||||||
coupon_money
|
coupon_money,
|
||||||
|
</if>
|
||||||
|
<if test="null != createTime and '' != createTime">
|
||||||
|
create_time
|
||||||
</if>
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
@ -123,24 +147,9 @@
|
||||||
<if test="null != userId ">
|
<if test="null != userId ">
|
||||||
#{userId},
|
#{userId},
|
||||||
</if>
|
</if>
|
||||||
<if test="null != packageId ">
|
|
||||||
#{packageId},
|
|
||||||
</if>
|
|
||||||
<if test="null != packageName and '' != packageName ">
|
|
||||||
#{packageName},
|
|
||||||
</if>
|
|
||||||
<if test="null != type ">
|
|
||||||
#{type},
|
|
||||||
</if>
|
|
||||||
<if test="null != vipRate ">
|
<if test="null != vipRate ">
|
||||||
#{vipRate},
|
#{vipRate},
|
||||||
</if>
|
</if>
|
||||||
<if test="null != price ">
|
|
||||||
#{price},
|
|
||||||
</if>
|
|
||||||
<if test="null != quantity ">
|
|
||||||
#{quantity},
|
|
||||||
</if>
|
|
||||||
<if test="null != oldSumMoney ">
|
<if test="null != oldSumMoney ">
|
||||||
#{oldSumMoney},
|
#{oldSumMoney},
|
||||||
</if>
|
</if>
|
||||||
|
@ -166,7 +175,10 @@
|
||||||
#{couponCount},
|
#{couponCount},
|
||||||
</if>
|
</if>
|
||||||
<if test="null != couponMoney ">
|
<if test="null != couponMoney ">
|
||||||
#{couponMoney}
|
#{couponMoney},
|
||||||
|
</if>
|
||||||
|
<if test="null != createTime and '' != createTime">
|
||||||
|
#{createTime}
|
||||||
</if>
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
@ -176,6 +188,17 @@
|
||||||
values(#{ordersId},#{userCouponId},#{couponName},#{couponMoney})
|
values(#{ordersId},#{userCouponId},#{couponName},#{couponMoney})
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<select id="selectOrdersStatusByTime" resultType="com.sqx.modules.bl.order.entity.UserPackageOrder">
|
||||||
|
select * from bl_user_package_order where now()>= DATE_ADD( create_time, INTERVAL #{time} MINUTE ) and status=0
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<update id="updateStatus">
|
||||||
|
update bl_user_package_order
|
||||||
|
set
|
||||||
|
pay_way = #{payWay},
|
||||||
|
status = #{status},
|
||||||
|
pay_time = #{payTime}
|
||||||
|
where orders_id = #{ordersId}
|
||||||
|
</update>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
|
||||||
|
<mapper namespace="com.sqx.modules.bl.order.dao.UserPackageOrdersMappingDao">
|
||||||
|
|
||||||
|
<select id="findList" resultType="com.sqx.modules.bl.order.entity.UserPackageOrdersMapping">
|
||||||
|
select
|
||||||
|
mapping_id,
|
||||||
|
orders_id,
|
||||||
|
package_id,
|
||||||
|
num
|
||||||
|
from bl_user_package_order_mapping
|
||||||
|
where 1=1
|
||||||
|
<if test="ordersId!=null and ordersId!=0">
|
||||||
|
and orders_id=#{ordersId}
|
||||||
|
</if>
|
||||||
|
<if test="packageId!=null and packageId!=''">
|
||||||
|
and package_id=#{packageId}
|
||||||
|
</if>
|
||||||
|
order by mapping_id
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<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
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insert" parameterType="com.sqx.modules.bl.order.entity.UserPackageOrdersMapping">
|
||||||
|
INSERT INTO bl_user_package_order_mapping(
|
||||||
|
orders_id,
|
||||||
|
package_id,
|
||||||
|
num
|
||||||
|
)values(
|
||||||
|
#{ordersId},
|
||||||
|
#{packageId},
|
||||||
|
#{num}
|
||||||
|
)
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue