2025008071805
This commit is contained in:
parent
4e9db1b5a9
commit
50216a1806
|
|
@ -5342,69 +5342,48 @@ public class AppleOrderController extends BaseController {
|
||||||
return AppletControllerUtil.appletWarning("订单状态不正确,无法接单");
|
return AppletControllerUtil.appletWarning("订单状态不正确,无法接单");
|
||||||
}
|
}
|
||||||
|
|
||||||
// // 获取当前登录用户(师傅)
|
|
||||||
// String token = request.getHeader("token");
|
|
||||||
// if (StringUtils.isEmpty(token)) {
|
|
||||||
// return AppletControllerUtil.appletdengluWarning("用户未登录");
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//// Users currentUser = AppletLoginUtil.getUserByToken(token);
|
|
||||||
//// if (currentUser == null) {
|
|
||||||
//// return AppletControllerUtil.appletdengluWarning("用户未登录或token无效");
|
|
||||||
//// }
|
|
||||||
// Users currentUser = (Users) userValidation.get("user");
|
|
||||||
// if (currentUser == null) {
|
|
||||||
// return AppletControllerUtil.appletdengluWarning("用户信息获取失败");
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// // 检查用户是否为师傅
|
|
||||||
// if (!"2".equals(currentUser.getType()) || currentUser.getIsWork() != 1) {
|
|
||||||
// return AppletControllerUtil.appletWarning("只有师傅才能接单");
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 检查订单是否已被其他师傅接单
|
// 检查订单是否已被其他师傅接单
|
||||||
if (order.getWorkerId() != null && order.getWorkerId() > 0) {
|
if (order.getWorkerId() != null && order.getWorkerId() > 0) {
|
||||||
return AppletControllerUtil.appletWarning("该订单已被其他师傅接单");
|
return AppletControllerUtil.appletWarning("该订单已被其他师傅接单");
|
||||||
}
|
}
|
||||||
|
DispatchUtil.creatWorkerForOrder(order, currentUser);
|
||||||
// 更新订单状态为2(待服务)并分配师傅
|
// // 更新订单状态为2(待服务)并分配师傅
|
||||||
order.setStatus(2L);
|
// order.setStatus(2L);
|
||||||
order.setWorkerId(currentUser.getId());
|
// order.setWorkerId(currentUser.getId());
|
||||||
order.setReceiveTime(new Date());
|
// order.setReceiveTime(new Date());
|
||||||
order.setReceiveType(1L); // 1:自由抢单
|
// order.setReceiveType(1L); // 1:自由抢单
|
||||||
order.setIsAccept(1); // 1:已经接单
|
// order.setIsAccept(1); // 1:已经接单
|
||||||
|
//
|
||||||
// 如果是第一次接单,设置firstWorkerId
|
// // 如果是第一次接单,设置firstWorkerId
|
||||||
if (order.getFirstWorkerId() == null) {
|
// if (order.getFirstWorkerId() == null) {
|
||||||
order.setFirstWorkerId(currentUser.getId());
|
// order.setFirstWorkerId(currentUser.getId());
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 更新订单
|
// // 更新订单
|
||||||
int updateResult = orderService.updateOrder(order);
|
// int updateResult = orderService.updateOrder(order);
|
||||||
if (updateResult <= 0) {
|
// if (updateResult <= 0) {
|
||||||
return AppletControllerUtil.appletError("订单状态更新失败");
|
// return AppletControllerUtil.appletError("订单状态更新失败");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 添加订单日志
|
// // 添加订单日志
|
||||||
OrderLog orderLog = new OrderLog();
|
// OrderLog orderLog = new OrderLog();
|
||||||
orderLog.setOid(orderId);
|
// orderLog.setOid(orderId);
|
||||||
orderLog.setOrderId(order.getOrderId());
|
// orderLog.setOrderId(order.getOrderId());
|
||||||
orderLog.setLogOrderId(order.getOrderId());
|
// orderLog.setLogOrderId(order.getOrderId());
|
||||||
orderLog.setTitle("师傅接单");
|
// orderLog.setTitle("师傅接单");
|
||||||
orderLog.setType(new BigDecimal("2")); // 2:接单
|
// orderLog.setType(new BigDecimal("2")); // 2:接单
|
||||||
JSONObject content = new JSONObject();
|
// JSONObject content = new JSONObject();
|
||||||
content.put("name", "师傅" + currentUser.getName() + "接单成功");
|
// content.put("name", "师傅" + currentUser.getName() + "接单成功");
|
||||||
orderLog.setContent(content.toJSONString());
|
// orderLog.setContent(content.toJSONString());
|
||||||
orderLog.setWorkerId(currentUser.getId());
|
// orderLog.setWorkerId(currentUser.getId());
|
||||||
orderLog.setWorkerName(currentUser.getName());
|
// orderLog.setWorkerName(currentUser.getName());
|
||||||
orderLog.setFirstWorkerId(currentUser.getId());
|
// orderLog.setFirstWorkerId(currentUser.getId());
|
||||||
orderLog.setOrdertype(1L);
|
// orderLog.setOrdertype(1L);
|
||||||
|
//
|
||||||
int logResult = orderLogService.insertOrderLog(orderLog);
|
// int logResult = orderLogService.insertOrderLog(orderLog);
|
||||||
if (logResult <= 0) {
|
// if (logResult <= 0) {
|
||||||
logger.warn("订单日志添加失败,订单ID:{}", orderId);
|
// logger.warn("订单日志添加失败,订单ID:{}", orderId);
|
||||||
}
|
// }
|
||||||
|
|
||||||
return AppletControllerUtil.appletSuccess("接单成功");
|
return AppletControllerUtil.appletSuccess("接单成功");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2726,7 +2726,7 @@ public class AppletController extends BaseController {
|
||||||
|
|
||||||
// 10. 记录积分变动日志
|
// 10. 记录积分变动日志
|
||||||
IntegralLog integralLog = AppletControllerUtil.buildIntegralLog(
|
IntegralLog integralLog = AppletControllerUtil.buildIntegralLog(
|
||||||
user, -totalIntegral, order.getOrderId(), product.getTitle());
|
user, totalIntegral, order.getOrderId(), product.getTitle());
|
||||||
integralLogService.insertIntegralLog(integralLog);
|
integralLogService.insertIntegralLog(integralLog);
|
||||||
|
|
||||||
// 11. 更新商品库存(如果有库存管理)
|
// 11. 更新商品库存(如果有库存管理)
|
||||||
|
|
@ -7120,6 +7120,7 @@ public class AppletController extends BaseController {
|
||||||
// 3. 查询状态为1(待接单)的订单
|
// 3. 查询状态为1(待接单)的订单
|
||||||
Order orderQuery = new Order();
|
Order orderQuery = new Order();
|
||||||
orderQuery.setStatus(1L); // 待接单状态
|
orderQuery.setStatus(1L); // 待接单状态
|
||||||
|
// orderQuery.setWorkerId(Long.parseLong(request.getHeader("userId")));
|
||||||
orderQuery.setQiangdan("1");
|
orderQuery.setQiangdan("1");
|
||||||
List<Order> orderList = orderService.selectOrderList(orderQuery);
|
List<Order> orderList = orderService.selectOrderList(orderQuery);
|
||||||
PageInfo<Order> pageInfo = new PageInfo<>(orderList);
|
PageInfo<Order> pageInfo = new PageInfo<>(orderList);
|
||||||
|
|
|
||||||
|
|
@ -313,10 +313,10 @@ public class UsersController extends BaseController
|
||||||
|
|
||||||
Users newUsers = usersService.selectUsersById(users.getId());
|
Users newUsers = usersService.selectUsersById(users.getId());
|
||||||
System.out.println("###############"+newUsers.getType());
|
System.out.println("###############"+newUsers.getType());
|
||||||
if (newUsers.getType().equals("2")&&users.getStatus()==0){
|
// if (newUsers!=null){
|
||||||
newUsers.setType("1");
|
// // newUsers.setType("1");
|
||||||
newUsers.setIsWork(0);
|
// newUsers.setIsWork(0);
|
||||||
}
|
// }
|
||||||
newUsers.setStatus(users.getStatus());
|
newUsers.setStatus(users.getStatus());
|
||||||
return toAjax(usersService.updateUsers(newUsers));
|
return toAjax(usersService.updateUsers(newUsers));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.system.controller;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -129,7 +129,7 @@ public class WorkerMoneyLogController extends BaseController
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量锁住收益
|
* 批量锁住收益
|
||||||
* @param params {ids:[], lockType:'forever'|'timed', lockday:int}
|
* @param params {ids:[], lockType:'forever'|'days', lockday:int, remark:string}
|
||||||
* @return AjaxResult
|
* @return AjaxResult
|
||||||
*/
|
*/
|
||||||
@PreAuthorize("@ss.hasPermi('system:workerMoneyLog:lock')")
|
@PreAuthorize("@ss.hasPermi('system:workerMoneyLog:lock')")
|
||||||
|
|
@ -137,34 +137,48 @@ public class WorkerMoneyLogController extends BaseController
|
||||||
public AjaxResult lockMoney(@RequestBody Map<String, Object> params) {
|
public AjaxResult lockMoney(@RequestBody Map<String, Object> params) {
|
||||||
Object idsObj = params.get("ids");
|
Object idsObj = params.get("ids");
|
||||||
if (idsObj == null) return AjaxResult.error("未选择数据");
|
if (idsObj == null) return AjaxResult.error("未选择数据");
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
List<Integer> ids = (List<Integer>) idsObj;
|
List<Integer> ids = (List<Integer>) idsObj;
|
||||||
String lockType = (String) params.get("lockType");
|
String lockType = (String) params.get("lockType");
|
||||||
Integer lockday = params.get("lockday") == null ? null : Integer.parseInt(params.get("lockday").toString());
|
Integer lockday = params.get("lockday") == null ? null : Integer.parseInt(params.get("lockday").toString());
|
||||||
|
String remark = (String) params.get("remark");
|
||||||
|
|
||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
Date end = null;
|
Date end = null;
|
||||||
if ("timed".equals(lockType) && lockday != null && lockday > 0) {
|
|
||||||
|
// 如果是按天锁住,计算结束时间
|
||||||
|
if ("days".equals(lockType) && lockday != null && lockday > 0) {
|
||||||
LocalDateTime ldt = LocalDateTime.now().plusDays(lockday);
|
LocalDateTime ldt = LocalDateTime.now().plusDays(lockday);
|
||||||
end = Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant());
|
end = Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant());
|
||||||
}
|
}
|
||||||
|
// 如果是永久锁住,结束时间设置为null
|
||||||
|
|
||||||
for (Integer id : ids) {
|
for (Integer id : ids) {
|
||||||
WorkerMoneyLog log = workerMoneyLogService.selectWorkerMoneyLogById(id);
|
WorkerMoneyLog log = workerMoneyLogService.selectWorkerMoneyLogById(id);
|
||||||
if (log == null) continue;
|
if (log == null) continue;
|
||||||
|
|
||||||
|
// 检查是否已经锁定
|
||||||
|
if (log.getStatus() != null && log.getStatus() == 1) {
|
||||||
|
continue; // 跳过已锁定的数据
|
||||||
|
}
|
||||||
|
|
||||||
log.setStatus(1); // 锁定
|
log.setStatus(1); // 锁定
|
||||||
log.setStatusType(1); // 后台锁定
|
log.setStatusType(1); // 后台锁定
|
||||||
log.setBeginlook(now);
|
log.setBeginlook(now);
|
||||||
if ("timed".equals(lockType) && end != null) {
|
log.setLookMoney(log.getPrice());
|
||||||
|
log.setAdminUpReamk(remark); // 设置锁住原因
|
||||||
|
|
||||||
|
if ("days".equals(lockType) && end != null) {
|
||||||
|
// 按天锁住:设置结束时间和锁住天数
|
||||||
log.setEndlook(end);
|
log.setEndlook(end);
|
||||||
log.setLookday(lockday);
|
log.setLookday(lockday);
|
||||||
|
} else if ("forever".equals(lockType)) {
|
||||||
|
// 永久锁住:结束时间设置为null,锁住天数设置为null
|
||||||
|
log.setEndlook(null);
|
||||||
|
log.setLookday(null);
|
||||||
}
|
}
|
||||||
// else {
|
|
||||||
// // 永久锁住
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
log.setLookMoney(log.getPrice());
|
|
||||||
workerMoneyLogService.updateWorkerMoneyLog(log);
|
workerMoneyLogService.updateWorkerMoneyLog(log);
|
||||||
if ("forever".equals(lockType)){
|
|
||||||
workerMoneyLogService.updateWorkerMoneyLogforever(log);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return AjaxResult.success("锁住收益成功");
|
return AjaxResult.success("锁住收益成功");
|
||||||
}
|
}
|
||||||
|
|
@ -179,6 +193,7 @@ public class WorkerMoneyLogController extends BaseController
|
||||||
public AjaxResult unlockMoney(@RequestBody Map<String, Object> params) {
|
public AjaxResult unlockMoney(@RequestBody Map<String, Object> params) {
|
||||||
Object idsObj = params.get("ids");
|
Object idsObj = params.get("ids");
|
||||||
if (idsObj == null) return AjaxResult.error("未选择数据");
|
if (idsObj == null) return AjaxResult.error("未选择数据");
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
List<Integer> ids = (List<Integer>) idsObj;
|
List<Integer> ids = (List<Integer>) idsObj;
|
||||||
for (Integer id : ids) {
|
for (Integer id : ids) {
|
||||||
WorkerMoneyLog log = workerMoneyLogService.selectWorkerMoneyLogById(id);
|
WorkerMoneyLog log = workerMoneyLogService.selectWorkerMoneyLogById(id);
|
||||||
|
|
@ -193,7 +208,7 @@ public class WorkerMoneyLogController extends BaseController
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 调整收益(奖励/扣除)
|
* 调整收益(奖励/扣除)
|
||||||
* @param params {id, amount, remark}
|
* @param params {id, type:'reward'|'deduct', amount, remark}
|
||||||
* @return AjaxResult
|
* @return AjaxResult
|
||||||
*/
|
*/
|
||||||
@PreAuthorize("@ss.hasPermi('system:workerMoneyLog:adjust')")
|
@PreAuthorize("@ss.hasPermi('system:workerMoneyLog:adjust')")
|
||||||
|
|
@ -203,10 +218,36 @@ public class WorkerMoneyLogController extends BaseController
|
||||||
WorkerMoneyLog log = workerMoneyLogService.selectWorkerMoneyLogById(id);
|
WorkerMoneyLog log = workerMoneyLogService.selectWorkerMoneyLogById(id);
|
||||||
if (log == null) return AjaxResult.error("数据不存在");
|
if (log == null) return AjaxResult.error("数据不存在");
|
||||||
if (log.getStatus() == null || log.getStatus() != 1) return AjaxResult.error("只能调整锁定状态的数据");
|
if (log.getStatus() == null || log.getStatus() != 1) return AjaxResult.error("只能调整锁定状态的数据");
|
||||||
|
|
||||||
|
String type = (String) params.get("type");
|
||||||
BigDecimal amount = new BigDecimal(params.get("amount").toString());
|
BigDecimal amount = new BigDecimal(params.get("amount").toString());
|
||||||
String remark = (String) params.get("remark");
|
String remark = (String) params.get("remark");
|
||||||
log.setAdminUpPrice(amount);
|
|
||||||
|
// 获取当前金额
|
||||||
|
BigDecimal currentPrice = log.getPrice() != null ? log.getPrice() : BigDecimal.ZERO;
|
||||||
|
BigDecimal newPrice;
|
||||||
|
|
||||||
|
if ("reward".equals(type)) {
|
||||||
|
// 奖励:增加金额
|
||||||
|
newPrice = currentPrice.add(amount);
|
||||||
|
log.setAdminUpPrice(amount); // 记录调整金额(正数)
|
||||||
|
} else if ("deduct".equals(type)) {
|
||||||
|
// 扣除:减少金额
|
||||||
|
newPrice = currentPrice.subtract(amount);
|
||||||
|
// 确保金额不为负数
|
||||||
|
if (newPrice.compareTo(BigDecimal.ZERO) < 0) {
|
||||||
|
return AjaxResult.error("扣除金额不能超过当前金额");
|
||||||
|
}
|
||||||
|
log.setAdminUpPrice(amount.negate()); // 记录调整金额(负数)
|
||||||
|
} else {
|
||||||
|
return AjaxResult.error("调整类型参数错误");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新价格和备注
|
||||||
|
log.setPrice(newPrice);
|
||||||
|
log.setLookMoney(newPrice); // 同时更新锁单金额
|
||||||
log.setAdminUpReamk(remark);
|
log.setAdminUpReamk(remark);
|
||||||
|
|
||||||
workerMoneyLogService.updateWorkerMoneyLog(log);
|
workerMoneyLogService.updateWorkerMoneyLog(log);
|
||||||
return AjaxResult.success("调整收益成功");
|
return AjaxResult.success("调整收益成功");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2577,7 +2577,7 @@ public class AppletControllerUtil {
|
||||||
log.setTitle("积分商品兑换");
|
log.setTitle("积分商品兑换");
|
||||||
log.setMark("兑换商品:" + productTitle + ",订单号:" + orderId); // 使用mark字段
|
log.setMark("兑换商品:" + productTitle + ",订单号:" + orderId); // 使用mark字段
|
||||||
log.setType(2L); // 类型:2-减少
|
log.setType(2L); // 类型:2-减少
|
||||||
|
log.setOrderId(orderId);
|
||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
log.setCreatedAt(now);
|
log.setCreatedAt(now);
|
||||||
log.setUpdatedAt(now);
|
log.setUpdatedAt(now);
|
||||||
|
|
|
||||||
|
|
@ -2975,4 +2975,55 @@ public class DispatchUtil {
|
||||||
return worker;
|
return worker;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//抢单的时候处理有不同的处理逻辑
|
||||||
|
public static Users creatWorkerForOrderQiangDan(Order order,Users worker) throws Exception {
|
||||||
|
|
||||||
|
order.setWorkerId(worker.getId());
|
||||||
|
order.setStatus(1L);
|
||||||
|
order.setIsPause(1);
|
||||||
|
order.setReceiveTime(new Date());
|
||||||
|
order.setWorkerPhone(worker.getPhone());
|
||||||
|
UserAddress userAddress = userAddressService.selectUserAddressById(order.getAddressId());
|
||||||
|
if (userAddress != null){
|
||||||
|
order.setUserPhone(userAddress.getPhone());
|
||||||
|
}
|
||||||
|
// order.setMiddlePhone("18339212639");
|
||||||
|
order.setReceiveType(3l);
|
||||||
|
order.setLogStatus(9);
|
||||||
|
com.alibaba.fastjson2.JSONObject jSONObject = new com.alibaba.fastjson2.JSONObject();
|
||||||
|
jSONObject.put("type", 9);
|
||||||
|
order.setLogJson(jSONObject.toJSONString());
|
||||||
|
orderService.updateOrder(order);
|
||||||
|
|
||||||
|
|
||||||
|
OrderLog orderLognew = new OrderLog();
|
||||||
|
orderLognew.setOid(order.getId());
|
||||||
|
orderLognew.setOrderId(order.getOrderId());
|
||||||
|
orderLognew.setTitle("系统派单");
|
||||||
|
orderLognew.setType(new BigDecimal(1.1));
|
||||||
|
com.alibaba.fastjson2.JSONObject jSONObject1 = new com.alibaba.fastjson2.JSONObject();
|
||||||
|
jSONObject1.put("name", "师傅收到派单信息");
|
||||||
|
orderLognew.setContent(jSONObject1.toJSONString());
|
||||||
|
orderLognew.setWorkerId(worker.getId());
|
||||||
|
orderLognew.setWorkerLogId(worker.getId());
|
||||||
|
orderLogService.insertOrderLog(orderLognew);
|
||||||
|
//绑定虚拟号码
|
||||||
|
//微信推送
|
||||||
|
ServiceGoods serviceGoods = serviceGoodsService.selectServiceGoodsById(order.getProductId());
|
||||||
|
//给师傅派单的时候的推送
|
||||||
|
WXsendMsgUtil.sendMsgForWorkerInfo(worker.getOpenid(), order, serviceGoods);
|
||||||
|
//派单的时候需要绑定虚拟号码
|
||||||
|
Map<String, Object> map= OrderBindWorkerUtil.getOrderBindWorkerQiangDan(order.getId());
|
||||||
|
//电话通知师傅接单
|
||||||
|
YunXinPhoneUtilAPI.httpsAxbTransfer(order.getWorkerPhone(), order.getId());
|
||||||
|
// if (map.get("code").equals("200")) {
|
||||||
|
// //电话通知
|
||||||
|
// YunXinPhoneUtilAPI.httpsAxbTransfer(order.getWorkerPhone());
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
return worker;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -34,6 +34,100 @@ public class OrderBindWorkerUtil {
|
||||||
private static final IAreaService areaService= SpringUtils.getBean(IAreaService.class);
|
private static final IAreaService areaService= SpringUtils.getBean(IAreaService.class);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单绑定师傅电话号码操作
|
||||||
|
* @param orderId 订单ID
|
||||||
|
* @return 绑定结果Map,包含code和msg
|
||||||
|
*/
|
||||||
|
public static Map<String, Object> getOrderBindWorkerQiangDan(long orderId) {
|
||||||
|
Map<String, Object> result = new HashMap<>();
|
||||||
|
try {
|
||||||
|
// 1. 查询订单
|
||||||
|
Order order = orderService.selectOrderById(orderId);
|
||||||
|
if (order == null) {
|
||||||
|
result.put("code", 404);
|
||||||
|
result.put("msg", "订单不存在");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
// 2. 查询师傅信息
|
||||||
|
Users workerUser = usersService.selectUsersById(order.getWorkerId());
|
||||||
|
if (workerUser == null) {
|
||||||
|
result.put("code", 404);
|
||||||
|
result.put("msg", "师傅信息不存在");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
// 3. 查询订单地址
|
||||||
|
UserAddress userAddress = userAddressService.selectUserAddressById(order.getAddressId());
|
||||||
|
if (userAddress == null) {
|
||||||
|
result.put("code", 404);
|
||||||
|
result.put("msg", "订单地址不存在");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
// 4. 经纬度转城市
|
||||||
|
double lng = Double.parseDouble(userAddress.getLongitude());
|
||||||
|
double lat = Double.parseDouble(userAddress.getLatitude());
|
||||||
|
String city = GaoDeMapUtil.getCityByLocation(lng, lat);
|
||||||
|
if (city == null || city.isEmpty()) {
|
||||||
|
result.put("code", 500);
|
||||||
|
result.put("msg", "无法根据经纬度获取城市信息");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
// 5. 查询城市编码
|
||||||
|
Area area = new Area();
|
||||||
|
area.setTitle(city);
|
||||||
|
List<Area> areaList = areaService.selectAreaList(area);
|
||||||
|
if (areaList == null || areaList.isEmpty()) {
|
||||||
|
areaList=areaService.selectAreaList(new Area());
|
||||||
|
// result.put("code", 404);
|
||||||
|
// result.put("msg", "未找到城市编码");
|
||||||
|
// return result;
|
||||||
|
}
|
||||||
|
Long cityCode = areaList.get(0).getId();
|
||||||
|
// 6. 查询可用中间号
|
||||||
|
MobileMiddle mobileMiddleQuery = new MobileMiddle();
|
||||||
|
mobileMiddleQuery.setCityId(cityCode);
|
||||||
|
List<MobileMiddle> mobileMiddleList = mobileMiddleService.selectMobileMiddleList(mobileMiddleQuery);
|
||||||
|
if (mobileMiddleList == null || mobileMiddleList.isEmpty()) {
|
||||||
|
mobileMiddleList=mobileMiddleService.selectMobileMiddleList(new MobileMiddle());
|
||||||
|
// result.put("code", 404);
|
||||||
|
// result.put("msg", "该城市暂无可用中间号");
|
||||||
|
// return result;
|
||||||
|
}
|
||||||
|
// 7. 获取用户和师傅手机号
|
||||||
|
String userPhone = userAddress.getPhone();
|
||||||
|
String workerPhone = workerUser.getPhone();
|
||||||
|
if (userPhone == null || workerPhone == null) {
|
||||||
|
result.put("code", 400);
|
||||||
|
result.put("msg", "用户或师傅手机号为空");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
// 8. 绑定中间号,直到成功
|
||||||
|
for (MobileMiddle middle : mobileMiddleList) {
|
||||||
|
VoiceResponseResult bindResult = YunXinPhoneUtilAPI.httpsPrivacyBindAxb(middle.getPhone(), userPhone, workerPhone);
|
||||||
|
System.out.println(middle.getPhone()+"__________"+userPhone+"__________"+workerPhone);
|
||||||
|
if ("000000".equals(bindResult.getResult())) {
|
||||||
|
// 绑定成功,更新订单
|
||||||
|
order.setMiddlePhone(middle.getPhone());
|
||||||
|
order.setUserPhone(userPhone);
|
||||||
|
order.setWorkerPhone(workerPhone);
|
||||||
|
orderService.updateOrder(order);
|
||||||
|
result.put("code", 200);
|
||||||
|
result.put("msg", "绑定成功");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 9. 所有中间号都绑定失败
|
||||||
|
result.put("code", 500);
|
||||||
|
result.put("msg", "所有中间号均绑定失败");
|
||||||
|
} catch (Exception e) {
|
||||||
|
result.put("code", 500);
|
||||||
|
result.put("msg", "绑定异常: " + e.getMessage());
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单绑定师傅电话号码操作
|
* 订单绑定师傅电话号码操作
|
||||||
* @param orderId 订单ID
|
* @param orderId 订单ID
|
||||||
|
|
@ -123,4 +217,5 @@ public class OrderBindWorkerUtil {
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -209,6 +209,9 @@
|
||||||
<if test="dayDate != null and dayDate != ''">
|
<if test="dayDate != null and dayDate != ''">
|
||||||
AND FROM_UNIXTIME(make_time, '%Y-%m-%d') = #{dayDate}
|
AND FROM_UNIXTIME(make_time, '%Y-%m-%d') = #{dayDate}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="qiangdan != null and qiangdan != ''">
|
||||||
|
AND worker_id is null
|
||||||
|
</if>
|
||||||
|
|
||||||
<if test="baojiasf != null and baojiasf != null">
|
<if test="baojiasf != null and baojiasf != null">
|
||||||
and id in (select oid from user_demand_quotation b where b.workerid=#{baojiasf} and b.status=1)
|
and id in (select oid from user_demand_quotation b where b.workerid=#{baojiasf} and b.status=1)
|
||||||
|
|
|
||||||
|
|
@ -829,7 +829,7 @@ export default {
|
||||||
// 任务状态修改
|
// 任务状态修改
|
||||||
handleStatusChange(row) {
|
handleStatusChange(row) {
|
||||||
let text = row.status === "0" ? "启用" : "停用"
|
let text = row.status === "0" ? "启用" : "停用"
|
||||||
this.$modal.confirm('确认要"' + text + '""' + row.title + '"状态吗?').then(function() {
|
this.$modal.confirm('确认要操作' + row.title + '状态吗?').then(function() {
|
||||||
return changetypeStatus(row.id, row.status)
|
return changetypeStatus(row.id, row.status)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$modal.msgSuccess(text + "成功")
|
this.$modal.msgSuccess(text + "成功")
|
||||||
|
|
|
||||||
|
|
@ -252,7 +252,7 @@ export default {
|
||||||
// 任务状态修改
|
// 任务状态修改
|
||||||
handleStatusChange(row) {
|
handleStatusChange(row) {
|
||||||
let text = row.status === "0" ? "启用" : "停用"
|
let text = row.status === "0" ? "启用" : "停用"
|
||||||
this.$modal.confirm('确认要"' + text + '""' + row.title + '"状态吗?').then(function() {
|
this.$modal.confirm('确认要操作' + row.title + '状态吗?').then(function() {
|
||||||
return changetypeStatus(row.id, row.status)
|
return changetypeStatus(row.id, row.status)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$modal.msgSuccess(text + "成功")
|
this.$modal.msgSuccess(text + "成功")
|
||||||
|
|
|
||||||
|
|
@ -661,7 +661,7 @@ export default {
|
||||||
handleStatusChange(row) {
|
handleStatusChange(row) {
|
||||||
let text = row.status === "0" ? "启用" : "停用";
|
let text = row.status === "0" ? "启用" : "停用";
|
||||||
this.$modal
|
this.$modal
|
||||||
.confirm('确认要"' + text + '""' + row.title + '"状态吗?')
|
.confirm('确认要操作' + row.title + '状态吗?')
|
||||||
.then(function () {
|
.then(function () {
|
||||||
return changetypeStatus(row.id, row.status);
|
return changetypeStatus(row.id, row.status);
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -297,7 +297,7 @@ export default {
|
||||||
// 任务状态修改
|
// 任务状态修改
|
||||||
handleStatusChange(row) {
|
handleStatusChange(row) {
|
||||||
let text = row.status === "0" ? "启用" : "停用"
|
let text = row.status === "0" ? "启用" : "停用"
|
||||||
this.$modal.confirm('确认要"' + text + '""' + row.title + '"状态吗?').then(function() {
|
this.$modal.confirm('确认要操作' + row.title + '状态吗?').then(function() {
|
||||||
return changetypeStatus(row.id, row.status)
|
return changetypeStatus(row.id, row.status)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$modal.msgSuccess(text + "成功")
|
this.$modal.msgSuccess(text + "成功")
|
||||||
|
|
|
||||||
|
|
@ -273,7 +273,7 @@ export default {
|
||||||
// 任务状态修改
|
// 任务状态修改
|
||||||
handleStatusChange(row) {
|
handleStatusChange(row) {
|
||||||
let text = row.status === "0" ? "启用" : "停用"
|
let text = row.status === "0" ? "启用" : "停用"
|
||||||
this.$modal.confirm('确认要"' + text + '""' + row.title + '"状态吗?').then(function() {
|
this.$modal.confirm('确认要操作' + row.title + '状态吗?').then(function() {
|
||||||
return changetypeStatus(row.id, row.status)
|
return changetypeStatus(row.id, row.status)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$modal.msgSuccess(text + "成功")
|
this.$modal.msgSuccess(text + "成功")
|
||||||
|
|
|
||||||
|
|
@ -373,6 +373,7 @@
|
||||||
<el-dialog :title="'师傅质保金明细'" :visible.sync="workerMarginLogDialogVisible" width="70%" top="5vh" append-to-body>
|
<el-dialog :title="'师傅质保金明细'" :visible.sync="workerMarginLogDialogVisible" width="70%" top="5vh" append-to-body>
|
||||||
<worker-margin-log-detail-table
|
<worker-margin-log-detail-table
|
||||||
:worker-id="currentWorkerId"
|
:worker-id="currentWorkerId"
|
||||||
|
:worker-margin="currentWorkerMargin"
|
||||||
@close="workerMarginLogDialogVisible = false"
|
@close="workerMarginLogDialogVisible = false"
|
||||||
@margin-changed="handleMarginChanged"
|
@margin-changed="handleMarginChanged"
|
||||||
v-if="workerMarginLogDialogVisible"
|
v-if="workerMarginLogDialogVisible"
|
||||||
|
|
@ -505,6 +506,7 @@ export default {
|
||||||
workerMoneyLogDialogVisible: false,
|
workerMoneyLogDialogVisible: false,
|
||||||
currentWorkerId: null,
|
currentWorkerId: null,
|
||||||
workerMarginLogDialogVisible: false,
|
workerMarginLogDialogVisible: false,
|
||||||
|
currentWorkerMargin: 0, // 当前师傅质保金余额
|
||||||
workerLevelDialogVisible: false,
|
workerLevelDialogVisible: false,
|
||||||
workerLevelUserId: null,
|
workerLevelUserId: null,
|
||||||
workerLevelUserName: '',
|
workerLevelUserName: '',
|
||||||
|
|
@ -673,14 +675,30 @@ export default {
|
||||||
},
|
},
|
||||||
// 状态修改
|
// 状态修改
|
||||||
handleStatusChange(row) {
|
handleStatusChange(row) {
|
||||||
let text = row.status === "0" ? "启用" : "停用"
|
// 获取当前的新状态
|
||||||
this.$modal.confirm('确认要"' + text + '""' + row.name + '"状态吗?').then(function() {
|
const newStatus = row.status;
|
||||||
return changetypeStatus(row.id, row.status)
|
|
||||||
|
// 根据新状态判断操作类型:1表示启用,0表示停用
|
||||||
|
const operation = newStatus === "1" ? "启用" : "停用";
|
||||||
|
|
||||||
|
console.log("-------------------------新状态: " + newStatus);
|
||||||
|
console.log("-------------------------操作类型: " + operation);
|
||||||
|
|
||||||
|
// 显示确认对话框
|
||||||
|
this.$modal.confirm(`确认要操作${row.name}的状态吗?`).then(() => {
|
||||||
|
// 调用API更新状态
|
||||||
|
return changetypeStatus(row.id, newStatus);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$modal.msgSuccess(text + "成功")
|
// 成功提示
|
||||||
}).catch(function() {
|
this.$modal.msgSuccess(`${operation}成功`);
|
||||||
row.status = row.status === "0" ? "1" : "0"
|
// 刷新列表以获取最新数据
|
||||||
})
|
this.getList();
|
||||||
|
}).catch((error) => {
|
||||||
|
console.error('状态更新失败:', error);
|
||||||
|
// 如果更新失败,恢复原状态
|
||||||
|
row.status = newStatus === "1" ? "0" : "1";
|
||||||
|
this.$message.error(`${operation}失败,请重试`);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
|
|
@ -751,6 +769,7 @@ export default {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.currentWorkerId = row.id;
|
this.currentWorkerId = row.id;
|
||||||
|
this.currentWorkerMargin = parseFloat(row.margin) || 0;
|
||||||
this.workerMarginLogDialogVisible = true;
|
this.workerMarginLogDialogVisible = true;
|
||||||
},
|
},
|
||||||
showWorkerLevelDialog(row) {
|
showWorkerLevelDialog(row) {
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
<el-button type="info" icon="el-icon-view" size="mini" @click="handleViewPending">查看待审核</el-button>
|
<!-- <el-button type="info" icon="el-icon-view" size="mini" @click="handleViewPending">查看待审核</el-button>-->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
|
|
@ -136,20 +136,20 @@
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row> -->
|
</el-row> -->
|
||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<!-- <el-row :gutter="10" class="mb8">-->
|
||||||
<el-col :span="1.5">
|
<!-- <el-col :span="1.5">-->
|
||||||
<el-button
|
<!-- <el-button-->
|
||||||
type="success"
|
<!-- type="success"-->
|
||||||
plain
|
<!-- plain-->
|
||||||
icon="el-icon-check"
|
<!-- icon="el-icon-check"-->
|
||||||
size="mini"
|
<!-- size="mini"-->
|
||||||
:disabled="multiple"
|
<!-- :disabled="multiple"-->
|
||||||
@click="handleBatchAudit"
|
<!-- @click="handleBatchAudit"-->
|
||||||
v-hasPermi="['system:WorkerApply:audit']"
|
<!-- v-hasPermi="['system:WorkerApply:audit']"-->
|
||||||
>批量审核</el-button>
|
<!-- >批量审核</el-button>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
|
||||||
</el-row>
|
<!-- </el-row>-->
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="WorkerApplyList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="WorkerApplyList" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@
|
||||||
plain
|
plain
|
||||||
icon="el-icon-lock"
|
icon="el-icon-lock"
|
||||||
size="mini"
|
size="mini"
|
||||||
|
:disabled="!canLock"
|
||||||
@click="handleLockMoney"
|
@click="handleLockMoney"
|
||||||
v-hasPermi="['system:workerMoneyLog:lock']"
|
v-hasPermi="['system:workerMoneyLog:lock']"
|
||||||
>锁住收益</el-button>
|
>锁住收益</el-button>
|
||||||
|
|
@ -51,6 +52,7 @@
|
||||||
plain
|
plain
|
||||||
icon="el-icon-unlock"
|
icon="el-icon-unlock"
|
||||||
size="mini"
|
size="mini"
|
||||||
|
:disabled="!canLock"
|
||||||
@click="handleUnlockMoney"
|
@click="handleUnlockMoney"
|
||||||
v-hasPermi="['system:workerMoneyLog:unlock']"
|
v-hasPermi="['system:workerMoneyLog:unlock']"
|
||||||
>解锁收益</el-button>
|
>解锁收益</el-button>
|
||||||
|
|
@ -61,6 +63,7 @@
|
||||||
plain
|
plain
|
||||||
icon="el-icon-edit-outline"
|
icon="el-icon-edit-outline"
|
||||||
size="mini"
|
size="mini"
|
||||||
|
:disabled="!canAdjust"
|
||||||
@click="handleAdjustMoney"
|
@click="handleAdjustMoney"
|
||||||
v-hasPermi="['system:workerMoneyLog:adjust']"
|
v-hasPermi="['system:workerMoneyLog:adjust']"
|
||||||
>调整收益</el-button>
|
>调整收益</el-button>
|
||||||
|
|
@ -163,8 +166,119 @@
|
||||||
<p>暂无师傅佣金明细数据</p>
|
<p>暂无师傅佣金明细数据</p>
|
||||||
<p v-if="queryParams.workerId">师傅ID: {{ queryParams.workerId }}</p>
|
<p v-if="queryParams.workerId">师傅ID: {{ queryParams.workerId }}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- 锁住收益、解锁收益、调整收益弹窗可复用index.vue逻辑 -->
|
|
||||||
<!-- 这里省略弹窗代码,实际实现时可直接复制index.vue相关弹窗和方法 -->
|
<!-- 操作提示 -->
|
||||||
|
<div v-if="!loading && workerMoneyLogList.length > 0 && ids.length === 0" style="text-align: center; padding: 20px; color: #909399; background: #f8f9fa; border-radius: 4px; margin-bottom: 20px;">
|
||||||
|
<i class="el-icon-info" style="margin-right: 8px;"></i>
|
||||||
|
请选择一条记录进行操作。锁住收益:未锁定状态 | 解锁收益:已锁定状态 | 调整收益:已锁定状态
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 锁住收益弹窗 -->
|
||||||
|
<el-dialog title="锁住收益" :visible.sync="lockDialogVisible" width="500px" append-to-body>
|
||||||
|
<el-form ref="lockForm" :model="lockForm" :rules="lockRules" label-width="100px">
|
||||||
|
<el-form-item label="锁住金额">
|
||||||
|
<el-input v-model="lockForm.price" disabled>
|
||||||
|
<template slot="prepend">¥</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="锁住类型" prop="lockType">
|
||||||
|
<el-radio-group v-model="lockForm.lockType">
|
||||||
|
<el-radio label="forever">永久锁住</el-radio>
|
||||||
|
<el-radio label="days">按天数锁住</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item v-if="lockForm.lockType === 'days'" label="锁住天数" prop="lockday">
|
||||||
|
<el-input-number v-model="lockForm.lockday" :min="1" :max="365" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="锁住原因" prop="remark">
|
||||||
|
<el-input
|
||||||
|
v-model="lockForm.remark"
|
||||||
|
type="textarea"
|
||||||
|
:rows="3"
|
||||||
|
placeholder="请输入锁住原因"
|
||||||
|
maxlength="200"
|
||||||
|
show-word-limit
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<div style="color: #909399; font-size: 12px;">
|
||||||
|
将锁住 {{ lockForm.count }} 条记录,总金额 ¥{{ formatMoney(lockForm.total) }}
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="cancelLockDialog">取消</el-button>
|
||||||
|
<el-button type="primary" @click="confirmLockMoney" :loading="lockLoading">确认锁住</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<!-- 解锁收益弹窗 -->
|
||||||
|
<el-dialog title="解锁收益" :visible.sync="unlockDialogVisible" width="500px" append-to-body>
|
||||||
|
<el-form ref="unlockForm" :model="unlockForm" :rules="unlockRules" label-width="100px">
|
||||||
|
<el-form-item label="解锁原因" prop="remark">
|
||||||
|
<el-input
|
||||||
|
v-model="unlockForm.remark"
|
||||||
|
type="textarea"
|
||||||
|
:rows="3"
|
||||||
|
placeholder="请输入解锁原因"
|
||||||
|
maxlength="200"
|
||||||
|
show-word-limit
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<div style="color: #909399; font-size: 12px;">
|
||||||
|
将解锁 {{ unlockForm.count }} 条记录,总金额 ¥{{ formatMoney(unlockForm.total) }}
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="cancelUnlockDialog">取消</el-button>
|
||||||
|
<el-button type="primary" @click="confirmUnlockMoney" :loading="unlockLoading">确认解锁</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<!-- 调整收益弹窗 -->
|
||||||
|
<el-dialog title="调整收益" :visible.sync="adjustDialogVisible" width="500px" append-to-body>
|
||||||
|
<el-form ref="adjustForm" :model="adjustForm" :rules="adjustRules" label-width="100px">
|
||||||
|
<el-form-item label="调整类型" prop="type">
|
||||||
|
<el-radio-group v-model="adjustForm.type">
|
||||||
|
<el-radio label="reward">奖励</el-radio>
|
||||||
|
<el-radio label="deduct">扣除</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="调整金额" prop="amount">
|
||||||
|
<el-input-number
|
||||||
|
v-model="adjustForm.amount"
|
||||||
|
:min="0.01"
|
||||||
|
:max="adjustForm.type === 'deduct' ? adjustForm.maxPrice : 99999"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.01"
|
||||||
|
placeholder="请输入调整金额"
|
||||||
|
style="width: 100%;"
|
||||||
|
/>
|
||||||
|
<div v-if="adjustForm.type === 'deduct'" style="color: #909399; font-size: 12px; margin-top: 5px;">
|
||||||
|
当前金额: ¥{{ formatMoney(adjustForm.maxPrice) }},最大可扣除: ¥{{ formatMoney(adjustForm.maxPrice) }}
|
||||||
|
</div>
|
||||||
|
<div v-else style="color: #909399; font-size: 12px; margin-top: 5px;">
|
||||||
|
当前金额: ¥{{ formatMoney(adjustForm.maxPrice) }},奖励后金额: ¥{{ formatMoney(adjustForm.maxPrice + (adjustForm.amount || 0)) }}
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="调整原因" prop="remark">
|
||||||
|
<el-input
|
||||||
|
v-model="adjustForm.remark"
|
||||||
|
type="textarea"
|
||||||
|
:rows="3"
|
||||||
|
placeholder="请输入调整原因"
|
||||||
|
maxlength="200"
|
||||||
|
show-word-limit
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="cancelAdjustDialog">取消</el-button>
|
||||||
|
<el-button type="primary" @click="confirmAdjustMoney" :loading="adjustLoading">确认调整</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -205,13 +319,15 @@ export default {
|
||||||
lockday: 1,
|
lockday: 1,
|
||||||
ids: [],
|
ids: [],
|
||||||
count: 0,
|
count: 0,
|
||||||
total: 0
|
total: 0,
|
||||||
|
remark: ''
|
||||||
},
|
},
|
||||||
unlockDialogVisible: false,
|
unlockDialogVisible: false,
|
||||||
unlockForm: {
|
unlockForm: {
|
||||||
count: 0,
|
count: 0,
|
||||||
total: 0,
|
total: 0,
|
||||||
ids: []
|
ids: [],
|
||||||
|
remark: ''
|
||||||
},
|
},
|
||||||
adjustDialogVisible: false,
|
adjustDialogVisible: false,
|
||||||
adjustForm: {
|
adjustForm: {
|
||||||
|
|
@ -221,6 +337,45 @@ export default {
|
||||||
remark: '',
|
remark: '',
|
||||||
maxPrice: 0
|
maxPrice: 0
|
||||||
},
|
},
|
||||||
|
lockLoading: false,
|
||||||
|
unlockLoading: false,
|
||||||
|
adjustLoading: false,
|
||||||
|
lockRules: {
|
||||||
|
lockType: [
|
||||||
|
{ required: true, message: '请选择锁住类型', trigger: 'change' }
|
||||||
|
],
|
||||||
|
lockday: [
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
if (this.lockForm.lockType === 'days' && (!value || value < 1)) {
|
||||||
|
callback(new Error('按天锁住时必须输入锁住天数'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
remark: [
|
||||||
|
{ required: true, message: '请输入锁住原因', trigger: 'blur' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
unlockRules: {
|
||||||
|
remark: [
|
||||||
|
{ required: true, message: '请输入解锁原因', trigger: 'blur' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
adjustRules: {
|
||||||
|
type: [
|
||||||
|
{ required: true, message: '请选择调整类型', trigger: 'change' }
|
||||||
|
],
|
||||||
|
amount: [
|
||||||
|
{ required: true, message: '请输入调整金额', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
remark: [
|
||||||
|
{ required: true, message: '请输入调整原因', trigger: 'blur' }
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|
@ -285,9 +440,20 @@ export default {
|
||||||
this.ids = selection.map(item => item.id)
|
this.ids = selection.map(item => item.id)
|
||||||
this.single = selection.length!==1
|
this.single = selection.length!==1
|
||||||
this.multiple = !selection.length
|
this.multiple = !selection.length
|
||||||
this.canAdjust = selection.length === 1 && selection[0].status === 1;
|
|
||||||
this.canLock = selection.length === 1 && selection[0].status === 1;
|
if (selection.length === 1) {
|
||||||
this.canUnlock = selection.length === 1 && selection[0].status === 1;
|
const selectedItem = selection[0];
|
||||||
|
// 调整收益:只能操作已锁定的数据(status === 1)
|
||||||
|
this.canAdjust = selectedItem.status === 1;
|
||||||
|
// 锁住收益:只能操作未锁定的数据(status !== 1)
|
||||||
|
this.canLock = selectedItem.status !== 1;
|
||||||
|
// 解锁收益:只能操作已锁定的数据(status === 1)
|
||||||
|
this.canUnlock = selectedItem.status === 1;
|
||||||
|
} else {
|
||||||
|
this.canAdjust = false;
|
||||||
|
this.canLock = false;
|
||||||
|
this.canUnlock = false;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
handleLockMoney() {
|
handleLockMoney() {
|
||||||
if (this.ids.length !== 1) {
|
if (this.ids.length !== 1) {
|
||||||
|
|
@ -295,8 +461,8 @@ export default {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const row = this.workerMoneyLogList.find(item => item.id === this.ids[0]);
|
const row = this.workerMoneyLogList.find(item => item.id === this.ids[0]);
|
||||||
if (!row || row.status !== 1) {
|
if (!row || row.status === 1) {
|
||||||
this.$message.warning('只能操作冻结中的数据');
|
this.$message.warning('只能锁住未锁定状态的数据');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.lockForm.count = 1;
|
this.lockForm.count = 1;
|
||||||
|
|
@ -305,6 +471,7 @@ export default {
|
||||||
this.lockForm.lockType = 'forever';
|
this.lockForm.lockType = 'forever';
|
||||||
this.lockForm.lockday = 1;
|
this.lockForm.lockday = 1;
|
||||||
this.lockForm.ids = [row.id];
|
this.lockForm.ids = [row.id];
|
||||||
|
this.lockForm.remark = '';
|
||||||
this.lockDialogVisible = true;
|
this.lockDialogVisible = true;
|
||||||
},
|
},
|
||||||
handleUnlockMoney() {
|
handleUnlockMoney() {
|
||||||
|
|
@ -312,14 +479,17 @@ export default {
|
||||||
this.$message.warning('请选择一条要解锁收益的数据');
|
this.$message.warning('请选择一条要解锁收益的数据');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
console.log('开始解锁收益数据,ids:', this.ids)
|
||||||
const row = this.workerMoneyLogList.find(item => item.id === this.ids[0]);
|
const row = this.workerMoneyLogList.find(item => item.id === this.ids[0]);
|
||||||
if (!row || row.status !== 1) {
|
console.log('开始解锁收益数据,ids:', row.status)
|
||||||
|
if (!row || row.status === 1) {
|
||||||
this.$message.warning('只能操作冻结中的数据');
|
this.$message.warning('只能操作冻结中的数据');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.unlockForm.count = 1;
|
this.unlockForm.count = 1;
|
||||||
this.unlockForm.total = row.price;
|
this.unlockForm.total = row.price;
|
||||||
this.unlockForm.ids = [row.id];
|
this.unlockForm.ids = [row.id];
|
||||||
|
this.unlockForm.remark = '';
|
||||||
this.unlockDialogVisible = true;
|
this.unlockDialogVisible = true;
|
||||||
},
|
},
|
||||||
handleAdjustMoney() {
|
handleAdjustMoney() {
|
||||||
|
|
@ -338,6 +508,124 @@ export default {
|
||||||
this.adjustForm.remark = '';
|
this.adjustForm.remark = '';
|
||||||
this.adjustForm.maxPrice = parseFloat(row.price) || 0;
|
this.adjustForm.maxPrice = parseFloat(row.price) || 0;
|
||||||
this.adjustDialogVisible = true;
|
this.adjustDialogVisible = true;
|
||||||
|
},
|
||||||
|
// 确认锁住收益
|
||||||
|
confirmLockMoney() {
|
||||||
|
this.$refs.lockForm.validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.lockLoading = true;
|
||||||
|
const lockData = {
|
||||||
|
ids: this.lockForm.ids,
|
||||||
|
lockType: this.lockForm.lockType,
|
||||||
|
lockday: this.lockForm.lockType === 'days' ? this.lockForm.lockday : null,
|
||||||
|
remark: this.lockForm.remark
|
||||||
|
};
|
||||||
|
|
||||||
|
lockWorkerMoney(lockData).then(response => {
|
||||||
|
this.$message.success('锁住收益成功');
|
||||||
|
this.lockDialogVisible = false;
|
||||||
|
this.getList(); // 刷新列表
|
||||||
|
// 重置表单
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if (this.$refs.lockForm) {
|
||||||
|
this.$refs.lockForm.resetFields();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}).catch(error => {
|
||||||
|
console.error('锁住收益失败:', error);
|
||||||
|
this.$message.error('锁住收益失败: ' + (error.message || '未知错误'));
|
||||||
|
}).finally(() => {
|
||||||
|
this.lockLoading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 确认解锁收益
|
||||||
|
confirmUnlockMoney() {
|
||||||
|
this.$refs.unlockForm.validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.unlockLoading = true;
|
||||||
|
const unlockData = {
|
||||||
|
ids: this.unlockForm.ids,
|
||||||
|
remark: this.unlockForm.remark
|
||||||
|
};
|
||||||
|
|
||||||
|
unlockWorkerMoney(unlockData).then(response => {
|
||||||
|
this.$message.success('解锁收益成功');
|
||||||
|
this.unlockDialogVisible = false;
|
||||||
|
this.getList(); // 刷新列表
|
||||||
|
// 重置表单
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if (this.$refs.unlockForm) {
|
||||||
|
this.$refs.unlockForm.resetFields();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}).catch(error => {
|
||||||
|
console.error('解锁收益失败:', error);
|
||||||
|
this.$message.error('解锁收益失败: ' + (error.message || '未知错误'));
|
||||||
|
}).finally(() => {
|
||||||
|
this.unlockLoading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 确认调整收益
|
||||||
|
confirmAdjustMoney() {
|
||||||
|
this.$refs.adjustForm.validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.adjustLoading = true;
|
||||||
|
const adjustData = {
|
||||||
|
id: this.adjustForm.id,
|
||||||
|
type: this.adjustForm.type,
|
||||||
|
amount: this.adjustForm.amount,
|
||||||
|
remark: this.adjustForm.remark
|
||||||
|
};
|
||||||
|
|
||||||
|
adjustWorkerMoney(adjustData).then(response => {
|
||||||
|
this.$message.success('调整收益成功');
|
||||||
|
this.adjustDialogVisible = false;
|
||||||
|
this.getList(); // 刷新列表
|
||||||
|
// 重置表单
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if (this.$refs.adjustForm) {
|
||||||
|
this.$refs.adjustForm.resetFields();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}).catch(error => {
|
||||||
|
console.error('调整收益失败:', error);
|
||||||
|
this.$message.error('调整收益失败: ' + (error.message || '未知错误'));
|
||||||
|
}).finally(() => {
|
||||||
|
this.adjustLoading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消锁住收益弹窗
|
||||||
|
cancelLockDialog() {
|
||||||
|
this.lockDialogVisible = false;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if (this.$refs.lockForm) {
|
||||||
|
this.$refs.lockForm.resetFields();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消解锁收益弹窗
|
||||||
|
cancelUnlockDialog() {
|
||||||
|
this.unlockDialogVisible = false;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if (this.$refs.unlockForm) {
|
||||||
|
this.$refs.unlockForm.resetFields();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消调整收益弹窗
|
||||||
|
cancelAdjustDialog() {
|
||||||
|
this.adjustDialogVisible = false;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if (this.$refs.adjustForm) {
|
||||||
|
this.$refs.adjustForm.resetFields();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue