package com.ruoyi.demo.service.impl; import cn.hutool.core.lang.Dict; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ruoyi.demo.entity.App; import com.ruoyi.demo.entity.Order; import com.ruoyi.demo.entity.bo.OrderAddBo; import com.ruoyi.demo.entity.bo.PlanBo; import com.ruoyi.demo.mapper.AppMapper; import com.ruoyi.demo.mapper.OrderMapper; import com.ruoyi.demo.service.OrderService; import com.ruoyi.demo.utils.SignUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @Service @Transactional public class OrderServiceImpl implements OrderService { @Autowired OrderMapper orderMapper; @Autowired AppMapper appMapper; @Override public String getSign(OrderAddBo bo) { QueryWrapper appQueryWrapper = new QueryWrapper<>(); appQueryWrapper.eq("appkey",bo.getAppkey()); App app = appMapper.selectOne(appQueryWrapper); if (app == null) return "error"; Map params = Dict.create() .set("appName",bo.getAppName()) .set("appkey",bo.getAppkey()) .set("commercialId",bo.getCommercialId()) .set("commercialName",bo.getCommercialName()) .set("createTime",bo.getCreateTime()) .set("goodsId",bo.getGoodsId()) .set("goodsName",bo.getGoodsName()) .set("goodsPrice",bo.getGoodsPrice()) .set("orderId",bo.getOrderId()) .set("totalPrice",bo.getTotalPrice()) .set("userId",bo.getUserId()) .set("userName",bo.getUserName()) .set("userTelephone",bo.getUserTelephone()) .set("vendorId",bo.getVendorId()) .set("vendorName",bo.getVendorName()) .set("sign",null) .set("specs",bo.getSpecs()) .set("state",bo.getState()); return SignUtil.sign(params,app.getAppSecret()); } @Override public int addOrder(OrderAddBo bo) { QueryWrapper appQueryWrapper = new QueryWrapper<>(); appQueryWrapper.eq("appkey",bo.getAppkey()); App app = appMapper.selectOne(appQueryWrapper); if (app == null) return -1; Map params = Dict.create() .set("appName",bo.getAppName()) .set("appkey",bo.getAppkey()) .set("commercialId",bo.getCommercialId()) .set("commercialName",bo.getCommercialName()) .set("createTime",bo.getCreateTime()) .set("goodsId",bo.getGoodsId()) .set("goodsName",bo.getGoodsName()) .set("goodsPrice",bo.getGoodsPrice()) .set("orderId",bo.getOrderId()) .set("totalPrice",bo.getTotalPrice()) .set("userId",bo.getUserId()) .set("userName",bo.getUserName()) .set("userTelephone",bo.getUserTelephone()) .set("vendorId",bo.getVendorId()) .set("vendorName",bo.getVendorName()) .set("sign",bo.getSign()) .set("specs",bo.getSpecs()) .set("state",bo.getState()); if (!SignUtil.verify(params,app.getAppSecret())) return -3; return orderMapper.insert(bo); } @Override public PageInfo> getOrderList(PlanBo bo) { PageHelper.startPage(bo.getPageNum(),bo.getPageSize(),true); QueryWrapper queryWrapper = new QueryWrapper<>(); if (bo.getText() != null) queryWrapper.like("order_id",bo.getText()) .or() .like("goods_name",bo.getText()) .or() .like("user_name",bo.getText()) .or() .like("commercial_name",bo.getText()); if (bo.getStartTime() != null) queryWrapper.apply("create_time >= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getStartTime()); if (bo.getEndTime() != null) queryWrapper.apply("create_time <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getEndTime()); List orders = orderMapper.selectList(queryWrapper); return new PageInfo(orders); } }