From c0abf1b8be71aef5089151ca8601a3b69b21a09d Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 01 四月 2025 18:10:10 +0800
Subject: [PATCH] 惠民卡代码
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TPayHuiminController.java | 217 ++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 170 insertions(+), 47 deletions(-)
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TPayHuiminController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TPayHuiminController.java
index 28f8e6b..0d2f20b 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TPayHuiminController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TPayHuiminController.java
@@ -1,10 +1,44 @@
package com.dsh.guns.modular.system.controller.code;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.course.feignClient.account.AppUserClient;
+import com.dsh.course.feignClient.account.model.TAppUser;
import com.dsh.course.feignClient.activity.PayHuiminClient;
+import com.dsh.course.feignClient.activity.model.HuiminPayQuery;
+import com.dsh.course.feignClient.activity.model.TPayHuimin;
import com.dsh.guns.core.base.controller.BaseController;
+import com.dsh.guns.core.common.constant.factory.PageFactory;
+import com.dsh.guns.modular.system.model.AppUserByNameAndPhoneDTO;
+import com.dsh.guns.modular.system.model.SalesDetailVO;
+import com.dsh.guns.modular.system.model.TOperator;
+import com.dsh.guns.modular.system.model.TStore;
+import com.dsh.guns.modular.system.service.IStoreService;
+import com.dsh.guns.modular.system.service.TOperatorService;
+import com.dsh.guns.modular.system.util.DateUtil;
+import com.dsh.guns.modular.system.util.ExcelUtil;
+import com.dsh.guns.modular.system.util.ResultUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* 惠民卡控制器
@@ -20,12 +54,22 @@
@Autowired
private PayHuiminClient payHuiminClient;
+ @Autowired
+ private TOperatorService operatorService;
+ @Autowired
+ private IStoreService storeService;
+ @Autowired
+ private AppUserClient appUserClient;
+
/**
* 跳转到惠民卡首页
*/
@RequestMapping("")
- public String index() {
+ public String index(Model model) {
+ //查询运营商列表
+ model.addAttribute("operatorList", operatorService.list(new QueryWrapper<TOperator>().eq("state", 1)));
+ model.addAttribute("storeList", storeService.list(new QueryWrapper<TStore>().eq("state", 1)));
return PREFIX + "tPayHuimin.html";
}
@@ -37,62 +81,141 @@
return PREFIX + "tPayHuimin_add.html";
}
- /* *//**
- * 跳转到修改惠民卡
- *//*
- @RequestMapping("/tPayHuimin_update/{tPayHuiminId}")
- public String tPayHuiminUpdate(@PathVariable Integer tPayHuiminId, Model model) {
- TPayHuimin tPayHuimin = payHuiminClient.selectById(tPayHuiminId);
- model.addAttribute("item",tPayHuimin);
- LogObjectHolder.me().set(tPayHuimin);
- return PREFIX + "tPayHuimin_edit.html";
- }
-
- *//**
+ /**
* 获取惠民卡列表
- *//*
+ */
@RequestMapping(value = "/list")
@ResponseBody
- public Object list(String condition) {
- return payHuiminClient.selectList(null);
+ public Object list(HuiminPayQuery query) {
+ Page<TPayHuimin> tPayHuiminPage = new PageFactory<TPayHuimin>().defaultPage();
+ query.setCurrent(tPayHuiminPage.getCurrent());
+ query.setSize(tPayHuiminPage.getSize());
+ List<Integer> appUserIds = Collections.emptyList();
+ if (StringUtils.isNotBlank(query.getUserName()) || StringUtils.isNotBlank(query.getPhone())){
+ AppUserByNameAndPhoneDTO appUserByNameAndPhoneDTO = new AppUserByNameAndPhoneDTO();
+ appUserByNameAndPhoneDTO.setUserName(query.getUserName());
+ appUserByNameAndPhoneDTO.setPhone(query.getPhone());
+ List<TAppUser> tAppUsers = appUserClient.queryAPPUserByNameAndPhone(appUserByNameAndPhoneDTO);
+ appUserIds = tAppUsers.stream()
+ .map(TAppUser::getId)
+ .collect(Collectors.toList());
+ if (CollUtil.isEmpty(appUserIds)){
+ return new Page<>();
+ }
+ }
+ query.setAppUserIds(appUserIds);
+ Page<SalesDetailVO> salesDetailVOPage = payHuiminClient.selectPage(query);
+ List<SalesDetailVO> records = salesDetailVOPage.getRecords();
+ if (CollUtil.isNotEmpty(records)) {
+ List<Integer> operatorIdList = records.stream()
+ .map(SalesDetailVO::getOperatorId)
+ .collect(Collectors.toList());
+ List<Integer> storeIdList = records.stream()
+ .map(SalesDetailVO::getStoreId)
+ .collect(Collectors.toList());
+ Map<Integer, String> operatorMap = operatorService.listByIds(operatorIdList).stream()
+ .collect(Collectors.toMap(TOperator::getId, TOperator::getName));
+ Map<Integer, String> storeMap = storeService.listByIds(storeIdList).stream()
+ .collect(Collectors.toMap(TStore::getId, TStore::getName));
+ records.forEach(item->{
+ item.setOperatorName(operatorMap.getOrDefault(item.getOperatorId(),""));
+ item.setStoreName(storeMap.getOrDefault(item.getStoreId(),""));
+ });
+ }
+ return super.packForBT(salesDetailVOPage);
}
- *//**
- * 新增惠民卡
- *//*
- @RequestMapping(value = "/add")
+ /**
+ * 获取统计数据
+ * @param query
+ * @return
+ */
+ @RequestMapping("/getStaticsData")
@ResponseBody
- public Object add(TPayHuimin tPayHuimin) {
- payHuiminClient.insert(tPayHuimin);
- return SUCCESS_TIP;
+ public ResultUtil<Map<String, BigDecimal>> getStaticsData(HuiminPayQuery query) {
+ Map<String, BigDecimal> map = new HashMap<>();
+ map.put("totalAmount",BigDecimal.ZERO);
+ map.put("refundAmount",BigDecimal.ZERO);
+ List<Integer> appUserIds = Collections.emptyList();
+ if (StringUtils.isNotBlank(query.getUserName()) || StringUtils.isNotBlank(query.getPhone())){
+ AppUserByNameAndPhoneDTO appUserByNameAndPhoneDTO = new AppUserByNameAndPhoneDTO();
+ appUserByNameAndPhoneDTO.setUserName(query.getUserName());
+ appUserByNameAndPhoneDTO.setPhone(query.getPhone());
+ List<TAppUser> tAppUsers = appUserClient.queryAPPUserByNameAndPhone(appUserByNameAndPhoneDTO);
+ appUserIds = tAppUsers.stream()
+ .map(TAppUser::getId)
+ .collect(Collectors.toList());
+ if (CollUtil.isEmpty(appUserIds)){
+ return ResultUtil.success(map);
+ }
+ }
+ query.setAppUserIds(appUserIds);
+ map = payHuiminClient.getStaticsData(query);
+ return ResultUtil.success(map);
}
- *//**
- * 删除惠民卡
- *//*
- @RequestMapping(value = "/delete")
+ /**
+ * 退款
+ * @param id
+ * @return
+ */
+ @GetMapping("/refund/{id}")
@ResponseBody
- public Object delete(@RequestParam Integer tPayHuiminId) {
- payHuiminClient.deleteById(tPayHuiminId);
- return SUCCESS_TIP;
+ public ResultUtil<?> refund(@PathVariable("id") Integer id) {
+ return payHuiminClient.refund(id);
}
- *//**
- * 修改惠民卡
- *//*
- @RequestMapping(value = "/update")
- @ResponseBody
- public Object update(TPayHuimin tPayHuimin) {
- payHuiminClient.updateById(tPayHuimin);
- return SUCCESS_TIP;
+ /**
+ * 导出售卖明细
+ * @param query
+ */
+ @GetMapping("/export")
+ public void exportData(HuiminPayQuery query, HttpServletResponse response) {
+ List<SalesDetailVO> records = payHuiminClient.exportData(query);
+ records = records.stream().filter(Objects::nonNull).collect(Collectors.toList());
+ if (CollUtil.isNotEmpty(records)) {
+ List<Integer> operatorIdList = records.stream()
+ .map(SalesDetailVO::getOperatorId)
+ .collect(Collectors.toList());
+ List<Integer> storeIdList = records.stream()
+ .map(SalesDetailVO::getStoreId)
+ .collect(Collectors.toList());
+ Map<Integer, String> operatorMap = operatorService.listByIds(operatorIdList).stream()
+ .collect(Collectors.toMap(TOperator::getId, TOperator::getName));
+ Map<Integer, String> storeMap = storeService.listByIds(storeIdList).stream()
+ .collect(Collectors.toMap(TStore::getId, TStore::getName));
+ records.forEach(item -> {
+ item.setOperatorName(operatorMap.getOrDefault(item.getOperatorId(), ""));
+ item.setStoreName(storeMap.getOrDefault(item.getStoreId(), ""));
+ });
+ }
+ String[] titleArr = {"惠民卡名称", "惠民卡类型", "售卖金额", "所属运营商", "可用门店", "购买用户", "联系电话", "购买时间", "绑定人员", "已用次数", "有效期", "状态"};
+ String[][] values = new String[records.size()][];
+ for (int i = 0; i < records.size(); i++) {
+ SalesDetailVO salesDetailVO = records.get(i);
+ values[i] = new String[titleArr.length];
+ values[i][0] = salesDetailVO.getHuiMinName();
+ values[i][1] = salesDetailVO.getHuiMinType() == 1 ? "年度卡" : "年内卡";
+ values[i][2] = salesDetailVO.getSalesMoney().toString();
+ values[i][3] = salesDetailVO.getOperatorName();
+ values[i][4] = salesDetailVO.getStoreName();
+ values[i][5] = salesDetailVO.getUserName();
+ values[i][6] = salesDetailVO.getPhone();
+ values[i][7] = DateUtil.format(salesDetailVO.getPaymentTime(), "yyyy-MM-dd HH:mm:ss");
+ values[i][8] = salesDetailVO.getStudentName();
+ values[i][9] = salesDetailVO.getUseTimes().toString();
+ values[i][10] = DateUtil.format(salesDetailVO.getEndTime(), "yyyy-MM-dd HH:mm:ss");
+ values[i][11] = salesDetailVO.getStatus() == 2 ? "使用中" : "已退款";
+ }
+ try {
+ HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("售卖明细", titleArr, values, null);
+ ExcelUtil.setResponseHeader(response, "售卖明细.xls");
+ OutputStream os = response.getOutputStream();
+ wb.write(os);
+ os.flush();
+ os.close();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
}
-
- *//**
- * 惠民卡详情
- *//*
- @RequestMapping(value = "/detail/{tPayHuiminId}")
- @ResponseBody
- public Object detail(@PathVariable("tPayHuiminId") Integer tPayHuiminId) {
- return payHuiminClient.selectById(tPayHuiminId);
- }*/
}
--
Gitblit v1.7.1