【front】 新增 1、新增用户核销服务订单 2、新增短信下单通知

dev
renfan 2025-01-17 17:32:36 +08:00
parent 150e62aa25
commit bd4b382c23
9 changed files with 69 additions and 122 deletions

View File

@ -0,0 +1,29 @@
package com.hcy.admin.config;
import lombok.Data;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author dabin
*/
@Data
@Component
public class SmsConfig {
/**
*
*/
public static Map<String,String> getOrderNotice(){
Map<String,String> smsParam = new HashMap<>();
smsParam.put("smsTemplate","维修派单通知 派单时间:${sendOrderTime} 型号:${model} 功率:${power} 模块代码: ${moduleCode} 订单编号:${orderNo}");
smsParam.put("templateId","SMS_474980344");
return smsParam;
}
}

View File

@ -1,7 +1,7 @@
# 项目配置
like:
# upload-directory: ./www/wwwroot/java-smyy/public/uploads/
upload-directory: E:\img\
upload-directory: /data/file/uploads/ # 文件上传目录
# upload-directory: E:\img\
# 服务配置
server:
@ -29,6 +29,11 @@ spring:
driver-class-name: com.mysql.jdbc.Driver # MySql的驱动
username: root # 数据库账号
password: 1234
# url: jdbc:mysql://123.207.77.26:3306/homemaking?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
# type: com.zaxxer.hikari.HikariDataSource # 数据源类型
# driver-class-name: com.mysql.jdbc.Driver # MySql的驱动
# username: Homemaking # 数据库账号
# password: kpHaxTyz4ehkYDpS
hikari:
connection-timeout: 30000 # 等待连接分配连接的最大时长(毫秒),超出时长还没可用连接则发送SQLException,默认30秒

View File

@ -10,7 +10,7 @@ public enum OrderLogEnum {
USER_CANCEL_ORDER(102, "用户申请取消订单"),
USER_CONFIRM_ORDER(103, "用户确认订单"),
USER_PAY_ORDER(104, "用户支付订单"),
USER_VERIFICATION(105, "师傅核销订单"),
USER_VERIFICATION(105, "用户核销订单"),
USER_STAFF_CONFIRM(106, "师傅确认订单"),
USER_CANCEL_PAY(107, "用户取消支付"),
STAFF_AUTO_CONFIRM_ORDER(108,"师傅自动确认订单"),

View File

@ -143,15 +143,15 @@ public class OrderController {
}
/**
*
*
*
* @return Object
*/
@ApiOperation(value = "订单管理 - 师傅核销服务订单")
@GetMapping("/staff/verification")
public void confirmGoods(@Validated @RequestParam("id") Long id, @RequestParam("code") String code) {
@ApiOperation(value = "订单管理 - 用户核销服务订单")
@GetMapping("/user/verification")
public void verification(@Validated @RequestParam("id") Long id) {
Integer userId = FrontThreadLocal.getUserId();
iOrderService.verificationOrder(id, userId, code);
iOrderService.verificationOrder(id, userId);
}
/**

View File

@ -52,7 +52,7 @@ public interface IOrderService {
void confirmGoods(Long id, Long userId);
void verificationOrder(Long id, Integer userId, String code);
void verificationOrder(Long id, Integer userId);
PageResult<OrderListVo> staffOrderList(PageParam pageParam, Map<String, String> params);

View File

@ -33,6 +33,7 @@ import com.hcy.common.entity.serviceArea.ServiceAreaStaff;
import com.hcy.common.entity.staff.Staff;
import com.hcy.common.entity.staff.StaffCommission;
import com.hcy.common.entity.staff.StaffReassignment;
import com.hcy.common.entity.system.SystemAuthAdmin;
import com.hcy.common.entity.unit.GoodsUnit;
import com.hcy.common.entity.user.User;
import com.hcy.common.entity.user.UserAuth;
@ -59,6 +60,7 @@ import com.hcy.common.mapper.staff.StaffReassignmentMapper;
import com.hcy.common.mapper.unit.GoodsUnitMapper;
import com.hcy.common.mapper.user.UserAuthMapper;
import com.hcy.common.mapper.user.UserMapper;
import com.hcy.common.plugin.notice.engine.SmsNotice;
import com.hcy.common.utils.*;
import com.hcy.front.config.sbyte.ByteMpUtil;
import com.hcy.front.config.sbyte.ByteSign;
@ -710,7 +712,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
appointOrderGiveStaff(model,orderGoods);
}
});*/
// OrderDto orderDetailByOrderId = orderMapper.getOrderDetailByOrderId(model.getId());
// if(orderDetailByOrderId != null){
// ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectById(repairOrder.getParentRepairOrderId());
// HashMap<String, String> param = new HashMap<>();
// param.put("sendOrderTime",TimeUtil.dateToString(date, TimeConstant.DATETIME_NO_SS_FORMAT));
// param.put("model", repairOrder.getModuleNumber());
// param.put("power",distMap.get(repairOrder.getModulePower().toString()));
// param.put("moduleCode",repairOrder.getModuleCode());
// param.put("orderNo",parentRepairOrder.getOrderNo());
// new SmsNotice().send(systemAuthAdmin.getPhone(),param, SmsConfig.getRepairOrderNotice());
// }
return model;
}
@ -975,7 +987,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
@Override
@Transactional
public void verificationOrder(Long id, Integer userId, String code) {
public void verificationOrder(Long id, Integer userId) {
Order model = orderMapper.selectOne(
new QueryWrapper<Order>()
.eq("id", id)
@ -984,83 +996,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
if (OrderStatusEnum.SERVICING.getStatus() != model.getOrderStatus()) {
throw new OperateException("只有服务中的订单才能进行核销");
}
String verificationCode = model.getVerificationCode();
if (!verificationCode.equalsIgnoreCase(code)) {
throw new OperateException("核销码错误,请重新输入");
}
model.setVerificationStatus(OrderVerificationStatusEnum.VERIFICATION.getStatus());
model.setOrderStatus(OrderStatusEnum.FINISHED.getStatus());
model.setVerificationStatus(OrderVerificationStatusEnum.VERIFICATION.getStatus()); //核销状态:1-已核销
model.setOrderStatus(OrderStatusEnum.FINISHED.getStatus());//订单状态;3-已完成;
model.setFinishTime(TimeUtil.timestamp());
model.setUpdateTime(TimeUtil.timestamp());
orderMapper.updateById(model);
//获取服务信息
OrderGoods orderGoods = orderGoodsService.getByOrderId(model.getId());
BigDecimal defaultPrice = new BigDecimal("0");
/*//更新用户积分
User user = userMapper.selectOne(
new QueryWrapper<User>()
.eq("id", userId)
.last("limit 1"));
user.setIntegral(user.getIntegral() + orderGoods.getIntegral());
userMapper.updateById(user);*/
//创建分销佣金
if (model.getDistrictId() != null && model.getDistrictId() != 0) {
//获取分销商信息
QueryWrapper<Distributor> distributorQueryWrapper = new QueryWrapper<>();
distributorQueryWrapper.eq("is_delete", GlobalConstant.NOT_DELETE);
distributorQueryWrapper.eq("id", model.getDistributorId());
Distributor distributor = distributorMapper.selectOne(distributorQueryWrapper);
//组装参数
DistributorCommission distributorCommission = new DistributorCommission();
distributorCommission.setOrderId(model.getId());
if (distributor != null) {
//支付金额不等于零时或者服务金额为零时
if (model.getOrderAmount().compareTo(defaultPrice) > 0 &&
orderGoods.getDistributorCommissionRate().compareTo(defaultPrice) > 0 &&
distributor.getCommissionRate().compareTo(defaultPrice) > 0) {
//计算佣金
BigDecimal goodsCommissionRate = orderGoods.getDistributorCommissionRate().divide(new BigDecimal("100"));
BigDecimal distributorRate = distributor.getCommissionRate().divide(new BigDecimal("10.00"));
BigDecimal result = orderGoods.getTotalPayPrice().multiply(goodsCommissionRate).multiply(distributorRate).setScale(2, RoundingMode.HALF_UP);
//如果结算金额小于0.01时 佣金为0
if (result.compareTo(new BigDecimal("0.01")) < 0) {
distributorCommission.setCommission(defaultPrice);
} else {
distributorCommission.setCommission(result);
}
} else {
distributorCommission.setCommission(defaultPrice);
}
distributorCommission.setDistributorId(distributor.getId());
distributorCommission.setDistributorCommissionRate(orderGoods.getDistributorCommissionRate());
distributorCommission.setGoodsCommissionRate(orderGoods.getGoodsCommissionRate());
distributorCommission.setCreateTime(TimeUtil.nowDate());
distributorCommission.setStatus(DistributorCommissionStatusEnum.FREEZE.getCode());
distributorCommission.setIsDelete(GlobalConstant.NOT_DELETE);
distributorCommissionMapper.insert(distributorCommission);
}
}
//创建师傅佣金
StaffCommission staffCommission = new StaffCommission();
staffCommission.setOrderId(model.getId());
staffCommission.setGoodsCommissionRate(orderGoods.getStaffCommissionRate());
//师傅抽成
if(orderGoods.getStaffCommissionRate().compareTo(defaultPrice) > 0){
staffCommission.setCommission(model.getOrderAmount().multiply(orderGoods.getStaffCommissionRate()
.divide(new BigDecimal("100"))));
}else{
staffCommission.setCommission(defaultPrice);
}
staffCommission.setCreateTime(TimeUtil.nowDate());
staffCommissionMapper.insert(staffCommission);
orderLogService.saveOrderLog(id, userId.longValue(), OrderLogEnum.USER_VERIFICATION.getDesc());
}

View File

@ -1,34 +0,0 @@
package com.hcy.front.service.order.impl;
import java.math.BigDecimal;
public class teststes {
public static void main(String[] args) {
int userInteger = 62; // 用户积分
int integer = 0; // 用户使用了多少积分
BigDecimal p = BigDecimal.valueOf(166.66); // 商品价格
BigDecimal p2 = BigDecimal.valueOf(5.66); // 商品价格
BigDecimal orderAmount = p2; //应付金额
BigDecimal deductionMoney = BigDecimal.valueOf(0); //抵扣金额
int num = userInteger % 10; //用户剩余积分
int monery = userInteger / 10; // 用户积分抵扣金额
BigDecimal subtract = p2.subtract(BigDecimal.valueOf(monery)); // 积分抵扣金额
integer = monery * 10; // 已使用积分
deductionMoney = BigDecimal.valueOf(monery); // 抵扣金额
if(subtract.intValue() <= 0){
num = num + (Math.abs(subtract.intValue()) * 10); // 剩余积分返还用户
orderAmount = BigDecimal.valueOf(0); // 应付金额
}else{
orderAmount = subtract; // 应付金额
}
System.out.println("-------------------------------");
System.out.println("用户剩余积分:" + num);
System.out.println("用户使用了:" + integer);
System.out.println("用户应付金额:" + orderAmount);
System.out.println("用户抵扣金额:" + deductionMoney);
}
}

View File

@ -1,10 +1,10 @@
# 项目配置
like:
# upload-directory: /www/wwwroot/java-smyy/public/uploads/
upload-directory: E:\img\
upload-directory: /data/file/uploads/ # 文件上传目录
# upload-directory: E:\img\
# 服务配置
server:
port: 8084
port: 8086
servlet:
context-path: /
@ -25,6 +25,11 @@ spring:
driver-class-name: com.mysql.jdbc.Driver # MySql的驱动
username: root # 数据库账号
password: 1234
# url: jdbc:mysql://123.207.77.26:3306/homemaking?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
# type: com.zaxxer.hikari.HikariDataSource # 数据源类型
# driver-class-name: com.mysql.jdbc.Driver # MySql的驱动
# username: Homemaking # 数据库账号
# password: kpHaxTyz4ehkYDpS
hikari:
connection-timeout: 30000 # 等待连接分配连接的最大时长(毫秒),超出时长还没可用连接则发送SQLException,默认30秒
minimum-idle: 5 # 最小连接数

View File

@ -14,7 +14,7 @@
<module>front</module>
<module>common</module>
<module>generator</module>
<module>staff</module>
</modules>
<!-- 特性信息 -->