|
|
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import shop.alien.entity.result.R;
|
|
|
import shop.alien.entity.store.*;
|
|
|
import shop.alien.entity.store.vo.ExpertGoodsTypeVo;
|
|
|
import shop.alien.entity.store.vo.LifeUserExpertOrderVo;
|
|
|
@@ -95,24 +96,26 @@ public class LifeUserExpertServiceImpl extends ServiceImpl<LifeUserExpertMapper,
|
|
|
lifeUserExpert.setAdvanceRate(advanceRate);
|
|
|
String text = "您在"+formattedDate+"提交的信息已经通过审核。恭喜您成为达人。";
|
|
|
String title = "审核通过通知";
|
|
|
- sendMessage(expertStatus, userPhone, text,title);
|
|
|
+ String phone="user_"+userPhone;
|
|
|
+ sendMessage(expertStatus, phone, text,title);
|
|
|
} else if (expertStatus == 2) {
|
|
|
lifeUserExpert.setRefuseBecause(comment);
|
|
|
lifeUserExpert.setExpertStatus(2);
|
|
|
String text = "您在"+formattedDate+"提交的信息未通过审核,拒绝原因:"+comment+"。请您重新填写信息后再次提交至平台审核。";
|
|
|
String title = "审核失败通知";
|
|
|
- sendMessage(expertStatus, userPhone, text,title);
|
|
|
+ String phone="user_"+userPhone;
|
|
|
+ sendMessage(expertStatus, phone, text,title);
|
|
|
}
|
|
|
return lifeUserExpertMapper.updateExpert(lifeUserExpert);
|
|
|
}
|
|
|
|
|
|
|
|
|
- public void sendMessage(Integer expertStatus,String userPhone ,String text,String title) {
|
|
|
+ public void sendMessage(Integer expertStatus,String phone ,String text,String title) {
|
|
|
LifeNotice lifeMessage = new LifeNotice();
|
|
|
if (expertStatus == 0){
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("message", text);
|
|
|
- lifeMessage.setReceiverId("user_"+userPhone);
|
|
|
+ lifeMessage.setReceiverId(phone);
|
|
|
lifeMessage.setContext(jsonObject.toJSONString());
|
|
|
lifeMessage.setNoticeType(1);
|
|
|
lifeMessage.setIsRead(0);
|
|
|
@@ -123,7 +126,7 @@ public class LifeUserExpertServiceImpl extends ServiceImpl<LifeUserExpertMapper,
|
|
|
} else if (expertStatus == 2) {
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("message", text);
|
|
|
- lifeMessage.setReceiverId("user_"+userPhone);
|
|
|
+ lifeMessage.setReceiverId(phone);
|
|
|
lifeMessage.setContext(jsonObject.toJSONString());
|
|
|
lifeMessage.setNoticeType(1);
|
|
|
lifeMessage.setIsRead(0);
|
|
|
@@ -131,6 +134,18 @@ public class LifeUserExpertServiceImpl extends ServiceImpl<LifeUserExpertMapper,
|
|
|
lifeMessage.setTitle(title);
|
|
|
lifeMessage.setSenderId("system");
|
|
|
lifeNoticeMapper.insert(lifeMessage);
|
|
|
+ } else if (expertStatus == 2) {
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("message", text);
|
|
|
+ lifeMessage.setReceiverId(phone);
|
|
|
+ lifeMessage.setContext(jsonObject.toJSONString());
|
|
|
+ lifeMessage.setNoticeType(1);
|
|
|
+ lifeMessage.setIsRead(0);
|
|
|
+ lifeMessage.setDeleteFlag(0);
|
|
|
+ lifeMessage.setTitle(title);
|
|
|
+ lifeMessage.setSenderId("system");
|
|
|
+ lifeNoticeMapper.insert(lifeMessage);
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -422,49 +437,146 @@ public class LifeUserExpertServiceImpl extends ServiceImpl<LifeUserExpertMapper,
|
|
|
for (LifeUserExpertOrderVo lifeUserExpertOrderVo : list) {
|
|
|
int advanceRate = lifeUserExpertOrderVo.getAdvanceRate();
|
|
|
int commissionRate = lifeUserExpertOrderVo.getCommissionRate();
|
|
|
- BigDecimal advanceAmount = lifeUserExpertOrderVo.getOrderMoney().multiply(BigDecimal.valueOf(advanceRate))
|
|
|
- .divide(new BigDecimal(100));
|
|
|
+ lifeUserExpertOrderVo.setOrderNewGmv(String.valueOf(lifeUserExpertOrderVo.getOrderGmv().setScale(2, BigDecimal.ROUND_HALF_UP)));
|
|
|
BigDecimal commissionAmount = lifeUserExpertOrderVo.getOrderMoney().multiply(BigDecimal.valueOf(commissionRate))
|
|
|
.divide(new BigDecimal(100));
|
|
|
- lifeUserExpertOrderVo.setAdvance(advanceAmount.toString());
|
|
|
- lifeUserExpertOrderVo.setCommission(commissionAmount.toString());
|
|
|
+ BigDecimal difference = lifeUserExpertOrderVo.getOrderMoney().subtract(commissionAmount);
|
|
|
+ BigDecimal advanceAmount = difference.multiply(BigDecimal.valueOf(advanceRate))
|
|
|
+ .divide(new BigDecimal(100));
|
|
|
+ lifeUserExpertOrderVo.setAdvance(advanceAmount);
|
|
|
+ lifeUserExpertOrderVo.setCommission(commissionAmount);
|
|
|
}
|
|
|
return ListToPage.setPage(list,page, size);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Boolean getAdvancePaymentReview(Integer id,String reasonRefusal,String userPhone, String name,String storeTel,String orderNo, String orderMoney,String advancePaymentStatus) {
|
|
|
- LifeUserExpertOrder lifeUserExpertOrder =new LifeUserExpertOrder() ;
|
|
|
- lifeUserExpertOrder.setId(id);
|
|
|
- lifeUserExpertOrder.setAdvancePaymentStatus(advancePaymentStatus);
|
|
|
- lifeUserExpertOrder.setAdvancePaymentTime(new Date());
|
|
|
- lifeUserExpertOrder.setReasonRefusal(reasonRefusal);
|
|
|
- int i=lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
|
|
|
+
|
|
|
|
|
|
Integer advancePaymentStatu= Integer.valueOf(advancePaymentStatus);
|
|
|
+ LifeUserExpertOrder lifeUserExpertOrder =new LifeUserExpertOrder() ;
|
|
|
if ("0".equals(advancePaymentStatus)){
|
|
|
+ //审核通过,修改订单表审核状态,添加首次打款时间
|
|
|
+ lifeUserExpertOrder.setId(id);
|
|
|
+ lifeUserExpertOrder.setAdvancePaymentStatus(advancePaymentStatus);
|
|
|
+ lifeUserExpertOrder.setAdvancePaymentTime(new Date());
|
|
|
+ lifeUserExpertOrder.setReasonRefusal(reasonRefusal);
|
|
|
+ lifeUserExpertOrder.setFirstPaymentTime(new Date());
|
|
|
+ int i=lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
|
|
|
String text = "您的"+name+"已被商家订购,可在应用内我的-我的钱包中查看预付款金额。";
|
|
|
String title = "发放预付款通知";
|
|
|
- sendMessage(advancePaymentStatu,userPhone ,text,title);
|
|
|
+ String phone = "user_"+userPhone;
|
|
|
+ sendMessage(advancePaymentStatu,phone ,text,title);
|
|
|
} else if ("2".equals(advancePaymentStatus)){
|
|
|
String text = "您订购的达人推广套餐-"+name+",审核未通过,拒绝原因:"+reasonRefusal+",平台会在1-3个工作日将全部款项发放到你的支付宝账户,请注意查收。如未到账,请联系客服处理。";
|
|
|
String title = "订单退款通知";
|
|
|
- sendMessage(advancePaymentStatu,storeTel ,text,title);
|
|
|
-
|
|
|
+ String phone = "store_"+storeTel;
|
|
|
+ sendMessage(advancePaymentStatu,phone ,text,title);
|
|
|
|
|
|
//退款逻辑
|
|
|
String partialRefundCode = "";
|
|
|
String result=aliApi.processRefund(orderNo, orderMoney, reasonRefusal, partialRefundCode);
|
|
|
+ //支付宝退款成功,发送系统消息,更新订单表审核状态
|
|
|
if ("调用成功".equals(result)){
|
|
|
+ lifeUserExpertOrder.setId(id);
|
|
|
+ lifeUserExpertOrder.setAdvancePaymentStatus(advancePaymentStatus);
|
|
|
+ lifeUserExpertOrder.setAdvancePaymentTime(new Date());
|
|
|
+ lifeUserExpertOrder.setReasonRefusal(reasonRefusal);
|
|
|
+ int i=lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
|
|
|
String text1 = "您订购的达人推广套餐-"+name+",订单金额:"+orderMoney+"元,已经成功发放到您的支付宝账户,请注意查收。";
|
|
|
String title1 = "退款到账成功通知";
|
|
|
sendMessage(advancePaymentStatu,userPhone ,text1,title1);
|
|
|
}
|
|
|
}
|
|
|
- if (i>0){
|
|
|
- return true;
|
|
|
- }
|
|
|
+
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public IPage<LifeUserExpertOrderVo> getFinalPaymentList(Integer page, Integer size,String realName, String userPhone, String advancePaymentStatus, String orderCreatedTime, String orderEndTime ,String firstCompleteTime,String endCompleteTime,String createdEndPaymentTime,String endEndPaymentTime,String name, Integer userId) {
|
|
|
+ QueryWrapper<LifeUserExpertVo> wrapper = new QueryWrapper<>();
|
|
|
+ wrapper.eq("ccc.delete_flag", 0);
|
|
|
+ wrapper.eq("user.delete_flag", 0);
|
|
|
+ wrapper.eq("info.delete_flag",0);
|
|
|
+ wrapper.eq("expert.delete_flag",0);
|
|
|
+ wrapper.eq("package.delete_flag",0);
|
|
|
+ wrapper.like(StringUtils.isNotEmpty(realName), "user.real_name", realName);
|
|
|
+ wrapper.like(StringUtils.isNotEmpty(userPhone), "user.user_phone", userPhone);
|
|
|
+ if (advancePaymentStatus != null && !advancePaymentStatus.isEmpty()){
|
|
|
+ wrapper.eq("ccc.advance_payment_status", advancePaymentStatus);
|
|
|
+ }
|
|
|
+ if (orderCreatedTime != null && !orderCreatedTime.isEmpty()){
|
|
|
+ wrapper.gt("ccc.order_time", orderCreatedTime);
|
|
|
+ }
|
|
|
+ if (orderEndTime != null && !orderEndTime.isEmpty()) {
|
|
|
+ wrapper.lt("ccc.order_time", orderEndTime);
|
|
|
+ }
|
|
|
+ if (firstCompleteTime != null && !firstCompleteTime.isEmpty()){
|
|
|
+ wrapper.gt("ccc.complete_time", firstCompleteTime);
|
|
|
+ }
|
|
|
+ if (endCompleteTime != null && !endCompleteTime.isEmpty()){
|
|
|
+ wrapper.lt("ccc.complete_time", endCompleteTime);
|
|
|
+ }
|
|
|
+ if (createdEndPaymentTime != null && !createdEndPaymentTime.isEmpty()){
|
|
|
+ wrapper.gt("ccc.end_payment_time", createdEndPaymentTime);
|
|
|
+ }
|
|
|
+ if (endEndPaymentTime != null && !endEndPaymentTime.isEmpty()){
|
|
|
+ wrapper.lt("ccc.end_payment_time", endEndPaymentTime);
|
|
|
+ }
|
|
|
+ List<LifeUserExpertOrderVo> list=lifeUserExpertOrderMapper.getFinalPaymentList(wrapper);
|
|
|
+ for (LifeUserExpertOrderVo lifeUserExpertOrderVo : list) {
|
|
|
+ int advanceRate = lifeUserExpertOrderVo.getAdvanceRate();
|
|
|
+ int commissionRate = lifeUserExpertOrderVo.getCommissionRate();
|
|
|
+ //订单金额
|
|
|
+ lifeUserExpertOrderVo.setOrderNewGmv(String.valueOf(lifeUserExpertOrderVo.getOrderGmv().setScale(2, BigDecimal.ROUND_HALF_UP)));
|
|
|
+ //佣金
|
|
|
+ BigDecimal commissionAmount = lifeUserExpertOrderVo.getOrderMoney().multiply(BigDecimal.valueOf(commissionRate))
|
|
|
+ .divide(new BigDecimal(100));
|
|
|
+ //预付款
|
|
|
+ BigDecimal difference = lifeUserExpertOrderVo.getOrderMoney().subtract(commissionAmount);
|
|
|
+ BigDecimal advanceAmount = difference.multiply(BigDecimal.valueOf(advanceRate))
|
|
|
+ .divide(new BigDecimal(100));
|
|
|
+ //尾款
|
|
|
+ BigDecimal endPayment = lifeUserExpertOrderVo.getOrderMoney().subtract(commissionAmount).subtract(advanceAmount);
|
|
|
+
|
|
|
+ lifeUserExpertOrderVo.setAdvance(advanceAmount);
|
|
|
+ lifeUserExpertOrderVo.setCommission(commissionAmount);
|
|
|
+ lifeUserExpertOrderVo.setEndPayment(endPayment);
|
|
|
+ lifeUserExpertOrderVo.setEndPaymentRate(100-advanceRate);
|
|
|
+ }
|
|
|
+ return ListToPage.setPage(list,page, size);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String,String> getFinalPaymentReview(Integer id, String endPaymentRefusal, String userPhone, String name, String storeTel, String orderNo, String orderMoney, String endFundsButton) {
|
|
|
+ Map<String,String> map = new HashMap<>();
|
|
|
+ LifeUserExpertOrder lifeUserExpertOrder =new LifeUserExpertOrder() ;
|
|
|
+ lifeUserExpertOrder.setId(id);
|
|
|
+ lifeUserExpertOrder.setEndFundsButton(endFundsButton);
|
|
|
+ lifeUserExpertOrder.setEndPaymentTime(new Date());
|
|
|
+
|
|
|
+ //endFundsButton 0未点击 1已点击审核中 2已点击审核通过 3已点击审核拒绝
|
|
|
+ Integer endFundsButtons = Integer.valueOf(endFundsButton);
|
|
|
+ if ("2".equals(endFundsButton)){
|
|
|
+ lifeUserExpertOrder.setFinalPaymentTime(new Date());
|
|
|
+ int i=lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
|
|
|
+ String text = "您在"+new Date()+"提交的申请尾款信息,已通过审核。尾款可在应用内我的-我的钱包中查看。";
|
|
|
+ String title = "尾款审核通过通知";
|
|
|
+ String phone = "user_"+userPhone;
|
|
|
+ sendMessage(endFundsButtons,phone ,text,title);
|
|
|
+ map.put("status","审核成功,发送系统消息成功");
|
|
|
+ return map;
|
|
|
+ } else if ("3".equals(endFundsButton)){
|
|
|
+ lifeUserExpertOrder.setEndPaymentRefusal(endPaymentRefusal);
|
|
|
+ int i=lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
|
|
|
+ String text = "您在"+new Date()+"提交的申请尾款信息,未通过审核。拒绝原因:"+endPaymentRefusal+"。";
|
|
|
+ String title = "尾款审核失败通知";
|
|
|
+ String phone = "user_"+userPhone;
|
|
|
+ sendMessage(endFundsButtons,phone ,text,title);
|
|
|
+ map.put("status","审核驳回,发送系统消息成功");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
}
|