From c3eef023e9f416bdacd477dda5662d1edee6d7b3 Mon Sep 17 00:00:00 2001 From: zengtao01 Date: Wed, 13 Nov 2024 20:00:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E5=B8=82=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storeorder/vo/StoreOrderPageReqVO.java | 9 ++- .../storeorder/AppStoreOrderController.java | 4 ++ .../mysql/storeorder/StoreOrderMapper.java | 10 ++-- .../member/job/StoreOrderCancelJob.java | 54 ++++++++++++++++++ .../service/storeorder/StoreOrderService.java | 2 + .../storeorder/StoreOrderServiceImpl.java | 7 +++ .../yudao/module/member/util/SmsUtil.java | 55 +++++++++++++++++++ 7 files changed, 134 insertions(+), 7 deletions(-) create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/job/StoreOrderCancelJob.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/SmsUtil.java diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderPageReqVO.java index d489d5a0..3868cd39 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderPageReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderPageReqVO.java @@ -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; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java index 23f28a51..b3e7ad91 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java @@ -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> getStoreOrderPage(@Valid StoreOrderPageReqVO pageReqVO) { + if(pageReqVO.getUserId()==null){ + pageReqVO.setStatus(StoreOrderStatusEnum.COMPLETE.getCode()); + } PageResult pageResult = storeOrderService.getStoreOrderPage(pageReqVO); PageResult bean = BeanUtils.toBean(pageResult, StoreOrderRespVO.class); //处理订单详情 diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeorder/StoreOrderMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeorder/StoreOrderMapper.java index fc39ee19..4f1bec0a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeorder/StoreOrderMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeorder/StoreOrderMapper.java @@ -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 { .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)); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/job/StoreOrderCancelJob.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/job/StoreOrderCancelJob.java new file mode 100644 index 00000000..d13ced94 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/job/StoreOrderCancelJob.java @@ -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 storeOrderDOS = storeOrderService.selectPayOrder(); + if(CollectionUtil.isNotEmpty(storeOrderDOS)){ + List 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 "订单取消成功"; + } +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java index 37a828ad..56e0ed6b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java @@ -91,4 +91,6 @@ public interface StoreOrderService { AddReqVO cancel(Integer orderId); Long refund(Integer orderId); + + List selectPayOrder(); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java index 9f9a01ec..334ab26e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java @@ -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 selectPayOrder() { + return storeOrderMapper.selectList(Wrappers.lambdaQuery() + .eq(StoreOrderDO::getStatus,StoreOrderStatusEnum.PAY.getCode())); + } + public void test() { //计算金额 //if (total.compareTo(wxAmount) <= 0) { diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/SmsUtil.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/SmsUtil.java new file mode 100644 index 00000000..747d8266 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/SmsUtil.java @@ -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 + * @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 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"); + } +}