超市优化

This commit is contained in:
zengtao01
2024-11-13 20:00:23 +08:00
parent ac5741b622
commit c3eef023e9
7 changed files with 134 additions and 7 deletions

View File

@ -1,10 +1,12 @@
package cn.iocoder.yudao.module.member.controller.admin.storeorder.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -40,4 +42,5 @@ public class StoreOrderPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
private Integer status;
}

View File

@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrder
import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrderVO;
import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.CardDto;
import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO;
import cn.iocoder.yudao.module.member.enums.StoreOrderStatusEnum;
import cn.iocoder.yudao.module.member.service.async.MemberAsyncService;
import cn.iocoder.yudao.module.member.service.storeorder.StoreOrderService;
import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService;
@ -48,6 +49,9 @@ public class AppStoreOrderController {
@GetMapping("/page")
@Operation(summary = "获得商品订单分页")
public CommonResult<PageResult<StoreOrderRespVO>> getStoreOrderPage(@Valid StoreOrderPageReqVO pageReqVO) {
if(pageReqVO.getUserId()==null){
pageReqVO.setStatus(StoreOrderStatusEnum.COMPLETE.getCode());
}
PageResult<StoreOrderDO> pageResult = storeOrderService.getStoreOrderPage(pageReqVO);
PageResult<StoreOrderRespVO> bean = BeanUtils.toBean(pageResult, StoreOrderRespVO.class);
//处理订单详情

View File

@ -1,16 +1,17 @@
package cn.iocoder.yudao.module.member.dal.mysql.storeorder;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageVO;
import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 商品订单 Mapper
*
@ -28,6 +29,7 @@ public interface StoreOrderMapper extends BaseMapperX<StoreOrderDO> {
.eqIfPresent(StoreOrderDO::getUuid, reqVO.getUuid())
.eqIfPresent(StoreOrderDO::getTotalPrice, reqVO.getTotalPrice())
.eqIfPresent(StoreOrderDO::getUserId, reqVO.getUserId())
.eqIfPresent(StoreOrderDO::getStatus, reqVO.getStatus())
.betweenIfPresent(StoreOrderDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(StoreOrderDO::getOrderId));
}

View File

@ -0,0 +1,54 @@
package cn.iocoder.yudao.module.member.job;
import cn.hutool.core.collection.CollectionUtil;
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.AddReqVO;
import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO;
import cn.iocoder.yudao.module.member.service.async.MemberAsyncService;
import cn.iocoder.yudao.module.member.service.storeorder.StoreOrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author:qjq 计算门店流水
* @Date:2024/4/24 下午3:22
*/
@Component
@Slf4j
public class StoreOrderCancelJob implements JobHandler {
@Resource
private StoreOrderService storeOrderService;
@Resource
private MemberAsyncService memberAsyncService;
/**
* 执行任务
*
* @param param 参数
* @return 结果
* @throws Exception 异常
*/
@Override
@TenantIgnore
public String execute(String param) throws Exception {
try {
List<StoreOrderDO> storeOrderDOS = storeOrderService.selectPayOrder();
if(CollectionUtil.isNotEmpty(storeOrderDOS)){
List<Integer> collect = storeOrderDOS.stream().map(StoreOrderDO::getOrderId).collect(Collectors.toList());
for (Integer orderId:collect){
AddReqVO cancel = storeOrderService.cancel(orderId);
memberAsyncService.batchRecord(cancel);
}
}
} catch (Exception e) {
return "订单取消失败";
}
return "订单取消成功";
}
}

View File

@ -91,4 +91,6 @@ public interface StoreOrderService {
AddReqVO cancel(Integer orderId);
Long refund(Integer orderId);
List<StoreOrderDO> selectPayOrder();
}

View File

@ -41,6 +41,7 @@ import cn.iocoder.yudao.module.member.service.user.MemberUserService;
import cn.iocoder.yudao.module.member.util.QRCodeWithJWTUtil;
import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
@ -529,6 +530,12 @@ public class StoreOrderServiceImpl implements StoreOrderService {
return storeRefundService.createStoreRefund(storeRefundSaveReqVO);
}
@Override
public List<StoreOrderDO> selectPayOrder() {
return storeOrderMapper.selectList(Wrappers.<StoreOrderDO>lambdaQuery()
.eq(StoreOrderDO::getStatus,StoreOrderStatusEnum.PAY.getCode()));
}
public void test() {
//计算金额
//if (total.compareTo(wxAmount) <= 0) {

View File

@ -0,0 +1,55 @@
package cn.iocoder.yudao.module.member.util;
import cn.hutool.crypto.digest.MD5;
import cn.hutool.http.HttpUtil;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.Map;
/**
* @author zt
* @description <description class purpose>
* @since 2024/11/13
*/
public class SmsUtil {
private static final String USER = "yclh";
private static final String PASS = "yclh6666";
private static final String USERID = "1694";
private static final String URL= "http://120.79.149.129:7799/v2sms.aspx";
public static void sendMsg(String mobile,String content){
LocalDateTime now = LocalDateTime.now();
// 定义时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
// 将当前时间按照指定格式进行格式化
String time = now.format(formatter);
String sign = createSign(time);
Map<String, Object> param = new HashMap<>();
param.put("action","send");
param.put("userid",USERID);
param.put("timestamp",time);
param.put("sign",sign);
param.put("mobile",mobile);
param.put("content",content);
param.put("sendTime",null);
param.put("extno",null);
String s = HttpUtil.post(URL, param);
System.out.println(s);
}
public static String createSign(String timestamp){
return MD5.create().digestHex(USER+PASS+timestamp);
}
public static void main(String[] args) {
sendMsg("15723110242","这是一条测试短信2");
}
}