Просмотр исходного кода

Merge branch 'release_toaliyun_real_20230605' of https://git.malls.iformall.com/server/formallProject into release_toaliyun_real_20230605

release_toaliyun_real
lin 2 лет назад
Родитель
Сommit
57e85bc7fb
27 измененных файлов: 461 добавлений и 183 удалений
  1. +21
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardDailyLogController.java
  2. +34
    -4
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderReservationController.java
  3. +32
    -3
      mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java
  4. +3
    -0
      mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java
  5. +2
    -2
      mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java
  6. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/OrderComposeSaveDto.java
  7. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/OrderSaveDto.java
  8. +11
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCardDailyLog.java
  9. +3
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java
  10. +6
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java
  11. +9
    -4
      mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java
  12. +22
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumCouponOrderReservationStatus.java
  13. +3
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java
  14. +4
    -0
      mallinkService/src/main/java/com/iformall/service/WxCardDailyLogService.java
  15. +2
    -1
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  16. +32
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxCardDailyLogServiceImpl.java
  17. +3
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java
  18. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java
  19. +16
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderReservationServiceImpl.java
  20. +5
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java
  21. +10
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java
  22. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java
  23. +32
    -9
      mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java
  24. +88
    -32
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  25. +102
    -104
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v2/miniApp/TtMiniAppPayAdapterService.java
  26. +7
    -0
      mallinkService/src/main/resources/mapper/WxCouponMapper.xml
  27. +7
    -1
      mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml

+ 21
- 1
mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardDailyLogController.java Просмотреть файл

@@ -2,22 +2,30 @@ package com.iformall.controller.market;


import com.github.pagehelper.PageInfo;
import com.iformall.annotation.SystemControllerLog;
import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.WxCardDailyLog;
import com.iformall.domain.po.WxCoupon;
import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.vo.WxCardVo;
import com.iformall.service.WxCardDailyLogService;
import com.iformall.service.WxCardSpendService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;


/**
* @version 1.0
@@ -34,7 +42,7 @@ public class WxCardDailyLogController extends BaseController {
WxCardDailyLogService wxCardDailyLogService;

@ApiOperation("分页列表接口")
@GetMapping("list")
@GetMapping("/list")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
@@ -47,4 +55,16 @@ public class WxCardDailyLogController extends BaseController {
return new ResultData(info);
}

@ApiOperation("消费卡日志-导出数据")
@GetMapping("/exportCardLog")
@SystemControllerLog(description = "消费卡日志-导出数据")
public void exportCardOrder(@ModelAttribute WxCardDailyLog wxCardDailyLog, HttpServletRequest request, HttpServletResponse response) {
logger.info("[" + getIpAddr() + "] cardDailyLog/exportCardLog");
if (wxCardDailyLog == null) {
wxCardDailyLog = new WxCardDailyLog();
}
wxCardDailyLog.updateTenantInfo(getTenantInfo());
wxCardDailyLogService.exportData(wxCardDailyLog, request, response);
}

}

+ 34
- 4
mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderReservationController.java Просмотреть файл

@@ -1,6 +1,7 @@
package com.iformall.controller.market;

import com.github.pagehelper.PageInfo;
import com.iformall.annotation.TenantIgnore;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
@@ -52,6 +53,34 @@ public class WxCouponOrderReservationController extends BaseController {
return new ResultData(reservation);
}

@ApiOperation(value = "")
@PostMapping("update")
@ApiImplicitParams({
})
public ResultData update(@RequestBody WxCouponOrderReservation reservation) {
if(reservation.getId() == null){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
}
reservation.updateTenantInfo(getTenantInfo());
WxCouponOrderReservation sortReservation = wxCouponOrderReservationService.getSortById(reservation.getId(), reservation.getTenantId());
if(sortReservation == null){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"id is error");
}
// if(EnumCouponOrderReservationStatus.getReservationIng().contains(sortReservation.getStatus())){
// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单进行中");
// }
if(EnumCouponOrderReservationStatus.getReservationFinish().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单已完成");
}
if(EnumCouponOrderReservationStatus.getReservationInit().contains(sortReservation.getStatus())){
if(reservation.getStartDate() != null ){
reservation.setStatus(EnumCouponOrderReservationStatus.reservation.getCode());
}
}
reservation.setRemark("A用户"+getUser().getUsername()+"修改信息");
return wxCouponOrderReservationService.saveOrUpdate(reservation);
}

@ApiOperation(value = "修改状态")
@PostMapping("updateStatus")
@ApiImplicitParams({
@@ -66,13 +95,13 @@ public class WxCouponOrderReservationController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"id is error");
}
if(EnumCouponOrderReservationStatus.reservation_dispatch.getCode().equals(reservation.getStatus())){
if(!EnumCouponOrderReservationStatus.reservation.getCode().equals(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持派单");
if(!EnumCouponOrderReservationStatus.getReservationInit().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持确认");
}
}
if(EnumCouponOrderReservationStatus.reservation.getCode().equals(reservation.getStatus())){
if(!EnumCouponOrderReservationStatus.reservation_dispatch.getCode().equals(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持取消");
if(!EnumCouponOrderReservationStatus.getReservationIng().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持取消确认");
}
}

@@ -81,6 +110,7 @@ public class WxCouponOrderReservationController extends BaseController {
updReservation.setId(reservation.getId());
updReservation.setStatus(reservation.getStatus());
updReservation.setRemark(reservation.getRemark());
updReservation.setRemark("A用户"+getUser().getUsername()+"修改状态");
wxCouponOrderReservationService.saveOrUpdate(updReservation);
return new ResultData();
}


+ 32
- 3
mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java Просмотреть файл

@@ -52,6 +52,34 @@ public class WxCouponOrderReservationController extends BaseController {
return new ResultData(reservation);
}

@ApiOperation(value = "")
@PostMapping("update")
@ApiImplicitParams({
})
public ResultData update(@RequestBody WxCouponOrderReservation reservation) {
if(reservation.getId() == null){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
}
reservation.updateTenantInfo(getTenantInfo());
WxCouponOrderReservation sortReservation = wxCouponOrderReservationService.getSortById(reservation.getId(), reservation.getTenantId());
if(sortReservation == null){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"id is error");
}
// if(EnumCouponOrderReservationStatus.getReservationIng().contains(sortReservation.getStatus())){
// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单进行中");
// }
if(EnumCouponOrderReservationStatus.getReservationFinish().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单已完成");
}
if(EnumCouponOrderReservationStatus.getReservationInit().contains(sortReservation.getStatus())){
if(reservation.getStartDate() != null ){
reservation.setStatus(EnumCouponOrderReservationStatus.reservation.getCode());
}
}
reservation.setRemark("B用户"+getLoginBUser().getPhone()+"修改信息");
return wxCouponOrderReservationService.saveOrUpdate(reservation);
}

@ApiOperation(value = "修改状态")
@PostMapping("updateStatus")
@ApiImplicitParams({
@@ -69,13 +97,13 @@ public class WxCouponOrderReservationController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"查询数据门店不匹配");
}
if(EnumCouponOrderReservationStatus.reservation_dispatch.getCode().equals(reservation.getStatus())){
if(!EnumCouponOrderReservationStatus.reservation.getCode().equals(sortReservation.getStatus())){
if(!EnumCouponOrderReservationStatus.getReservationInit().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持确认");
}
}
if(EnumCouponOrderReservationStatus.reservation.getCode().equals(reservation.getStatus())){
if(!EnumCouponOrderReservationStatus.reservation_dispatch.getCode().equals(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持取消");
if(!EnumCouponOrderReservationStatus.getReservationIng().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持取消确认");
}
}

@@ -84,6 +112,7 @@ public class WxCouponOrderReservationController extends BaseController {
updReservation.setId(reservation.getId());
updReservation.setStatus(reservation.getStatus());
updReservation.setRemark(reservation.getRemark());
reservation.setRemark("B用户"+getLoginBUser().getPhone()+"修改状态");
wxCouponOrderReservationService.saveOrUpdate(updReservation);
return new ResultData();
}


+ 3
- 0
mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java Просмотреть файл

@@ -84,6 +84,9 @@ public class WxCouponOrderReservationController extends BaseController {
if(EnumCouponOrderReservationStatus.getReservationFinish().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单已完成");
}
if(EnumCouponOrderReservationStatus.getReservationInit().contains(sortReservation.getStatus())){
sortReservation.setStatus(EnumCouponOrderReservationStatus.reservation.getCode());
}
}
if(reservation.getCouponOrderId() == null){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"couponOrderId is null");


+ 2
- 2
mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java Просмотреть файл

@@ -200,8 +200,8 @@ public class WxOrderController extends BaseController {
return map;
}
Map<String,String> couponMap = JSONObject.parseObject(cp_extra, Map.class);
String idstr = couponMap.get("composeOrderId");
composeOrderId = Long.parseLong(idstr);
String composeOrderIdStr = couponMap.get("composeOrderId");
composeOrderId = Long.parseLong(composeOrderIdStr);
tenantId = couponMap.get("tenantId");
}catch(Exception e){
}


+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/dto/OrderComposeSaveDto.java Просмотреть файл

@@ -25,4 +25,6 @@ public class OrderComposeSaveDto implements Serializable {
WxCouponChannel wxCouponChannel;

String extParam;

}

+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/dto/OrderSaveDto.java Просмотреть файл

@@ -19,6 +19,8 @@ public class OrderSaveDto implements Serializable {

private String formId;

private Long fixMerchantId;

//被操作人的ID 供A端使用
private Long userId;


+ 11
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCardDailyLog.java Просмотреть файл

@@ -1,5 +1,6 @@
package com.iformall.domain.po;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.domain.po.base.TenantEntity;
@@ -15,37 +16,47 @@ import java.util.List;
public class WxCardDailyLog extends TenantEntity {
protected Long id;
@io.swagger.annotations.ApiModelProperty(value="卡密id",name="cardPasswordId")
@Excel(name = "实体卡卡号", width = 20, orderNum = "3")
private Long cardPasswordId;
@io.swagger.annotations.ApiModelProperty(value="ip",name="ip")
private String ip;
@io.swagger.annotations.ApiModelProperty(value="",name="price")
private Integer price;
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate")
@Excel(name = "操作时间", width = 20, orderNum = "5",format="yyyy-MM-dd HH:mm:ss")
private Date createDate;
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate")
private Date updateDate;

@io.swagger.annotations.ApiModelProperty(value="",name="remark")
@Excel(name = "备注", width = 20, orderNum = "7")
private String remark;

@io.swagger.annotations.ApiModelProperty(value="",name="operatorType")
private Integer operatorType;
@io.swagger.annotations.ApiModelProperty(value="",name="operatorId")
private Long operatorId;
@Excel(name = "操作人", width = 20, orderNum = "6")
@io.swagger.annotations.ApiModelProperty(value="EnumUserType",name="operatorUser")
private String operatorUser;

@io.swagger.annotations.ApiModelProperty(value="父卷id",name="couponId")
@Excel(name = "卡批次ID", width = 20, orderNum = "0")
private Long couponId;
@io.swagger.annotations.ApiModelProperty(value="卡卷Id",name="cardInfoId")
@Excel(name = "电子卡卡号", width = 20, orderNum = "2")
private Long cardInfoId;
@io.swagger.annotations.ApiModelProperty(value="操作类型 1-创建,2-设置面额,3-充值 EnumOperateLogType",name="type")
private Integer type;
@TableField(exist = false)
@Excel(name = "操作类型", width = 20, orderNum = "4")
private String typeDes;
@io.swagger.annotations.ApiModelProperty(value="卡卷总数",name="count")
private Integer count;

@io.swagger.annotations.ApiModelProperty(value="卡卷总数",name="count")
@TableField(exist = false)
@Excel(name = "消费卡名称", width = 20, orderNum = "1")
private String title;

private List<Long> couponIds;


+ 3
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java Просмотреть файл

@@ -416,6 +416,9 @@ public class WxCoupon extends TenantEntity {
@TableField(exist = false)
private String[] mallTenantIds;

@TableField(exist = false)
private List<Long> couponIds;

public String getSalePriceStr() {
if(salePrice!=null) {
salePriceStr = new BigDecimal(salePrice).divide(new BigDecimal(100)).toString();


+ 6
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java Просмотреть файл

@@ -166,11 +166,17 @@ public class WxMerchant extends TenantEntity {
@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value = "联系方式", name = "phone")
private String phone;

@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value = "券名ID", name = "couponId")
private Long couponId;
@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value = "券名称", name = "couponName")
private String couponName;



public String getShopsStr() {
if (shopVos != null && shopVos.size() > 0) {
return String.join("\n",


+ 9
- 4
mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java Просмотреть файл

@@ -138,16 +138,21 @@ public class WxOrder extends TenantEntity {
private String fromId;
public Object getExpParamValue(String key) {
if (StringUtils.isBlank(extParam)) {
JSONObject extParamJson = getExtParamJson();
if (extParamJson == null) {
return null;
}
JSONObject o = JSON.parseObject(extParam);
if (null == o ) {
return extParamJson.get(key);
}

public JSONObject getExtParamJson() {
if (StringUtils.isBlank(extParam)) {
return null;
}
return o.get(key);
return JSON.parseObject(extParam);
}


@TableField(exist = false)
protected List<Long> couponIds;


+ 22
- 0
mallinkService/src/main/java/com/iformall/enums/EnumCouponOrderReservationStatus.java Просмотреть файл

@@ -9,6 +9,7 @@ import java.util.List;
public enum EnumCouponOrderReservationStatus {

//
reservation_create_order(-1, "下单"),
reservation(0, "预约"),
reservation_user_cancellation(1, "用户取消"),
reservation_expire_cancellation(2, "过期取消"),
@@ -46,6 +47,26 @@ public enum EnumCouponOrderReservationStatus {
return message;
}

//预约单预约状态
public static List<Integer> getReservationInit(){
List<Integer> list = new ArrayList<>();
list.add(reservation_create_order.code);
list.add(reservation.code);
list.add(reservation_refuse_dispatch.code);
return list;
}

//预约单取消状态
public static List<Integer> getReservationCancel(){
List<Integer> list = new ArrayList<>();
list.add(reservation_user_cancellation.code);
list.add(reservation_expire_cancellation.code);
list.add(reservation_refund_cancellation.code);
list.add(reservation_refuse_cancellation.code);
return list;
}

//预约单处理中
public static List<Integer> getReservationIng(){
List<Integer> list = new ArrayList<>();
list.add(reservation_dispatch.code);
@@ -53,6 +74,7 @@ public enum EnumCouponOrderReservationStatus {
return list;
}

//预约单已完成
public static List<Integer> getReservationFinish(){
List<Integer> list = new ArrayList<>();
list.add(reservation_finish.code);


+ 3
- 0
mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java Просмотреть файл

@@ -5,6 +5,7 @@ import com.iformall.domain.po.WxCreditHistory;
import com.iformall.domain.vo.MerchantCreditRankingVo;
import com.iformall.domain.vo.WxCreditHistoryNewIdVo;
import com.iformall.domain.vo.WxCreditHistoryVo;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
@@ -53,4 +54,6 @@ public interface WxCreditHistoryMapper extends CommonMapper<WxCreditHistory, Lon
List<WxCreditHistory> findLesList(WxCreditHistory chlesq);

List<WxCreditHistory> getIsMemberCarAndClearCredit(WxCreditHistory record);

Integer findByTicketNumber(WxCreditHistory record);
}

+ 4
- 0
mallinkService/src/main/java/com/iformall/service/WxCardDailyLogService.java Просмотреть файл

@@ -3,6 +3,9 @@ package com.iformall.service;
import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface WxCardDailyLogService {

/**
@@ -23,4 +26,5 @@ public interface WxCardDailyLogService {
*/
void saveOrUpdate(WxCardDailyLog record);

void exportData(WxCardDailyLog wxCardDailyLog, HttpServletRequest request, HttpServletResponse response);
}

+ 2
- 1
mallinkService/src/main/java/com/iformall/service/WxOrderService.java Просмотреть файл

@@ -269,6 +269,7 @@ public interface WxOrderService {

int updateCpsStatus(WxOrder order);

ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam, List<CreateOrderCallback.Good> goods);
ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam,
List<CreateOrderCallback.Good> goods);

}

+ 32
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxCardDailyLogServiceImpl.java Просмотреть файл

@@ -4,6 +4,8 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxCardVo;
import com.iformall.enums.EnumOperateLogType;
import com.iformall.mapper.*;
import com.iformall.service.*;
import org.apache.commons.collections.CollectionUtils;
@@ -13,6 +15,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;

@@ -27,6 +31,9 @@ public class WxCardDailyLogServiceImpl implements WxCardDailyLogService {
@Autowired
WxCouponService wxCouponService;

@Autowired
ExcelService excelService;


@Override
public PageInfo<WxCardDailyLog> listAsPage(WxCardDailyLog record, Integer pageIndex, Integer pageSize) {
@@ -70,4 +77,29 @@ public class WxCardDailyLogServiceImpl implements WxCardDailyLogService {
}
}

@Override
public void exportData(WxCardDailyLog record, HttpServletRequest request, HttpServletResponse response) {
if (StringUtils.isNotBlank(record.getTitle())) {
List<WxCoupon> title = wxCouponService.getByIdListOrTitle(new ArrayList<>(), record.getTenantId(), record.getTitle());
if (!CollectionUtils.isEmpty(title)) {
List<Long> couponIds = title.parallelStream().map(WxCoupon::getId).collect(Collectors.toList());
record.setCouponIds(couponIds);
}
}

List<WxCardDailyLog> pageInfo = wxCardDailyLogMapper.findList(record);
if (!CollectionUtils.isEmpty(pageInfo)) {
List<Long> couponIds = pageInfo.parallelStream().map(WxCardDailyLog::getCouponId).collect(Collectors.toList());
List<WxCoupon> list = wxCouponService.getByIdListOrTitle(couponIds, record.getTenantId(), null);
if (!CollectionUtils.isEmpty(list)) {
Map<Long, String> map = list.parallelStream().collect(Collectors.toMap(WxCoupon::getId, WxCoupon::getTitle));
for (WxCardDailyLog log : pageInfo) {
log.setTitle(map.get(log.getCouponId()));
log.setTypeDes(EnumOperateLogType.getEnum(log.getType()).getInfo());
}
}
}
excelService.exportExcel(pageInfo, null, "消费卡日志", WxCardDailyLog.class, "消费卡日志.xlsx", response, false);
}

}

+ 3
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java Просмотреть файл

@@ -32,6 +32,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -360,7 +361,7 @@ public class WxCardInfoServiceImpl implements WxCardInfoService {
WxCoupon wxCoupon = wxCouponMapper.selectById(wxCardInfo.getCouponId(), wxCardInfo.getTenantId());

Integer type = cardInfo.getStatus() == 0 ? EnumOperateLogType.ENABLE.getCode() : EnumOperateLogType.STOP_USING.getCode();
String remark = user.getUsername() + "给卡密[" + cardInfo.getId() + "]" + EnumOperateLogType.getEnum(type).getInfo();
String remark = user.getUsername() + "给实体卡卡号[" + cardInfo.getId() + "]" + EnumOperateLogType.getEnum(type).getInfo();
insertWxCardDailyLogInfo(user, wxCardInfo, wxCoupon, type, remark, wxCardInfo.getRemainingAmount());

}catch (Exception e){
@@ -519,8 +520,7 @@ public class WxCardInfoServiceImpl implements WxCardInfoService {
logger.error("card spend insert error");
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "card spend 插入出错!");
}

String remark = user.getUsername() + "给卡密[" + wxCardInfo.getId() + "]" + "充值,金额:" + cardInfo.getAmount() + "分";
String remark = user.getUsername() + "给实体卡卡号[" + wxCardInfo.getId() + "]" + "充值,金额:" + new BigDecimal(cardInfo.getAmount()).divide(new BigDecimal(100)) + "元";
insertWxCardDailyLogInfo(user, wxCardInfo, wxCoupon,EnumOperateLogType.RECHARGE.getCode(),remark, cardInfo.getAmount());

if(record.getCardBeforeAmount().equals(0)){


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java Просмотреть файл

@@ -784,7 +784,7 @@ public class WxChartServiceImpl implements WxChartDataService {
floor = Long.parseLong(floorId);
}
List<Long> merchantIds = wxMerchantService.getFloorBuildMerchantIds(tenantEntity, null, building, floor, 0, 0);
if (null != merchantIds) {
if (merchantIds != null) {
query.put("ids", merchantIds);
}
List<Map<String,Object>> mapList = wxMerchantMapper.findBusByFloorId(query);


+ 16
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderReservationServiceImpl.java Просмотреть файл

@@ -80,10 +80,10 @@ public class WxCouponOrderReservationServiceImpl implements WxCouponOrderReserva
}
if(record.getStartDate() != null && wxCoupon.getValidStartDate() != null
&& record.getStartDate().before(wxCoupon.getValidStartDate())){
return new ResultData(ErrorCode.COUPON_CHANNEL_IS_NOT_STARTED.getCode(),"当前时间无法预约");
return new ResultData(ErrorCode.COUPON_CHANNEL_IS_NOT_STARTED.getCode(),"预约时间不在有效期内");
}
if(record.getEndDate() != null && record.getEndDate().after(couponOrder.getExpiredTime())){
return new ResultData(ErrorCode.COUPON_CHANNEL_IS_NOT_STARTED.getCode(),"当前时间无法预约");
return new ResultData(ErrorCode.COUPON_CHANNEL_IS_NOT_STARTED.getCode(),"预约时间不在有效期内");
}
record.setCouponTitle(wxCoupon.getTitle());
}
@@ -125,8 +125,11 @@ public class WxCouponOrderReservationServiceImpl implements WxCouponOrderReserva
Long id = wxCouponOrderReservationMapper.getIdByCouponOrder(record.getCouponOrderId(),record.getTenantId());
record.setId(id);
}

if (record.getId() == null) {
record.setStatus(EnumCouponOrderReservationStatus.reservation.getCode());
if(record.getStatus() == null){
record.setStatus(EnumCouponOrderReservationStatus.reservation.getCode());
}
//record.setId(UUID.randomUUID().toString().replaceAll("-", ""));
final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId());
@@ -134,6 +137,9 @@ public class WxCouponOrderReservationServiceImpl implements WxCouponOrderReserva
record.setUpdateDate(now);
wxCouponOrderReservationMapper.insert(record);
} else {
if(record.getRemark() == null){
record.setRemark("");
}
record.setUpdateDate(now);
wxCouponOrderReservationMapper.updateById(record);
}
@@ -177,10 +183,15 @@ public class WxCouponOrderReservationServiceImpl implements WxCouponOrderReserva
if(reservation == null){
return;
}
//预约状态下取消
if(!EnumCouponOrderReservationStatus.reservation.getCode().equals(reservation.getStatus())){
//取消状态 return
if(EnumCouponOrderReservationStatus.getReservationCancel().contains(reservation.getStatus())){
return;
}
//完成状态 return
if(EnumCouponOrderReservationStatus.getReservationFinish().contains(reservation.getStatus())){
return;
}

WxCouponOrderReservation updReservation = new WxCouponOrderReservation();
updReservation.setId(reservation.getId());
updReservation.updateTenantInfo(couponOrder);


+ 5
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java Просмотреть файл

@@ -349,7 +349,7 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService {
cardSetPrice.setCardInfoId(cardInfo.getId());
cardSetPrice.setType(wxCouponPassword.getIsStop() == 0 ? EnumOperateLogType.ENABLE.getCode() : EnumOperateLogType.STOP_USING.getCode());
cardSetPrice.setCount(1);
cardSetPrice.setRemark(user.getUsername() + "给卡密[" + cardInfo.getId() + "]" + EnumOperateLogType.getEnum(cardSetPrice.getType()).getInfo());
cardSetPrice.setRemark(user.getUsername() + "给实体卡卡号[" + cardInfo.getId() + "]" + EnumOperateLogType.getEnum(cardSetPrice.getType()).getInfo());
wxCardDailyLogService.saveOrUpdate(cardSetPrice);
}catch (Exception e){
logger.error("startOrStop insert error");
@@ -389,16 +389,16 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService {
//设置面额记录
WxCardDailyLog cardSetPrice = new WxCardDailyLog();
cardSetPrice.updateTenantInfo(wxCouponPasswordUpd);
cardSetPrice.setCardPasswordId(wxCouponPasswordUpd.getId());
cardSetPrice.setCardPasswordId(couponPassword.getId());
cardSetPrice.setPrice(wxCouponPasswordUpd.getPrice());
cardSetPrice.setOperatorType(EnumUserType.MALLUSER.getCode());
cardSetPrice.setCouponId(wxCouponPasswordUpd.getCouponId());
cardSetPrice.setOperatorId(user.getId());
cardSetPrice.setOperatorUser(user.getUsername());
cardSetPrice.setCouponId(wxCoupon.getCouponId());
cardSetPrice.setCouponId(wxCoupon.getId());
cardSetPrice.setType(EnumOperateLogType.SET_DENOMINATION.getCode());
cardSetPrice.setCount(1);
cardSetPrice.setRemark(user.getUsername() + "给卡密[" + cardSetPrice.getCardPasswordId() + "]设置了面额,金额:" + cardSetPrice.getPrice() + "分");

cardSetPrice.setRemark(user.getUsername() + "给实体卡卡号[" + cardSetPrice.getCardPasswordId() + "]设置了面额,金额:" + new BigDecimal(cardSetPrice.getPrice()).divide(new BigDecimal(100)) + "元");
wxCardDailyLogService.saveOrUpdate(cardSetPrice);
}
return count;


+ 10
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java Просмотреть файл

@@ -1829,7 +1829,7 @@ public class WxCouponServiceImpl implements WxCouponService {
wxCouponChannelService.spuStatusSyncByCoupon(tenantInfo,couponId);

WxCoupon record = wxCouponMapper.selectById(couponId, tenantInfo.getTenantId());
String remark = (user != null ? user.getUsername() : "") + "创建了卡[" + record.getTitle() + "], 库存:";
String remark = (user != null ? user.getUsername() : "") + "作废卡[" + record.getTitle() + "], 库存:";
insertWxCardDailyLogInfo(user, record, false, remark);
}
return new ResultData();
@@ -2107,11 +2107,15 @@ public class WxCouponServiceImpl implements WxCouponService {

@Override
public List<WxCoupon> getByIdListOrTitle(List<Long> couponIds, String tenantId, String title) {
return wxCouponMapper.selectList(new LambdaQueryWrapper<WxCoupon>()
.eq(WxCoupon::getIsDel, 0)
.in(CollectionUtils.isNotEmpty(couponIds), WxCoupon::getId, couponIds)
.like(StringUtils.isNotBlank(title), WxCoupon::getTitle, title)
.eq(TenantEntity::getTenantId, tenantId));
WxCoupon coupon = new WxCoupon();
coupon.setTenantId(tenantId);
if (CollectionUtils.isNotEmpty(couponIds)) {
coupon.setCouponIds(couponIds);
}
if (StringUtils.isNotBlank(title)) {
coupon.setTitle(title);
}
return wxCouponMapper.findList(coupon);
}




+ 2
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java Просмотреть файл

@@ -589,8 +589,8 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService {
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public WxCreditHistory saveOrUpdate(WxCreditHistory record,TenantEntity tenantEntity) {
if (StringUtils.isNotBlank(record.getTicketNumber())){
WxCreditHistory history = wxCreditHistoryMapper.selectOne(new LambdaQueryWrapper<WxCreditHistory>().eq(WxCreditHistory::getTicketNumber, record.getTicketNumber()));
if (history != null){
Integer number = wxCreditHistoryMapper.findByTicketNumber(record);
if (number > 0){
throw new MallinkException(ErrorCode.SMALL_TICKET_IS_USED);
}
}


+ 32
- 9
mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java Просмотреть файл

@@ -1140,6 +1140,7 @@ public class WxMerchantServiceImpl implements WxMerchantService {
}

private void initQueryParam(WxMerchant record,boolean hasRentContractInfo,Map<Long,WxRentContract> merchantRentMap) {

if (hasRentContractInfo) {
WxRentContract wxRentContractQ = new WxRentContract();
wxRentContractQ.updateTenantInfo(record);
@@ -1171,31 +1172,53 @@ public class WxMerchantServiceImpl implements WxMerchantService {
// }

List<Long> merchantIds = new ArrayList<Long>();

if (record.getCouponId() != null){
List<Long> couponMerchantIds = wxCouponMerchantMapper.findMerchantIdListByProduct(record.getCouponId(), record.getTenantId());
if (null == couponMerchantIds || couponMerchantIds.size() <=0 ) {
record.setId(-999L);
return;
}
merchantIds.addAll(couponMerchantIds);
}

String phone = StringUtils.trimToNull(record.getPhone());
if (null != phone) {
WxMerchantBUser buserQ = new WxMerchantBUser();
buserQ.setPhoneLike(phone);
buserQ.setStatus(0);
List<Long> userMerchantIds = wxMerchantBUserMapper.findMerchantIdList(buserQ);
if (null == userMerchantIds || userMerchantIds.size() <=0 ) {
record.setId(-999L);
return;
}else {
merchantIds.addAll(userMerchantIds);
}
if (null == userMerchantIds || userMerchantIds.size() <=0 ) {
record.setId(-999L);
return;
}
if(merchantIds.size() > 0){
merchantIds.retainAll(userMerchantIds);
if (merchantIds.size() <= 0) {
record.setId(-999L);
return;
}
}else{
merchantIds.addAll(userMerchantIds);
}
}
String floorRule = StringUtils.trimToNull(record.getFloorForRule());
Long building = record.getBuilding();
Long floor = record.getFloor();
List<Long> floorMerchantIds = getFloorBuildMerchantIds(record, floorRule, building, floor, 0, 0);
if (null != floorMerchantIds) {
if(merchantIds.size() > 0){
if(floorMerchantIds != null){
if(merchantIds.size() > 0){
merchantIds.retainAll(floorMerchantIds);
if (merchantIds.size() <= 0) {
record.setId(-999L);
return;
}
}else{
merchantIds.addAll(floorMerchantIds);
}
}
}


// if(EnumProfitSharingUse.YES.getCode().equals(record.getIsUse())){
// if(merchantIds.size() > 0){


+ 88
- 32
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Просмотреть файл

@@ -245,6 +245,9 @@ public class WxOrderServiceImpl implements WxOrderService {
@Lazy
@Autowired
private WxOrderServiceHelper wxOrderServiceHelper;

@Autowired
private WxCouponOrderReservationMapper wxCouponOrderReservationMapper;
@Override
@@ -1495,6 +1498,34 @@ public class WxOrderServiceImpl implements WxOrderService {
wxCouponOrderMapper.insert(couponOrder);
}

//
try{
if(EnumCouponType.COUPON_DOUYIN_GO_HOME.getCode().equals(coupon.getType())){
Long fixMerchantId = (Long) order.getExpParamValue("fixMerchantId");
String fixMerchantName = (String) order.getExpParamValue("fixMerchantName");
if(fixMerchantId != null){
WxCouponOrderReservation record = new WxCouponOrderReservation();
record.setId(couponOrder.getId());
record.updateTenantInfo(couponOrder);
record.setCouponOrderId(couponOrder.getId());
record.setCouponId(coupon.getId());
record.setCouponTitle(coupon.getTitle());
record.setReservationMerchantId(fixMerchantId);
record.setReservationMerchantName(fixMerchantName);
record.setcUserId(user.getId());
record.setUserName(user.getName());
record.setUserPhone(user.getPhone());
record.setStatus(EnumCouponOrderReservationStatus.reservation_create_order.getCode());
record.setCreateDate(curr);
record.setUpdateDate(curr);
wxCouponOrderReservationMapper.insert(record);
}
}
}catch(Exception e){
logger.info("添加预约信息error"+e.getMessage());
}


/// 储值卡信息添加
if (isCard) {
Integer fee = 0;
@@ -3007,19 +3038,19 @@ public class WxOrderServiceImpl implements WxOrderService {
WxOrder lastOrder = null;
for (int i = 0 ; i < orderSave.size(); i ++) {
OrderComposeSaveDto orderdto = orderSave.get(i);
//券一个数量创建一个订单
//券一个数量创建一个订单
boolean isOneNumberOneOrder = orderAdapterService.isOneNumberOneOrder();
if (isOneNumberOneOrder) {
for (int j = 0; j < orderdto.getCount(); j++) {
lastOrder = proxy.handleSaveOrderForCouponSingle(orderDate,allowUnPayOrder,composeOrder, user, orderdto.getWxCoupon(), 1,
orderdto.getSignleOrder().isPressOrder(),orderdto.getSignleOrder().getOrderGroupId(),orderdto.getSignleOrder().getFormId(),
orderdto.getShippingType(),orderdto.getAddress(),null,orderdto.getWxCouponChannel(), payWay,payVersion);
orderdto.getShippingType(),orderdto.getAddress(),orderdto.getExtParam(),orderdto.getWxCouponChannel(), payWay,payVersion);
}
}else {
lastOrder = proxy.handleSaveOrderForCouponSingle(orderDate,allowUnPayOrder,composeOrder, user, orderdto.getWxCoupon(), orderdto.getCount(),
orderdto.getSignleOrder().isPressOrder(),orderdto.getSignleOrder().getOrderGroupId(),orderdto.getSignleOrder().getFormId(),
orderdto.getShippingType(),orderdto.getAddress(),null,orderdto.getWxCouponChannel(), payWay,payVersion);
orderdto.getShippingType(),orderdto.getAddress(),orderdto.getExtParam(),orderdto.getWxCouponChannel(), payWay,payVersion);
}
}
//如果没有orderId,则用lastOrder的信息
@@ -3233,7 +3264,7 @@ public class WxOrderServiceImpl implements WxOrderService {
//}
record.setCouponNumber(couponNumber);
record.setExtParam(extParam);;
record.setExtParam(extParam);
try {
orderNumber = proxy.saveNoFreeOrder(orderDate,record, user, coupon, isPressOrder);
} catch (Exception e) {
@@ -3731,7 +3762,8 @@ public class WxOrderServiceImpl implements WxOrderService {
}

@Override
public ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam, List<CreateOrderCallback.Good> goods) {
public ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam,
List<CreateOrderCallback.Good> goods) {
WxBatchOrder wxBatchOrder = this.getWxBatchOrder(tenantEntity, composeOrderId);
if (wxBatchOrder == null) {
return new ResultData(ErrorCode.ORDER_IS_NOT_FIND);
@@ -3751,34 +3783,41 @@ public class WxOrderServiceImpl implements WxOrderService {
WxComposeOrder composeOrder = orderAdapterService.getComposeOrder(wxBatchOrder.getId(), tenantEntity.getTenantId());

List<Map<String, String>> order_goods_info = new ArrayList<>();
if (goods.size() == 1) {
WxOrder singleOrder = composeOrder.getSingleOrder();
CreateOrderCallback.Good good = goods.get(0);

WxOrder updOrder = new WxOrder();
updOrder.updateTenantInfo(tenantEntity);
updOrder.setId(singleOrder.getId());
updOrder.setFromId(good.getPoiId());
if (good.getItemOrderInfoList().size() == 1) {
updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList().get(0)));
} else {
updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList()));
}
wxOrderMapper.updateById(updOrder);

if (EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType())) {
Map<String, String> map_info = new HashMap<>();
map_info.put("goods_id", good.getGoodsId());
WxComposeChildOrderShare childOrderShare = payOrder.getChildOrderShare(singleOrder.getId());
map_info.put("merchant_uid", childOrderShare.getMerchantUid());
order_goods_info.add(map_info);
composeOrder.setExtParam(order_goods_info);
}
return new ResultData(composeOrder);
} else {
if(goods.size() > 1){
//todo 暂无多订单模式
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "商品数据异常");
}
CreateOrderCallback.Good good = goods.get(0);
if(good.getQuantity() > 1){
//todo 暂无多订单模式
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "数据异常");
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "商品数据异常");
}
CreateOrderCallback.ItemOrderInfo itemOrderInfo = good.getItemOrderInfoList().get(0);

WxOrder singleOrder = composeOrder.getSingleOrder();
JSONObject extParamJson = singleOrder.getExtParamJson();
if(extParamJson == null){
extParamJson = new JSONObject();
}
extParamJson.put("itemOrderId",itemOrderInfo.getItemOrderId());
extParamJson.put("price",itemOrderInfo.getPrice());

WxOrder updOrder = new WxOrder();
updOrder.updateTenantInfo(tenantEntity);
updOrder.setId(singleOrder.getId());
updOrder.setFromId(good.getPoiId());
updOrder.setExtParam(extParamJson.toJSONString());
wxOrderMapper.updateById(updOrder);

if (EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType())) {
Map<String, String> map_info = new HashMap<>();
map_info.put("goods_id", good.getGoodsId());
WxComposeChildOrderShare childOrderShare = payOrder.getChildOrderShare(singleOrder.getId());
map_info.put("merchant_uid", childOrderShare.getMerchantUid());
order_goods_info.add(map_info);
composeOrder.setExtParam(order_goods_info);
}
return new ResultData(composeOrder);

// List<WxOrder> childOrders = orderAdapterService.getChildOrders(composeOrder, tenantEntity.getTenantId());
// Map<Long, List<WxOrder>> collect = childOrders.stream().collect(groupingBy(WxOrder::getCouponChannelId));
@@ -3875,6 +3914,23 @@ public class WxOrderServiceImpl implements WxOrderService {
}
orderComposeSaveDto.getSignleOrder().setCouponId(coupon.getId());
orderComposeSaveDto.setWxCoupon(coupon);

//判断预约商户
Long fixMerchantId = orderComposeSaveDto.getSignleOrder().getFixMerchantId();
if(fixMerchantId != null){
List<Long> couponMerchantIds = wxCouponMerchantMapper.findMerchantIdListByProduct(coupon.getId(), coupon.getTenantId());
if(!couponMerchantIds.contains(fixMerchantId)){
throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_EQUAL.getCode(),premsg+"预约商户不匹配");
}
WxMerchant merchant = wxMerchantMapper.selectById(fixMerchantId);
if(merchant == null){
throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),premsg+"预约商户未找到");
}
JSONObject extJson = new JSONObject();
extJson.put("fixMerchantId",fixMerchantId);
extJson.put("fixMerchantName",merchant.getName());
orderComposeSaveDto.setExtParam(extJson.toJSONString());
}
//判断是否是拼团订单,如果是拼团订单,判断现在进行中的,和已完成的数量是否超出券的限制
if (coupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode())) {


+ 102
- 104
mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v2/miniApp/TtMiniAppPayAdapterService.java Просмотреть файл

@@ -71,111 +71,109 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen
public PayAdapterResult pay(WxPayAccount payAccount,WxPayOrder record,WxComposeOrder composeOrder,List<WxOrder> childOrders,
String productName,WxAppinfo appInfo,Date currentDate, PayExtraParam params,boolean isFreezen) throws Exception {
//抖音支付1.0,已经不再支持
if(true){
throw new MallinkException(ErrorCode.SYS_AUTH_ERROR.getCode(),"请升级抖音版本");
}

//todo 去掉抖音低版本兼容
if(!record.isCreatPay()){
if(StringUtils.isBlank(record.getPayParam())){
throw new MallinkException(ErrorCode.SYS_AUTH_ERROR.getCode(),"请升级抖音版本");
}
record.setUpdateTime(new Date());
PayAdapterResult par = new PayAdapterResult();
par.setSuccess(true);
par.setTransactionId(record.getTransactionId());
par.setData(JSONObject.parseObject(record.getPayParam()));
return par;
}
if (null == params ) {
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"openId为空");
}
String openId = (String) params.getValue("openId");
if (StringUtils.isBlank(openId) ) {
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"openId为空");
}

// throw new Exception("请升级抖音版本");

// 新下单接口
TtPayService ttPayService = maUtil.getTtPayService(appInfo, payAccount);
TtPayUnifiedOrderV2Request request = new TtPayUnifiedOrderV2Request();
List<TtPayUnifiedOrderV2Request.Good> goods = new ArrayList<>();

OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(record.getComposeOrder());
List<WxOrder> orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId());

if(orderList.size() > 1){
//todo 暂无多订单
throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
}
throw new MallinkException(ErrorCode.SYS_AUTH_ERROR.getCode(),"请升级抖音版本");

WxOrder order = orderList.get(0);

TtPayUnifiedOrderV2Request.Good good = new TtPayUnifiedOrderV2Request.Good();
good.setQuantity(order.getCouponNumber());
WxCouponChannel couponChannel = wxCouponChannelMapper.selectById(order.getCouponChannelId(), order.getTenantId());
good.setGoodsId(couponChannel.getTtSpuId());
good.setGoodsIdType(1);//poi商品固定传1
if (EnumPayMchType.DIRECT.getCode().equals(record.getMchType())) {
WxComposeChildOrderShare childOrderShare = record.getChildOrderShare(order.getId());
good.setMerchantUid(childOrderShare.getMerchantUid());
}
goods.add(good);

request.setGoodsList(goods);
request.setTotalAmount(composeOrder.getPayment());
request.setOpenId(openId);
request.setOutOrderNo(record.getPayOrderNo());
request.setPayExpireSeconds(14*60);
TtPayUnifiedOrderV2Request.PageEntry pageEntry = new TtPayUnifiedOrderV2Request.PageEntry();
pageEntry.setPath(Constant.mainPageUrl);
Map<String,String> paramMap = new HashMap<>();
paramMap.put("type","dt");
paramMap.put("tenantId",composeOrder.getTenantId());
paramMap.put("orderId",composeOrder.getMainOrderId().toString());
pageEntry.setParams(JSON.toJSONString(paramMap));
request.setOrderEntrySchema(pageEntry);

request.setCpExtra(getCallbackData(record));

TtPayUnifiedOrderV2Result orderV2 = ttPayService.createOrderV2(request);

if(orderV2.getItemOrderInfoList().size() > 1){
throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
}
TtPayUnifiedOrderV2Result.ItemOrderInfo itemOrderInfo = orderV2.getItemOrderInfoList().get(0);
if(itemOrderInfo.getItemOrderDetail().size() > 1){
throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
}

JSONObject allExtParam = new JSONObject();
allExtParam.put("order_id",orderV2.getOrderId());
allExtParam.put("total_amount",composeOrder.getPayment());
allExtParam.put("open_id",openId);
WxBatchOrder batchOrder = new WxBatchOrder();
batchOrder.updateTenantInfo(appInfo);
batchOrder.setId(composeOrder.getMainOrderId());
batchOrder.setExtParam(JSON.toJSONString(allExtParam));
wxBatchOrderMapper.updateById(batchOrder);

WxOrder updOrder = new WxOrder();
updOrder.updateTenantInfo(order);
updOrder.setId(order.getId());
updOrder.setExtParam(JSON.toJSONString(itemOrderInfo.getItemOrderDetail().get(0)));
wxOrderMapper.updateById(updOrder);

orderV2.setItemOrderInfoList(null);
// record.setPrepayId(orderV2.getPayOrderId());
record.setPayParam(JSON.toJSONString(orderV2));
record.setTransactionId(orderV2.getOrderId());
record.setUpdateTime(new Date());

PayAdapterResult par = new PayAdapterResult();
par.setSuccess(true);
par.setTransactionId(orderV2.getOrderId());
par.setData(orderV2);
return par;
// //todo 去掉抖音低版本兼容
// if(!record.isCreatPay()){
// if(StringUtils.isBlank(record.getPayParam())){
// throw new MallinkException(ErrorCode.SYS_AUTH_ERROR.getCode(),"请升级抖音版本");
// }
// record.setUpdateTime(new Date());
// PayAdapterResult par = new PayAdapterResult();
// par.setSuccess(true);
// par.setTransactionId(record.getTransactionId());
// par.setData(JSONObject.parseObject(record.getPayParam()));
// return par;
// }
// if (null == params ) {
// throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"openId为空");
// }
// String openId = (String) params.getValue("openId");
// if (StringUtils.isBlank(openId) ) {
// throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"openId为空");
// }
//
//// throw new Exception("请升级抖音版本");
//
// // 新下单接口
// TtPayService ttPayService = maUtil.getTtPayService(appInfo, payAccount);
// TtPayUnifiedOrderV2Request request = new TtPayUnifiedOrderV2Request();
// List<TtPayUnifiedOrderV2Request.Good> goods = new ArrayList<>();
//
// OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(record.getComposeOrder());
// List<WxOrder> orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId());
//
// if(orderList.size() > 1){
// //todo 暂无多订单
// throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
// }
//
// WxOrder order = orderList.get(0);
//
// TtPayUnifiedOrderV2Request.Good good = new TtPayUnifiedOrderV2Request.Good();
// good.setQuantity(order.getCouponNumber());
// WxCouponChannel couponChannel = wxCouponChannelMapper.selectById(order.getCouponChannelId(), order.getTenantId());
// good.setGoodsId(couponChannel.getTtSpuId());
// good.setGoodsIdType(1);//poi商品固定传1
// if (EnumPayMchType.DIRECT.getCode().equals(record.getMchType())) {
// WxComposeChildOrderShare childOrderShare = record.getChildOrderShare(order.getId());
// good.setMerchantUid(childOrderShare.getMerchantUid());
// }
// goods.add(good);
//
// request.setGoodsList(goods);
// request.setTotalAmount(composeOrder.getPayment());
// request.setOpenId(openId);
// request.setOutOrderNo(record.getPayOrderNo());
// request.setPayExpireSeconds(14*60);
// TtPayUnifiedOrderV2Request.PageEntry pageEntry = new TtPayUnifiedOrderV2Request.PageEntry();
// pageEntry.setPath(Constant.mainPageUrl);
// Map<String,String> paramMap = new HashMap<>();
// paramMap.put("type","dt");
// paramMap.put("tenantId",composeOrder.getTenantId());
// paramMap.put("orderId",composeOrder.getMainOrderId().toString());
// pageEntry.setParams(JSON.toJSONString(paramMap));
// request.setOrderEntrySchema(pageEntry);
//
// request.setCpExtra(getCallbackData(record));
//
// TtPayUnifiedOrderV2Result orderV2 = ttPayService.createOrderV2(request);
//
// if(orderV2.getItemOrderInfoList().size() > 1){
// throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
// }
// TtPayUnifiedOrderV2Result.ItemOrderInfo itemOrderInfo = orderV2.getItemOrderInfoList().get(0);
// if(itemOrderInfo.getItemOrderDetail().size() > 1){
// throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
// }
//
// JSONObject allExtParam = new JSONObject();
// allExtParam.put("order_id",orderV2.getOrderId());
// allExtParam.put("total_amount",composeOrder.getPayment());
// allExtParam.put("open_id",openId);
// WxBatchOrder batchOrder = new WxBatchOrder();
// batchOrder.updateTenantInfo(appInfo);
// batchOrder.setId(composeOrder.getMainOrderId());
// batchOrder.setExtParam(JSON.toJSONString(allExtParam));
// wxBatchOrderMapper.updateById(batchOrder);
//
// WxOrder updOrder = new WxOrder();
// updOrder.updateTenantInfo(order);
// updOrder.setId(order.getId());
// updOrder.setExtParam(JSON.toJSONString(itemOrderInfo.getItemOrderDetail().get(0)));
// wxOrderMapper.updateById(updOrder);
//
// orderV2.setItemOrderInfoList(null);
//// record.setPrepayId(orderV2.getPayOrderId());
// record.setPayParam(JSON.toJSONString(orderV2));
// record.setTransactionId(orderV2.getOrderId());
// record.setUpdateTime(new Date());
//
// PayAdapterResult par = new PayAdapterResult();
// par.setSuccess(true);
// par.setTransactionId(orderV2.getOrderId());
// par.setData(orderV2);
// return par;

//
//


+ 7
- 0
mallinkService/src/main/resources/mapper/WxCouponMapper.xml Просмотреть файл

@@ -364,6 +364,13 @@
</foreach>
</if>

<if test=" null != couponIds ">
and id in
<foreach collection="couponIds" index="index" item="couponIdsItem" open="(" separator="," close=")">
#{couponIdsItem}
</foreach>
</if>

<if test=" null != sortColumns">order by ${sortColumns}</if>
</sql>



+ 7
- 1
mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml Просмотреть файл

@@ -351,4 +351,10 @@
GROUP BY credit.`c_user_id`
</select>

</mapper>
<select id="findByTicketNumber" resultType="java.lang.Integer">
select count(1)
from wx_credit_history credit
where `tenant_id` = #{tenantId} and `ticket_number` = #{ticketNumber}
</select>

</mapper>

Загрузка…
Отмена
Сохранить