123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- package com.ruoyi.demo.service.impl;
- import cn.hutool.core.lang.Dict;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.ruoyi.demo.entity.*;
- import com.ruoyi.demo.entity.bo.OrderAddBo;
- import com.ruoyi.demo.entity.bo.PlanBo;
- import com.ruoyi.demo.entity.vo.OrderVo;
- import com.ruoyi.demo.mapper.*;
- 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.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- @Service
- @Transactional
- public class OrderServiceImpl implements OrderService {
- @Autowired
- OrderMapper orderMapper;
- @Autowired
- AppMapper appMapper;
- @Autowired
- StatisticsMapper statisticsMapper;
- @Autowired
- PlanMapper planMapper;
- @Autowired
- EquipmentMapper equipmentMapper;
- @Autowired
- DlUserMapper dlUserMapper;
- // 获取sign——用于测试
- @Override
- public String getSign(OrderAddBo bo) {
- QueryWrapper<App> appQueryWrapper = new QueryWrapper<>();
- appQueryWrapper.eq("appkey", bo.getAppkey())
- .eq("state", 1)
- .eq("deleted", "0");
- App app = appMapper.selectOne(appQueryWrapper);
- if (app == null)
- return "error";
- Map<String, Object> params = Dict.create()
- .set("appkey", bo.getAppkey())
- .set("createTime", bo.getTime())
- .set("dealCount", bo.getDealCount())
- .set("equipmentCode", bo.getEquipmentCode())
- .set("goodsId", bo.getGoodsId())
- .set("goodsName", bo.getGoodsName())
- .set("goodsPrice", bo.getGoodsPrice())
- .set("orderId", bo.getOrderId())
- .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<App> appQueryWrapper = new QueryWrapper<>();
- appQueryWrapper.eq("appkey", bo.getAppkey())
- .eq("state", 1)
- .eq("deleted", "0");
- App app = appMapper.selectOne(appQueryWrapper);
- if (app == null)
- return -1;
- Map<String, Object> params = Dict.create()
- .set("appkey", bo.getAppkey())
- .set("createTime", bo.getTime())
- .set("dealCount", bo.getDealCount())
- .set("equipmentCode", bo.getEquipmentCode())
- .set("goodsId", bo.getGoodsId())
- .set("goodsName", bo.getGoodsName())
- .set("goodsPrice", bo.getGoodsPrice())
- .set("orderId", bo.getOrderId())
- .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;
- // 验证通过后,如果用户不存在,则添加用户;否则更新用户信息
- QueryWrapper<Equipment> equipmentQueryWrapper = new QueryWrapper<>();
- equipmentQueryWrapper.eq("equipment_code", bo.getEquipmentCode());
- Equipment equipment = equipmentMapper.selectOne(equipmentQueryWrapper);
- QueryWrapper<DlUser> userQueryWrapper = new QueryWrapper<>();
- userQueryWrapper.eq("user_id", bo.getUserId());
- DlUser user = dlUserMapper.selectOne(userQueryWrapper);
- if (user == null)
- dlUserMapper.insert(new DlUser(bo, equipment));
- else {
- user.setEndEquipmentId(equipment.getEquipmentId());
- user.setEndEquipmentName(equipment.getEquipmentName());
- user.setEndEquipmentCode(equipment.getEquipmentCode());
- user.setEndTime(bo.getTime());
- // user.setTotalPrice(user.getTotalPrice().add(bo.getGoodsPrice().multiply(new BigDecimal(bo.getDealCount()))));
- user.setTotalPrice(user.getTotalPrice().add(bo.getGoodsPrice()));
- dlUserMapper.update(user, userQueryWrapper);
- }
- // 添加交易行为记录
- statisticsMapper.insert(new Statistics(bo, equipment));
- // 添加订单
- return orderMapper.insert(new Order(bo, app));
- }
- // 查询订单列表
- @Override
- public MyPage<OrderVo> getOrderList(PlanBo bo) {
- QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
- if (bo.getText() != null)
- queryWrapper.and(orderQueryWrapper -> {
- orderQueryWrapper.like("order_id", bo.getText())
- .or()
- .like("goods_name", bo.getText())
- .or()
- .like("user_name", bo.getText())
- .or()
- .like("vendor_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());
- Page<Order> page = new Page<>(bo.getPageNum(), bo.getPageSize());
- List<Order> orders = orderMapper.selectPage(page, queryWrapper).getRecords();
- List<OrderVo> vos = new ArrayList<>();
- for (Order order : orders)
- vos.add(new OrderVo(order));
- return new MyPage<>(page, vos);
- }
- }
|