主单/子单流程轨迹

This commit is contained in:
kuang.yife 2024-02-17 13:50:22 +08:00
parent cc5f528bf7
commit 8c805e710a
17 changed files with 632 additions and 39 deletions

View File

@ -17,6 +17,13 @@
<dependencies> <dependencies>
<dependency>
<groupId>com.tencentcloudapi.cls</groupId>
<artifactId>tencentcloud-cls-logback-appender</artifactId>
<version>1.0.3</version>
</dependency>
<!-- SpringBoot集成thymeleaf模板 --> <!-- SpringBoot集成thymeleaf模板 -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>

View File

@ -369,7 +369,7 @@ public class OrderDetailController extends BaseController {
orderStandard.setWaitServerNum(orderStandard.getStandardNum() - orderStandard.getServerNum()); orderStandard.setWaitServerNum(orderStandard.getStandardNum() - orderStandard.getServerNum());
standardList.add(orderStandard); standardList.add(orderStandard);
} }
if (this.checkIsOnlyServer(orderMaster.getId(), detail.getWorkerId())) { if (this.checkIsOnlyServer(orderMaster.getId(), orderMaster.getWorkerId())) {
BigDecimal workerFee = financialMaster.getPayMoney(); BigDecimal workerFee = financialMaster.getPayMoney();
List<FinancialDetail> financialDetailList = financialDetailService.selectByFinancialMasterId(financialMaster.getId()); List<FinancialDetail> financialDetailList = financialDetailService.selectByFinancialMasterId(financialMaster.getId());
for (FinancialDetail param : financialDetailList) { for (FinancialDetail param : financialDetailList) {

View File

@ -215,9 +215,14 @@ public class OrderMasterController extends BaseController {
{ {
ExcelUtil<SysOrderRequest> util = new ExcelUtil<SysOrderRequest>(SysOrderRequest.class); ExcelUtil<SysOrderRequest> util = new ExcelUtil<SysOrderRequest>(SysOrderRequest.class);
List<SysOrderRequest> jsonObjects = util.importExcel(file.getInputStream()); List<SysOrderRequest> jsonObjects = util.importExcel(file.getInputStream());
boolean flag = false;
for (SysOrderRequest model : jsonObjects) { for (SysOrderRequest model : jsonObjects) {
if(NumberUtil.isNumber(model.getSeq())){ if("序号".equals(model.getSeq())){
this.sysOrder(format(model)); flag = true;
continue;
}
if(flag){
sysOrder(format(model));
} }
} }
return AjaxResult.success(jsonObjects); return AjaxResult.success(jsonObjects);
@ -231,6 +236,25 @@ public class OrderMasterController extends BaseController {
if(StringUtils.isEmpty(orderRequest.getName())){ if(StringUtils.isEmpty(orderRequest.getName())){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",姓名不能为空!"); throw new Exception("导入表格序号" + orderRequest.getSeq() + ",姓名不能为空!");
} }
if(StringUtils.isEmpty(orderRequest.getPrice())){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",I列发布价格填写不能为空");
}
try {
Integer.parseInt(orderRequest.getPrice());
}catch (Exception e){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",I列发布价格不能有小数点");
}
if(StringUtils.isEmpty(orderRequest.getNum())){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",H列数量填写不能为空");
}
try {
Integer.parseInt(orderRequest.getNum());
}catch (Exception e){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",H列数量不能含小数点。");
}
if(StringUtils.isEmpty(orderRequest.getLastCategory())){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",C列四级类目不能为空");
}
request.setCustomerName(orderRequest.getName()); request.setCustomerName(orderRequest.getName());
if(StringUtils.isEmpty(orderRequest.getPhone())){ if(StringUtils.isEmpty(orderRequest.getPhone())){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",导入手机号不能为空!"); throw new Exception("导入表格序号" + orderRequest.getSeq() + ",导入手机号不能为空!");
@ -241,7 +265,7 @@ public class OrderMasterController extends BaseController {
request.setGoodsBrand(orderRequest.getBrand()); request.setGoodsBrand(orderRequest.getBrand());
request.setRemark(orderRequest.getRemark()); request.setRemark(orderRequest.getRemark());
if(StringUtils.isEmpty(orderRequest.getMode())){ if(StringUtils.isEmpty(orderRequest.getMode())){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",下单模式不能为空!"); throw new Exception("导入表格序号" + orderRequest.getSeq() + ",G列下单模式名称有误/或带有其它字符!");
}else { }else {
if(orderRequest.getMode().contains("-")){ if(orderRequest.getMode().contains("-")){
String orderModel = orderRequest.getMode().split("-")[0]; String orderModel = orderRequest.getMode().split("-")[0];
@ -251,12 +275,12 @@ public class OrderMasterController extends BaseController {
}else if("一票价".equals(orderModel)){ }else if("一票价".equals(orderModel)){
request.setOrderMode("01"); request.setOrderMode("01");
}else { }else {
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",下单模式填写错误!"); throw new Exception("导入表格序号" + orderRequest.getSeq() + ",G列下单模式名称有误/或带有其它字符!");
} }
if("到付".equals(payType)){ if("到付".equals(payType)){
request.setPayMode("02");
}else {
request.setPayMode("01"); request.setPayMode("01");
}else {
request.setPayMode("02");
} }
}else { }else {
if("带价下单".equals(orderRequest.getMode())){ if("带价下单".equals(orderRequest.getMode())){
@ -266,14 +290,14 @@ public class OrderMasterController extends BaseController {
request.setOrderMode("01"); request.setOrderMode("01");
request.setPayMode("02"); request.setPayMode("02");
}else { }else {
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",下单模式填写错误!"); throw new Exception("导入表格序号" + orderRequest.getSeq() + ",G列下单模式名称有误/或带有其它字符!");
} }
} }
} }
if(StringUtils.isEmpty(orderRequest.getPrice())){ if(StringUtils.isEmpty(orderRequest.getPrice())){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",价格不能为空!"); throw new Exception("导入表格序号" + orderRequest.getSeq() + ",I列发布价格填写不能为空\n");
} }
request.setPrice(new BigDecimal(orderRequest.getPrice())); request.setPrice(new BigDecimal(orderRequest.getPrice()));
request.setVideoUrl(orderRequest.getUrl()); request.setVideoUrl(orderRequest.getUrl());
@ -281,10 +305,10 @@ public class OrderMasterController extends BaseController {
List<SysOrderGoodsStandards> goodsStandards = new ArrayList<>(); List<SysOrderGoodsStandards> goodsStandards = new ArrayList<>();
String [] categoryNames = orderRequest.getCategory().split("-"); String [] categoryNames = orderRequest.getCategory().split("-");
if(categoryNames.length != 3){ if(categoryNames.length != 3){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",三级类目数据格式错误"); throw new Exception("导入表格序号" + orderRequest.getSeq() + ",B列三级类目名称有误/或格式有误!");
}else { }else {
if(StringUtils.isEmpty(categoryNames[0])||StringUtils.isEmpty(categoryNames[1])||StringUtils.isEmpty(orderRequest.getLastCategory())){ if(StringUtils.isEmpty(categoryNames[0])||StringUtils.isEmpty(categoryNames[1])||StringUtils.isEmpty(categoryNames[2])){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",前三级类目不能为空,请参照系统填写"); throw new Exception("导入表格序号" + orderRequest.getSeq() + ",B列三级类目名称有误/或格式有误!");
} }
try { try {
// 第一层 // 第一层
@ -323,7 +347,7 @@ public class OrderMasterController extends BaseController {
standards.setGoodsStandardName(orderRequest.getLastCategory()); standards.setGoodsStandardName(orderRequest.getLastCategory());
goodsStandards.add(standards); goodsStandards.add(standards);
}catch (Exception e){ }catch (Exception e){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",前三级类目有错误,请参照系统填写"); throw new Exception("导入表格序号" + orderRequest.getSeq() + ",B列三级类目名称有误/或格式有误!");
} }
} }
@ -338,7 +362,7 @@ public class OrderMasterController extends BaseController {
} }
} }
if(addressName.length < 4){ if(addressName.length < 4){
throw new Exception("导入表格序号" + orderRequest.getSeq() + ",地址数据格式错误"); throw new Exception("导入表格序号" + orderRequest.getSeq() + ",L列服务地址不能为空或分隔符不能少于3个");
}else { }else {
// //
SysArea param1 = new SysArea(); SysArea param1 = new SysArea();
@ -371,7 +395,7 @@ public class OrderMasterController extends BaseController {
return request; return request;
} }
public void sysOrder(@RequestBody SysOrderAssignRequest request) throws Exception { public synchronized void sysOrder(@RequestBody SysOrderAssignRequest request) throws Exception {
// 判断传递价格是否有小数 // 判断传递价格是否有小数
if (new BigDecimal(request.getPrice().intValue()).compareTo(request.getPrice())!=0){ if (new BigDecimal(request.getPrice().intValue()).compareTo(request.getPrice())!=0){
@ -394,20 +418,17 @@ public class OrderMasterController extends BaseController {
if (request.getProvinceId() == null || request.getCityId() == null || request.getDistrictId() == null || org.apache.commons.lang3.StringUtils.isBlank(request.getFullAddress())) { if (request.getProvinceId() == null || request.getCityId() == null || request.getDistrictId() == null || org.apache.commons.lang3.StringUtils.isBlank(request.getFullAddress())) {
throw new Exception("请填写地址"); throw new Exception("请填写地址");
} }
CustomerAddress customerAddress = customerAddressService.selectByCustomerAndAddress(customer.getCustomerId(),
request.getProvinceId(), request.getCityId(), request.getDistrictId(), request.getFullAddress()); CustomerAddress customerAddress = new CustomerAddress();
if (customerAddress == null) { customerAddress.setCustomerId(customer.getCustomerId());
customerAddress = new CustomerAddress(); customerAddress.setProvinceId(request.getProvinceId());
customerAddress.setCustomerId(customer.getCustomerId()); customerAddress.setCityId(request.getCityId());
customerAddress.setProvinceId(request.getProvinceId()); customerAddress.setCountryId(request.getDistrictId());
customerAddress.setCityId(request.getCityId()); customerAddress.setAddress(request.getFullAddress());
customerAddress.setCountryId(request.getDistrictId()); customerAddress.setIsDefault(0);
customerAddress.setAddress(request.getFullAddress()); customerAddress.setPhone(request.getCustomerPhone());
customerAddress.setIsDefault(0); customerAddress.setName(request.getCustomerName());
customerAddress.setPhone(request.getCustomerPhone()); customerAddressService.insertCustomerAddress(customerAddress);
customerAddress.setName(request.getCustomerName());
customerAddressService.insertCustomerAddress(customerAddress);
}
// 订单总价 不能小于0 // 订单总价 不能小于0
BigDecimal orderPrice = request.getPrice().max(BigDecimal.ZERO); BigDecimal orderPrice = request.getPrice().max(BigDecimal.ZERO);

View File

@ -0,0 +1,152 @@
package com.ghy.web.controller.order;
import java.util.List;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import com.ghy.common.annotation.Log;
import com.ghy.common.enums.BusinessType;
import com.ghy.order.domain.OrderOperationRecord;
import com.ghy.order.service.IOrderOperationRecordService;
import com.ghy.common.core.controller.BaseController;
import com.ghy.common.core.domain.AjaxResult;
import com.ghy.common.utils.poi.ExcelUtil;
import com.ghy.common.core.page.TableDataInfo;
/**
* 订单操作记录Controller
*
* @author clunt
* @date 2024-02-17
*/
@Api
@Controller
@RequestMapping("/order/operate")
public class OrderOperationRecordController extends BaseController
{
private String prefix = "order/operate";
@Autowired
private IOrderOperationRecordService orderOperationRecordService;
@RequiresPermissions("order:operate:view")
@GetMapping()
public String record()
{
return prefix + "/operate";
}
/**
* 查询订单操作记录列表
*/
@RequiresPermissions("order:operate:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(OrderOperationRecord orderOperationRecord)
{
startPage();
List<OrderOperationRecord> list = orderOperationRecordService.selectOrderOperationRecordList(orderOperationRecord);
return getDataTable(list);
}
/**
* App查询订单操作记录列表
*/
@ApiOperation("订单操作记录列表")
@PostMapping("/app/list")
@ResponseBody
public TableDataInfo appList(@RequestBody OrderOperationRecord orderOperationRecord)
{
startPage();
List<OrderOperationRecord> list = orderOperationRecordService.selectOrderOperationRecordList(orderOperationRecord);
return getDataTable(list);
}
/**
* 新增保存订单操作记录
*/
@ApiOperation("新增订单操作记录")
@PostMapping("/app/add")
@ResponseBody
public AjaxResult appAdd(OrderOperationRecord orderOperationRecord)
{
return toAjax(orderOperationRecordService.insertOrderOperationRecord(orderOperationRecord));
}
/**
* 导出订单操作记录列表
*/
@RequiresPermissions("order:operate:export")
@Log(title = "订单操作记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(OrderOperationRecord orderOperationRecord)
{
List<OrderOperationRecord> list = orderOperationRecordService.selectOrderOperationRecordList(orderOperationRecord);
ExcelUtil<OrderOperationRecord> util = new ExcelUtil<OrderOperationRecord>(OrderOperationRecord.class);
return util.exportExcel(list, "订单操作记录数据");
}
/**
* 新增订单操作记录
*/
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
* 新增保存订单操作记录
*/
@RequiresPermissions("order:operate:add")
@Log(title = "订单操作记录", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(OrderOperationRecord orderOperationRecord)
{
return toAjax(orderOperationRecordService.insertOrderOperationRecord(orderOperationRecord));
}
/**
* 修改订单操作记录
*/
@RequiresPermissions("order:operate:edit")
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap)
{
OrderOperationRecord orderOperationRecord = orderOperationRecordService.selectOrderOperationRecordById(id);
mmap.put("orderOperationRecord", orderOperationRecord);
return prefix + "/edit";
}
/**
* 修改保存订单操作记录
*/
@RequiresPermissions("order:operate:edit")
@Log(title = "订单操作记录", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(OrderOperationRecord orderOperationRecord)
{
return toAjax(orderOperationRecordService.updateOrderOperationRecord(orderOperationRecord));
}
/**
* 删除订单操作记录
*/
@RequiresPermissions("order:operate:remove")
@Log(title = "订单操作记录", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
return toAjax(orderOperationRecordService.deleteOrderOperationRecordByIds(ids));
}
}

View File

@ -41,7 +41,7 @@ public class SwaggerConfig
// 扫描所有有注解的api用这种方式更灵活 // 扫描所有有注解的api用这种方式更灵活
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
// 扫描指定包中的swagger注解 // 扫描指定包中的swagger注解
.apis(RequestHandlerSelectors.basePackage("com.ghy.web.controller.tool")) .apis(RequestHandlerSelectors.basePackage("com.ghy.web.controller.order"))
// 扫描所有 .apis(RequestHandlerSelectors.any()) // 扫描所有 .apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any()) .paths(PathSelectors.any())
.build(); .build();

View File

@ -16,7 +16,7 @@ ruoyi:
# 开发环境配置 # 开发环境配置
server: server:
# 服务器的HTTP端口默认为80 # 服务器的HTTP端口默认为80
port: 80 port: 19001
servlet: servlet:
# 应用的访问路径 # 应用的访问路径
context-path: / context-path: /
@ -121,7 +121,7 @@ qiniu:
adapay: adapay:
debug: true debug: true
prod-mode: true prod-mode: true
notifyUrl: 'https://www.opsoul.com:8881/adapay/callback' notifyUrl: 'https://gmhl.opsoul.com/adapay/callback'
jim: jim:
appKey: '110e8830290152d76e2f1d97' appKey: '110e8830290152d76e2f1d97'

View File

@ -249,7 +249,7 @@
</div> </div>
<div class="flex-board-no-wrap m-t"> <div class="flex-board-no-wrap m-t">
<label class="form-control-label">订单查询:</label> <label class="form-control-label">订单查询:</label>
<input id="keyWords" type="text" class="form-control long-input m-r" placeholder="请输入订单号、姓名、电话或地址、品牌、规格"> <input id="keywords" type="text" class="form-control long-input m-r" placeholder="请输入订单号、姓名、电话">
</div> </div>
<div class="m-t"> <div class="m-t">
<a class="btn btn-primary btn-rounded btn-sm" onclick="searchByForm()"><i <a class="btn btn-primary btn-rounded btn-sm" onclick="searchByForm()"><i
@ -921,7 +921,7 @@
storePhone: $('#storePhone').val(), storePhone: $('#storePhone').val(),
workerName: $('#workerName').val(), workerName: $('#workerName').val(),
workerPhone: $('#workerPhone').val(), workerPhone: $('#workerPhone').val(),
keyWords: $('#keyWords').val() keywords: $('#keywords').val()
} }
customParams = Object.assign(customParams, params); customParams = Object.assign(customParams, params);

View File

@ -290,6 +290,7 @@ public class ShiroConfig
filterChainDefinitionMap.put("/system/dept/list", "anon"); filterChainDefinitionMap.put("/system/dept/list", "anon");
filterChainDefinitionMap.put("/customer/address/**", "anon"); filterChainDefinitionMap.put("/customer/address/**", "anon");
filterChainDefinitionMap.put("/customer/place/app/**", "anon"); filterChainDefinitionMap.put("/customer/place/app/**", "anon");
filterChainDefinitionMap.put("/order/operate/app/**", "anon");
filterChainDefinitionMap.put("/customer/selection/app/**", "anon"); filterChainDefinitionMap.put("/customer/selection/app/**", "anon");
filterChainDefinitionMap.put("/jim/**", "anon"); filterChainDefinitionMap.put("/jim/**", "anon");
filterChainDefinitionMap.put("/MP_verify_bRFuvYpyQ4WLr0on.txt", "anon"); filterChainDefinitionMap.put("/MP_verify_bRFuvYpyQ4WLr0on.txt", "anon");

View File

@ -43,6 +43,19 @@
<artifactId>ghy-payment</artifactId> <artifactId>ghy-payment</artifactId>
</dependency> </dependency>
<!-- swagger3-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
</dependency>
<!-- 防止进入swagger页面报类型转换错误排除3.0.0中的引用手动增加1.6.2版本 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.6.2</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -197,4 +197,19 @@ public class OrderMaster extends BaseEntity {
// 商品规格 -- 后台发单才有 // 商品规格 -- 后台发单才有
private String goodsSpecification; private String goodsSpecification;
/**
* 后台关键字搜索
* */
private String keywords;
private String workerPhone;
private String workerName;
private String province;
private String city;
private String district;
} }

View File

@ -0,0 +1,54 @@
package com.ghy.order.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ghy.common.annotation.Excel;
import com.ghy.common.core.domain.BaseEntity;
/**
* 订单操作记录对象 order_operation_record
*
* @author clunt
* @date 2024-02-17
*/
@Data
@ApiModel(value = "订单操作记录")
public class OrderOperationRecord extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 订单id */
@Excel(name = "订单id")
@ApiModelProperty(value = "订单id")
private Long orderId;
/** 订单类型 01.主单 02.子单 */
@Excel(name = "订单类型 01.主单 02.子单")
@ApiModelProperty(value = "订单类型 01.主单 02.子单")
private String orderType;
/** 操作内容 */
@Excel(name = "操作内容")
@ApiModelProperty(value = "操作内容")
private String content;
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("orderId", getOrderId())
.append("orderType", getOrderType())
.append("content", getContent())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("createBy", getCreateBy())
.append("updateBy", getUpdateBy())
.append("remark", getRemark())
.toString();
}
}

View File

@ -0,0 +1,62 @@
package com.ghy.order.mapper;
import com.ghy.order.domain.OrderOperationRecord;
import java.util.List;
/**
* 订单操作记录Mapper接口
*
* @author clunt
* @date 2024-02-17
*/
public interface OrderOperationRecordMapper
{
/**
* 查询订单操作记录
*
* @param id 订单操作记录主键
* @return 订单操作记录
*/
public OrderOperationRecord selectOrderOperationRecordById(Long id);
/**
* 查询订单操作记录列表
*
* @param orderOperationRecord 订单操作记录
* @return 订单操作记录集合
*/
public List<OrderOperationRecord> selectOrderOperationRecordList(OrderOperationRecord orderOperationRecord);
/**
* 新增订单操作记录
*
* @param orderOperationRecord 订单操作记录
* @return 结果
*/
public int insertOrderOperationRecord(OrderOperationRecord orderOperationRecord);
/**
* 修改订单操作记录
*
* @param orderOperationRecord 订单操作记录
* @return 结果
*/
public int updateOrderOperationRecord(OrderOperationRecord orderOperationRecord);
/**
* 删除订单操作记录
*
* @param id 订单操作记录主键
* @return 结果
*/
public int deleteOrderOperationRecordById(Long id);
/**
* 批量删除订单操作记录
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteOrderOperationRecordByIds(String[] ids);
}

View File

@ -0,0 +1,60 @@
package com.ghy.order.service;
import java.util.List;
import com.ghy.order.domain.OrderOperationRecord;
/**
* 订单操作记录Service接口
*
* @author clunt
* @date 2024-02-17
*/
public interface IOrderOperationRecordService
{
/**
* 查询订单操作记录
*
* @param id 订单操作记录主键
* @return 订单操作记录
*/
public OrderOperationRecord selectOrderOperationRecordById(Long id);
/**
* 查询订单操作记录列表
*
* @param orderOperationRecord 订单操作记录
* @return 订单操作记录集合
*/
public List<OrderOperationRecord> selectOrderOperationRecordList(OrderOperationRecord orderOperationRecord);
/**
* 新增订单操作记录
*
* @param orderOperationRecord 订单操作记录
* @return 结果
*/
public int insertOrderOperationRecord(OrderOperationRecord orderOperationRecord);
/**
* 修改订单操作记录
*
* @param orderOperationRecord 订单操作记录
* @return 结果
*/
public int updateOrderOperationRecord(OrderOperationRecord orderOperationRecord);
/**
* 批量删除订单操作记录
*
* @param ids 需要删除的订单操作记录主键集合
* @return 结果
*/
public int deleteOrderOperationRecordByIds(String ids);
/**
* 删除订单操作记录信息
*
* @param id 订单操作记录主键
* @return 结果
*/
public int deleteOrderOperationRecordById(Long id);
}

View File

@ -0,0 +1,97 @@
package com.ghy.order.service.impl;
import java.util.List;
import com.ghy.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ghy.order.mapper.OrderOperationRecordMapper;
import com.ghy.order.domain.OrderOperationRecord;
import com.ghy.order.service.IOrderOperationRecordService;
import com.ghy.common.core.text.Convert;
/**
* 订单操作记录Service业务层处理
*
* @author clunt
* @date 2024-02-17
*/
@Service
public class OrderOperationRecordServiceImpl implements IOrderOperationRecordService
{
@Autowired
private OrderOperationRecordMapper orderOperationRecordMapper;
/**
* 查询订单操作记录
*
* @param id 订单操作记录主键
* @return 订单操作记录
*/
@Override
public OrderOperationRecord selectOrderOperationRecordById(Long id)
{
return orderOperationRecordMapper.selectOrderOperationRecordById(id);
}
/**
* 查询订单操作记录列表
*
* @param orderOperationRecord 订单操作记录
* @return 订单操作记录
*/
@Override
public List<OrderOperationRecord> selectOrderOperationRecordList(OrderOperationRecord orderOperationRecord)
{
return orderOperationRecordMapper.selectOrderOperationRecordList(orderOperationRecord);
}
/**
* 新增订单操作记录
*
* @param orderOperationRecord 订单操作记录
* @return 结果
*/
@Override
public int insertOrderOperationRecord(OrderOperationRecord orderOperationRecord)
{
orderOperationRecord.setCreateTime(DateUtils.getNowDate());
return orderOperationRecordMapper.insertOrderOperationRecord(orderOperationRecord);
}
/**
* 修改订单操作记录
*
* @param orderOperationRecord 订单操作记录
* @return 结果
*/
@Override
public int updateOrderOperationRecord(OrderOperationRecord orderOperationRecord)
{
orderOperationRecord.setUpdateTime(DateUtils.getNowDate());
return orderOperationRecordMapper.updateOrderOperationRecord(orderOperationRecord);
}
/**
* 批量删除订单操作记录
*
* @param ids 需要删除的订单操作记录主键
* @return 结果
*/
@Override
public int deleteOrderOperationRecordByIds(String ids)
{
return orderOperationRecordMapper.deleteOrderOperationRecordByIds(Convert.toStrArray(ids));
}
/**
* 删除订单操作记录信息
*
* @param id 订单操作记录主键
* @return 结果
*/
@Override
public int deleteOrderOperationRecordById(Long id)
{
return orderOperationRecordMapper.deleteOrderOperationRecordById(id);
}
}

View File

@ -107,11 +107,35 @@
LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id
LEFT JOIN goods g ON g.goods_id = om.goods_id LEFT JOIN goods g ON g.goods_id = om.goods_id
LEFT JOIN financial_master fm ON om.id = fm.order_master_id LEFT JOIN financial_master fm ON om.id = fm.order_master_id
left join worker w on om.worker_id = w.worker_id
</sql> </sql>
<select id="selectOrderMasterList" parameterType="com.ghy.order.domain.OrderMaster" resultMap="OrderMasterResult"> <select id="selectOrderMasterList" parameterType="com.ghy.order.domain.OrderMaster" resultMap="OrderMasterResult">
<include refid="selectOrderMasterMoreInfo"></include> <include refid="selectOrderMasterMoreInfo"></include>
<where> <where>
<if test="keywords != null and keywords != ''">
AND
(
om.code LIKE concat('%', #{keywords}, '%')
or ca.name LIKE concat('%', #{keywords}, '%')
or ca.phone LIKE concat('%', #{keywords}, '%')
)
</if>
<if test="workerName != null and workerName != ''">
AND w.name LIKE concat('%', #{workerName}, '%')
</if>
<if test="workerPhone != null and workerPhone != ''">
AND w.phone LIKE concat('%', #{workerPhone}, '%')
</if>
<if test="province != null and province != ''">
AND ca.province_id = #{province}
</if>
<if test="city != null and city != ''">
AND ca.city_id = #{city}
</if>
<if test="district != null and district != ''">
AND ca.country_id = #{district}
</if>
<if test="isMonitoredOrder"> <if test="isMonitoredOrder">
AND (om.all_self_assigned = 0 or om.all_self_assigned is null) AND om.order_status in (1,2,3,4) AND (om.all_self_assigned = 0 or om.all_self_assigned is null) AND om.order_status in (1,2,3,4)
</if> </if>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ghy.order.mapper.OrderOperationRecordMapper">
<resultMap type="OrderOperationRecord" id="OrderOperationRecordResult">
<result property="id" column="id" />
<result property="orderId" column="order_id" />
<result property="orderType" column="order_type" />
<result property="content" column="content" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
<result property="createBy" column="create_by" />
<result property="updateBy" column="update_by" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectOrderOperationRecordVo">
select id, order_id, order_type, content, create_time, update_time, create_by, update_by, remark from order_operation_record
</sql>
<select id="selectOrderOperationRecordList" parameterType="OrderOperationRecord" resultMap="OrderOperationRecordResult">
<include refid="selectOrderOperationRecordVo"/>
<where>
<if test="orderId != null "> and order_id = #{orderId}</if>
<if test="orderType != null and orderType != ''"> and order_type = #{orderType}</if>
<if test="content != null and content != ''"> and content = #{content}</if>
</where>
</select>
<select id="selectOrderOperationRecordById" parameterType="Long" resultMap="OrderOperationRecordResult">
<include refid="selectOrderOperationRecordVo"/>
where id = #{id}
</select>
<insert id="insertOrderOperationRecord" parameterType="OrderOperationRecord" useGeneratedKeys="true" keyProperty="id">
insert into order_operation_record
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="orderId != null">order_id,</if>
<if test="orderType != null">order_type,</if>
<if test="content != null">content,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateBy != null">update_by,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="orderId != null">#{orderId},</if>
<if test="orderType != null">#{orderType},</if>
<if test="content != null">#{content},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateOrderOperationRecord" parameterType="OrderOperationRecord">
update order_operation_record
<trim prefix="SET" suffixOverrides=",">
<if test="orderId != null">order_id = #{orderId},</if>
<if test="orderType != null">order_type = #{orderType},</if>
<if test="content != null">content = #{content},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteOrderOperationRecordById" parameterType="Long">
delete from order_operation_record where id = #{id}
</delete>
<delete id="deleteOrderOperationRecordByIds" parameterType="String">
delete from order_operation_record where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -76,11 +76,11 @@ public class OrderServiceImpl implements OrderService {
} }
// 查询符合超时的子单 // 查询符合超时的子单
List<OrderDetail> orders = orderDetailService.selectByStatus(timeoutOrderStatus); // List<OrderDetail> orders = orderDetailService.selectByStatus(timeoutOrderStatus);
log.info("扫描到{}条未完成的子订单", orders.size()); // log.info("扫描到{}条未完成的子订单", orders.size());
for (OrderDetail order : orders) { // for (OrderDetail order : orders) {
executor.execute(() -> checkTimeout(order)); // executor.execute(() -> checkTimeout(order));
} // }
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)