commit
This commit is contained in:
+169
@@ -0,0 +1,169 @@
|
||||
package io.v.nutz.zhgh.memberCost.controller;
|
||||
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import io.v.nutz.zhgh.memberCost.model.MemberPaymentProject;
|
||||
import io.v.nutz.zhgh.memberCost.service.MemberPaymentService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName MemberPaymentChartSummaryController
|
||||
* @Description 图表汇总
|
||||
* @Author zhf
|
||||
* @Date 2025/3/11 下午3:20
|
||||
*/
|
||||
@IocBean
|
||||
@Slf4j
|
||||
@Ok("json:full")
|
||||
@At("/platform/member/payment/chartSummary")
|
||||
public class MemberPaymentChartSummaryController {
|
||||
|
||||
|
||||
@Inject
|
||||
private MemberPaymentService memberPaymentService;
|
||||
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/membercost/chartSummary/index.html")
|
||||
@RequiresPermissions("member.payment.chartSummary")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RequiresPermissions("member.payment.chartSummary")
|
||||
public Object getPayProjectChart(@Param(value = "startYear", required = false) Integer startYear,
|
||||
@Param(value = "endYear", required = false) Integer endYear) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
mpp.projectName,
|
||||
COUNT( mpi.id ) AS num
|
||||
FROM
|
||||
member_payment_project mpp
|
||||
LEFT JOIN member_payment_info mpi ON mpi.paymentProjectId = mpp.id
|
||||
AND mpi.isPayment = 1
|
||||
WHERE
|
||||
YEAR ( mpp.createTime ) BETWEEN @startYear
|
||||
AND @endYear
|
||||
GROUP BY
|
||||
mpp.id
|
||||
""").setParam("startYear", startYear).setParam("endYear", endYear);
|
||||
return Result.success(memberPaymentService.listMap(sql));
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("member.payment.chartSummary")
|
||||
public Object getRefundProjectChart(@Param(value = "startYear", required = false) Integer startYear,
|
||||
@Param(value = "endYear", required = false) Integer endYear) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
mpp.projectName,
|
||||
COUNT( pt.id ) AS num
|
||||
FROM
|
||||
member_payment_project mpp
|
||||
LEFT JOIN member_payment_info mpi ON mpi.paymentProjectId = mpp.id
|
||||
LEFT JOIN payment_transaction pt ON pt.memberPaymentInfoId = mpi.id
|
||||
AND pt.isRefund = 1
|
||||
WHERE
|
||||
YEAR ( mpp.createTime ) BETWEEN @startYear
|
||||
AND @endYear
|
||||
GROUP BY
|
||||
mpp.id
|
||||
""").setParam("startYear", startYear).setParam("endYear", endYear);
|
||||
return Result.success(memberPaymentService.listMap(sql));
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("member.payment.chartSummary")
|
||||
public Object getPayMoneyChart(@Param(value = "startYear", required = false) Integer startYear,
|
||||
@Param(value = "endYear", required = false) Integer endYear) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
mpp.projectName,
|
||||
SUM( pt.tradingAmount * 0.01 ) AS money
|
||||
FROM
|
||||
member_payment_project mpp
|
||||
LEFT JOIN member_payment_info mpi ON mpi.paymentProjectId = mpp.id
|
||||
AND mpi.isPayment = 1
|
||||
LEFT JOIN payment_transaction pt ON pt.memberPaymentInfoId = mpi.id
|
||||
AND pt.isRefund = 0
|
||||
AND pt.tradingState = 'PAY_SUCCESS'
|
||||
WHERE
|
||||
YEAR ( mpp.createTime ) BETWEEN @startYear
|
||||
AND @endYear
|
||||
GROUP BY
|
||||
mpp.id
|
||||
""").setParam("startYear", startYear).setParam("endYear", endYear);
|
||||
return Result.success(memberPaymentService.listMap(sql));
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RequiresPermissions("member.payment.chartSummary")
|
||||
public Object getNumData(@Param(value = "startYear", required = false) Integer startYear,
|
||||
@Param(value = "endYear", required = false) Integer endYear) {
|
||||
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
pt.tradingAmount * 0.01 AS money,
|
||||
pt.isRefund
|
||||
FROM
|
||||
member_payment_project mpp
|
||||
LEFT JOIN member_payment_info mpi ON mpi.paymentProjectId = mpp.id
|
||||
AND mpi.isPayment = 1
|
||||
LEFT JOIN payment_transaction pt ON pt.memberPaymentInfoId = mpi.id
|
||||
AND pt.tradingState = 'PAY_SUCCESS'
|
||||
WHERE
|
||||
YEAR ( mpp.createTime ) BETWEEN @startYear
|
||||
AND @endYear
|
||||
""").setParam("startYear", startYear).setParam("endYear", endYear);
|
||||
List<NutMap> map = memberPaymentService.listMap(sql);
|
||||
|
||||
double payMoney = map.stream().filter(v -> !v.getBoolean("isRefund")).mapToDouble(v -> v.getDouble("money")).sum();
|
||||
double refundMoney = map.stream().filter(v -> v.getBoolean("isRefund")).mapToDouble(v -> v.getDouble("money")).sum();
|
||||
int refundSize = map.stream().filter(v -> v.getBoolean("isRefund")).collect(Collectors.toList()).size();
|
||||
int paySize = map.stream().filter(v -> !v.getBoolean("isRefund")).collect(Collectors.toList()).size();
|
||||
NutMap data = new NutMap();
|
||||
data.put("payMoney", payMoney);
|
||||
data.put("refundMoney", refundMoney);
|
||||
data.put("paySize", paySize);
|
||||
data.put("refundSize", refundSize);
|
||||
return Result.success(data);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RequiresPermissions("member.payment.chartSummary")
|
||||
public Object allUnionMoney(String paymentProjectId) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
un.unionname,
|
||||
COALESCE ( SUM( pt.tradingAmount * 0.01 ), 0 ) AS money
|
||||
FROM
|
||||
sys_union un
|
||||
LEFT JOIN payment_transaction pt ON pt.unionId = un.id
|
||||
AND pt.tradingState = 'PAY_SUCCESS'
|
||||
AND pt.isRefund = 0
|
||||
LEFT JOIN member_payment_info mpi ON mpi.id = pt.memberPaymentInfoId
|
||||
AND mpi.paymentProjectId=@paymentProjectId
|
||||
GROUP BY
|
||||
un.id
|
||||
ORDER BY
|
||||
un.unioncode
|
||||
""").setParam("paymentProjectId", paymentProjectId);
|
||||
return Result.success(memberPaymentService.listMap(sql));
|
||||
}
|
||||
}
|
||||
@@ -53,13 +53,11 @@ public class MemberPaymentMineController {
|
||||
public Object pageData(PageForm pageForm, Integer year, Integer isPay) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
|
||||
mpp.`year`,
|
||||
mpp.projectName,
|
||||
mpp.startTime,
|
||||
mpp.endTime,
|
||||
mpi.id,
|
||||
mpi.payId,
|
||||
mpi.isPayment,
|
||||
mpi.payPersonnel,
|
||||
mpi.personType,
|
||||
@@ -88,10 +86,11 @@ public class MemberPaymentMineController {
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@RequiresPermissions("member.payment.mine")
|
||||
public Object pcOrderPay(Integer paymentMoney) {
|
||||
public Object pcOrderPay(Integer paymentMoney, String paymentInfoId) {
|
||||
WxPayNeedParamVo paramVo = new WxPayNeedParamVo();
|
||||
paramVo.setDescription(ShiroUtil.getPlatformUsername() + "会费缴纳支付");
|
||||
paramVo.setAttach("");
|
||||
paramVo.setMemberPaymentInfoId(paymentInfoId);
|
||||
paramVo.setAmount(new Amount().setTotal(paymentMoney));
|
||||
return wxPayCommonService.nativePay(paramVo);
|
||||
}
|
||||
|
||||
+114
@@ -0,0 +1,114 @@
|
||||
package io.v.nutz.zhgh.memberCost.controller;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import io.v.nutz.base.annontation.RepeatSubmit;
|
||||
import io.v.nutz.base.annontation.Valid;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.payment.enums.TradingStateEnum;
|
||||
import io.v.nutz.base.payment.enums.WxPayResultCode;
|
||||
import io.v.nutz.base.payment.model.PaymentTransaction;
|
||||
import io.v.nutz.base.payment.wxpay.service.WxPayCommonService;
|
||||
import io.v.nutz.base.query.PageForm;
|
||||
import io.v.nutz.base.result.Result;
|
||||
import io.v.nutz.zhgh.memberCost.service.MemberPaymentService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
import java.io.Reader;
|
||||
|
||||
/**
|
||||
* @ClassName MemberPaymentRefundController
|
||||
* @Description 退款
|
||||
* @Author zhf
|
||||
* @Date 2025/3/11 上午8:51
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@At("/platform/member/payment/refund")
|
||||
public class MemberPaymentRefundController {
|
||||
|
||||
@Inject
|
||||
private WxPayCommonService wxPayCommonService;
|
||||
@Inject
|
||||
private MemberPaymentService memberPaymentService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/membercost/refund/index.html")
|
||||
@RequiresPermissions("member.payment.refund")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("member.payment.refund")
|
||||
public Object pageData(PageForm pageForm, String paymentProjectId, String transactionId, Integer isRefund) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
mpp.`year`,
|
||||
mpp.projectName,
|
||||
mpp.startTime,
|
||||
mpp.endTime,
|
||||
mpi.isPayment,
|
||||
mpi.payPersonnel,
|
||||
mpi.personType,
|
||||
mpi.paymentMonth,
|
||||
mpi.paymentTime,
|
||||
pt.id,
|
||||
pt.outTradeNo,
|
||||
pt.transactionId,
|
||||
pt.userName,
|
||||
pt.loginName,
|
||||
pt.unitName,
|
||||
pt.unionName,
|
||||
pt.tradingAmount,
|
||||
pt.isRefund,
|
||||
prr.createdAt AS refundTime
|
||||
FROM
|
||||
payment_transaction pt
|
||||
LEFT JOIN `member_payment_info` mpi ON pt.memberPaymentInfoId = mpi.id
|
||||
LEFT JOIN `payment_refund_record` prr ON pt.memberPaymentInfoId = mpi.id
|
||||
LEFT JOIN member_payment_project mpp ON mpi.paymentProjectId = mpp.id
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("mpi.paymentProjectId", "=", paymentProjectId);
|
||||
cnd.andEX("pt.tradingState", "=", TradingStateEnum.PAY_SUCCESS);
|
||||
cnd.and(Cnd.likeEX("pt.transactionId", transactionId));
|
||||
if (isRefund != 3) {
|
||||
cnd.andEX("pt.isRefund", "=", isRefund);
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||
group.orLike("pt.userName", pageForm.getSearchKeyword());
|
||||
group.orLike("pt.loginName", pageForm.getSearchKeyword());
|
||||
cnd.and(group);
|
||||
}
|
||||
cnd.groupBy("pt.id");
|
||||
sql.setCondition(cnd);
|
||||
return memberPaymentService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@RequiresPermissions("member.payment.refund")
|
||||
public Object doRefund(@Valid String id) {
|
||||
PaymentTransaction transaction = memberPaymentService.dao().fetch(PaymentTransaction.class, id);
|
||||
Result refund = wxPayCommonService.refund(transaction.getTransactionId(), transaction.getOutTradeNo());
|
||||
return refund;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user