Przeglądaj źródła

wx_order添加分表

release_toaliyun_real
xiaohanzi 5 lat temu
rodzic
commit
f598824e4e
14 zmienionych plików z 83 dodań i 52 usunięć
  1. +10
    -10
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java
  2. +1
    -1
      mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java
  3. +4
    -4
      mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java
  4. +1
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java
  5. +2
    -2
      mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java
  6. +1
    -0
      mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java
  7. +25
    -6
      mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java
  8. +5
    -1
      mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java
  9. +5
    -5
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  10. +1
    -0
      mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java
  11. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java
  12. +15
    -13
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  13. +1
    -1
      mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderSuccessMsgServiceImpl.java
  14. +11
    -7
      mallinkService/src/main/resources/mapper/WxOrderMapper.xml

+ 10
- 10
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java Wyświetl plik

@@ -102,15 +102,15 @@ public class WxOrderController extends BaseController {
return new ResultData();
}

@ApiOperation("根据id删除接口")
@GetMapping("/del")
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
@SystemControllerLog(description = "订单管理-删除")
public ResultData delete(Long id) {
logger.debug("[" + getIpAddr() + "] WxOrderController::delete");
wxOrderService.deleteById(id);
return new ResultData(Result.SUCCESS, "删除成功", null);
}
// @ApiOperation("根据id删除接口")
// @GetMapping("/del")
// @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
// @SystemControllerLog(description = "订单管理-删除")
// public ResultData delete(Long id) {
// logger.debug("[" + getIpAddr() + "] WxOrderController::delete");
// wxOrderService.deleteById(id);
// return new ResultData(Result.SUCCESS, "删除成功", null);
// }

@ApiOperation("根据id查询接口")
@GetMapping("/findById")
@@ -118,7 +118,7 @@ public class WxOrderController extends BaseController {
@SystemControllerLog(description = "订单管理-id查询")
public ResultData findById(Long id) {
logger.debug("[" + getIpAddr() + "] WxOrderController::findById");
return new ResultData(Result.SUCCESS, "查询成功", wxOrderService.getById(id));
return new ResultData(Result.SUCCESS, "查询成功", wxOrderService.getById(id,getTenantInfo().getTenantId()));
}




+ 1
- 1
mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java Wyświetl plik

@@ -425,7 +425,7 @@ public class WxMicroPayController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
}

WxOrder microOrder = wxOrderService.getById(orderId);
WxOrder microOrder = wxOrderService.getById(orderId,wxMerchantBUser.getTenantId());
if (microOrder == null) {
return new ResultData(ErrorCode.ORDER_IS_NOT_FIND);
}


+ 4
- 4
mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java Wyświetl plik

@@ -102,7 +102,7 @@ public class WxOrderController extends BaseController {
}
//判断是否是拼团订单,如果是拼团订单,判断现在进行中的,和已完成的数量是否超出券的限制
if (coupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode())) {
int ordercount = wxOrderService.countUserCouponGroupOrder(cUserId,coupon.getId());
int ordercount = wxOrderService.countUserCouponGroupOrder(cUserId,coupon.getId(),coupon.getTenantId());
if (ordercount>=coupon.getUseLimitQuantity()) {
return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF.getCode(),"您当前此券的有效拼团数量达到券的限购次数。");
}
@@ -244,7 +244,7 @@ public class WxOrderController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "orderId: " + orderIdStr + ", e: " + e.getMessage());
}
try {
WxOrder order = wxOrderService.getById(orderId);
WxOrder order = wxOrderService.getById(orderId,getTenantInfo().getTenantId());
if (order != null) {
wxOrderService.updateOrderStatus(order, EnumOrderStatus.ORDER_STATUS_OVERTIME_CANCEL);
}
@@ -273,7 +273,7 @@ public class WxOrderController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "退款订单ID转换失败");
}
try {
WxOrder order = wxOrderService.getById(orderId);
WxOrder order = wxOrderService.getById(orderId,getTenantInfo().getTenantId());
if (order != null) {
wxOrderService.updateOrderStatus(order, EnumOrderStatus.ORDER_STATUS_REFUND_SUCCESS);
}
@@ -385,7 +385,7 @@ public class WxOrderController extends BaseController {
}
WxOrder order = null;
try {
order = wxOrderService.getById(id);
order = wxOrderService.getById(id,getTenantInfo().getTenantId());
if (order != null) {
return new ResultData(Result.SUCCESS, "查询成功", order);
} else {


+ 1
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java Wyświetl plik

@@ -182,7 +182,7 @@ public class WxPayOrderController extends BaseController {
if (null == payOrder) {
return new ResultData(ErrorCode.PAY_ORDER_ERROR, "未查询到payOrder.");
}
WxOrder order = wxOrderService.getById(orderId);
WxOrder order = wxOrderService.getById(orderId,payOrder.getTenantId());
if (null == order) {
return new ResultData(ErrorCode.PAY_ORDER_ERROR, "未查询到Order["+orderId+"].");
}


+ 2
- 2
mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java Wyświetl plik

@@ -92,7 +92,7 @@ public class WxPressOrderController extends BaseController {
order = operations.get(key);
} else {
// 订单没有入缓存,需要从数据库中读取
order = wxOrderService.getById(orderId);
order = wxOrderService.getById(orderId,getTenantInfo().getTenantId());
if (order != null) {
// 订单优化,进缓存
orderRedisTemplate.opsForValue().set(key, order, 3600, TimeUnit.SECONDS);
@@ -243,7 +243,7 @@ public class WxPressOrderController extends BaseController {
logger.error("orderId convert error, " + orderId + ", e:" + e.getMessage());
return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), "orderId: " + orderId + ", e:" + e.getMessage());
}
WxOrder order = wxOrderService.getById(orderIdL);
WxOrder order = wxOrderService.getById(orderIdL,getTenantInfo().getTenantId());
if(order == null) {
logger.error("订单不存在:" + orderId);
return new ResultData(ErrorCode.ORDER_IS_NOT_FIND);


+ 1
- 0
mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java Wyświetl plik

@@ -45,6 +45,7 @@ public class DaliyAmountSchedule {
dateMap.put("startDate", startDate);
dateMap.put("endDate", endDate);
dateMap.put("merchantId", merchant.getId());
dateMap.put("tenantId", merchant.getTenantId());

List<WxCouponOrder> list = wxCouponOrderMapper.findListOfOrderedByDate(dateMap);
logger.info("find " + list.size() + " coupon order from " + startDate + " to " + endDate);


+ 25
- 6
mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java Wyświetl plik

@@ -75,23 +75,35 @@ public class OrderExpiringSchedule {
@Autowired
WxPayAccountMapper wxPayAccountMapper;
@Autowired
WxMallMapper wxMallMapper;
@Autowired
WxPayOrderService wxPayOrderService;
@Autowired
PayServiceFactory payServiceFactory;
private List<WxMall> getMalls() {
WxMall wxMall =new WxMall();
return wxMallMapper.findList(wxMall);
}
@Scheduled(cron = "0 */5 * * * *?") // 每5分钟检查一次
//@Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次
public void orderExpireSchedule() {
for (EnumPayWay payWay: EnumPayWay.values()) {
if(null != payWay.getPlat()) {
orderExpireSchedule(payWay);
}
List<WxMall> malls = getMalls();
for (WxMall mall : malls) {
for (EnumPayWay payWay: EnumPayWay.values()) {
if(null != payWay.getPlat()) {
orderExpireSchedule(payWay,mall.getTenantId());
}
}
}
}
private void orderExpireSchedule(EnumPayWay payWay) {
private void orderExpireSchedule(EnumPayWay payWay,String tenantId) {

Map dateMap = new HashMap();
Date curDate = new Date();
@@ -103,6 +115,7 @@ public class OrderExpiringSchedule {
// 券相关订单, 15分钟未支付, 订单过期
dateMap.put("type", EnumOrderType.COUPON.getCode());
dateMap.put("endDate", expireDate);
dateMap.put("tenantId", tenantId);
List<WxOrder> orderCoupons = wxOrderMapper.findListOfUnpaidOrderByDate(dateMap);
orderCoupons.stream().forEach( o -> {
try {
@@ -117,6 +130,7 @@ public class OrderExpiringSchedule {
Date pressExpireDate = new Date(curDate.getTime() - PRESS_TIME_OUT );
dateMap.put("type", EnumOrderType.COUPON.getCode());
dateMap.put("endDate", pressExpireDate);
dateMap.put("tenantId", tenantId);
List<WxOrder> orderPresss = wxOrderMapper.findListOfCompleteUnPaidPressOrderByDate(dateMap);
orderPresss.stream().forEach( o -> {
try {
@@ -128,6 +142,7 @@ public class OrderExpiringSchedule {
// 2. 当前已超过砍价结束时间, 订单过期
dateMap.put("type", EnumOrderType.COUPON.getCode());
dateMap.put("endDate", curDate);
dateMap.put("tenantId", tenantId);
orderPresss = wxOrderMapper.findListOfUnpaidPressOrderByDate(dateMap);
orderPresss.stream().forEach( o -> {
try {
@@ -151,6 +166,7 @@ public class OrderExpiringSchedule {
Date groupExpireDate = new Date(curDate.getTime() - NORMAL_TIME_OUT );
dateMap.put("type", EnumOrderType.COUPON.getCode());
dateMap.put("endDate", groupExpireDate);
dateMap.put("tenantId", tenantId);
List<WxOrder> orderGroups = wxOrderMapper.findListOfUnpaidGroupOrderByDate(dateMap);
orderGroups.stream().forEach( o -> {
try {
@@ -162,9 +178,10 @@ public class OrderExpiringSchedule {

//更新拼团过期状态
wxOrderMapper.updateOrderStatusForGroup();
wxOrderMapper.updateOrderStatusForGroup(tenantId);
//拼团过期
order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_OVERTIME.getCode());
order.setTenantId(tenantId);
wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> {
try {
proxy.expiredAndReturnMoney((WxOrder) o,false,payWay);
@@ -236,6 +253,7 @@ public class OrderExpiringSchedule {
public boolean wxPaySuccess(WxOrder order,boolean autoReHandle,EnumPayWay payWay) throws MallinkException, Exception {
WxPayOrder payOrderq = new WxPayOrder();
payOrderq.setOrderId(order.getId());
payOrderq.setTenantId(order.getTenantId());
List<WxPayOrder> payorderlist = wxPayOrderMapper.findList(payOrderq);
if (null == payorderlist || payorderlist.size() <=0 ) {
return false;
@@ -300,6 +318,7 @@ public class OrderExpiringSchedule {
updateOrder.setId(order.getId());
updateOrder.setUpdateDate(new Date());
updateOrder.setOrderStatus(EnumOrderStatus.ORDER_STATUS_OVERTIME_CANCEL.getCode());
updateOrder.updateTenantInfo(order);
wxOrderMapper.updateById(updateOrder);

logger.info("券订单: " + order.getId() + " create at " + order.getCreateDate() + " expired at " + new Date());


+ 5
- 1
mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java Wyświetl plik

@@ -9,8 +9,12 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

public interface WxOrderMapper extends CommonMapper<WxOrder, Long> {

WxOrder selectById(@Param("id")Long id,@Param("tenantId")String tenantId);
List<WxOrder> findList(WxOrder wxOrder);

Integer countList(WxOrder wxOrder);
@@ -58,6 +62,6 @@ public interface WxOrderMapper extends CommonMapper<WxOrder, Long> {

void updateOrderGroupStatusByCouponChannelId(WxOrder updateOrder);

void updateOrderStatusForGroup();
void updateOrderStatusForGroup(@Param("tenantId")String tenantId);

}

+ 5
- 5
mallinkService/src/main/java/com/iformall/service/WxOrderService.java Wyświetl plik

@@ -120,7 +120,7 @@ public interface WxOrderService {
* @param id
* @return
*/
WxOrder getById(Long id);
WxOrder getById(Long id,String tenantId);

/**
* 根据Id获得实体
@@ -128,7 +128,7 @@ public interface WxOrderService {
* @param id
* @return
*/
WxOrder getPressOrderById(Long id);
WxOrder getPressOrderById(Long id,String tenantId);
/**
* 保存或更新实体
@@ -142,7 +142,7 @@ public interface WxOrderService {
*
* @param id
*/
void deleteById(Long id);
//void deleteById(Long id);
/**
* 条件查询不分页
* @param record
@@ -235,8 +235,8 @@ public interface WxOrderService {
Long saveOuterOrderForCoupon(WxCUserBasicInfo user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId);
int countGroupOrder(Long groupId,boolean ignoreUnPay);
int countGroupOrder(Long groupId,boolean ignoreUnPay,String tenantId);
int countUserCouponGroupOrder(Long cuserId,Long couponId);
int countUserCouponGroupOrder(Long cuserId,Long couponId,String tenantId);

}

+ 1
- 0
mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java Wyświetl plik

@@ -678,6 +678,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
} else {
params.put("endTime", addDay(1));
}
params.put("tenantId", wxOrderReportDto.getTenantId());
List<WxOrderReportVo> list = wxOrderMapper.listMicroPayOrderReportByDateAndMerchant(params);

String startdate = DateUtils.getTimeBefore(30, new Date());


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java Wyświetl plik

@@ -82,7 +82,7 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService {
}
if (stocksetlock) {
//此处拼团数量应从订单总数查询,支付成功的就算一个,没支付成功的不算. 提高拼团的成功率
int ordercount = wxOrderService.countGroupOrder(order.getOrderGroupId(),true);
int ordercount = wxOrderService.countGroupOrder(order.getOrderGroupId(),true,order.getTenantId());
Integer remainPeople = wxCoupon.getPressLimitNum()-ordercount-1;
if (remainPeople < 0) {
throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FAILD.getCode(),"参团失败,参团人数已满,将稍后退款.");


+ 15
- 13
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Wyświetl plik

@@ -280,6 +280,7 @@ public class WxOrderServiceImpl implements WxOrderService {
dateMap.put("endDate", endDate);
dateMap.put("merchantId", wxMerchant.getId());
dateMap.put("type", type);
dateMap.put("tenantId", wxMerchantBUser.getTenantId());

Map resultMap = new HashMap();

@@ -342,6 +343,7 @@ public class WxOrderServiceImpl implements WxOrderService {
dateMap.put("endDate", endDate);
dateMap.put("merchantId", wxMerchant.getId());
dateMap.put("type", type);
dateMap.put("tenantId", wxMerchantBUser.getTenantId());

Map resultMap = new HashMap();

@@ -1658,14 +1660,13 @@ public class WxOrderServiceImpl implements WxOrderService {
}

@Override
public WxOrder getById(Long id) {
return wxOrderMapper.selectById(id);
public WxOrder getById(Long id,String tenantId) {
return wxOrderMapper.selectById(id,tenantId);
}

@Override
public WxOrder getPressOrderById(Long id) {

return wxOrderMapper.selectById(id);
public WxOrder getPressOrderById(Long id,String tenantId) {
return wxOrderMapper.selectById(id,tenantId);
}

@Override
@@ -1680,10 +1681,10 @@ public class WxOrderServiceImpl implements WxOrderService {
}
}

@Override
public void deleteById(Long id) {
wxOrderMapper.deleteById(id);
}
// @Override
// public void deleteById(Long id) {
// wxOrderMapper.deleteById(id);
// }

@Override
public List<WxOrder> findList(WxOrder record) {
@@ -2332,7 +2333,7 @@ public class WxOrderServiceImpl implements WxOrderService {
}
//判断拼团人数是否已经超出限制
int groupCount = countGroupOrder(orderGroupId,true);
int groupCount = countGroupOrder(orderGroupId,true,group.getTenantId());
if (groupCount>=coupon.getPressLimitNum()) {
throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FINISHED.getCode(),"下单人数超出优惠券人数限制!");
}
@@ -2353,7 +2354,7 @@ public class WxOrderServiceImpl implements WxOrderService {
}

@Override
public int countGroupOrder(Long groupId,boolean ignoreUnPay) {
public int countGroupOrder(Long groupId,boolean ignoreUnPay,String tenantId) {
WxOrder query = new WxOrder();
query.setOrderGroupId(groupId);
List<Integer> statusS = new ArrayList<Integer>();
@@ -2364,11 +2365,12 @@ public class WxOrderServiceImpl implements WxOrderService {
statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode());
}
query.setStatusS(statusS);
query.setTenantId(tenantId);
return wxOrderMapper.countList(query);
}

@Override
public int countUserCouponGroupOrder(Long cuserId, Long couponId) {
public int countUserCouponGroupOrder(Long cuserId, Long couponId,String tenantId) {
WxOrder query = new WxOrder();
query.setCUserId(cuserId);
query.setProductId(couponId);
@@ -2376,8 +2378,8 @@ public class WxOrderServiceImpl implements WxOrderService {
statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING.getCode());
statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE.getCode());
query.setStatusS(statusS);
query.setTenantId(tenantId);
return wxOrderMapper.countList(query);
}


}

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderSuccessMsgServiceImpl.java Wyświetl plik

@@ -44,7 +44,7 @@ public class FmInsideOrderSuccessMsgServiceImpl implements MsgSendService {
@Override
public void send(BaseMsg baseMsg) throws Exception{
FmInsideOrderSuccessMsg msg = (FmInsideOrderSuccessMsg)baseMsg;
WxOrder record = orderService.getById(msg.getOrderId());
WxOrder record = orderService.getById(msg.getOrderId(),msg.getTenantId());
if(record == null) {
logger.error("订单未找到: " + msg.getOrderId());
throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND.getCode(), "订单未找到" + msg.getOrderId());


+ 11
- 7
mallinkService/src/main/resources/mapper/WxOrderMapper.xml Wyświetl plik

@@ -129,6 +129,10 @@
<if test=" null != sortColumns">order by ${sortColumns}</if>
</sql>

<select id="selectById" parameterType="java.util.HashMap" resultMap="BaseResultMap">
select <include refid="allColumns"/> from wx_order where id =#{id} and tenant_id=#{tenantId}
</select>

<select id="findList" parameterType="com.iformall.domain.po.WxOrder" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
@@ -175,7 +179,7 @@
select
<include refid="allColumns"/>
from wx_order
where order_status = '0' and press_end_date is null
where order_status = '0' and press_end_date is null and tenant_id = #{tenantId}
<if test="type != null">
AND type = #{type,jdbcType=TINYINT}
</if>
@@ -191,7 +195,7 @@
select
<include refid="allColumns"/>
from wx_order
where press_end_date is not null and (order_status = 6 or order_status = 7)
where press_end_date is not null and (order_status = 6 or order_status = 7) and tenant_id = #{tenantId}
<if test="type != null">
AND type = #{type,jdbcType=TINYINT}
</if>
@@ -207,7 +211,7 @@
select
<include refid="allColumns"/>
from wx_order
where press_end_date is not null and order_status = 7
where press_end_date is not null and order_status = 7 and tenant_id = #{tenantId}
<if test="type != null">
AND type = #{type,jdbcType=TINYINT}
</if>
@@ -223,7 +227,7 @@
select
<include refid="allColumns"/>
from wx_order
where order_status = 15 and press_end_date is null
where order_status = 15 and press_end_date is null and tenant_id = #{tenantId}
<if test="type != null">
AND type = #{type,jdbcType=TINYINT}
</if>
@@ -590,7 +594,7 @@
from wx_order o
inner join wx_merchant_b_user bu on bu.id = o.product_id
inner join wx_merchant m on m.id = bu.merchant_id
where m.`id` = #{merchantId} and o.`type` = 1 and o.`order_status` = 1
where m.`id` = #{merchantId} and o.tenant_id = #{tenantId} and o.`type` = 1 and o.`order_status` = 1
<if test=" null != startTime and null != endTime">
and o.`create_date` BETWEEN #{startTime} and #{endTime}
</if>
@@ -976,8 +980,8 @@
</if>
</update>
<update id="updateOrderStatusForGroup">
update wx_order set order_status=12 where `type`=0 and order_status in(10,15) and now()>press_end_date
<update id="updateOrderStatusForGroup" parameterType="java.util.HashMap">
update wx_order set order_status=12 where `type`=0 and tenant_id = #{tenantId} and order_status in(10,15) and now()>press_end_date
</update>

</mapper>

Ładowanie…
Anuluj
Zapisz