|
@@ -9,6 +9,8 @@ import com.caimei365.order.model.ResponseJson;
|
|
|
import com.caimei365.order.model.bo.ReceiptParamsBo;
|
|
|
import com.caimei365.order.model.dto.ReceiptDto;
|
|
|
import com.caimei365.order.model.enums.OrderStatus;
|
|
|
+import com.caimei365.order.model.enums.ReceiptStatus;
|
|
|
+import com.caimei365.order.model.enums.ReceiptType;
|
|
|
import com.caimei365.order.model.po.BalanceRecordPo;
|
|
|
import com.caimei365.order.model.po.OrderReceiptRelationPo;
|
|
|
import com.caimei365.order.model.po.ReceiptPo;
|
|
@@ -58,7 +60,7 @@ public class ReceiptServiceImpl implements ReceiptService {
|
|
|
/**
|
|
|
* 只有当识别出来的收款类型是广发银行-5461 ,中信银行-0897,中信银行0897-财付通 和 中信银行0897-支付宝时,才会显示手续费,并且自动勾选上手续费,默认按收款金额的千分之一计算 (收款金额 - 手续费 = 短信中收到的金额)
|
|
|
*/
|
|
|
- private static final List<Integer> tipFeeType = Arrays.asList(4, 5, 6, 11);
|
|
|
+ private static final List<Integer> TIP_FEE_TYPE = Arrays.asList(4, 5, 6, 11);
|
|
|
private static final Pattern PATTERN_NUMBER = Pattern.compile("[\\*0-9\\.:]+");
|
|
|
private static final Pattern PATTERN_ORDER = Pattern.compile("#(.*?)#");
|
|
|
private static final Pattern PATTERN_ORDER_ID = Pattern.compile("^[-\\+]?[\\d]*$");
|
|
@@ -453,10 +455,90 @@ public class ReceiptServiceImpl implements ReceiptService {
|
|
|
// 分页请求数据
|
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
|
List<ReceiptVo> list = receiptMapper.getReceiptList(paramsBo);
|
|
|
+ for (ReceiptVo receipt : list) {
|
|
|
+ if (null != receipt) {
|
|
|
+ setReceiptDetail(receipt);
|
|
|
+ }
|
|
|
+ }
|
|
|
PageInfo<ReceiptVo> pageInfo = new PageInfo(list);
|
|
|
return ResponseJson.success(pageInfo);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取收款详情
|
|
|
+ *
|
|
|
+ * @param id 款项Id
|
|
|
+ * @param openid 微信openid
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseJson<ReceiptVo> getReceiptDetail(Integer id, String openid) {
|
|
|
+ // 收款用户
|
|
|
+ ReceiptUserVo receiptUser = checkPermissions(1, openid);
|
|
|
+ if (null == receiptUser) {
|
|
|
+ return ResponseJson.error("无权限操作!", null);
|
|
|
+ }
|
|
|
+ ReceiptVo receipt = receiptMapper.getReceiptDetail(id);
|
|
|
+ if (null != receipt) {
|
|
|
+ setReceiptDetail(receipt);
|
|
|
+ String receiptStatus = receipt.getReceiptStatus().toString();
|
|
|
+ List<OrderVo> orderList = new ArrayList<>();
|
|
|
+ if ("1".equals(receiptStatus)) {
|
|
|
+ // 待确认
|
|
|
+ if (StringUtils.isNotBlank(receipt.getOrderFlag())) {
|
|
|
+ // 订单信息
|
|
|
+ OrderVo order = orderCommonMapper.getOrderByOrderId(Integer.parseInt(receipt.getOrderFlag()));
|
|
|
+ if (null != order) {
|
|
|
+ orderList.add(order);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("--------待确认--------");
|
|
|
+ } else {
|
|
|
+ // 已确认
|
|
|
+ orderList = receiptMapper.getReceiptOrders(receipt.getId());
|
|
|
+ log.info("--------已确认--------");
|
|
|
+ }
|
|
|
+ if (!CollectionUtils.isEmpty(orderList)) {
|
|
|
+ // 获取该收款用户下的机构userIds
|
|
|
+ List<Integer> clubUserIds = getReceiptClubUserIds(openid, receiptStatus);
|
|
|
+ for (OrderVo order : orderList) {
|
|
|
+ if (4 == receiptUser.getUserType() || clubUserIds.contains(order.getUserId())) {
|
|
|
+ // 收款详情是否可以查看
|
|
|
+ order.setAuthority(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ receipt.setOrderList(orderList);
|
|
|
+ }
|
|
|
+ return ResponseJson.success(receipt);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置收款详情信息
|
|
|
+ */
|
|
|
+ private void setReceiptDetail(ReceiptVo receipt) {
|
|
|
+ if (1 == receipt.getReceiptStatus()) {
|
|
|
+ String time = receipt.getReceiptDate();
|
|
|
+ long diff = DateUtils.pastHour(DateUtils.parseDate(time));
|
|
|
+ if (diff > 12) {
|
|
|
+ receipt.setTipMsg("无人确认");
|
|
|
+ }
|
|
|
+ } else if (2 == receipt.getReceiptStatus()) {
|
|
|
+ String time = receipt.getConfirmDate();
|
|
|
+ long diff = DateUtils.pastHour(DateUtils.parseDate(time));
|
|
|
+ if (diff > 12) {
|
|
|
+ receipt.setTipMsg("无人审核");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (2 == receipt.getReceiptStatus() && 1 == receipt.getReceiptType()) {
|
|
|
+ String userName = baseMapper.getUserNameByUserId(receipt.getUserId());
|
|
|
+ receipt.setUserName(userName);
|
|
|
+ }
|
|
|
+ ReceiptTypeVo type = receiptMapper.getReceiptTypeById(receipt.getPayType());
|
|
|
+ receipt.setPayTypeText(type.getType());
|
|
|
+ receipt.setReceiptTypeText(ReceiptType.getTypeDesc(receipt.getReceiptType()));
|
|
|
+ receipt.setReceiptStatusText(ReceiptStatus.getTypeDesc(receipt.getReceiptStatus(), receipt.getReceiptType()));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取该收款用户下的机构userIds
|
|
|
*
|
|
@@ -626,7 +708,7 @@ public class ReceiptServiceImpl implements ReceiptService {
|
|
|
/*识别手续费*/
|
|
|
boolean tipFeeFlag = false;
|
|
|
double tipFee = 0d;
|
|
|
- if (tipFeeType.contains(typeId)) {
|
|
|
+ if (TIP_FEE_TYPE.contains(typeId)) {
|
|
|
tipFeeFlag = true;
|
|
|
tipFee = MathUtil.mul(money, MathUtil.div(1, 1000), 2).doubleValue();
|
|
|
// 收款金额 = 短信收款金额+手续费
|
|
@@ -678,7 +760,7 @@ public class ReceiptServiceImpl implements ReceiptService {
|
|
|
private ReceiptVo getReceiptByMd5Msg(String md5Msg) {
|
|
|
List<ReceiptVo> receiptList = receiptMapper.getReceiptBySmsMd5Code(md5Msg);
|
|
|
if (!CollectionUtils.isEmpty(receiptList)) {
|
|
|
- receiptList.get(0).setHaveFee(tipFeeType.contains(receiptList.get(0).getPayType()));
|
|
|
+ receiptList.get(0).setHaveFee(TIP_FEE_TYPE.contains(receiptList.get(0).getPayType()));
|
|
|
return receiptList.get(0);
|
|
|
}
|
|
|
return null;
|