Commit db2733e5 by huluobin

Merge branch 'master-wx-order-flow' into 4.2

# Conflicts:
#	src/main/java/com/gogirl/application/order/serve/impl/OrderManageServiceImpl.java
parents 5b7912b2 25eea547
...@@ -8,12 +8,14 @@ import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult; ...@@ -8,12 +8,14 @@ import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest; import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.github.binarywang.wxpay.exception.WxPayException; import com.github.binarywang.wxpay.exception.WxPayException;
import com.gogirl.application.common.IAgentUserService; import com.gogirl.application.common.IAgentUserService;
import com.gogirl.application.order.sys.IWxOrderFlowService;
import com.gogirl.application.user.customer.CustomerService; import com.gogirl.application.user.customer.CustomerService;
import com.gogirl.domain.common.AgentConfig; import com.gogirl.domain.common.AgentConfig;
import com.gogirl.domain.common.AgentUser; import com.gogirl.domain.common.AgentUser;
import com.gogirl.domain.common.AgentUserBalanceLog; import com.gogirl.domain.common.AgentUserBalanceLog;
import com.gogirl.domain.common.AgentUserLog; import com.gogirl.domain.common.AgentUserLog;
import com.gogirl.domain.common.xcx.GogirlToken; import com.gogirl.domain.common.xcx.GogirlToken;
import com.gogirl.domain.order.sys.WxOrderFlow;
import com.gogirl.domain.user.customer.Customer; import com.gogirl.domain.user.customer.Customer;
import com.gogirl.infrastructure.common.config.property.GogirlProperties; import com.gogirl.infrastructure.common.config.property.GogirlProperties;
import com.gogirl.infrastructure.common.exception.RRException; import com.gogirl.infrastructure.common.exception.RRException;
...@@ -53,6 +55,8 @@ public class AgentUserServiceImpl extends ServiceImpl<AgentUserMapper, AgentUser ...@@ -53,6 +55,8 @@ public class AgentUserServiceImpl extends ServiceImpl<AgentUserMapper, AgentUser
GogirlProperties gogirlProperties; GogirlProperties gogirlProperties;
@Resource @Resource
WxPayService wxPayService; WxPayService wxPayService;
@Resource
IWxOrderFlowService wxOrderFlowService;
@Override @Override
public AgentUser selectByPhone(String phone) { public AgentUser selectByPhone(String phone) {
...@@ -127,6 +131,12 @@ public class AgentUserServiceImpl extends ServiceImpl<AgentUserMapper, AgentUser ...@@ -127,6 +131,12 @@ public class AgentUserServiceImpl extends ServiceImpl<AgentUserMapper, AgentUser
this.addBalanceLog(3, agentConfig.getBondAmount(), agentUser.getId(), result.getOutTradeNo()); this.addBalanceLog(3, agentConfig.getBondAmount(), agentUser.getId(), result.getOutTradeNo());
this.addBalanceLog(1, amount.subtract(agentConfig.getBondAmount()), agentUser.getId(), result.getOutTradeNo()); this.addBalanceLog(1, amount.subtract(agentConfig.getBondAmount()), agentUser.getId(), result.getOutTradeNo());
//微信流水
WxOrderFlow wxOrderFlow = WxOrderFlow.getInstance(result);
wxOrderFlow.setSourceFrom(WxOrderFlow.CUSTOMER);
wxOrderFlow.setOutTradeNo(result.getOutTradeNo());
wxOrderFlow.setOrderType(WxOrderFlow.AGENT_CHARGE);
wxOrderFlowService.log(wxOrderFlow);
} }
@Resource @Resource
......
...@@ -3,9 +3,11 @@ package com.gogirl.application.order.market.impl; ...@@ -3,9 +3,11 @@ package com.gogirl.application.order.market.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import com.gogirl.application.order.market.ITimesCardOrderService; import com.gogirl.application.order.market.ITimesCardOrderService;
import com.gogirl.application.order.sys.IWxOrderFlowService;
import com.gogirl.domain.market.timescard.TimesCardCustomerRelevance; import com.gogirl.domain.market.timescard.TimesCardCustomerRelevance;
import com.gogirl.domain.market.timescard.TimesCardType; import com.gogirl.domain.market.timescard.TimesCardType;
import com.gogirl.domain.order.market.TimesCardOrder; import com.gogirl.domain.order.market.TimesCardOrder;
import com.gogirl.domain.order.sys.WxOrderFlow;
import com.gogirl.infrastructure.mapper.market.timescard.TimesCardCustomerRelevanceMapper; import com.gogirl.infrastructure.mapper.market.timescard.TimesCardCustomerRelevanceMapper;
import com.gogirl.infrastructure.mapper.market.timescard.TimesCardTypeMapper; import com.gogirl.infrastructure.mapper.market.timescard.TimesCardTypeMapper;
import com.gogirl.infrastructure.mapper.order.market.TimesCardOrderMapper; import com.gogirl.infrastructure.mapper.order.market.TimesCardOrderMapper;
...@@ -33,6 +35,7 @@ public class TimesCardOrderServiceImpl extends ServiceImpl<TimesCardOrderMapper, ...@@ -33,6 +35,7 @@ public class TimesCardOrderServiceImpl extends ServiceImpl<TimesCardOrderMapper,
private final TimesCardTypeMapper timesCardTypeMapper; private final TimesCardTypeMapper timesCardTypeMapper;
private final TimesCardCustomerRelevanceMapper timesCardCustomerRelevanceMapper; private final TimesCardCustomerRelevanceMapper timesCardCustomerRelevanceMapper;
private final IWxOrderFlowService wxOrderFlowService;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
...@@ -77,5 +80,12 @@ public class TimesCardOrderServiceImpl extends ServiceImpl<TimesCardOrderMapper, ...@@ -77,5 +80,12 @@ public class TimesCardOrderServiceImpl extends ServiceImpl<TimesCardOrderMapper,
.build(); .build();
this.save(timesCardOrder); this.save(timesCardOrder);
//微信流水
WxOrderFlow wxOrderFlow = WxOrderFlow.getInstance(result);
wxOrderFlow.setSourceFrom(WxOrderFlow.CUSTOMER);
wxOrderFlow.setOutTradeNo(result.getOutTradeNo());
wxOrderFlow.setOrderType(WxOrderFlow.TIMES_CARD);
wxOrderFlowService.log(wxOrderFlow);
} }
} }
...@@ -10,11 +10,13 @@ import com.github.binarywang.wxpay.exception.WxPayException; ...@@ -10,11 +10,13 @@ import com.github.binarywang.wxpay.exception.WxPayException;
import com.gogirl.application.market.coupon.CouponService; import com.gogirl.application.market.coupon.CouponService;
import com.gogirl.application.market.discount.DiscountConfigService; import com.gogirl.application.market.discount.DiscountConfigService;
import com.gogirl.application.order.member.IChargeOrderService; import com.gogirl.application.order.member.IChargeOrderService;
import com.gogirl.application.order.sys.IWxOrderFlowService;
import com.gogirl.application.store.store.CustomerDepartmentRelevanceService; import com.gogirl.application.store.store.CustomerDepartmentRelevanceService;
import com.gogirl.application.user.customer.CustomerService; import com.gogirl.application.user.customer.CustomerService;
import com.gogirl.domain.common.xcx.GogirlToken; import com.gogirl.domain.common.xcx.GogirlToken;
import com.gogirl.domain.market.discount.DiscountConfig; import com.gogirl.domain.market.discount.DiscountConfig;
import com.gogirl.domain.order.member.ChargeOrder; import com.gogirl.domain.order.member.ChargeOrder;
import com.gogirl.domain.order.sys.WxOrderFlow;
import com.gogirl.domain.user.customer.Customer; import com.gogirl.domain.user.customer.Customer;
import com.gogirl.domain.user.customer.CustomerBalance; import com.gogirl.domain.user.customer.CustomerBalance;
import com.gogirl.domain.user.customer.CustomerBalanceRecord; import com.gogirl.domain.user.customer.CustomerBalanceRecord;
...@@ -61,6 +63,8 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg ...@@ -61,6 +63,8 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg
private final CustomerBalanceRecordMapper customerBalanceRecordMapper; private final CustomerBalanceRecordMapper customerBalanceRecordMapper;
private final CouponService couponService; private final CouponService couponService;
private final IWxOrderFlowService wxOrderFlowService;
@Override @Override
public void notifyChargeOrder(WxPayOrderNotifyResult result) { public void notifyChargeOrder(WxPayOrderNotifyResult result) {
...@@ -185,6 +189,14 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg ...@@ -185,6 +189,14 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg
this.save(chargeOrder); this.save(chargeOrder);
//微信流水
WxOrderFlow wxOrderFlow = WxOrderFlow.getInstance(result);
wxOrderFlow.setSourceFrom(WxOrderFlow.CUSTOMER);
wxOrderFlow.setOutTradeNo(result.getOutTradeNo());
wxOrderFlow.setOrderType(WxOrderFlow.CHARGE_ORDER);
wxOrderFlowService.log(wxOrderFlow);
} }
private final GogirlProperties gogirlProperties; private final GogirlProperties gogirlProperties;
......
...@@ -15,6 +15,7 @@ import com.gogirl.application.order.serve.OrderRecordService; ...@@ -15,6 +15,7 @@ import com.gogirl.application.order.serve.OrderRecordService;
import com.gogirl.application.order.serve.OrderServeSkuService; import com.gogirl.application.order.serve.OrderServeSkuService;
import com.gogirl.application.product.serve.BaseProduceService; import com.gogirl.application.product.serve.BaseProduceService;
import com.gogirl.application.product.serve.BaseServeService; import com.gogirl.application.product.serve.BaseServeService;
import com.gogirl.application.order.sys.IWxOrderFlowService;
import com.gogirl.application.user.customer.CustomerBalanceService; import com.gogirl.application.user.customer.CustomerBalanceService;
import com.gogirl.application.user.customer.CustomerService; import com.gogirl.application.user.customer.CustomerService;
import com.gogirl.domain.common.xcx.GogirlToken; import com.gogirl.domain.common.xcx.GogirlToken;
...@@ -22,6 +23,7 @@ import com.gogirl.domain.market.coupon.CouponCustomerRelevance; ...@@ -22,6 +23,7 @@ import com.gogirl.domain.market.coupon.CouponCustomerRelevance;
import com.gogirl.domain.market.coupon.CouponsGift; import com.gogirl.domain.market.coupon.CouponsGift;
import com.gogirl.domain.market.timescard.TimesCardUsedRecord; import com.gogirl.domain.market.timescard.TimesCardUsedRecord;
import com.gogirl.domain.order.serve.*; import com.gogirl.domain.order.serve.*;
import com.gogirl.domain.order.sys.WxOrderFlow;
import com.gogirl.domain.product.purchase.PurchaseSku; import com.gogirl.domain.product.purchase.PurchaseSku;
import com.gogirl.domain.product.serve.BaseProduce; import com.gogirl.domain.product.serve.BaseProduce;
import com.gogirl.domain.product.serve.BaseServe; import com.gogirl.domain.product.serve.BaseServe;
...@@ -117,6 +119,8 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order ...@@ -117,6 +119,8 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
BaseServeService baseServeService; BaseServeService baseServeService;
@Resource @Resource
BaseProduceService baseProduceService; BaseProduceService baseProduceService;
@Resource
private IWxOrderFlowService wxOrderFlowService;
@Override @Override
public BigDecimal countSumPay(Integer customerId, Integer departmentId) { public BigDecimal countSumPay(Integer customerId, Integer departmentId) {
...@@ -987,6 +991,14 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order ...@@ -987,6 +991,14 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
this.updateById(orderManage); this.updateById(orderManage);
marketService.calcOrderAmount(orderManage.getId()); marketService.calcOrderAmount(orderManage.getId());
//微信流水
//微信流水
WxOrderFlow wxOrderFlow = WxOrderFlow.getInstance(result);
wxOrderFlow.setSourceFrom(WxOrderFlow.CUSTOMER);
wxOrderFlow.setOutTradeNo(orderNo);
wxOrderFlow.setOrderType(WxOrderFlow.SCHEDULE_ORDER);
wxOrderFlowService.log(wxOrderFlow);
} }
@Override @Override
...@@ -1022,6 +1034,13 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order ...@@ -1022,6 +1034,13 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
/*2.更新卡券状态*/ /*2.更新卡券状态*/
marketService.finishPayOrder(orderManage.getId()); marketService.finishPayOrder(orderManage.getId());
//微信流水
WxOrderFlow wxOrderFlow = WxOrderFlow.getInstance(result);
wxOrderFlow.setSourceFrom(WxOrderFlow.CUSTOMER);
wxOrderFlow.setOutTradeNo(orderNo);
wxOrderFlow.setOrderType(WxOrderFlow.SCHEDULE_ORDER);
wxOrderFlowService.log(wxOrderFlow);
} }
@Override @Override
......
package com.gogirl.application.order.sys;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.order.sys.WxOrderFlow;
/**
* <p>
* 微信订单流水 服务类
* </p>
*
* @author robbendev
* @since 2020-12-23
*/
public interface IWxOrderFlowService extends IService<WxOrderFlow> {
/**
* 保存微信订单流水
*
* @param wxOrderFlow
*/
void log(WxOrderFlow wxOrderFlow);
}
package com.gogirl.application.order.sys.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gogirl.application.order.sys.IWxOrderFlowService;
import com.gogirl.domain.order.sys.WxOrderFlow;
import com.gogirl.infrastructure.common.util.JsonUtilByFsJson;
import com.gogirl.infrastructure.mapper.order.sys.WxOrderFlowMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
/**
* <p>
* 微信订单流水 服务实现类
* </p>
*
* @author robbendev
* @since 2020-12-23
*/
@Slf4j
@Service
public class WxOrderFlowServiceImpl extends ServiceImpl<WxOrderFlowMapper, WxOrderFlow> implements IWxOrderFlowService {
@Async
@Override
public void log(WxOrderFlow wxOrderFlow) {
log.info("保存微信订单流水:{}", JsonUtilByFsJson.beanToJson(wxOrderFlow));
this.save(wxOrderFlow);
}
}
package com.gogirl.domain.order.sys;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 微信订单流水
* </p>
*
* @author robbendev
* @since 2020-12-23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "WxOrderFlow对象", description = "微信订单流水")
public class WxOrderFlow implements Serializable {
private static final long serialVersionUID = 1L;
public static final Integer SCHEDULE_ORDER = 1;
public static final Integer CHARGE_ORDER = 2;
public static final Integer TIMES_CARD = 3;
public static final Integer AGENT_CHARGE = 3;
public static final Integer CUSTOMER = 1;
public static final Integer TECHNICIAN = 2;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "用户在商户appid下的唯一标识")
private String openid;
@ApiModelProperty(value = "1-美甲沙龙小程序2-店员端小程序")
private Integer sourceFrom;
@ApiModelProperty(value = "JSA描述:PI、NATIVE、APP")
private String tradeType;
@ApiModelProperty(value = "银行类型,采用字符串类型的银行标识,银行类型见银行列表")
private String bankType;
@ApiModelProperty(value = "订单总金额,单位为分")
private Integer totalFee;
@ApiModelProperty(value = "货币类型,符合ISO4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型")
private String feeType;
@ApiModelProperty(value = "微信支付订单号")
private String transactionId;
@ApiModelProperty(value = "商户系统的订单号,与请求一致。")
private String outTradeNo;
@ApiModelProperty(value = "支付完成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则")
private String timeEnd;
@ApiModelProperty(value = "商户订单类型 ")
private Integer orderType;
public static WxOrderFlow getInstance(WxPayOrderNotifyResult result) {
WxOrderFlow wxOrderFlow = new WxOrderFlow();
wxOrderFlow.setOpenid(result.getOpenid());
wxOrderFlow.setTradeType(result.getTradeType());
wxOrderFlow.setBankType(result.getBankType());
wxOrderFlow.setTotalFee(result.getTotalFee());
wxOrderFlow.setFeeType(result.getFeeType());
wxOrderFlow.setTransactionId(result.getTransactionId());
wxOrderFlow.setOutTradeNo(result.getOutTradeNo());
wxOrderFlow.setTimeEnd(result.getTimeEnd());
return wxOrderFlow;
}
}
...@@ -90,7 +90,7 @@ public class StoreManage implements Serializable { ...@@ -90,7 +90,7 @@ public class StoreManage implements Serializable {
@ApiModelProperty("店长id" ) @ApiModelProperty("店长id" )
private Integer masterUserId; private Integer masterUserId;
@ApiModelProperty("营业状态1.营业中;2.停止营" ) @ApiModelProperty("营业状态1.营业中;2.停止营" )
private Integer operatingStatus; private Integer operatingStatus;
@ApiModelProperty("运营人员id" ) @ApiModelProperty("运营人员id" )
......
package com.gogirl.infrastructure.mapper.order.sys;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gogirl.domain.order.sys.WxOrderFlow;
/**
* <p>
* 微信订单流水 Mapper 接口
* </p>
*
* @author robbendev
* @since 2020-12-23
*/
public interface WxOrderFlowMapper extends BaseMapper<WxOrderFlow> {
}
package com.gogirl.interfaces.order.sys;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 微信订单流水 前端控制器
* </p>
*
* @author robbendev
* @since 2020-12-23
*/
@RestController
@RequestMapping("/wx-order-flow")
public class WxOrderFlowController {
}
...@@ -7,6 +7,7 @@ import com.gogirl.infrastructure.common.annotation.AuthIgnore; ...@@ -7,6 +7,7 @@ import com.gogirl.infrastructure.common.annotation.AuthIgnore;
import com.gogirl.infrastructure.common.annotation.LoginIgnore; import com.gogirl.infrastructure.common.annotation.LoginIgnore;
import com.gogirl.infrastructure.common.base.JsonResult; import com.gogirl.infrastructure.common.base.JsonResult;
import com.gogirl.infrastructure.common.exception.RRException; import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.common.util.StringUtils;
import com.gogirl.shared.member.CustomerOrderDetail; import com.gogirl.shared.member.CustomerOrderDetail;
import com.gogirl.shared.user.CustomerQuery; import com.gogirl.shared.user.CustomerQuery;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -154,6 +155,27 @@ public class CustomerController { ...@@ -154,6 +155,27 @@ public class CustomerController {
if (customerSource == null) { if (customerSource == null) {
throw new RRException("客户来源必填"); throw new RRException("客户来源必填");
} }
if (StringUtils.isEmpty(storeRecordRealName)) {
throw new RRException("姓名必填");
}
if (StringUtils.isEmpty(sex)) {
throw new RRException("性别必填");
}
// if (birthdayMonth == null || birthdayDay == null) {
// throw new RRException("生日必填");
// }
if (StringUtils.isEmpty(ageGroup)) {
throw new RRException("年龄必填");
}
if (StringUtils.isEmpty(job)) {
throw new RRException("职业必填");
}
if (StringUtils.isEmpty(preference)) {
throw new RRException("偏好必填");
}
if (StringUtils.isEmpty(character)) {
throw new RRException("偏好必填");
}
customerService.updateCustomerDetail(birthdayMonth, birthdayDay, ageGroup, customerId, orderId, orderServeId, storeRecordRealName, sex, age, job, preference, character, customerSource); customerService.updateCustomerDetail(birthdayMonth, birthdayDay, ageGroup, customerId, orderId, orderServeId, storeRecordRealName, sex, age, job, preference, character, customerSource);
return JsonResult.success(); return JsonResult.success();
} }
......
<?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.gogirl.infrastructure.mapper.order.sys.WxOrderFlowMapper">
</mapper>
...@@ -53,7 +53,7 @@ public class CodeGenerator { ...@@ -53,7 +53,7 @@ public class CodeGenerator {
// 数据源配置 // 数据源配置
DataSourceConfig dsc = new DataSourceConfig(); DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://gz-cdb-c0sq6eax.sql.tencentcdb.com:60779/bailun_gogirl?useUnicode=true&characterEncoding=utf-8&useSSL=false&&zeroDateTimeBehavior=convertToNull"); dsc.setUrl("jdbc:mysql://gz-cdb-c0sq6eax.sql.tencentcdb.com:60779/gogirl_pre?useUnicode=true&characterEncoding=utf-8&useSSL=false&&zeroDateTimeBehavior=convertToNull");
// dsc.setSchemaName("public"); // dsc.setSchemaName("public");
dsc.setDriverName("com.mysql.jdbc.Driver"); dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername("root"); dsc.setUsername("root");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment