2025008071805

This commit is contained in:
张潘 2025-08-16 16:06:36 +08:00
parent 9f3b9a55eb
commit 26b18184e3
43 changed files with 2178 additions and 402 deletions

View File

@ -1248,6 +1248,7 @@ public class ApplePayController extends BaseController {
if (newpayBefor!=null){
// 创建订单
newpayBefor.setStatus(2L);
newpayBefor.setPaytime(new Date());
usersPayBeforService.updateUsersPayBefor(newpayBefor);
}
}
@ -1277,6 +1278,7 @@ public class ApplePayController extends BaseController {
if (newpayBefor!=null){
// 创建订单
newpayBefor.setStatus(2L);
newpayBefor.setPaytime(new Date());
usersPayBeforService.updateUsersPayBefor(newpayBefor);
}
}
@ -1318,6 +1320,7 @@ public class ApplePayController extends BaseController {
if (newpayBefor!=null){
// 创建订单
newpayBefor.setStatus(2L);
newpayBefor.setPaytime(new Date());
usersPayBeforService.updateUsersPayBefor(newpayBefor);
}
}

View File

@ -98,8 +98,6 @@ public class GoodsOrderController extends BaseController {
goodsOrderdata.setUname(users.getName());
goodsOrderdata.setUphone(users.getPhone());
}
}
return getDataTable(list);
}
@ -196,7 +194,14 @@ public class GoodsOrderController extends BaseController {
@Log(title = "商品订单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, GoodsOrder goodsOrder) {
List<GoodsOrder> list = goodsOrderService.selectGoodsOrderList(goodsOrder);
// 使用导出专用的关联查询一次性获取所有数据包括关联信息
List<GoodsOrder> list = goodsOrderService.selectGoodsOrderListForExport(goodsOrder);
// 设置订单ID保持原有逻辑
for (GoodsOrder goodsOrderdata : list) {
goodsOrderdata.setOrderId(goodsOrderdata.getMainOrderId());
}
ExcelUtil<GoodsOrder> util = new ExcelUtil<GoodsOrder>(GoodsOrder.class);
util.exportExcel(response, list, "商品订单数据");
}

View File

@ -97,7 +97,8 @@ public class OrderController extends BaseController {
@Log(title = "服务订单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Order order) {
List<Order> list = orderService.selectOrderList(order);
// 使用导出专用的关联查询一次性获取所有数据包括关联信息
List<Order> list = orderService.selectOrderListForExport(order);
ExcelUtil<Order> util = new ExcelUtil<Order>(Order.class);
util.exportExcel(response, list, "服务订单数据");
}

View File

@ -77,6 +77,17 @@ public class PayMoneyLogController extends BaseController
{
return success(usersService.selectUsersList(new Users()));
}
/**
* 获取支付记录统计数据
*/
@PreAuthorize("@ss.hasPermi('system:PayMoneyLog:query')")
@GetMapping(value = "/getStatistics")
public AjaxResult getStatistics()
{
return success(payMoneyLogService.getPayMoneyLogStatistics());
}
/**
* 导出支付记录列表
*/
@ -85,7 +96,8 @@ public class PayMoneyLogController extends BaseController
@PostMapping("/export")
public void export(HttpServletResponse response, PayMoneyLog payMoneyLog)
{
List<PayMoneyLog> list = payMoneyLogService.selectPayMoneyLogList(payMoneyLog);
// 使用导出专用的关联查询一次性获取所有数据包括用户信息
List<PayMoneyLog> list = payMoneyLogService.selectPayMoneyLogListForExport(payMoneyLog);
ExcelUtil<PayMoneyLog> util = new ExcelUtil<PayMoneyLog>(PayMoneyLog.class);
util.exportExcel(response, list, "支付记录数据");
}

View File

@ -336,7 +336,9 @@ public class PayNotifyController extends BaseController {
UsersPayBefor newpayBefor = usersPayBeforService.selectUsersPayBeforByOrderId(usersPayBefor.getOrderid());
if (newpayBefor!=null){
// 创建订单
newpayBefor.setStatus(2L);
usersPayBefor.setStatus(2L);
usersPayBefor.setPaytime(new Date());
usersPayBefor.setPaycode(transactionId);
usersPayBeforService.updateUsersPayBefor(newpayBefor);
}
}
@ -500,7 +502,9 @@ public class PayNotifyController extends BaseController {
UsersPayBefor newpayBefor = usersPayBeforService.selectUsersPayBeforByOrderId(usersPayBefor.getOrderid());
if (newpayBefor!=null){
// 创建订单
newpayBefor.setStatus(2L);
usersPayBefor.setStatus(2L);
usersPayBefor.setPaytime(new Date());
usersPayBefor.setPaycode(transactionId);
usersPayBeforService.updateUsersPayBefor(newpayBefor);
}
}

View File

@ -66,6 +66,197 @@ public class ServiceGoodsController extends BaseController {
@PostMapping("/export")
public void export(HttpServletResponse response, ServiceGoods serviceGoods) {
List<ServiceGoods> list = serviceGoodsService.selectServiceGoodsList(serviceGoods);
// 处理数据设置中文名称
for (ServiceGoods item : list) {
// 设置状态名称
if ("1".equals(item.getStatus())) {
item.setStatusName("启用");
} else {
item.setStatusName("停用");
}
// 设置下单类型名称
if (item.getServicetype() != null) {
switch (item.getServicetype()) {
case 1:
item.setServiceTypeName("预约下单");
break;
case 2:
item.setServiceTypeName("报价下单");
break;
default:
item.setServiceTypeName("未知类型");
break;
}
}
// 设置规格类型名称
if (item.getSkuType() != null) {
switch (item.getSkuType()) {
case 1:
item.setSkuTypeName("单规格");
break;
case 2:
item.setSkuTypeName("多规格");
break;
default:
item.setSkuTypeName("未知类型");
break;
}
}
// 设置类型名称
if (item.getType() != null) {
switch (item.getType()) {
case 1:
item.setTypeName("服务");
break;
case 2:
item.setTypeName("商品");
break;
default:
item.setTypeName("未知类型");
break;
}
}
// 设置分类名称
if (item.getCateId() != null) {
ServiceCate serviceCate = serviceCateService.selectServiceCateById(item.getCateId());
if (serviceCate != null) {
item.setCateName(serviceCate.getTitle());
}
}
// 设置是否跳转服务名称
if (item.getIsforservice() != null) {
switch (item.getIsforservice()) {
case 1:
item.setIsForServiceName("");
break;
case 2:
item.setIsForServiceName("");
break;
default:
item.setIsForServiceName("未知");
break;
}
}
// 设置是否可拼团名称
if (item.getIsgroup() != null) {
switch (item.getIsgroup()) {
case 1:
item.setIsGroupName("");
break;
case 2:
item.setIsGroupName("");
break;
default:
item.setIsGroupName("未知");
break;
}
}
// 设置是否可设置次卡名称
if (item.getIsonce() != null) {
switch (item.getIsonce()) {
case 1:
item.setIsOnceName("");
break;
case 2:
item.setIsOnceName("");
break;
default:
item.setIsOnceName("未知");
break;
}
}
// 设置分佣模式名称
if (item.getCommissiontype() != null) {
switch (item.getCommissiontype()) {
case 1:
item.setCommissionTypeName("系统分佣");
break;
case 2:
item.setCommissionTypeName("独立分佣");
break;
case 3:
item.setCommissionTypeName("不分佣");
break;
default:
item.setCommissionTypeName("未知模式");
break;
}
}
// 设置派单模式名称
if (item.getDispatchtype() != null) {
switch (item.getDispatchtype()) {
case 1:
item.setDispatchTypeName("系统派单");
break;
case 2:
item.setDispatchTypeName("后台手动派单");
break;
case 3:
item.setDispatchTypeName("指定工人");
break;
default:
item.setDispatchTypeName("未知模式");
break;
}
}
// 设置是否为一口价名称
if (item.getIsfixed() != null) {
switch (item.getIsfixed()) {
case 1:
item.setIsFixedName("");
break;
case 2:
item.setIsFixedName("");
break;
default:
item.setIsFixedName("未知");
break;
}
}
// 处理问答数量
if (item.getQuestions() != null && !item.getQuestions().isEmpty()) {
try {
// 尝试解析JSON格式的问答数据计算数量
if (item.getQuestions().startsWith("[") && item.getQuestions().endsWith("]")) {
// 简单的JSON数组计数
String[] questions = item.getQuestions().split("\\{");
item.setQuestionCount(String.valueOf(questions.length - 1));
} else {
item.setQuestionCount("1");
}
} catch (Exception e) {
item.setQuestionCount("0");
}
} else {
item.setQuestionCount("0");
}
// 处理技能名称转换
if (item.getSkillIds() != null && !item.getSkillIds().trim().isEmpty()) {
try {
// 这里可以根据需要查询技能表获取技能名称
// 暂时设置为技能ID的显示
item.setSkillNames(item.getSkillIds());
} catch (Exception e) {
item.setSkillNames("技能解析失败");
}
} else {
item.setSkillNames("");
}
}
ExcelUtil<ServiceGoods> util = new ExcelUtil<ServiceGoods>(ServiceGoods.class);
util.exportExcel(response, list, "服务内容数据");
}

View File

@ -128,10 +128,115 @@ public class UserSecondaryCardController extends BaseController
public void export(HttpServletResponse response, UserSecondaryCard userSecondaryCard)
{
List<UserSecondaryCard> list = userSecondaryCardService.selectUserSecondaryCardList(userSecondaryCard);
// 处理导出数据确保关联信息正确
for(UserSecondaryCard item : list) {
// 处理服务名称
if (item.getGoodsids() != null && !item.getGoodsids().isEmpty()) {
try {
List<String> idsList = com.alibaba.fastjson2.JSONArray.parseArray(item.getGoodsids(), String.class);
item.setGoodsname(serviceGoodsService.selectTitlesJSONArrayByIds(idsList));
} catch (Exception e) {
item.setGoodsname("数据解析错误");
}
}
// 处理分类名称
if (item.getType() != null) {
ServiceCate serviceCate = serviceCateService.selectServiceCateById(item.getType());
if (serviceCate != null) {
item.setTypename(serviceCate.getTitle());
}
}
// 设置可用/总数显示
if (item.getNum() != null && item.getAllnum() != null) {
item.setServiceCountDisplay(item.getNum() + "/" + item.getAllnum());
} else {
item.setServiceCountDisplay("0/0");
}
// 处理状态显示 - 将数字状态转换为中文状态名称
if (item.getStatus() != null) {
switch (item.getStatus().intValue()) {
case 1:
item.setStatusName("上线");
break;
case 2:
item.setStatusName("下线");
break;
case 3:
item.setStatusName("下架");
break;
default:
item.setStatusName("未知状态");
break;
}
} else {
item.setStatusName("未知状态");
}
}
ExcelUtil<UserSecondaryCard> util = new ExcelUtil<UserSecondaryCard>(UserSecondaryCard.class);
util.exportExcel(response, list, "次卡管理数据");
}
/**
* 导出次卡购买明细
*/
@PreAuthorize("@ss.hasPermi('system:UserSecondaryCard:export')")
@Log(title = "次卡购买明细", businessType = BusinessType.EXPORT)
@PostMapping("/exportPurchaseDetails")
public void exportPurchaseDetails(HttpServletResponse response, Long cardId)
{
if (cardId == null) {
throw new RuntimeException("次卡ID不能为空");
}
List<UserUseSecondaryCard> list = userUseSecondaryCardService.selectPurchaseDetailsByCardId(cardId.toString());
// 处理数据设置状态名称和用户名称
for (UserUseSecondaryCard item : list) {
// 设置状态名称
if (item.getStatus() != null) {
switch (item.getStatus().intValue()) {
case 1:
item.setStatusName("可用");
break;
case 2:
item.setStatusName("已用完");
break;
case 3:
item.setStatusName("已退款");
break;
case 4:
item.setStatusName("未支付");
break;
default:
item.setStatusName("未知状态");
break;
}
} else {
item.setStatusName("未知状态");
}
// 设置用户名称
if (item.getUid() != null) {
Users users = usersService.selectUsersById(item.getUid());
if (users != null) {
item.setUserName(users.getName());
} else {
item.setUserName("未知用户");
}
} else {
item.setUserName("未知用户");
}
}
ExcelUtil<UserUseSecondaryCard> util = new ExcelUtil<UserUseSecondaryCard>(UserUseSecondaryCard.class);
util.exportExcel(response, list, "次卡购买明细");
}
/**
* 获取次卡管理详细信息
*/

View File

@ -6,6 +6,8 @@ import javax.servlet.http.HttpServletResponse;
import com.ruoyi.system.domain.QuoteType;
import com.ruoyi.system.domain.UserBenefitPoints;
import com.ruoyi.system.service.IUserBenefitPointsService;
import com.ruoyi.system.service.IDiyCityService;
import com.ruoyi.system.service.ISiteSkillService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -19,9 +21,11 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.domain.UserMemnerConsumptionLog;
import com.ruoyi.system.service.IUserMemnerConsumptionLogService;
import com.ruoyi.system.domain.DiyCity;
import com.ruoyi.system.domain.SiteSkill;
/**
* 请填写功能名称Controller
* 用户管理Controller
*
* @author ruoyi
* @date 2025-05-14
@ -35,11 +39,18 @@ public class UsersController extends BaseController
@Autowired
private IUserBenefitPointsService userBenefitPointsService;
@Autowired
private IUserMemnerConsumptionLogService userMemnerConsumptionLogService;
@Autowired
private IDiyCityService diyCityService;
@Autowired
private ISiteSkillService siteSkillService;
/**
* 查询请填写功能名称列表
* 查询用户列表
*/
@PreAuthorize("@ss.hasPermi('system:users:list')")
@GetMapping("/list")
@ -47,17 +58,14 @@ public class UsersController extends BaseController
{
startPage();
List<Users> list = usersService.selectUsersList(users);
for(Users u:list){
for(Users u : list){
u.setAvatar(com.ruoyi.system.ControllerUtil.AppletControllerUtil.buildImageUrl(u.getAvatar()));
}
return getDataTable(list);
}
/**
* 查询请填写功能名称列表
* 查询师傅列表
*/
@PreAuthorize("@ss.hasPermi('system:users:list')")
@GetMapping("/workerlist")
@ -67,13 +75,10 @@ public class UsersController extends BaseController
users.setType("2");
List<Users> list = usersService.selectUsersList(users);
return success(list);
}
/**
* 查询请填写功能名称列表
* 查询可接单师傅列表
*/
@PreAuthorize("@ss.hasPermi('system:users:list')")
@GetMapping("/cando/workerlist")
@ -83,26 +88,187 @@ public class UsersController extends BaseController
users.setType("2");
List<Users> list = usersService.selectUsersList(users);
return getDataTable(list);
}
/**
* 导出请填写功能名称列表
* 导出用户列表
*/
@PreAuthorize("@ss.hasPermi('system:users:export')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
@Log(title = "用户数据导出", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Users users)
{
List<Users> list = usersService.selectUsersList(users);
// 处理数据设置中文名称
for (Users item : list) {
// 设置用户类型名称
if ("1".equals(item.getType())) {
item.setTypeName("普通用户");
} else if ("2".equals(item.getType())) {
item.setTypeName("师傅");
} else {
item.setTypeName("未知类型");
}
// 设置状态名称
if (item.getStatus() != null) {
if (item.getStatus() == 1) {
item.setStatusName("启用");
} else {
item.setStatusName("停用");
}
} else {
item.setStatusName("未知状态");
}
// 设置是否为师傅名称
if (item.getIsWork() != null) {
if (item.getIsWork() == 1) {
item.setIsWorkName("");
} else {
item.setIsWorkName("");
}
} else {
item.setIsWorkName("未知");
}
// 设置等级名称
if (item.getLevel() != null) {
item.setLevelName("等级" + item.getLevel());
} else {
item.setLevelName("无等级");
}
// 格式化签到时间
if (item.getWorkerTime() != null) {
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
item.setWorkerTimeFormatted(sdf.format(item.getWorkerTime()));
} else {
item.setWorkerTimeFormatted("未签到");
}
// 格式化暂停到期时间
if (item.getProhibitTime() != null) {
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm");
item.setProhibitTimeFormatted(sdf.format(item.getProhibitTime()));
} else {
item.setProhibitTimeFormatted("");
}
// 设置使用状态名称
if (item.getLoginStatus() != null) {
if (item.getLoginStatus() == 1) {
item.setLoginStatusName("已退出");
} else if (item.getLoginStatus() == 2) {
item.setLoginStatusName("未退出");
} else {
item.setLoginStatusName("未知状态");
}
} else {
item.setLoginStatusName("未知状态");
}
// 设置接单状态名称
if (item.getIsStop() != null) {
if (item.getIsStop() == 0) {
item.setIsStopName("正常");
} else if (item.getIsStop() == 1) {
// 检查是否过期
if (item.getProhibitTime() != null && item.getProhibitTime().before(new java.util.Date())) {
item.setIsStopName("已过期");
} else {
item.setIsStopName("已暂停");
}
} else {
item.setIsStopName("未知状态");
}
} else {
item.setIsStopName("未知状态");
}
// 处理头像URL
if (item.getAvatar() != null && !item.getAvatar().isEmpty()) {
item.setAvatar(com.ruoyi.system.ControllerUtil.AppletControllerUtil.buildImageUrl(item.getAvatar()));
}
// 设置服务区域名称 - 关联diy_city表查询
if (item.getServiceCityIds() != null && !item.getServiceCityIds().isEmpty()) {
try {
// 处理服务区域ID可能是JSON数组或逗号分隔的字符串
String serviceCityIds = item.getServiceCityIds();
if (serviceCityIds.startsWith("[") && serviceCityIds.endsWith("]")) {
// JSON数组格式
serviceCityIds = serviceCityIds.substring(1, serviceCityIds.length() - 1);
}
String[] cityIds = serviceCityIds.split(",");
StringBuilder cityNames = new StringBuilder();
for (String cityId : cityIds) {
try {
Integer id = Integer.parseInt(cityId.trim());
if (id > 0) {
DiyCity city = diyCityService.selectDiyCityById(id);
if (city != null && city.getTitle() != null) {
if (cityNames.length() > 0) {
cityNames.append("");
}
cityNames.append(city.getTitle());
}
}
} catch (NumberFormatException e) {
// 忽略无效的ID
}
}
item.setServiceCityNames(cityNames.length() > 0 ? cityNames.toString() : "未知区域");
} catch (Exception e) {
item.setServiceCityNames("未知区域");
}
} else {
item.setServiceCityNames("");
}
// 设置技能名称 - 关联site_skill表查询
if (item.getSkillIds() != null && !item.getSkillIds().isEmpty()) {
try {
// 处理技能ID可能是JSON数组或逗号分隔的字符串
String skillIds = item.getSkillIds();
if (skillIds.startsWith("[") && skillIds.endsWith("]")) {
// JSON数组格式
skillIds = skillIds.substring(1, skillIds.length() - 1);
}
String[] skillIdArray = skillIds.split(",");
StringBuilder skillNames = new StringBuilder();
for (String skillId : skillIdArray) {
try {
Long id = Long.parseLong(skillId.trim());
if (id > 0) {
SiteSkill skill = siteSkillService.selectSiteSkillById(id);
if (skill != null && skill.getTitle() != null) {
if (skillNames.length() > 0) {
skillNames.append("");
}
skillNames.append(skill.getTitle());
}
}
} catch (NumberFormatException e) {
// 忽略无效的ID
}
}
item.setSkillNames(skillNames.length() > 0 ? skillNames.toString() : "未知技能");
} catch (Exception e) {
item.setSkillNames("未知技能");
}
} else {
item.setSkillNames("");
}
}
ExcelUtil<Users> util = new ExcelUtil<Users>(Users.class);
util.exportExcel(response, list, "【请填写功能名称】数据");
util.exportExcel(response, list, "师傅数据");
}
/**
* 获取请填写功能名称详细信息
* 获取用户详细信息
*/
@PreAuthorize("@ss.hasPermi('system:users:query')")
@GetMapping(value = "/{id}")
@ -112,10 +278,10 @@ public class UsersController extends BaseController
}
/**
* 新增请填写功能名称
* 新增用户
*/
@PreAuthorize("@ss.hasPermi('system:users:add')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
@Log(title = "用户管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Users users)
{
@ -123,15 +289,16 @@ public class UsersController extends BaseController
}
/**
* 修改请填写功能名称
* 修改用户
*/
@PreAuthorize("@ss.hasPermi('system:users:edit')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Users users)
{
return toAjax(usersService.updateUsers(users));
}
/**
* 定时任务状态修改
*/
@ -153,6 +320,7 @@ public class UsersController extends BaseController
newUsers.setStatus(users.getStatus());
return toAjax(usersService.updateUsers(newUsers));
}
/**
* 暂停接单
*/
@ -202,10 +370,10 @@ public class UsersController extends BaseController
}
/**
* 删除请填写功能名称
* 删除用户
*/
@PreAuthorize("@ss.hasPermi('system:users:remove')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
@Log(title = "用户管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{

View File

@ -629,6 +629,8 @@ public class UsersPayBeforController extends BaseController
}
}
}
return success("退款成功");
} catch (Exception e) {

View File

@ -93,12 +93,11 @@ public class WechatTransferController extends BaseController
@PostMapping("/export")
public void export(HttpServletResponse response, WechatTransfer wechatTransfer)
{
List<WechatTransfer> list = wechatTransferService.selectWechatTransferList(wechatTransfer);
for(WechatTransfer dd: list){
Users users=usersService.selectUsersById(dd.getUid());
if (users!=null){
dd.setUname(users.getName());
}
// 使用导出专用的关联查询一次性获取所有数据包括用户信息
List<WechatTransfer> list = wechatTransferService.selectWechatTransferListForExport(wechatTransfer);
// 处理状态名称和到账状态名称
for(WechatTransfer dd: list){
if (dd.getPaid()!=null){
if (dd.getPaid()==1){
dd.setPaname("已到账");
@ -120,6 +119,7 @@ public class WechatTransferController extends BaseController
}
}
}
ExcelUtil<WechatTransfer> util = new ExcelUtil<WechatTransfer>(WechatTransfer.class);
util.exportExcel(response, list, "wechat_transfer数据");
}

View File

@ -75,12 +75,14 @@ public class PayBeforeUtil {
} catch (Exception e) {
memberMoney = BigDecimal.ZERO;
}
BigDecimal amountMoney = amount.subtract(memberMoney);;
//需要支付的金额等于总金额减去会员金额
// amount=amount.subtract(memberMoney);
// 使用BenefitPointsUtil计算服务金和购物金抵扣
BigDecimal serviceMoney = BigDecimal.ZERO;
BigDecimal shopMoney = BigDecimal.ZERO;
if (servicetype != null) {
BenefitPointsUtil.BenefitDeductionResult deductionResult = BenefitPointsUtil.getBenefitDeduction(user, amount, servicetype);
BenefitPointsUtil.BenefitDeductionResult deductionResult = BenefitPointsUtil.getBenefitDeduction(user, amountMoney, servicetype);
if (deductionResult.isSuccess()) {
serviceMoney = deductionResult.getServiceMoney();
shopMoney = deductionResult.getShopMoney();

View File

@ -22,7 +22,7 @@ public class GoodsOrder extends BaseEntity
private Long id;
/** 1:服务项目 2商品 */
@Excel(name = "1:服务项目 2商品")
private Integer type;
/** 主订单号 */
@ -30,7 +30,6 @@ public class GoodsOrder extends BaseEntity
private String mainOrderId;
/** 订单号 */
@Excel(name = "订单号")
private String orderId;
/** 微信支付单号 */
@ -38,7 +37,6 @@ public class GoodsOrder extends BaseEntity
private String transactionId;
/** 用户 */
@Excel(name = "用户")
private Long uid;
/** 用户 */
@ -46,12 +44,15 @@ public class GoodsOrder extends BaseEntity
private String uname;
/** 商品 */
@Excel(name = "商品")
private Long productId;
/** 商品 */
@Excel(name = "商品名称")
// @Excel(name = "商品名称")
private String productName;
/** 合并的商品名称(多个商品用、分隔) */
@Excel(name = "商品名称")
private String productNames;
/** 姓名 */
@Excel(name = "姓名")
@ -65,20 +66,26 @@ public class GoodsOrder extends BaseEntity
@Excel(name = "地址")
private String address;
/** 数量 */
@Excel(name = "数量")
private Long num;
/** 总价 */
@Excel(name = "总价")
private BigDecimal totalPrice;
/** 退款金额 */
@Excel(name = "退款金额")
private BigDecimal returnmoney;
/** 商品金额 */
@Excel(name = "商品金额")
// @Excel(name = "商品金额")
private BigDecimal goodPrice;
/** 数量 */
//@Excel(name = "数量")
private Long num;
/** 邮费 */
@Excel(name = "邮费")
private BigDecimal postage;
/** 服务金额 */
@Excel(name = "服务金额")
private BigDecimal servicePrice;
/** 支付金额 */
@ -86,7 +93,7 @@ public class GoodsOrder extends BaseEntity
private BigDecimal payPrice;
/** 支付金额 */
@Excel(name = "优惠券id")
private Long couponId;
/** 支付金额 */
@ -94,24 +101,20 @@ public class GoodsOrder extends BaseEntity
private Long isself;
/** 支付金额 */
@Excel(name = "自提店铺地址id")
private Long shopadresssid;
/** 抵扣金额 */
@Excel(name = "抵扣金额")
private BigDecimal deduction;
/** 邮费 */
@Excel(name = "邮费")
private BigDecimal postage;
/** 排序 */
@Excel(name = "是否跳转服务")
private Integer isforservice;
/** 排序 */
@Excel(name = "跳转服务id")
private Integer forserviceid;
@ -121,13 +124,17 @@ public class GoodsOrder extends BaseEntity
private Date payTime;
/** 订单状态 1:待支付 2已支付待发货3待收货 4待评价 5已收货 6取消 20申请退款 21同意退款 22驳回退款 */
@Excel(name = "订单状态 1:待支付 2已支付待发货3待收货 4待评价 5已收货 6取消 20申请退款 21同意退款 22驳回退款")
private Long status;
/** 订单状态名称 */
@Excel(name = "订单状态")
private String statusName;
/** 快递 */
@Excel(name = "快递")
private Long deliveryId;
/** 快递公司名称 */
@Excel(name = "快递公司")
private String deliveryName;
/** 快递单号 */
@Excel(name = "快递单号")
private String deliveryNum;
@ -142,13 +149,14 @@ public class GoodsOrder extends BaseEntity
private String mark;
/** 关联地址 */
@Excel(name = "关联地址")
private Long addressId;
/** 多规格产品 */
@Excel(name = "多规格产品")
private String sku;
private String deliveryName;
/** 纬度 */
private String latitude;
@ -175,20 +183,24 @@ public class GoodsOrder extends BaseEntity
private Long ismany;
private Date returntime;
private BigDecimal returnmoney;
private Date returnfinshtime;
private String returnshow;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// /** $column.columnComment */
// @Excel(name = "创建时间", readConverterExp = "$column.readConverterExp()")
// private Date createdAt;
/** 发货时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date createdAt;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date updatedAt;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date deletedAt;
public void setId(Long id)
@ -381,6 +393,16 @@ public class GoodsOrder extends BaseEntity
return status;
}
public void setStatusName(String statusName)
{
this.statusName = statusName;
}
public String getStatusName()
{
return statusName;
}
public void setDeliveryId(Long deliveryId)
{
this.deliveryId = deliveryId;
@ -480,6 +502,14 @@ public class GoodsOrder extends BaseEntity
this.productName = productName;
}
public String getProductNames() {
return productNames;
}
public void setProductNames(String productNames) {
this.productNames = productNames;
}
public String getUname() {
return uname;
}
@ -745,6 +775,7 @@ public class GoodsOrder extends BaseEntity
.append("postage", getPostage())
.append("payTime", getPayTime())
.append("status", getStatus())
.append("statusName", getStatusName())
.append("deliveryId", getDeliveryId())
.append("deliveryNum", getDeliveryNum())
.append("sendTime", getSendTime())
@ -754,6 +785,9 @@ public class GoodsOrder extends BaseEntity
.append("createdAt", getCreatedAt())
.append("updatedAt", getUpdatedAt())
.append("deletedAt", getDeletedAt())
.append("productName", getProductName())
.append("productNames", getProductNames())
.append("uname", getUname())
.toString();
}
}

View File

@ -24,11 +24,11 @@ public class Order extends BaseEntity
private Long id;
/** 1:服务项目 2商品 */
@Excel(name = "1:服务项目 2商品")
// @Excel(name = "1:服务项目 2商品")
private Integer type;
/** 主订单号 */
@Excel(name = "主订单号")
// @Excel(name = "主订单号")
private String mainOrderId;
/** 订单号 */
@ -40,7 +40,7 @@ public class Order extends BaseEntity
private String transactionId;
/** 1用户自主下单2后台下单 */
@Excel(name = "1用户自主下单2后台下单")
//@Excel(name = "1用户自主下单2后台下单")
private Integer createType;
/** 后台下单用户手机号 */
@ -48,15 +48,19 @@ public class Order extends BaseEntity
private String createPhone;
/** 用户 */
@Excel(name = "用户")
//@Excel(name = "用户")
private Long uid;
/** 用户 */
@Excel(name = "用户名称")
private String uname;
/** 用户手机号 */
@Excel(name = "用户手机号")
private String uphone;
/** 商品 */
@Excel(name = "商品")
//@Excel(name = "商品")
private Long productId;
/** 商品 */
@ -76,8 +80,11 @@ public class Order extends BaseEntity
private String address;
/** 预约时间-天 */
@Excel(name = "预约时间-天")
private Long makeTime;
/** 预约时间-天(格式化后,用于导出) */
@Excel(name = "预约时间-天")
private String makeTimeFormatted;
/** 预约时间-小时 */
@Excel(name = "预约时间-小时")
@ -104,7 +111,7 @@ public class Order extends BaseEntity
private BigDecimal payPrice;
/** 优惠券ID */
@Excel(name = "优惠券ID")
// @Excel(name = "优惠券ID")
private Long couponId;
/** 抵扣金额 */
@ -117,11 +124,19 @@ public class Order extends BaseEntity
private Date payTime;
/** 订单状态 1:待接单 2待服务3服务中4已结束 5已取消 6:师傅完成服务 7未服务提前结束订单 */
@Excel(name = "订单状态 1:待接单 2待服务3服务中4已结束 5已取消 6:师傅完成服务 7未服务提前结束订单")
// @Excel(name = "订单状态")
private Long status;
/** 订单状态名称 */
@Excel(name = "订单状态")
private String statusName;
/** 师傅名称 */
@Excel(name = "师傅名称")
private String workerName;
/** 1开始服务 2暂停服务 */
@Excel(name = "1开始服务 2暂停服务")
// @Excel(name = "1开始服务 2暂停服务")
private Integer isPause;
/** 备注 */
@ -129,7 +144,7 @@ public class Order extends BaseEntity
private String mark;
/** 关联地址 */
@Excel(name = "关联地址")
// @Excel(name = "关联地址")
private Long addressId;
/** 多规格产品 */
@ -137,11 +152,11 @@ public class Order extends BaseEntity
private String sku;
/** 师傅ID */
@Excel(name = "师傅ID")
//@Excel(name = "师傅ID")
private Long workerId;
/** 转单之后,第一次接单的师傅 */
@Excel(name = "转单之后,第一次接单的师傅")
// @Excel(name = "转单之后,第一次接单的师傅")
private Long firstWorkerId;
/** 接单时间 */
@ -149,58 +164,64 @@ public class Order extends BaseEntity
@Excel(name = "接单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date receiveTime;
/** 1:已评价 0未评价 */
@Excel(name = "1:已评价 0未评价")
private Integer isComment;
/** 1:已评价 0未评价 */
// @Excel(name = "1:已评价 0未评价")
private Integer isComment;
/** 接单时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date updatedAt;
/** 1自由抢单 2系统派单 3平台派单 */
@Excel(name = "1:系统派单 2:后台手动派单 3:指定工人")
//@Excel(name = "1:系统派单 2:后台手动派单 3:指定工人")
private Long receiveType;
/** 1已经接单 */
@Excel(name = "1已经接单")
//@Excel(name = "1已经接单")
private Integer isAccept;
/** 中间虚拟号 */
@Excel(name = "中间虚拟号")
// @Excel(name = "中间虚拟号")
private String middlePhone;
/** 用户手机号 */
@Excel(name = "用户手机号")
// @Excel(name = "用户手机号")
private String userPhone;
/** 师傅手机号 */
@Excel(name = "师傅手机号")
// @Excel(name = "师傅手机号")
private String workerPhone;
//-------------------------------------------非数据库字段--------------------------------------------------
/** 接单记录 */
@Excel(name = "接单记录")
// @Excel(name = "接单记录")
private int jdjl;
/** 通话记录 */
@Excel(name = "通话记录")
// @Excel(name = "通话记录")
private int thjl;
/** 录音文件 */
@Excel(name = "录音文件")
//@Excel(name = "录音文件")
private int lywj;
/** 通知记录 */
@Excel(name = "通知记录")
// @Excel(name = "通知记录")
private int tzjl;
/** 通知记录 */
@Excel(name = "服务评价")
// @Excel(name = "服务评价")
private int fwpj;
/** 通知记录 */
@Excel(name = "大分类")
//@Excel(name = "大分类")
private Integer bigtype;
/** 订单附件 */
@Excel(name = "订单附件")
// @Excel(name = "订单附件")
private String fileData;
@ -235,43 +256,43 @@ public class Order extends BaseEntity
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String addressEn;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String uidAdmin;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String addressAdmin;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
//@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Integer logStatus;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
//@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String logJson;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Integer jsonStatus;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String logImages;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date createdAt;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date updatedAt;
//@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date deletedAt;
private Long makeTimeStart;
@ -423,6 +444,16 @@ public class Order extends BaseEntity
return makeTime;
}
public void setMakeTimeFormatted(String makeTimeFormatted)
{
this.makeTimeFormatted = makeTimeFormatted;
}
public String getMakeTimeFormatted()
{
return makeTimeFormatted;
}
public void setMakeHour(String makeHour)
{
this.makeHour = makeHour;
@ -523,6 +554,26 @@ public class Order extends BaseEntity
return status;
}
public void setStatusName(String statusName)
{
this.statusName = statusName;
}
public String getStatusName()
{
return statusName;
}
public void setWorkerName(String workerName)
{
this.workerName = workerName;
}
public String getWorkerName()
{
return workerName;
}
public void setIsPause(Integer isPause)
{
this.isPause = isPause;
@ -769,6 +820,14 @@ public class Order extends BaseEntity
this.uname = uname;
}
public String getUphone() {
return uphone;
}
public void setUphone(String uphone) {
this.uphone = uphone;
}
public int getTzjl() {
return tzjl;
@ -988,11 +1047,14 @@ public class Order extends BaseEntity
.append("createType", getCreateType())
.append("createPhone", getCreatePhone())
.append("uid", getUid())
.append("uname", getUname())
.append("uphone", getUphone())
.append("productId", getProductId())
.append("name", getName())
.append("phone", getPhone())
.append("address", getAddress())
.append("makeTime", getMakeTime())
.append("makeTimeFormatted", getMakeTimeFormatted())
.append("makeHour", getMakeHour())
.append("num", getNum())
.append("totalPrice", getTotalPrice())
@ -1003,6 +1065,8 @@ public class Order extends BaseEntity
.append("deduction", getDeduction())
.append("payTime", getPayTime())
.append("status", getStatus())
.append("statusName", getStatusName())
.append("workerName", getWorkerName())
.append("isPause", getIsPause())
.append("mark", getMark())
.append("addressId", getAddressId())

View File

@ -26,7 +26,6 @@ public class PayMoneyLog extends BaseEntity
private Long oid;
/** 订单ID */
@Excel(name = "订单号码")
private String ocode;
/** 订单号 */

View File

@ -26,15 +26,15 @@ public class ServiceGoods extends BaseEntity
private String title;
/** 图标 */
@Excel(name = "图标")
// @Excel(name = "图标")
private String icon;
/** 轮播图 */
@Excel(name = "轮播图")
//@Excel(name = "轮播图")
private String imgs;
/** 副标题 */
@Excel(name = "副标题")
// @Excel(name = "副标题")
private String subTitle;
/** 简介 */
@ -58,158 +58,181 @@ public class ServiceGoods extends BaseEntity
private Long stock;
/** 状态 */
@Excel(name = "状态")
private String status;
/** 状态名称(用于导出显示) */
@Excel(name = "状态")
private String statusName;
/** 详情 */
@Excel(name = "详情")
// @Excel(name = "详情")
private String description;
/** 规格类型 1单规格 2多规格 */
@Excel(name = "下单类型 1预约下单 2报价下单")
/** 下单类型 1预约下单 2报价下单 */
private Integer servicetype;
/** 下单类型名称(用于导出显示) */
@Excel(name = "下单类型")
private String serviceTypeName;
/** 规格类型 1单规格 2多规格 */
@Excel(name = "规格类型 1单规格 2多规格")
/** 规格类型 1单规格 2多规格 */
private Integer skuType;
/** 规格类型名称(用于导出显示) */
@Excel(name = "规格类型")
private String skuTypeName;
/** 规格 */
@Excel(name = "规格")
private String sku;
/** 经度 */
@Excel(name = "经度")
private String latitude;
/** 纬度 */
@Excel(name = "纬度")
private String longitude;
/** 1:服务 2商品 */
@Excel(name = "1:服务 2商品")
private Integer type;
/** 类型名称(用于导出显示) */
@Excel(name = "类型")
private String typeName;
/** 分类 */
@Excel(name = "分类")
private Long cateId;
/** 一级分类ID */
@Excel(name = "一级分类ID")
private Long firstCateId;
/** 二级分类ID */
@Excel(name = "二级分类ID")
private Long secondCateId;
/** 分类 */
@Excel(name = "分类名称")
private String cateName;
/** 分类名称 */
@Excel(name = "分类名称")
private String cateName;
/** 适用城市 */
//@Excel(name = "适用城市")
private String cityNames;
/** 服务项目 */
@Excel(name = "服务项目")
//@Excel(name = "服务项目")
private String project;
/** 排序 */
@Excel(name = "排序")
private Integer sort;
/** 排序 */
@Excel(name = "是否跳转服务")
/** 是否跳转服务 */
private Integer isforservice;
/** 是否跳转服务名称(用于导出显示) */
// @Excel(name = "是否跳转服务")
private String isForServiceName;
/** 排序 */
@Excel(name = "跳转服务id")
/** 跳转服务id */
private Integer forserviceid;
/** 物料费用 */
@Excel(name = "物料费用")
//@Excel(name = "物料费用")
private String material;
/** 邮费 */
@Excel(name = "邮费")
//@Excel(name = "邮费")
private BigDecimal postage;
/** 基检现象 */
@Excel(name = "基检现象")
//@Excel(name = "基检现象")
private String basic;
/** 保证金 */
@Excel(name = "保证金")
//@Excel(name = "保证金")
private BigDecimal margin;
/** 所需技能 */
@Excel(name = "所需技能")
//@Excel(name = "所需技能")
private String skillNames;
/** 所需技能ID数据库字段 */
private String skillIds;
/** 是否可拼团 1:是 2:否 */
@Excel(name = "是否可拼团 1:是 2:否")
/** 是否可拼团 1:是 2:否 */
private Integer isgroup;
/** 是否可拼团名称(用于导出显示) */
//@Excel(name = "是否可拼团")
private String isGroupName;
/** 拼团价 */
@Excel(name = "拼团价")
//@Excel(name = "拼团价")
private BigDecimal groupprice;
/** 是否可设置次卡 1:是 2:否 */
@Excel(name = "是否可设置次卡 1:是 2:否")
private Integer isonce;
/** 次卡价格 */
@Excel(name = "次卡价格")
private BigDecimal onceprice;
/** 分佣模式 1:系统分佣 2:独立分佣 3:不分佣 */
@Excel(name = "分佣模式 1:系统分佣 2:独立分佣 3:不分佣")
private Integer commissiontype;
/** 分佣比例 */
@Excel(name = "分佣比例")
private BigDecimal commission;
/** 派单模式 1:系统派单 2:后台手动派单 3:指定工人 */
@Excel(name = "派单模式 1:系统派单 2:后台手动派单 3:指定工人")
private Integer dispatchtype;
/** 指定工人的id集合 */
@Excel(name = "指定工人的id集合")
private String workerids;
/** 是否为一口价 1:是 2:否 */
@Excel(name = "是否为一口价 1:是 2:否")
private Integer isfixed;
/** 一口价价格 */
@Excel(name = "一口价价格")
private BigDecimal fixedprice;
/** 派单模式 1:系统派单 2:后台手动派单 3:指定工人 */
@Excel(name = "拼团人数")
/** 拼团人数 */
// @Excel(name = "拼团人数")
private Integer groupnum;
/** 是否可设置次卡 1:是 2:否 */
private Integer isonce;
/** 是否可设置次卡名称(用于导出显示) */
//@Excel(name = "是否可设置次卡")
private String isOnceName;
/** 次卡价格 */
//@Excel(name = "次卡价格")
private BigDecimal onceprice;
/** 分佣模式 1:系统分佣 2:独立分佣 3:不分佣 */
private Integer commissiontype;
/** 分佣模式名称(用于导出显示) */
//@Excel(name = "分佣模式")
private String commissionTypeName;
/** 分佣比例 */
//@Excel(name = "分佣比例")
private BigDecimal commission;
/** 派单模式 1:系统派单 2:后台手动派单 3:指定工人 */
private Integer dispatchtype;
/** 派单模式名称(用于导出显示) */
//@Excel(name = "派单模式")
private String dispatchTypeName;
/** 指定工人的id集合 */
@Excel(name = "问答")
private String questions;
private String workerids;
/** 指定工人名称(用于导出显示) */
//@Excel(name = "指定工人")
private String workerNames;
/** 是否为一口价 1:是 2:否 */
private Integer isfixed;
/** 是否为一口价名称(用于导出显示) */
// @Excel(name = "是否为一口价")
private String isFixedName;
/** 一口价价格 */
//@Excel(name = "一口价价格")
private BigDecimal fixedprice;
/** 问答 */
//@Excel(name = "问答数量")
private String questionCount;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date createdAt;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
//@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date updatedAt;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date deletedAt;
private String city;
@ -479,6 +502,16 @@ private String cateName;
return margin;
}
public void setSkillNames(String skillNames)
{
this.skillNames = skillNames;
}
public String getSkillNames()
{
return skillNames;
}
public void setSkillIds(String skillIds)
{
this.skillIds = skillIds;
@ -657,11 +690,11 @@ private String cateName;
}
public String getQuestions() {
return questions;
return questionCount;
}
public void setQuestions(String questions) {
this.questions = questions;
public void setQuestions(String questionCount) {
this.questionCount = questionCount;
}
public Integer getIsforservice() {
@ -689,6 +722,111 @@ private String cateName;
this.city = city;
}
// 新增字段的getter和setter方法
public String getStatusName() {
return statusName;
}
public void setStatusName(String statusName) {
this.statusName = statusName;
}
public String getServiceTypeName() {
return serviceTypeName;
}
public void setServiceTypeName(String serviceTypeName) {
this.serviceTypeName = serviceTypeName;
}
public String getSkuTypeName() {
return skuTypeName;
}
public void setSkuTypeName(String skuTypeName) {
this.skuTypeName = skuTypeName;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public String getCityNames() {
return cityNames;
}
public void setCityNames(String cityNames) {
this.cityNames = cityNames;
}
public String getIsForServiceName() {
return isForServiceName;
}
public void setIsForServiceName(String isForServiceName) {
this.isForServiceName = isForServiceName;
}
public String getIsGroupName() {
return isGroupName;
}
public void setIsGroupName(String isGroupName) {
this.isGroupName = isGroupName;
}
public String getIsOnceName() {
return isOnceName;
}
public void setIsOnceName(String isOnceName) {
this.isOnceName = isOnceName;
}
public String getCommissionTypeName() {
return commissionTypeName;
}
public void setCommissionTypeName(String commissionTypeName) {
this.commissionTypeName = commissionTypeName;
}
public String getDispatchTypeName() {
return dispatchTypeName;
}
public void setDispatchTypeName(String dispatchTypeName) {
this.dispatchTypeName = dispatchTypeName;
}
public String getWorkerNames() {
return workerNames;
}
public void setWorkerNames(String workerNames) {
this.workerNames = workerNames;
}
public String getIsFixedName() {
return isFixedName;
}
public void setIsFixedName(String isFixedName) {
this.isFixedName = isFixedName;
}
public String getQuestionCount() {
return questionCount;
}
public void setQuestionCount(String questionCount) {
this.questionCount = questionCount;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -716,6 +854,7 @@ private String cateName;
.append("postage", getPostage())
.append("basic", getBasic())
.append("margin", getMargin())
.append("skillNames", getSkillNames())
.append("skillIds", getSkillIds())
.append("createdAt", getCreatedAt())
.append("updatedAt", getUpdatedAt())

View File

@ -24,83 +24,79 @@ public class UserSecondaryCard extends BaseEntity
/** $column.columnComment */
private Long id;
/** 订单id */
@Excel(name = "订单id")
/** 订单ID */
@Excel(name = "订单ID", width = 15)
private String orderid;
/** 标题 */
@Excel(name = "标题")
@Excel(name = "标题", width = 20)
private String title;
/** 服务id */
@Excel(name = "服务id")
/** 服务ID */
private String goodsids;
/** 服务id */
@Excel(name = "服务名称")
/** 服务名称 */
@Excel(name = "服务名称", width = 25)
private String goodsname;
/** 服务id */
@Excel(name = "轮播图")
/** 轮播图 */
private String carouselImage;
/** 服务id */
@Excel(name = "简介")
/** 简介 */
@Excel(name = "简介", width = 15)
private String introduction;
/** 展示价格 */
@Excel(name = "展示价格")
@Excel(name = "展示价格", width = 12)
private BigDecimal showMoney;
/** 真实付款价格 */
@Excel(name = "真实付款价格")
@Excel(name = "真实付款价格", width = 12)
private BigDecimal realMoney;
/** 展示图片 */
@Excel(name = "展示图片")
private String showimage;
/** 状态 1上线 2下线 */
@Excel(name = "状态 1上线 2下线")
/** 状态 1上线 2下线 3下架 */
private Long status;
/** 状态名称(用于导出显示) */
@Excel(name = "状态", width = 8)
private String statusName;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
@Excel(name = "创建时间", width = 15, dateFormat = "yyyy-MM-dd")
private Date creattime;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
/** 创建时间 */
private Date createdAt;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
/** 更新时间 */
private Date updatedAt;
/** 分类 */
@Excel(name = "分类")
/** 分类ID */
private Long type;
/** 分类 */
@Excel(name = "分类名称")
/** 分类名称 */
@Excel(name = "分类名称", width = 12)
private String typename;
/** 可提供服务数 */
@Excel(name = "可提供服务数")
@Excel(name = "可提供服务数", width = 12)
private Long num;
/** 可提供服务数 */
@Excel(name = "服务详情")
/** 服务详情 */
private List<ServiceGoods> ServiceDetail;
/** 总服务数 */
@Excel(name = "总服务数")
@Excel(name = "总服务数", width = 12)
private Long allnum;
/** 可用/总数(用于导出显示) */
@Excel(name = "可用/总数", width = 12)
private String serviceCountDisplay;
public void setId(Long id)
{
this.id = id;
@ -180,6 +176,16 @@ public class UserSecondaryCard extends BaseEntity
{
return status;
}
public String getStatusName()
{
return statusName;
}
public void setStatusName(String statusName)
{
this.statusName = statusName;
}
public void setCreattime(Date creattime)
{
@ -241,6 +247,14 @@ public class UserSecondaryCard extends BaseEntity
return allnum;
}
public String getServiceCountDisplay() {
return serviceCountDisplay;
}
public void setServiceCountDisplay(String serviceCountDisplay) {
this.serviceCountDisplay = serviceCountDisplay;
}
public String getGoodsname() {
return goodsname;
@ -293,12 +307,14 @@ public class UserSecondaryCard extends BaseEntity
.append("realMoney", getRealMoney())
.append("showimage", getShowimage())
.append("status", getStatus())
.append("statusName", getStatusName())
.append("creattime", getCreattime())
.append("createdAt", getCreatedAt())
.append("updatedAt", getUpdatedAt())
.append("type", getType())
.append("num", getNum())
.append("allnum", getAllnum())
.append("serviceCountDisplay", getServiceCountDisplay())
.toString();
}
}

View File

@ -22,47 +22,54 @@ public class UserUseSecondaryCard extends BaseEntity
private Long id;
/** 用户id */
@Excel(name = "用户id")
@Excel(name = "用户ID")
private Long uid;
/** 用户名称(用于导出显示) */
@Excel(name = "用户名称")
private String userName;
/** 次卡id */
@Excel(name = "次卡id")
@Excel(name = "次卡ID")
private String carid;
/** 服务id */
@Excel(name = "服务id")
private String goodsids;
/** 用户可用数量 */
@Excel(name = "用户可用数量")
@Excel(name = "可用数量")
private Long num;
/** 用户已用数量 */
@Excel(name = "用户已用数量")
@Excel(name = "已用数量")
private Long usenum;
/** 订单id */
@Excel(name = "订单id")
@Excel(name = "订单ID")
private String orderid;
/** 支付id */
@Excel(name = "支付id")
@Excel(name = "支付ID")
private String transactionId;
/** 支付金额 */
@Excel(name = "支付金额")
private BigDecimal paymoney;
/** 状态 1可用 2已用完 3已退款 */
@Excel(name = "状态 1可用 2已用完 3已退款")
/** 状态 1可用 2已用完 3已退款 4未支付 */
private Long status;
/** 状态名称(用于导出显示) */
@Excel(name = "状态")
private String statusName;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "创建时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date createdAt;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updatedAt;
@ -88,6 +95,16 @@ public class UserUseSecondaryCard extends BaseEntity
return uid;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public String getUserName()
{
return userName;
}
public void setCarid(String carid)
{
this.carid = carid;
@ -167,6 +184,16 @@ public class UserUseSecondaryCard extends BaseEntity
{
return status;
}
public String getStatusName()
{
return statusName;
}
public void setStatusName(String statusName)
{
this.statusName = statusName;
}
public void setCreatedAt(Date createdAt)
{
@ -202,6 +229,7 @@ public class UserUseSecondaryCard extends BaseEntity
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("uid", getUid())
.append("userName", getUserName())
.append("carid", getCarid())
.append("goodsids", getGoodsids())
.append("num", getNum())
@ -210,6 +238,7 @@ public class UserUseSecondaryCard extends BaseEntity
.append("transactionId", getTransactionId())
.append("paymoney", getPaymoney())
.append("status", getStatus())
.append("statusName", getStatusName())
.append("createdAt", getCreatedAt())
.append("updatedAt", getUpdatedAt())
.toString();

View File

@ -37,29 +37,35 @@ public class Users extends BaseEntity
private String phone;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String password;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
// @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String rememberToken;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
@Excel(name = "微信OPENID")
private String openid;
/** 头像 */
@Excel(name = "头像")
//@Excel(name = "头像")
private String avatar;
/** 1:普通用户 2师傅 */
@Excel(name = "1:普通用户 2师傅")
private String type;
/** 用户类型名称(用于导出显示) */
@Excel(name = "用户类型")
private String typeName;
/** 师傅签到时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "师傅签到时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date workerTime;
/** 师傅签到时间(用于导出显示) */
@Excel(name = "签到时间", width = 15, dateFormat = "yyyy-MM-dd")
private String workerTimeFormatted;
/** 可用积分 */
@Excel(name = "可用积分")
@ -70,19 +76,28 @@ public class Users extends BaseEntity
private Long totalIntegral;
/** 1:启用 0关闭 */
@Excel(name = "1:启用 0关闭")
private Integer status;
/** 状态名称(用于导出显示) */
@Excel(name = "状态")
private String statusName;
/**是否为师傅 是否为师傅1是0否 */
@Excel(name = "10")
private Integer isWork;
/** 是否为师傅名称(用于导出显示) */
@Excel(name = "是否为师傅")
private String isWorkName;
/** 师傅等级 */
@Excel(name = "师傅等级")
private Integer level;
/** 师傅等级名称(用于导出显示) */
@Excel(name = "等级")
private String levelName;
/** 师傅佣金 */
@Excel(name = "师傅佣金")
@Excel(name = "当前佣金")
private BigDecimal commission;
/** 累计佣金 */
@ -99,43 +114,56 @@ public class Users extends BaseEntity
/** 禁止接单开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "禁止接单开始时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date prohibitTime;
/** 禁止接单开始时间(用于导出显示) */
@Excel(name = "暂停到期时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm")
private String prohibitTimeFormatted;
/** 禁止接单时长 */
@Excel(name = "禁止接单时长")
@Excel(name = "暂停时长(小时)")
private Integer prohibitTimeNum;
/** 师傅累计接单 */
@Excel(name = "师傅累计接单")
@Excel(name = "本月累计单量")
private Long toa;
/** 师傅服务城市 */
@Excel(name = "师傅服务城市")
private Long serviceCityPid;
/** 师傅服务区域 */
@Excel(name = "师傅服务区域")
private String serviceCityIds;
/** 师傅服务区域名称(用于导出显示) */
@Excel(name = "服务区域")
private String serviceCityNames;
/** 师傅技能ID */
@Excel(name = "师傅技能ID")
private String skillIds;
/** 师傅技能名称(用于导出显示) */
@Excel(name = "技能")
private String skillNames;
/** 累计提现 */
@Excel(name = "累计提现")
private BigDecimal propose;
/** 1:已退出 2未退出 */
@Excel(name = "1:已退出 2未退出")
private Integer loginStatus;
/** 使用状态名称(用于导出显示) */
@Excel(name = "使用状态")
private String loginStatusName;
/** 0:默认 1停止接单 */
@Excel(name = "0:默认 1停止接单")
private Integer isStop;
/** 接单状态名称(用于导出显示) */
@Excel(name = "接单状态")
private String isStopName;
/** 1虚拟号码-已认证 */
@Excel(name = "1虚拟号码-已认证")
private Integer middleAuth;
@ -707,6 +735,87 @@ public class Users extends BaseEntity
public String getSkill() { return skill; }
public void setSkill(String skill) { this.skill = skill; }
// 新增字段的getter和setter方法
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public String getWorkerTimeFormatted() {
return workerTimeFormatted;
}
public void setWorkerTimeFormatted(String workerTimeFormatted) {
this.workerTimeFormatted = workerTimeFormatted;
}
public String getStatusName() {
return statusName;
}
public void setStatusName(String statusName) {
this.statusName = statusName;
}
public String getIsWorkName() {
return isWorkName;
}
public void setIsWorkName(String isWorkName) {
this.isWorkName = isWorkName;
}
public String getLevelName() {
return levelName;
}
public void setLevelName(String levelName) {
this.levelName = levelName;
}
public String getProhibitTimeFormatted() {
return prohibitTimeFormatted;
}
public void setProhibitTimeFormatted(String prohibitTimeFormatted) {
this.prohibitTimeFormatted = prohibitTimeFormatted;
}
public String getServiceCityNames() {
return serviceCityNames;
}
public void setServiceCityNames(String serviceCityNames) {
this.serviceCityNames = serviceCityNames;
}
public String getSkillNames() {
return skillNames;
}
public void setSkillNames(String skillNames) {
this.skillNames = skillNames;
}
public String getLoginStatusName() {
return loginStatusName;
}
public void setLoginStatusName(String loginStatusName) {
this.loginStatusName = loginStatusName;
}
public String getIsStopName() {
return isStopName;
}
public void setIsStopName(String isStopName) {
this.isStopName = isStopName;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

View File

@ -85,4 +85,12 @@ public interface GoodsOrderMapper
* @return 结果
*/
public int deleteGoodsOrderByIds(Long[] ids);
/**
* 查询商品订单列表导出专用按主订单分组包含所有关联信息
*
* @param goodsOrder 商品订单
* @return 商品订单集合
*/
public List<GoodsOrder> selectGoodsOrderListForExport(GoodsOrder goodsOrder);
}

View File

@ -188,4 +188,12 @@ public interface OrderMapper
* @return 首次下单的订单ID如果没有找到返回null
*/
public String selectUserFirstOrderId(@Param("userId") Long userId);
/**
* 查询服务订单列表导出专用包含所有关联信息
*
* @param order 服务订单
* @return 服务订单集合
*/
public List<Order> selectOrderListForExport(Order order);
}

View File

@ -58,4 +58,19 @@ public interface PayMoneyLogMapper
* @return 结果
*/
public int deletePayMoneyLogByIds(Long[] ids);
/**
* 查询支付记录统计数据
*
* @return 统计数据
*/
public java.util.Map<String, Object> selectPayMoneyLogStatistics();
/**
* 查询支付记录列表导出专用包含用户信息
*
* @param payMoneyLog 支付记录
* @return 支付记录集合
*/
public List<PayMoneyLog> selectPayMoneyLogListForExport(PayMoneyLog payMoneyLog);
}

View File

@ -63,4 +63,12 @@ public interface WechatTransferMapper
* 统计汇总总申请金额已到账金额处理中金额不计入状态3
*/
public java.util.Map<String, java.math.BigDecimal> selectWechatTransferSummary(WechatTransfer wechatTransfer);
/**
* 查询wechat_transfer列表导出专用包含用户信息
*
* @param wechatTransfer wechat_transfer
* @return wechat_transfer集合
*/
public List<WechatTransfer> selectWechatTransferListForExport(WechatTransfer wechatTransfer);
}

View File

@ -76,4 +76,12 @@ public interface IGoodsOrderService
* @return 结果
*/
public int deleteGoodsOrderById(Long id);
/**
* 查询商品订单列表导出专用按主订单分组包含所有关联信息
*
* @param goodsOrder 商品订单
* @return 商品订单集合
*/
public List<GoodsOrder> selectGoodsOrderListForExport(GoodsOrder goodsOrder);
}

View File

@ -186,4 +186,12 @@ public interface IOrderService
* @return 首次下单的订单ID如果没有找到返回null
*/
public String selectUserFirstOrderId(Long userId);
/**
* 查询服务订单列表导出专用包含所有关联信息
*
* @param order 服务订单
* @return 服务订单集合
*/
public List<Order> selectOrderListForExport(Order order);
}

View File

@ -58,4 +58,19 @@ public interface IPayMoneyLogService
* @return 结果
*/
public int deletePayMoneyLogById(Long id);
/**
* 获取支付记录统计数据
*
* @return 统计数据
*/
public java.util.Map<String, Object> getPayMoneyLogStatistics();
/**
* 查询支付记录列表导出专用包含用户信息
*
* @param payMoneyLog 支付记录
* @return 支付记录集合
*/
public List<PayMoneyLog> selectPayMoneyLogListForExport(PayMoneyLog payMoneyLog);
}

View File

@ -63,4 +63,12 @@ public interface IWechatTransferService
* 统计汇总总申请金额已到账金额处理中金额不含状态3
*/
public java.util.Map<String, java.math.BigDecimal> selectWechatTransferSummary(WechatTransfer wechatTransfer);
/**
* 查询wechat_transfer列表导出专用包含用户信息
*
* @param wechatTransfer wechat_transfer
* @return wechat_transfer集合
*/
public List<WechatTransfer> selectWechatTransferListForExport(WechatTransfer wechatTransfer);
}

View File

@ -122,4 +122,16 @@ public class GoodsOrderServiceImpl implements IGoodsOrderService
{
return goodsOrderMapper.deleteGoodsOrderById(id);
}
/**
* 查询商品订单列表导出专用按主订单分组包含所有关联信息
*
* @param goodsOrder 商品订单
* @return 商品订单集合
*/
@Override
public List<GoodsOrder> selectGoodsOrderListForExport(GoodsOrder goodsOrder)
{
return goodsOrderMapper.selectGoodsOrderListForExport(goodsOrder);
}
}

View File

@ -225,4 +225,16 @@ public class OrderServiceImpl implements IOrderService
public String selectUserFirstOrderId(Long userId) {
return orderMapper.selectUserFirstOrderId(userId);
}
/**
* 查询服务订单列表导出专用包含所有关联信息
*
* @param order 服务订单
* @return 服务订单集合
*/
@Override
public List<Order> selectOrderListForExport(Order order)
{
return orderMapper.selectOrderListForExport(order);
}
}

View File

@ -90,4 +90,27 @@ public class PayMoneyLogServiceImpl implements IPayMoneyLogService
{
return payMoneyLogMapper.deletePayMoneyLogById(id);
}
/**
* 获取支付记录统计数据
*
* @return 统计数据
*/
@Override
public java.util.Map<String, Object> getPayMoneyLogStatistics()
{
return payMoneyLogMapper.selectPayMoneyLogStatistics();
}
/**
* 查询支付记录列表导出专用包含用户信息
*
* @param payMoneyLog 支付记录
* @return 支付记录集合
*/
@Override
public List<PayMoneyLog> selectPayMoneyLogListForExport(PayMoneyLog payMoneyLog)
{
return payMoneyLogMapper.selectPayMoneyLogListForExport(payMoneyLog);
}
}

View File

@ -99,4 +99,16 @@ public class WechatTransferServiceImpl implements IWechatTransferService
{
return wechatTransferMapper.selectWechatTransferSummary(wechatTransfer);
}
/**
* 查询wechat_transfer列表导出专用包含用户信息
*
* @param wechatTransfer wechat_transfer
* @return wechat_transfer集合
*/
@Override
public List<WechatTransfer> selectWechatTransferListForExport(WechatTransfer wechatTransfer)
{
return wechatTransferMapper.selectWechatTransferListForExport(wechatTransfer);
}
}

View File

@ -58,6 +58,71 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<!-- 导出专用的resultMap包含所有关联信息 -->
<resultMap type="GoodsOrder" id="GoodsOrderResultForExport">
<result property="id" column="id" />
<result property="type" column="type" />
<result property="mainOrderId" column="main_order_id" />
<result property="orderId" column="order_id" />
<result property="transactionId" column="transaction_id" />
<result property="uid" column="uid" />
<result property="couponId" column="coupon_id" />
<result property="productId" column="product_id" />
<result property="isforservice" column="isforservice" />
<result property="forserviceid" column="forserviceid" />
<result property="name" column="name" />
<result property="returnrealmoney" column="returnrealmoney" />
<result property="ismany" column="ismany" />
<result property="phone" column="phone" />
<result property="address" column="address" />
<result property="num" column="num" />
<result property="totalPrice" column="total_price" />
<result property="goodPrice" column="good_price" />
<result property="servicePrice" column="service_price" />
<result property="payPrice" column="pay_price" />
<result property="deduction" column="deduction" />
<result property="postage" column="postage" />
<result property="payTime" column="pay_time" />
<result property="status" column="status" />
<result property="deliveryId" column="delivery_id" />
<result property="deliveryNum" column="delivery_num" />
<result property="sendTime" column="send_time" />
<result property="mark" column="mark" />
<result property="addressId" column="address_id" />
<result property="sku" column="sku" />
<result property="createdAt" column="created_at" />
<result property="updatedAt" column="updated_at" />
<result property="deletedAt" column="deleted_at" />
<result property="returnshow" column="returnshow" />
<result property="returntime" column="returntime" />
<result property="returnmoney" column="returnmoney" />
<result property="returnfinshtime" column="returnfinshtime" />
<result property="returnstatus" column="returnstatus" />
<result property="returntype" column="returntype" />
<result property="returnreason" column="returnreason" />
<result property="returnfiledata" column="returnfiledata" />
<result property="returnlogistics" column="returnlogistics" />
<result property="returnlogisticscode" column="returnlogisticscode" />
<result property="returnjson" column="returnjson" />
<result property="isself" column="isself" />
<result property="shopadresssid" column="shopadresssid" />
<!-- 关联信息字段 -->
<result property="productName" column="product_name" />
<result property="uname" column="uname" />
<result property="uphone" column="uphone" />
<result property="adressinfo" column="adressinfo" />
<result property="latitude" column="latitude" />
<result property="longitude" column="longitude" />
<result property="deliveryName" column="delivery_name" />
<!-- 状态名称字段 -->
<result property="statusName" column="status_name" />
<!-- 合并的商品名称字段 -->
<result property="productNames" column="product_names" />
</resultMap>
<sql id="selectGoodsOrderVo">
select id, type, main_order_id,returnshow,ismany,returnrealmoney, returnstatus,order_id,returntime,returnmoney,returnfinshtime,returntype,returnreason,returnfiledata,returnlogistics,returnlogisticscode,returnjson, transaction_id,forserviceid,isforservice,isself,coupon_id,shopadresssid, uid, product_id, name, phone, address, num, total_price, good_price, service_price, pay_price, deduction, postage, pay_time, status, delivery_id, delivery_num, send_time, mark, address_id, sku, created_at, updated_at, deleted_at from goods_order
@ -83,7 +148,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null "> and status = #{status}</if>
<if test="productId != null "> and product_id = #{productId}</if>
<if test="orderId != null and orderId != ''"> and order_id like concat('%', #{orderId}, '%') </if>
<if test="name != null"> and name like concat('%', #{name}, '%') </if>
<if test="phone != null"> and phone like concat('%', #{phone}, '%') </if>
<if test="isself != null"> and isself=#{isself}</if>
<if test="mainOrderId != null and mainOrderId != ''"> and main_order_id like concat('%', #{mainOrderId}, '%') </if>
</where>
@ -319,4 +386,124 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</delete>
<!-- 查询商品订单列表(导出专用,按主订单分组,包含所有关联信息) -->
<select id="selectGoodsOrderListForExport" parameterType="GoodsOrder" resultMap="GoodsOrderResultForExport">
SELECT
MIN(go.id) as id,
MIN(go.type) as type,
go.main_order_id,
MIN(go.returnshow) as returnshow,
MIN(go.ismany) as ismany,
MIN(go.returnrealmoney) as returnrealmoney,
MIN(go.returnstatus) as returnstatus,
MIN(go.order_id) as order_id,
MIN(go.returntime) as returntime,
MIN(go.returnmoney) as returnmoney,
MIN(go.returnfinshtime) as returnfinshtime,
MIN(go.returntype) as returntype,
MIN(go.returnreason) as returnreason,
MIN(go.returnfiledata) as returnfiledata,
MIN(go.returnlogistics) as returnlogistics,
MIN(go.returnlogisticscode) as returnlogisticscode,
MIN(go.returnjson) as returnjson,
MIN(go.transaction_id) as transaction_id,
MIN(go.forserviceid) as forserviceid,
MIN(go.isforservice) as isforservice,
MIN(go.isself) as isself,
MIN(go.coupon_id) as coupon_id,
MIN(go.shopadresssid) as shopadresssid,
MIN(go.uid) as uid,
MIN(go.product_id) as product_id,
MIN(go.name) as name,
MIN(go.phone) as phone,
MIN(go.address) as address,
SUM(go.num) as num,
MIN(upb.allmoney) as total_price,
MIN(go.good_price) as good_price,
MIN(go.service_price) as service_price,
MIN(go.pay_price) as pay_price,
MIN(go.deduction) as deduction,
MIN(go.postage) as postage,
MIN(go.pay_time) as pay_time,
MIN(go.status) as status,
MIN(go.delivery_id) as delivery_id,
MIN(go.delivery_num) as delivery_num,
MIN(go.send_time) as send_time,
MIN(go.mark) as mark,
MIN(go.address_id) as address_id,
MIN(go.sku) as sku,
MIN(go.created_at) as created_at,
MIN(go.updated_at) as updated_at,
MIN(go.deleted_at) as deleted_at,
<!-- 关联信息字段 -->
MIN(sg.title) as product_name,
MIN(u.name) as uname,
MIN(u.phone) as uphone,
MIN(CONCAT(ua.address_info, ua.info)) as adressinfo,
MIN(ua.latitude) as latitude,
MIN(ua.longitude) as longitude,
MIN(sd.title) as delivery_name,
<!-- 支付信息 -->
MIN(upb.allmoney) as total_price,
MIN(upb.allmoney - upb.returnmoney) as pay_price,
<!-- 退款金额 -->
MIN(upb.returnmoney) as returnmoney,
<!-- 状态名称 -->
CASE
WHEN MIN(go.status) = 1 THEN '待支付'
WHEN MIN(go.status) = 2 THEN '已支付,待发货'
WHEN MIN(go.status) = 3 THEN '待收货'
WHEN MIN(go.status) = 4 THEN '待评价'
WHEN MIN(go.status) = 5 THEN '已收货'
WHEN MIN(go.status) = 6 THEN '取消'
WHEN MIN(go.status) = 20 THEN '申请退款'
WHEN MIN(go.status) = 21 THEN '同意退款'
WHEN MIN(go.status) = 22 THEN '驳回退款'
ELSE '未知状态'
END as status_name,
<!-- 合并的商品名称 -->
GROUP_CONCAT(DISTINCT sg.title SEPARATOR '、') as product_names
FROM goods_order go
LEFT JOIN service_goods sg ON go.product_id = sg.id
LEFT JOIN users u ON go.uid = u.id
LEFT JOIN user_address ua ON go.address_id = ua.id
LEFT JOIN site_delivery sd ON go.delivery_id = sd.id
LEFT JOIN users_pay_befor upb ON go.main_order_id = upb.orderid
<where>
<if test="payPriceMin != null and payPriceMax != null">
and go.pay_price BETWEEN #{payPriceMin} AND #{payPriceMax}
</if>
<if test="startdate != null and enddate != null">
and go.created_at BETWEEN #{startdate} AND #{enddate}
</if>
<if test="paystartdate != null and payenddate != null">
and go.pay_time BETWEEN #{paystartdate} AND #{payenddate}
</if>
<if test="name != null"> and name like concat('%', #{name}, '%') </if>
<if test="phone != null"> and phone like concat('%', #{phone}, '%') </if>
<if test="isself != null"> and isself=#{isself}</if>
<if test="returnstatus != null and returnstatus != null">
and go.status in(20,21,22)
</if>
<if test="uid != null "> and go.uid = #{uid}</if>
<if test="status != null "> and go.status = #{status}</if>
<if test="productId != null "> and go.product_id = #{productId}</if>
<if test="orderId != null and orderId != ''"> and go.order_id like concat('%', #{orderId}, '%') </if>
<if test="mainOrderId != null and mainOrderId != ''"> and go.main_order_id like concat('%', #{mainOrderId}, '%') </if>
</where>
GROUP BY go.main_order_id
ORDER BY
CASE
WHEN (MIN(go.status) = 2 OR MIN(go.returnstatus) IN (1,4)) THEN 0
ELSE 1
END ASC,
MIN(go.updated_at) DESC
</select>
</mapper>

View File

@ -18,6 +18,7 @@
<result property="phone" column="phone"/>
<result property="address" column="address"/>
<result property="makeTime" column="make_time"/>
<result property="makeTimeFormatted" column="make_time_formatted"/>
<result property="makeHour" column="make_hour"/>
<result property="num" column="num"/>
<result property="cartid" column="cartid"/>
@ -793,4 +794,168 @@
#{id}
</foreach>
</delete>
<!-- 查询服务订单列表(导出专用,包含所有关联信息) -->
<select id="selectOrderListForExport" parameterType="Order" resultMap="OrderResultForExport">
SELECT
o.id, o.type, o.file_data, o.main_order_id, o.order_id, o.transaction_id,
o.create_type, o.create_phone, o.uid, o.workerdel, o.cartid, o.odertype,
o.product_id, o.name, o.phone, o.address,
o.make_time,
<!-- 将时间戳转换为可读的日期格式 -->
FROM_UNIXTIME(o.make_time, '%Y-%m-%d') as make_time_formatted,
o.make_hour,
o.reamk, o.bigtype, o.num, o.total_price, o.good_price, o.service_price,
o.pay_price, o.coupon_id, o.deduction, o.pay_time, o.status, o.is_pause,
o.mark, o.address_id, o.sku, o.worker_id, o.first_worker_id, o.receive_time,
o.is_comment, o.receive_type, o.is_accept, o.middle_phone, o.user_phone,
o.worker_phone, o.address_en, o.uid_admin, o.address_admin, o.log_status,
o.log_json, o.json_status, o.log_images, o.created_at, o.updated_at, o.deleted_at,
<!-- 关联信息字段 -->
sg.title as product_name,
u.name as uname,
u.phone as uphone,
w.name as worker_name,
w.phone as worker_phone,
<!-- 状态名称 -->
CASE
WHEN o.status = 1 THEN '待接单'
WHEN o.status = 2 THEN '已接单'
WHEN o.status = 3 THEN '已出发'
WHEN o.status = 4 THEN '已到达'
WHEN o.status = 5 THEN '服务中'
WHEN o.status = 6 THEN '已完成'
WHEN o.status = 7 THEN '已取消'
WHEN o.status = 8 THEN '已退款'
ELSE '未知状态'
END as status_name
FROM order_data o
LEFT JOIN service_goods sg ON o.product_id = sg.id
LEFT JOIN users u ON o.uid = u.id
LEFT JOIN users w ON o.worker_id = w.id
<where>
<if test="totalPriceMin != null and totalPriceMax != null">
and o.total_price BETWEEN #{totalPriceMin} AND #{totalPriceMax}
</if>
<if test="payPriceMin != null and payPriceMax != null">
and o.pay_price BETWEEN #{payPriceMin} AND #{payPriceMax}
</if>
<if test="paystartdate != null and payenddate != null">
and o.pay_time BETWEEN #{paystartdate} AND #{payenddate}
</if>
<if test="startdate != null and enddate != null">
and o.created_at BETWEEN #{startdate} AND #{enddate}
</if>
<if test="bigtype != null and bigtype != null">
and o.bigtype = #{bigtype}
</if>
<if test="makeTimeStart != null and makeTimeEnd != null">
and o.make_time &gt;= #{makeTimeStart} and o.make_time &lt; #{makeTimeEnd}
</if>
<if test="dayDate != null and dayDate != ''">
AND FROM_UNIXTIME(o.make_time, '%Y-%m-%d') = #{dayDate}
</if>
<if test="baojiasf != null and baojiasf != null">
and o.baojiasf = #{baojiasf}
</if>
<if test="uid != null">
and o.uid = #{uid}
</if>
<if test="status != null">
and o.status = #{status}
</if>
<if test="type != null">
and o.type = #{type}
</if>
<if test="workerId != null">
and o.worker_id = #{workerId}
</if>
<if test="orderId != null and orderId != ''">
and o.order_id like concat('%', #{orderId}, '%')
</if>
<if test="name != null and name != ''">
and o.name like concat('%', #{name}, '%')
</if>
<if test="phone != null and phone != ''">
and o.phone like concat('%', #{phone}, '%')
</if>
<if test="mainOrderId != null and mainOrderId != ''">
and o.main_order_id like concat('%', #{mainOrderId}, '%')
</if>
</where>
ORDER BY
CASE
WHEN o.status = 1 AND (o.worker_id IS NULL OR o.worker_id = 0) THEN 0
ELSE 1
END ASC,
o.updated_at DESC
</select>
<!-- 导出专用的resultMap包含所有关联信息 -->
<resultMap type="Order" id="OrderResultForExport">
<result property="id" column="id"/>
<result property="type" column="type"/>
<result property="fileData" column="file_data"/>
<result property="mainOrderId" column="main_order_id"/>
<result property="orderId" column="order_id"/>
<result property="transactionId" column="transaction_id"/>
<result property="createType" column="create_type"/>
<result property="createPhone" column="create_phone"/>
<result property="uid" column="uid"/>
<result property="productId" column="product_id"/>
<result property="name" column="name"/>
<result property="phone" column="phone"/>
<result property="address" column="address"/>
<result property="makeTime" column="make_time"/>
<result property="makeTimeFormatted" column="make_time_formatted"/>
<result property="makeHour" column="make_hour"/>
<result property="num" column="num"/>
<result property="cartid" column="cartid"/>
<result property="bigtype" column="bigtype"/>
<result property="workerdel" column="workerdel"/>
<result property="totalPrice" column="total_price"/>
<result property="goodPrice" column="good_price"/>
<result property="servicePrice" column="service_price"/>
<result property="payPrice" column="pay_price"/>
<result property="couponId" column="coupon_id"/>
<result property="deduction" column="deduction"/>
<result property="payTime" column="pay_time"/>
<result property="status" column="status"/>
<result property="isPause" column="is_pause"/>
<result property="mark" column="mark"/>
<result property="addressId" column="address_id"/>
<result property="sku" column="sku"/>
<result property="workerId" column="worker_id"/>
<result property="firstWorkerId" column="first_worker_id"/>
<result property="receiveTime" column="receive_time"/>
<result property="isComment" column="is_comment"/>
<result property="receiveType" column="receive_type"/>
<result property="isAccept" column="is_accept"/>
<result property="middlePhone" column="middle_phone"/>
<result property="userPhone" column="user_phone"/>
<result property="workerPhone" column="worker_phone"/>
<result property="addressEn" column="address_en"/>
<result property="uidAdmin" column="uid_admin"/>
<result property="addressAdmin" column="address_admin"/>
<result property="logStatus" column="log_status"/>
<result property="logJson" column="log_json"/>
<result property="jsonStatus" column="json_status"/>
<result property="logImages" column="log_images"/>
<result property="createdAt" column="created_at"/>
<result property="updatedAt" column="updated_at"/>
<result property="deletedAt" column="deleted_at"/>
<result property="odertype" column="odertype"/>
<result property="reamk" column="reamk"/>
<!-- 关联信息字段 -->
<result property="productName" column="product_name"/>
<result property="uname" column="uname"/>
<result property="uphone" column="uphone"/>
<result property="workerName" column="worker_name"/>
<result property="workerPhone" column="worker_phone"/>
<result property="statusName" column="status_name"/>
</resultMap>
</mapper>

View File

@ -15,6 +15,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createdAt" column="created_at" />
<result property="updatedAt" column="updated_at" />
</resultMap>
<!-- 导出专用的resultMap包含用户信息 -->
<resultMap type="PayMoneyLog" id="PayMoneyLogResultWithUser">
<result property="id" column="id" />
<result property="oid" column="oid" />
<result property="orderId" column="order_id" />
<result property="uid" column="uid" />
<result property="price" column="price" />
<result property="mark" column="mark" />
<result property="payTime" column="pay_time" />
<result property="createdAt" column="created_at" />
<result property="updatedAt" column="updated_at" />
<result property="uname" column="uname" />
</resultMap>
<sql id="selectPayMoneyLogVo">
select id, oid, order_id, uid, price, mark, pay_time, created_at, updated_at from pay_money_log
@ -23,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectPayMoneyLogList" parameterType="PayMoneyLog" resultMap="PayMoneyLogResult">
<include refid="selectPayMoneyLogVo"/>
<where>
<if test="oid != null "> and oid = #{oid}</if>
<if test="orderId != null and orderId != ''"> and order_id like concat('%',#{orderId},'%')</if>
<if test="uid != null "> and uid = #{uid}</if>
<if test="price != null "> and price = #{price}</if>
@ -86,4 +100,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</delete>
<!-- 查询支付记录统计数据 -->
<select id="selectPayMoneyLogStatistics" resultType="java.util.Map">
SELECT
IFNULL(SUM(CASE WHEN price > 0 THEN price ELSE 0 END), 0) as income,
IFNULL(ABS(SUM(CASE WHEN price &lt; 0 THEN price ELSE 0 END)), 0) as expense,
IFNULL(SUM(price), 0) as balance
FROM pay_money_log
</select>
<!-- 查询支付记录列表(导出专用,包含用户信息) -->
<select id="selectPayMoneyLogListForExport" parameterType="PayMoneyLog" resultMap="PayMoneyLogResultWithUser">
SELECT
pml.id, pml.oid, pml.order_id, pml.uid, pml.price,
pml.mark, pml.pay_time, pml.created_at, pml.updated_at,
u.name as uname
FROM pay_money_log pml
LEFT JOIN users u ON pml.uid = u.id
<where>
<if test="oid != null "> and pml.oid = #{oid}</if>
<if test="orderId != null and orderId != ''"> and pml.order_id like concat('%',#{orderId},'%')</if>
<if test="uid != null "> and pml.uid = #{uid}</if>
<if test="price != null "> and pml.price = #{price}</if>
<if test="mark != null and mark != ''"> and pml.mark = #{mark}</if>
<if test="payTime != null "> and pml.pay_time = #{payTime}</if>
</where>
order by pml.id desc
</select>
</mapper>

View File

@ -32,8 +32,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectUserSecondaryCardList" parameterType="UserSecondaryCard" resultMap="UserSecondaryCardResult">
<include refid="selectUserSecondaryCardVo"/>
<where>
<if test="orderid != null and orderid != ''"> and orderid = #{orderid}</if>
<if test="title != null and title != ''"> and title = #{title}</if>
<if test="orderid != null and orderid != ''"> and orderid like concat('%', #{orderid}, '%')</if>
<if test="title != null and title != ''"> and title like concat('%', #{title}, '%')</if>
<if test="goodsids != null and goodsids != ''"> and goodsids = #{goodsids}</if>
<if test="showMoney != null "> and show_money = #{showMoney}</if>
<if test="realMoney != null "> and real_money = #{realMoney}</if>

View File

@ -18,6 +18,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createdAt" column="created_at" />
<result property="updatedAt" column="updated_at" />
</resultMap>
<!-- 导出专用的resultMap包含用户信息 -->
<resultMap type="WechatTransfer" id="WechatTransferResultWithUser">
<result property="id" column="id" />
<result property="uid" column="uid" />
<result property="batchId" column="batch_id" />
<result property="money" column="money" />
<result property="status" column="status" />
<result property="orderId" column="order_id" />
<result property="openid" column="openid" />
<result property="paid" column="paid" />
<result property="payTime" column="pay_time" />
<result property="time" column="time" />
<result property="createdAt" column="created_at" />
<result property="updatedAt" column="updated_at" />
<result property="uname" column="uname" />
</resultMap>
<sql id="selectWechatTransferVo">
select id, uid, batch_id, money, status, order_id, openid, paid, pay_time, time, created_at, updated_at from wechat_transfer
@ -118,4 +135,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="params.beginTime != null and params.beginTime != '' and params.endTime != null and params.endTime != ''"> and time between #{params.beginTime} and #{params.endTime}</if>
</where>
</select>
<!-- 查询wechat_transfer列表导出专用包含用户信息 -->
<select id="selectWechatTransferListForExport" parameterType="WechatTransfer" resultMap="WechatTransferResultWithUser">
SELECT
wt.id, wt.uid, wt.batch_id, wt.money, wt.status, wt.order_id,
wt.openid, wt.paid, wt.pay_time, wt.time, wt.created_at, wt.updated_at,
u.name as uname
FROM wechat_transfer wt
LEFT JOIN users u ON wt.uid = u.id
<where>
<if test="uid != null "> and wt.uid = #{uid} </if>
<if test="batchId != null and batchId != ''"> and wt.batch_id like concat('%', #{batchId}, '%')</if>
<if test="status != null "> and wt.status = #{status}</if>
<if test="priceMin != null and priceMax != null">
and wt.money BETWEEN #{priceMin} AND #{priceMax}
</if>
<if test="params.beginPayTime != null and params.beginPayTime != '' and params.endPayTime != null and params.endPayTime != ''"> and wt.pay_time between #{params.beginPayTime} and #{params.endPayTime}</if>
<if test="params.beginTime != null and params.beginTime != '' and params.endTime != null and params.endTime != ''"> and wt.time between #{params.beginTime} and #{params.endTime}</if>
</where>
order by wt.id desc
</select>
</mapper>

View File

@ -16,6 +16,14 @@ export function getPayMoneyLog(id) {
method: 'get'
})
}
// 查询支付记录统计数据
export function getPayMoneyLogStatistics() {
return request({
url: '/system/PayMoneyLog/getStatistics',
method: 'get'
})
}
// 查询wechat_transfer详细
export function getUserDataList(type) {
return request({

View File

@ -11,14 +11,14 @@
/>
</el-form-item>
<el-form-item label="支付单号" prop="transactionId">
<el-input
v-model="queryParams.transactionId"
placeholder="请输入微信支付单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="支付单号" prop="transactionId">-->
<!-- <el-input-->
<!-- v-model="queryParams.transactionId"-->
<!-- placeholder="请输入微信支付单号"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="用户" prop="uid">
<user-select
v-model="queryParams.uid"
@ -46,25 +46,25 @@
<el-option label="驳回退款" :value="22" />
</el-select>
</el-form-item>
<el-form-item label="支付金额" prop="priceRange">
<el-input
v-model="queryParams.payPriceMin"
placeholder="最低价"
style="width: 100px; margin-right: 10px;"
type="number"
min="0"
clearable
/>
<span style="margin: 0 5px;">-</span>
<el-input
v-model="queryParams.payPriceMax"
placeholder="最高价"
style="width: 100px;"
type="number"
min="0"
clearable
/>
</el-form-item>
<!-- <el-form-item label="支付金额" prop="priceRange">-->
<!-- <el-input-->
<!-- v-model="queryParams.payPriceMin"-->
<!-- placeholder="最低价"-->
<!-- style="width: 100px; margin-right: 10px;"-->
<!-- type="number"-->
<!-- min="0"-->
<!-- clearable-->
<!-- />-->
<!-- <span style="margin: 0 5px;">-</span>-->
<!-- <el-input-->
<!-- v-model="queryParams.payPriceMax"-->
<!-- placeholder="最高价"-->
<!-- style="width: 100px;"-->
<!-- type="number"-->
<!-- min="0"-->
<!-- clearable-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="支付时间">
<el-date-picker
v-model="daterangePayTime"
@ -122,33 +122,84 @@
style="width: 150px;"
/>
</el-form-item>
<el-form-item label="商品类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择类型" clearable style="width: 150px;">
<el-option label="服务项目" :value="1" />
<el-option label="商品" :value="2" />
</el-select>
</el-form-item>
<!-- <el-form-item label="商品类型" prop="type">-->
<!-- <el-select v-model="queryParams.type" placeholder="请选择类型" clearable style="width: 150px;">-->
<!-- <el-option label="服务项目" :value="1" />-->
<!-- <el-option label="商品" :value="2" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="是否自提" prop="isself">
<el-select v-model="queryParams.isself" placeholder="请选择" clearable style="width: 150px;">
<el-option label="是" :value="1" />
<el-option label="否" :value="2" />
</el-select>
</el-form-item>
<el-form-item label="售后状态" prop="returnstatus">
<el-select v-model="queryParams.returnstatus" placeholder="请选择售后状态" clearable style="width: 150px;">
<el-option label="无售后" :value="0" />
<el-option label="用户申请" :value="1" />
<el-option label="平台同意" :value="2" />
<el-option label="用户添加物流" :value="3" />
<el-option label="平台收货" :value="4" />
<el-option label="平台退款" :value="5" />
<el-option label="平台驳回" :value="6" />
<el-option label="用户取消售后" :value="7" />
<el-option label="退款失败" :value="8" />
</el-select>
</el-form-item>
<!-- <el-form-item label="售后状态" prop="returnstatus">-->
<!-- <el-select v-model="queryParams.returnstatus" placeholder="请选择售后状态" clearable style="width: 150px;">-->
<!-- <el-option label="无售后" :value="0" />-->
<!-- <el-option label="用户申请" :value="1" />-->
<!-- <el-option label="平台同意" :value="2" />-->
<!-- <el-option label="用户添加物流" :value="3" />-->
<!-- <el-option label="平台收货" :value="4" />-->
<!-- <el-option label="平台退款" :value="5" />-->
<!-- <el-option label="平台驳回" :value="6" />-->
<!-- <el-option label="用户取消售后" :value="7" />-->
<!-- <el-option label="退款失败" :value="8" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
</el-form>
<!-- <el-row :gutter="10" class="mb8">-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['system:GoodsOrder:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['system:GoodsOrder:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['system:GoodsOrder:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['system:GoodsOrder:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
<!-- </el-row>-->
<!-- 操作按钮 -->
<el-row :gutter="10" class="mb8">
@ -166,13 +217,13 @@
<el-col :span="1.5">
<el-button
type="success"
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExportData"
@click="handleExport"
v-hasPermi="['system:GoodsOrder:export']"
>导出数据</el-button>
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -189,7 +240,8 @@
<!-- 订单基本信息 -->
<el-table-column label="主订单号" align="center" prop="mainOrderId" class-name="order-column" />
<el-table-column label="用户姓名" align="center" width="95" prop="uname" class-name="product-column" />
<el-table-column label="用户电话" align="center" width="115" prop="uphone" class-name="product-column" />
<el-table-column label="订单状态" align="center" prop="status" class-name="order-column">
<template slot-scope="scope">
<dict-tag :options="dict.type.goods_order_status" :value="scope.row.status"/>
@ -212,7 +264,7 @@
</div>
</template>
</el-table-column>
<el-table-column label="数量" align="center" width="65" prop="num" class-name="product-column" />
<!-- <el-table-column label="数量" align="center" width="65" prop="num" class-name="product-column" />-->
<!-- 金额信息 -->
<el-table-column label="总价" width="100px" align="center" prop="totalPrice" class-name="amount-column">
@ -1329,7 +1381,12 @@ export default {
this.currentRefundPaymentData = null;
this.getList(); //
},
/** 导出按钮操作 */
handleExport() {
this.download('system/GoodsOrder/export', {
...this.queryParams
}, `GoodsOrder_${new Date().getTime()}.xlsx`)
},
/** 统一退款按钮操作 */
handleUnifiedRefund(row) {
this.currentRefundOrder = row;

View File

@ -17,16 +17,16 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
<el-option
v-for="dict in dict.type.service_goods_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="状态" prop="status">-->
<!-- <el-select v-model="queryParams.status" placeholder="请选择状态" clearable>-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.service_goods_status"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="价格">
<el-input v-model="queryParams.minPrice" class="number-input" type="number" placeholder="最小值" clearable style="width: 120px;" />
-
@ -94,6 +94,16 @@
@click="handleDelete"
v-hasPermi="['system:ServiceGoods:remove']"
>删除</el-button>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:GoodsShangPin:export']"
>导出</el-button>
</el-col>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@ -747,8 +757,9 @@ export default {
/** 导出按钮操作 */
handleExport() {
this.download('system/ServiceGoods/export', {
...this.queryParams
});
...this.queryParams,
type: '2' //
}, `商品数据_${new Date().getTime()}.xlsx`);
},
//
addQuestion() {

View File

@ -82,18 +82,18 @@
/>
</el-form-item>
<el-form-item label="支付时间">
<el-date-picker
v-model="daterangePayTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="updatePayTime"
></el-date-picker>
</el-form-item>
<!-- <el-form-item label="支付时间">-->
<!-- <el-date-picker-->
<!-- v-model="daterangePayTime"-->
<!-- style="width: 240px"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- type="daterange"-->
<!-- range-separator="-"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- @change="updatePayTime"-->
<!-- ></el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item label="创建时间">
<el-date-picker
@ -171,6 +171,16 @@
v-hasPermi="['system:Order:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:Order:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"

View File

@ -1,9 +1,9 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="订单号" prop="oid">
<el-form-item label="订单号" prop="orderId">
<el-input
v-model="queryParams.oid"
v-model="queryParams.orderId"
placeholder="请输入订单ID"
clearable
@keyup.enter.native="handleQuery"
@ -25,9 +25,98 @@
</el-form-item>
</el-form>
<!-- 统计卡片 -->
<el-row :gutter="20" style="margin-bottom: 20px;">
<el-col :span="8">
<el-card shadow="hover" class="statistics-card income-card">
<div class="statistics-content">
<div class="statistics-icon">
<i class="el-icon-money" style="color: #67C23A; font-size: 24px;"></i>
</div>
<div class="statistics-info">
<div class="statistics-label">总收入</div>
<div class="statistics-value">¥{{ formatMoney(statistics.income) }}</div>
</div>
</div>
</el-card>
</el-col>
<el-col :span="8">
<el-card shadow="hover" class="statistics-card expense-card">
<div class="statistics-content">
<div class="statistics-icon">
<i class="el-icon-shopping-cart-2" style="color: #F56C6C; font-size: 24px;"></i>
</div>
<div class="statistics-info">
<div class="statistics-label">总支出</div>
<div class="statistics-value">¥{{ formatMoney(statistics.expense) }}</div>
</div>
</div>
</el-card>
</el-col>
<el-col :span="8">
<el-card shadow="hover" class="statistics-card balance-card">
<div class="statistics-content">
<div class="statistics-icon">
<i class="el-icon-wallet" style="color: #409EFF; font-size: 24px;"></i>
</div>
<div class="statistics-info">
<div class="statistics-label">余额</div>
<div class="statistics-value" :style="{ color: statistics.balance >= 0 ? '#67C23A' : '#F56C6C' }">
¥{{ formatMoney(statistics.balance) }}
</div>
</div>
</div>
</el-card>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['system:PayMoneyLog:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['system:PayMoneyLog:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['system:PayMoneyLog:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:PayMoneyLog:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="PayMoneyLogList" @selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="ID" align="center" width="55" prop="id" />
@ -134,7 +223,7 @@
</template>
<script>
import { listPayMoneyLog, getPayMoneyLog, delPayMoneyLog, addPayMoneyLog, updatePayMoneyLog } from "@/api/system/PayMoneyLog"
import { listPayMoneyLog, getPayMoneyLog, delPayMoneyLog, addPayMoneyLog, updatePayMoneyLog, getPayMoneyLogStatistics } from "@/api/system/PayMoneyLog"
export default {
name: "PayMoneyLog",
@ -193,11 +282,18 @@ export default {
payTime: [
{ required: true, message: "支付时间不能为空", trigger: "blur" }
],
},
//
statistics: {
income: 0,
expense: 0,
balance: 0
}
}
},
created() {
this.getList()
this.getStatistics()
},
methods: {
/** 查询支付记录列表 */
@ -233,6 +329,7 @@ export default {
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
this.getStatistics()
},
/** 重置按钮操作 */
resetQuery() {
@ -272,12 +369,14 @@ export default {
this.$modal.msgSuccess("修改成功")
this.open = false
this.getList()
this.getStatistics()
})
} else {
addPayMoneyLog(this.form).then(response => {
this.$modal.msgSuccess("新增成功")
this.open = false
this.getList()
this.getStatistics()
})
}
}
@ -290,6 +389,7 @@ export default {
return delPayMoneyLog(ids)
}).then(() => {
this.getList()
this.getStatistics()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
},
@ -305,7 +405,80 @@ export default {
return '0.00';
}
return parseFloat(value).toFixed(2);
},
/** 获取统计数据 */
getStatistics() {
getPayMoneyLogStatistics().then(response => {
this.statistics = response.data
}).catch(() => {
this.statistics = {
income: 0,
expense: 0,
balance: 0
}
})
}
}
}
</script>
<style scoped>
.statistics-card {
border-radius: 8px;
transition: all 0.3s ease;
}
.statistics-card:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.statistics-content {
display: flex;
align-items: center;
padding: 10px 0;
}
.statistics-icon {
margin-right: 15px;
display: flex;
align-items: center;
justify-content: center;
width: 50px;
height: 50px;
border-radius: 50%;
background-color: rgba(103, 194, 58, 0.1);
}
.expense-card .statistics-icon {
background-color: rgba(245, 108, 108, 0.1);
}
.balance-card .statistics-icon {
background-color: rgba(64, 158, 255, 0.1);
}
.statistics-info {
flex: 1;
}
.statistics-label {
font-size: 14px;
color: #606266;
margin-bottom: 5px;
}
.statistics-value {
font-size: 20px;
font-weight: bold;
color: #303133;
}
.income-card .statistics-value {
color: #67C23A;
}
.expense-card .statistics-value {
color: #F56C6C;
}
</style>

View File

@ -49,16 +49,16 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
<el-option
v-for="dict in dict.type.service_goods_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="状态" prop="status">-->
<!-- <el-select v-model="queryParams.status" placeholder="请选择状态" clearable>-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.service_goods_status"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="价格">
<el-input v-model="queryParams.minPrice" class="number-input" type="number" placeholder="最小值" clearable style="width: 120px;" />
-
@ -117,6 +117,16 @@
@click="handleDelete"
v-hasPermi="['system:ServiceGoods:remove']"
>删除</el-button>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:GoodsShangPin:export']"
>导出</el-button>
</el-col>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@ -407,10 +417,10 @@
<!-- 调试信息 -->
<div style="font-size: 12px; color: #909399; margin-top: 5px;">
<i class="el-icon-info"></i> 城市列表状态: {{ cityLoading ? '加载中...' : `已加载 ${cityList.length} 个城市` }}
<el-button
v-if="!cityLoading && cityList.length === 0"
type="text"
size="mini"
<el-button
v-if="!cityLoading && cityList.length === 0"
type="text"
size="mini"
@click="getCityList"
style="margin-left: 10px;"
>
@ -934,7 +944,7 @@ export default {
newBasicTag: '',
saveTimeout: null, //
disableGroupAndFixed: false, //
//
cityList: [],
cityLoading: false,
@ -1682,7 +1692,7 @@ export default {
handleExport() {
this.download('system/ServiceGoods/export', {
...this.queryParams
}, `ServiceGoods_${new Date().getTime()}.xlsx`)
}, `服务内容数据_${new Date().getTime()}.xlsx`);
},
playAudio(url) {
this.currentAudioUrl = url
@ -2241,9 +2251,9 @@ export default {
this.disableGroupAndFixed = false;
}
},
// ========== ==========
/** 获取城市列表 */
getCityList() {
console.log('开始获取城市列表...');
@ -2258,7 +2268,7 @@ export default {
this.cityLoading = false;
});
},
/** 城市选择变化处理 */
handleCityChange(value) {
console.log('城市选择变化:', value);
@ -2267,13 +2277,13 @@ export default {
this.$set(this.form, 'cityArray', cityArray);
console.log('设置后的城市数组:', this.form.cityArray);
},
/** 根据城市ID获取城市名称 */
getCityNameById(id) {
const city = this.cityList.find(item => item.id === id);
return city ? city.title : id;
},
/** 解析城市字符串为数组 */
getCityArray(cityString) {
if (!cityString) return [];
@ -2297,7 +2307,7 @@ export default {
}
return [];
},
/** 移除城市 */
removeCity(cityId) {
if (!this.form.cityArray) {

View File

@ -395,6 +395,17 @@
<dict-tag :options="dict.type.cika" :value="purchaseDetailsData.status" />
</el-descriptions-item>
</el-descriptions>
<!-- 导出按钮 -->
<div class="export-section" style="margin-top: 15px; text-align: right;">
<el-button
type="success"
icon="el-icon-download"
size="mini"
@click="handleExportPurchaseDetails"
:disabled="!purchaseDetailsList || purchaseDetailsList.length === 0"
>导出购买明细</el-button>
</div>
</div>
<el-table
@ -441,6 +452,7 @@
<script>
import { listUserSecondaryCard, getUserSecondaryCard, delUserSecondaryCard, addUserSecondaryCard, updateUserSecondaryCard ,selectList,selectServiceCateList, getPurchaseDetails} from "@/api/system/UserSecondaryCard"
import { getGoodsDataList } from "@/api/system/GoodsOrder"
export default {
name: "UserSecondaryCard",
dicts: ['cika'],
@ -926,6 +938,19 @@ export default {
this.$modal.msgError(`次卡状态更新失败: ${error.msg}`);
});
}).catch(() => {});
},
//
handleExportPurchaseDetails() {
if (!this.purchaseDetailsList || this.purchaseDetailsList.length === 0) {
this.$message.warning('没有可导出的购买明细数据');
return;
}
// 使cardId
this.download('system/UserSecondaryCard/exportPurchaseDetails', {
cardId: this.purchaseDetailsData.id
}, `${this.purchaseDetailsData.title || '次卡'}_购买明细_${new Date().getTime()}.xlsx`);
}
}
}
@ -1049,4 +1074,21 @@ export default {
.purchase-details-header .el-descriptions {
margin-bottom: 0;
}
.export-section {
margin-top: 15px;
text-align: right;
padding: 10px 0;
border-top: 1px solid #ebeef5;
}
.export-section .el-button {
font-weight: 500;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.export-section .el-button:hover {
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
transform: translateY(-1px);
}
</style>

View File

@ -160,6 +160,16 @@
v-hasPermi="['system:users:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:UsersWorker:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
@ -210,8 +220,8 @@
<el-table-column label="等级" align="center" prop="level" width="100">
<template slot-scope="scope">
<div class="level-container">
<el-select
v-model="scope.row.level"
<el-select
v-model="scope.row.level"
@change="handleRowClick(scope.row)"
size="small"
class="level-select-custom"
@ -361,9 +371,9 @@
<!-- 师傅质保金明细弹窗 -->
<el-dialog :title="'师傅质保金明细'" :visible.sync="workerMarginLogDialogVisible" width="70%" top="5vh" append-to-body>
<worker-margin-log-detail-table
:worker-id="currentWorkerId"
@close="workerMarginLogDialogVisible = false"
<worker-margin-log-detail-table
:worker-id="currentWorkerId"
@close="workerMarginLogDialogVisible = false"
@margin-changed="handleMarginChanged"
v-if="workerMarginLogDialogVisible"
:key="'margin-log-' + currentWorkerId"
@ -521,7 +531,7 @@ export default {
this.getlevelList();
this.initAreaDataCache();
this.initSkillDataCache();
//
console.log('UsersWorker - 组件创建完成');
},
@ -532,7 +542,7 @@ export default {
console.log('UsersWorker - 组件挂载,立即初始化缓存');
this.initAreaDataCache();
this.initSkillDataCache();
//
setTimeout(() => {
console.log('UsersWorker - 缓存初始化时间结束,重新获取列表数据');
@ -548,10 +558,10 @@ export default {
this.usersList = response.rows
this.total = response.total
this.loading = false
//
this.checkExpiredPauseStatus();
//
console.log('UsersWorker - 获取到的用户列表:', this.usersList);
if (this.usersList.length > 0) {
@ -704,8 +714,9 @@ export default {
/** 导出按钮操作 */
handleExport() {
this.download('system/users/export', {
...this.queryParams
}, `users_${new Date().getTime()}.xlsx`)
...this.queryParams,
type: '2' //
}, `师傅数据_${new Date().getTime()}.xlsx`);
},
handleEditConfirm(user) {
if (this.editMode === 'add') {
@ -760,7 +771,7 @@ export default {
if (!serviceCityIds) return '-';
try {
console.log('格式化服务区域,原始数据:', serviceCityIds, '类型:', typeof serviceCityIds);
//
let areaIds = [];
if (typeof serviceCityIds === 'string') {
@ -780,14 +791,14 @@ export default {
} else {
areaIds = [serviceCityIds];
}
//
areaIds = areaIds.map(id => parseInt(id)).filter(id => !isNaN(id) && id > 0);
console.log('解析后的地区ID数组:', areaIds);
console.log('地区数据缓存:', this.areaDataCache);
if (areaIds.length === 0) return '-';
//
const areaNames = areaIds.map(id => {
const cached = this.areaDataCache[id];
@ -800,7 +811,7 @@ export default {
return `区域${id}`; //
}
});
const result = areaNames.join(', ');
console.log('格式化结果:', result);
return result;
@ -814,7 +825,7 @@ export default {
if (!skillIds) return '-';
try {
console.log('格式化技能名称,原始数据:', skillIds, '类型:', typeof skillIds);
//
let skillIdArray = [];
if (typeof skillIds === 'string') {
@ -831,19 +842,19 @@ export default {
} else if (Array.isArray(skillIds)) {
skillIdArray = skillIds;
}
console.log('解析后的技能ID数组:', skillIdArray);
console.log('技能数据缓存:', this.skillDataCache);
if (skillIdArray.length === 0) return '-';
//
const skillNames = skillIdArray.map(id => {
const cached = this.skillDataCache[id];
console.log(`技能ID ${id} 对应的缓存数据:`, cached);
return cached ? cached.title : id;
});
const result = skillNames.join(', ');
console.log('格式化结果:', result);
return result;
@ -855,7 +866,7 @@ export default {
//
initAreaDataCache() {
console.log('开始初始化地区数据缓存');
// IDAPI
const commonAreas = [
// 西
@ -895,7 +906,7 @@ export default {
this.areaDataCache[province.id] = province;
console.log(`添加省份到缓存: ${province.id} -> ${province.title}`);
});
//
const loadPromises = response.data.map(province => {
const cityParams = {
@ -915,7 +926,7 @@ export default {
return Promise.resolve();
});
});
//
Promise.all(loadPromises).then(() => {
console.log('所有地区数据加载完成,最终缓存:', this.areaDataCache);
@ -969,7 +980,7 @@ export default {
if (this.areaDataCache[id]) {
return; //
}
// 使getDiyCity APIID
getDiyCity(id).then(response => {
if (response.code === 200 && response.data) {
@ -984,7 +995,7 @@ export default {
console.error(`API加载地区失败ID: ${id}:`, error);
});
},
//
handlePauseOrder(row) {
console.log('点击暂停接单,师傅信息:', row);
@ -992,7 +1003,7 @@ export default {
this.$message.error('师傅信息不完整,无法暂停接单');
return;
}
//
this.pauseOrderForm = {
id: row.id,
@ -1000,42 +1011,42 @@ export default {
prohibitTimeNum: 1,
reason: ''
};
//
this.$nextTick(() => {
if (this.$refs.pauseOrderForm) {
this.$refs.pauseOrderForm.clearValidate();
}
});
this.pauseOrderDialogVisible = true;
},
//
decreasePauseTime() {
if (this.pauseOrderForm.prohibitTimeNum > 1) {
this.pauseOrderForm.prohibitTimeNum--;
}
},
//
increasePauseTime() {
if (this.pauseOrderForm.prohibitTimeNum < 168) {
this.pauseOrderForm.prohibitTimeNum++;
}
},
//
confirmPauseOrder() {
this.$refs.pauseOrderForm.validate(valid => {
if (valid) {
this.pauseOrderLoading = true;
const pauseData = {
id: this.pauseOrderForm.id,
prohibitTimeNum: this.pauseOrderForm.prohibitTimeNum
};
pauseOrder(pauseData).then(response => {
this.$modal.msgSuccess(`已成功暂停师傅"${this.pauseOrderForm.name}"接单${this.pauseOrderForm.prohibitTimeNum}小时`);
this.pauseOrderDialogVisible = false;
@ -1049,7 +1060,7 @@ export default {
}
});
},
//
handleResumeOrder(row) {
console.log('点击恢复接单,师傅信息:', row);
@ -1057,14 +1068,14 @@ export default {
this.$message.error('师傅信息不完整,无法恢复接单');
return;
}
this.$modal.confirm(`确认要恢复师傅"${row.name}"的接单状态吗?`).then(() => {
this.resumeOrder(row.id, row.name);
}).catch(() => {
console.log('用户取消恢复接单操作');
});
},
//
resumeOrder(userId, userName) {
const resumeData = {
@ -1072,7 +1083,7 @@ export default {
prohibitTimeNum: 0,
isStop: 0
};
updateUsers(resumeData).then(response => {
this.$modal.msgSuccess(`已成功恢复师傅"${userName}"的接单状态`);
this.getList(); //
@ -1085,7 +1096,7 @@ export default {
checkExpiredPauseStatus() {
const now = new Date();
let hasExpired = false;
this.usersList.forEach(user => {
if (user.isStop === 1 && user.prohibitTime) {
const prohibitTime = new Date(user.prohibitTime);
@ -1097,7 +1108,7 @@ export default {
}
}
});
//
if (hasExpired) {
this.$message.info('检测到部分师傅的暂停时间已过期,请手动恢复接单状态。');
@ -1358,7 +1369,7 @@ export default {
width: 70px !important;
font-size: 12px;
}
.level-number {
width: 16px;
height: 16px;