Commit 667e8c2a by 吴一龙

fix StudioAxfOrderVO instead of memberId and memberPhone

parent 1f8a9311
......@@ -27,10 +27,10 @@ public class PageStudioAxfOrderRequest {
private String studioName;
@ApiModelProperty(value = "学员ID")
private Long studentId;
private Long memberId;
@ApiModelProperty(value = "学员名称")
private String studentName;
private String memberName;
@ApiModelProperty(value = "支付宝pid")
private String merchantNo;
......
......@@ -43,13 +43,13 @@ public class StudioAxfOrderVO {
private Long commodityId;
@ApiModelProperty(value = "学员ID")
private Long studentId;
private Long memberId;
@ApiModelProperty(value = "学员姓名")
private String studentName;
private String memberName;
@ApiModelProperty(value = "学员手机号")
private String studentPhone;
private String memberPhone;
@ApiModelProperty(value = "签约状态")
private String signState;
......
......@@ -84,13 +84,13 @@ public class StudioAxfOrder implements Serializable {
* 备注: 学员ID
* 是否允许为null: YES
*/
private Long studentId;
private Long memberId;
/**
* 备注: 学员姓名
* 是否允许为null: YES
*/
private String studentName;
private String memberName;
/**
* 备注: 签约状态
......@@ -225,9 +225,9 @@ public class StudioAxfOrder implements Serializable {
public static final String COMMODITY_ID = "commodity_id";
public static final String STUDENT_ID = "student_id";
public static final String STUDENT_ID = "member_id";
public static final String STUDENT_NAME = "student_name";
public static final String MEMBER_NAME = "member_name";
public static final String SIGN_STATE = "sign_state";
......
......@@ -31,8 +31,8 @@ import org.apache.ibatis.annotations.Param;
*/
public interface StudioAxfOrderMapper extends XBaseMapper<StudioAxfOrder> {
AggStudioAxfOrderVO agg(@Param("studioIds") List<Long> studioIds, @Param("studentId") Long studentId,
@Param("studentName") String studentName, @Param("voucherBusinessNo") String voucherBusinessNo,
AggStudioAxfOrderVO agg(@Param("studioIds") List<Long> studioIds, @Param("memberId") Long memberId,
@Param("memberName") String memberName, @Param("voucherBusinessNo") String voucherBusinessNo,
@Param("thirdOrderNo") String thirdOrderNo, @Param("signTimeStart") Date signTimeStart,
@Param("signTimeEnd") Date signTimeEnd, @Param("cancelTimeStart") Date cancelTimeStart,
@Param("cancelTimeEnd") Date cancelTimeEnd, @Param("state") AxfOrderSignStateEnums state);
......
......@@ -29,11 +29,11 @@
#{item}
</foreach>
</if>
<if test="studentId != null">
and student_id = #{studentId}
<if test="memberId != null">
and student_id = #{memberId}
</if>
<if test="studentName != null">
and student_name = #{studentName}
<if test="memberName != null">
and student_name = #{memberName}
</if>
<if test="voucherBusinessNo != null">
and voucher_business_no = #{voucherBusinessNo}
......
......@@ -46,19 +46,19 @@ public class StudioAxfOrderRpService extends MapperRepoService<Long, StudioAxfOr
.orElse(null);
}
public org.springframework.data.domain.Page<StudioAxfOrder> page(List<Long> studioIds, Long studentId,
String studentName, String merchantNo,
public org.springframework.data.domain.Page<StudioAxfOrder> page(List<Long> studioIds, Long memberId,
String memberName, String merchantNo,
String voucherBusinessNo, String thirdOrderNo, Date signTimeStart, Date signTimeEnd,
Date cancelTimeStart, Date cancelTimeEnd, AxfOrderSignStateEnums state, Integer current, Integer size) {
QueryWrapper<StudioAxfOrder> wrapper = new QueryWrapper<>();
if (CollectionUtils.isNotEmpty(studioIds)) {
wrapper.in(StudioAxfOrder.STUDIO_ID, studioIds);
}
if (null != studentId) {
wrapper.eq(StudioAxfOrder.STUDENT_ID, studentId);
if (null != memberId) {
wrapper.eq(StudioAxfOrder.STUDENT_ID, memberId);
}
if (StringUtils.isNotEmpty(studentName)) {
wrapper.eq(StudioAxfOrder.STUDENT_NAME, studentName);
if (StringUtils.isNotEmpty(memberName)) {
wrapper.eq(StudioAxfOrder.MEMBER_NAME, memberName);
}
if (StringUtils.isNotEmpty(merchantNo)){
wrapper.eq(StudioAxfOrder.MERCHANT_NO, merchantNo);
......@@ -96,10 +96,10 @@ public class StudioAxfOrderRpService extends MapperRepoService<Long, StudioAxfOr
.orElse(null);
}
public AggStudioAxfOrderVO agg(List<Long> studioIds, Long studentId, String studentName,
public AggStudioAxfOrderVO agg(List<Long> studioIds, Long memberId, String memberName,
String voucherBusinessNo, String thirdOrderNo, Date signTimeStart, Date signTimeEnd,
Date cancelTimeStart, Date cancelTimeEnd, AxfOrderSignStateEnums state) {
AggStudioAxfOrderVO vo = this.baseMapper.agg(studioIds, studentId, studentName, voucherBusinessNo,
AggStudioAxfOrderVO vo = this.baseMapper.agg(studioIds, memberId, memberName, voucherBusinessNo,
thirdOrderNo, signTimeStart, signTimeEnd, cancelTimeStart, cancelTimeEnd, state);
if (null == vo) {
return AggStudioAxfOrderVO.builder().receivedActualAmount(BigDecimal.ZERO)
......
......@@ -320,7 +320,7 @@ public class AxfConvert {
}
public static StudioAxfOrder toEntity(CommodityOrderEvent event, String merchantNo, CommodityVO commodity,
VoucherVO voucher, MemberDetailVO student) {
VoucherVO voucher, MemberDetailVO member) {
AlipayCommerceMerchantcardOrderNotifyModel model = JSON.parseObject(event.getAttr(),
AlipayCommerceMerchantcardOrderNotifyModel.class);
return StudioAxfOrder.builder()
......@@ -330,8 +330,8 @@ public class AxfConvert {
.merchantId(event.getMerchantId())
.merchantNo(merchantNo)
.commodityId(commodity.getId())
.studentId(student.getId())
.studentName(student.getName())
.memberId(member.getId())
.memberName(member.getName())
.originalPrice(MoneyUtil.divide(new BigDecimal(model.getOriginPriceTotal()), new BigDecimal("100")))
.salePrice(MoneyUtil.divide(new BigDecimal(model.getSalePriceTotal()), new BigDecimal("100")))
.totalPeriod(Integer.parseInt(model.getTotalCount()))
......
......@@ -12,6 +12,7 @@ import com.jiejing.common.exception.BizException;
import com.jiejing.common.model.JsonResult;
import com.jiejing.common.model.PageVO;
import com.jiejing.common.request.IdRequest;
import com.jiejing.common.request.IdsRequest;
import com.jiejing.common.utils.convert.BeanUtil;
import com.jiejing.common.utils.crypt.AesUtil;
import com.jiejing.filecenter.api.resource.vo.ResourceInfoVO;
......@@ -60,7 +61,10 @@ import com.jiejing.fitness.finance.service.utils.DingUtil;
import com.jiejing.fitness.finance.service.utils.MoneyUtil;
import com.jiejing.fitness.request.MemberIdRequest;
import com.jiejing.member.api.member.MemberApi;
import com.jiejing.member.api.member.request.ListStudioMemberInfoRequest;
import com.jiejing.member.api.member.vo.MemberDetailVO;
import com.jiejing.member.api.member.vo.MemberDigestVO;
import com.jiejing.member.api.member.vo.StudioMemberSimpleVO;
import com.jiejing.message.enums.MsgChannelEnum;
import com.jiejing.message.event.SendCommonMsgEvent;
import com.jiejing.paycenter.api.merchant.MerchantApi;
......@@ -129,10 +133,10 @@ import java.util.Set;
import java.util.concurrent.Executor;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.apache.commons.lang3.tuple.Pair;
......@@ -591,7 +595,7 @@ public class AxfServiceImpl implements AxfService {
}
Page<StudioAxfOrder> page = studioAxfOrderRpService.page(Lists.newArrayList(studioIds),
request.getStudentId(), request.getStudentName(), request.getMerchantNo(),
request.getMemberId(), request.getMemberName(), request.getMerchantNo(),
request.getVoucherBusinessNo(),
request.getThirdOrderNo(), request.getSignTimeStart(), request.getSignTimeEnd(),
request.getCancelTimeStart(), request.getCancelTimeEnd(), request.getState(), request.getCurrent(),
......@@ -603,7 +607,7 @@ public class AxfServiceImpl implements AxfService {
// 补充学员姓名+校区名称
List<StudioAxfOrderVO> vos = toVOList(page.getContent());
this.appendStudioName(vos);
this.appendStudioAndMemberInfo(vos);
return PageVO.convert(page, vos);
}
......@@ -611,18 +615,24 @@ public class AxfServiceImpl implements AxfService {
public AggStudioAxfOrderVO aggOrder(PageStudioAxfOrderRequest request) {
AggStudioAxfOrderVO vo = studioAxfOrderRpService.agg(
Optional.ofNullable(request.getStudioId()).map(Lists::newArrayList).orElse(null),
request.getStudentId(), request.getStudentName(), request.getVoucherBusinessNo(),
request.getMemberId(), request.getMemberName(), request.getVoucherBusinessNo(),
request.getThirdOrderNo(), request.getSignTimeStart(), request.getSignTimeEnd(),
request.getCancelTimeStart(), request.getCancelTimeEnd(), request.getState());
vo.setRate(AxfConst.RATE);
return vo;
}
private void appendStudioName(List<StudioAxfOrderVO> vos) {
private void appendStudioAndMemberInfo(List<StudioAxfOrderVO> vos) {
Set<Long> studioIds = vos.stream().map(StudioAxfOrderVO::getStudioId).collect(Collectors.toSet());
Map<Long, StudioVO> studioMap = studioRpcService.mapStudio(Lists.newArrayList(studioIds));
vos.forEach(
e -> e.setStudioName(studioMap.getOrDefault(e.getStudioId(), new StudioVO()).getName()));
List<Long> memberIds = vos.stream().map(StudioAxfOrderVO::getMemberId).distinct().collect(Collectors.toList());
Map<Long, MemberDigestVO> memberDigestVOMap = this.getMemberList(memberIds).stream()
.collect(Collectors.toMap(MemberDigestVO::getId, Function.identity(), (k1, k2) -> k1));
vos.forEach(e -> {
e.setStudioName(studioMap.getOrDefault(e.getStudioId(), new StudioVO()).getName());
e.setMemberName(memberDigestVOMap.getOrDefault(e.getMemberId(), new MemberDigestVO()).getName());
e.setMemberPhone(memberDigestVOMap.getOrDefault(e.getMemberId(), new MemberDigestVO()).getPhone());
});
}
private List<StudioAxfOrderVO> toVOList(List<StudioAxfOrder> orders) {
......@@ -1061,7 +1071,7 @@ public class AxfServiceImpl implements AxfService {
result.assertSuccess();
CommodityVO commodity = result.getResult();
VoucherVO voucher = this.getVoucher(commodity.getBizId());
MemberDetailVO student = this.getStudent(voucher.getReceiver().getId());
MemberDetailVO member = this.getMemberDetail(voucher.getReceiver().getId());
String merchantNo = null;
if (event.getMerchantId()!=null){
......@@ -1071,17 +1081,24 @@ public class AxfServiceImpl implements AxfService {
}
}
StudioAxfOrder order = AxfConvert.toEntity(event, merchantNo, commodity, voucher, student);
StudioAxfOrder order = AxfConvert.toEntity(event, merchantNo, commodity, voucher, member);
studioAxfOrderRpService.insert(order);
}
private MemberDetailVO getStudent(Long memberId) {
private MemberDetailVO getMemberDetail(Long memberId) {
MemberIdRequest request = new MemberIdRequest();
request.setMemberId(memberId);
JsonResult<MemberDetailVO> result = memberApi.findDetailById(request);
return result.assertAndReturn().getResult();
}
private List<MemberDigestVO> getMemberList(List<Long> memberIds) {
IdsRequest request = new IdsRequest();
request.setIds(memberIds);
JsonResult<List<MemberDigestVO>> result = memberApi.listDigestByIds(request);
return result.assertAndReturn().getResult();
}
private VoucherVO getVoucher(Long voucherId) {
JsonResult<VoucherVO> result = voucherApi.getVoucher(IdRequest.builder().id(voucherId).build());
return result.assertAndReturn().getResult();
......
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