Selaa lähdekoodia

bugfix:订单列表加字段
核销修改

lyx 2 kuukautta sitten
vanhempi
commit
da81f86170

+ 4 - 1
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserOrderVo.java

@@ -144,8 +144,11 @@ public class LifeUserOrderVo {
     private Date endDate;
     @ApiModelProperty(value = "是否评论")
     private Boolean hasComment;
+    @ApiModelProperty(value = "营业状态")
+    private String businessStatus;
 
-
+    @ApiModelProperty(value = "商户状态")
+    private String abnormalStateFlag;
 
     @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
     @TableField("delete_flag")

+ 7 - 3
alien-entity/src/main/java/shop/alien/mapper/LifeUserOrderMapper.java

@@ -43,14 +43,18 @@ public interface LifeUserOrderMapper extends BaseMapper<LifeUserOrder> {
             "from life_coupon lc where lc.delete_flag = 0\n" +
             ")\n" +
             "select luo.id,luo.buy_time,luo.status,luo.price,luo.final_price,luo.user_id,luo.store_id,luo.order_no,luo.pay_time,luo.cancel_time,luo.finish_time,\n" +
-            "si.store_name,si.commission_rate,si.business_section store_type,\n" +
+            "si.store_name,si.commission_rate,si.business_section store_type,si.business_status,\n" +
             "count(ocm.coupon_code) coupon_count,\n" +
             "simg.img_url,\n" +
             "lu.user_phone,\n" +
             "IF(sc.id is null,false,true) as hasComment,\n" +
-            "tc.*\n" +
+            "tc.*,\n" +
+            "CASE\n" +
+            "        WHEN si.delete_flag = 1 OR si.logout_flag = 1 THEN 1\n" +
+            "        ELSE 0\n" +
+            "    END AS abnormalStateFlag\n" +
             "from life_user_order luo\n" +
-            "left join store_info si on si.id = luo.store_id and si.delete_flag = 0 -- 查询店铺相关 \n" +
+            "left join store_info si on si.id = luo.store_id  -- 查询店铺相关 \n" +
             "left join life_user lu on lu.id = luo.user_id and lu.delete_flag = 0 -- 查询用户相关 \n" +
             "left join order_coupon_middle ocm on ocm.order_id = luo.id and ocm.delete_flag = 0\n" +
             "inner join total_coupon tc on tc.coupon_id = ocm.coupon_id and tc.coupon_type = luo.coupon_type\n" +

+ 1 - 72
alien-store/src/main/java/shop/alien/store/controller/PingtaiTaocanController.java

@@ -1,20 +1,15 @@
 package shop.alien.store.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.store.LifeCoupon;
-import shop.alien.entity.store.vo.StoreInfoVo;
 import shop.alien.mapper.LifeCouponMapper;
 import shop.alien.mapper.StoreInfoMapper;
 
-import java.util.*;
-import java.util.stream.Collectors;
+import java.util.Date;
 
 /**
  * 套餐
@@ -31,72 +26,6 @@ public class PingtaiTaocanController {
 
     private final StoreInfoMapper storeInfoMapper;
 
-    @GetMapping("getTaocanList")
-    private Map<String, Object> getTaocanList(@RequestParam(value = "page", defaultValue = "1") int page,
-                                              @RequestParam(value = "size", defaultValue = "10") int size,
-                                              @RequestParam("storeName") String storeName,
-                                              @RequestParam("status") String status) {
-        log.info("LifeCouponController.getTaocanList?page={},size={},storeName={},status={}", page, size, storeName, status);
-        Map<String, Object> returnMap = new HashMap<>();
-        IPage<LifeCoupon> quanPage = new Page<>(page, size);
-        LambdaUpdateWrapper<LifeCoupon> wrapper = new LambdaUpdateWrapper<>();
-        if (storeName != null && !storeName.isEmpty()) {
-            QueryWrapper<StoreInfoVo> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("a.store_name", storeName).eq("a.delete_flag", 0);
-            List<StoreInfoVo> storeInfoVoList = storeInfoMapper.getStoreInfoVoList(queryWrapper);
-            if (storeInfoVoList.isEmpty()) {
-                return returnMap;
-            }
-            List<Integer> storeIds = storeInfoVoList.stream().map(StoreInfoVo::getId).collect(Collectors.toList());
-            wrapper.in(LifeCoupon::getStoreId, storeIds);
-        }
-        if (status != null && !status.isEmpty()) {
-            if (status.equals("0")) {
-                List<Integer> statuss = new ArrayList<>();
-                statuss.add(0);
-                statuss.add(1);
-                statuss.add(2);
-                statuss.add(3);
-                wrapper.in(LifeCoupon::getStatus, statuss);
-            } else {
-                wrapper.eq(LifeCoupon::getStatus, Integer.valueOf(status));
-            }
-        }
-        wrapper.eq(LifeCoupon::getType, 2);
-        wrapper.orderByDesc(LifeCoupon::getUpdatedTime);
-        IPage<LifeCoupon> lifeyouhuiquans = lifeCouponMapper.selectPage(quanPage, wrapper);
-        int totalCnt = lifeCouponMapper.selectCount(wrapper);
-        if (lifeyouhuiquans.getRecords().isEmpty()) {
-            return returnMap;
-        }
-        List<Map<String, Object>> mapList = new ArrayList<>();
-        for (LifeCoupon taocan : lifeyouhuiquans.getRecords()) {
-            Map<String, Object> map = new HashMap<>();
-            QueryWrapper<StoreInfoVo> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("a.id", taocan.getStoreId()).eq("a.delete_flag", 0);
-            StoreInfoVo storeInfoVoOne = storeInfoMapper.getStoreInfoVoOne(queryWrapper);
-            map.put("id", taocan.getId());
-            map.put("storeName", storeInfoVoOne.getStoreName());
-            map.put("phoneNum", storeInfoVoOne.getStorePhone());
-            map.put("tijiaoTime", taocan.getCreatedTime());
-            String statusStr;
-            if (taocan.getStatus() == -1) {
-                statusStr = "待审核";
-            } else if (taocan.getStatus() == -2) {
-                statusStr = "已驳回";
-            } else {
-                statusStr = "已通过";
-            }
-            map.put("status", statusStr);
-            map.put("taocanName", taocan.getName());
-            mapList.add(map);
-        }
-        returnMap.put("data", mapList);
-        returnMap.put("total", totalCnt);
-        returnMap.put("current", quanPage.getCurrent());
-        returnMap.put("size", quanPage.getSize());
-        return returnMap;
-    }
 
     @GetMapping("getTaocanDetial")
     private LifeCoupon getTaocanList(@RequestParam("id") String id) {

+ 5 - 3
alien-store/src/main/java/shop/alien/store/service/LifeUserStoreService.java

@@ -4,15 +4,17 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import shop.alien.entity.store.*;
 import shop.alien.entity.store.vo.LifeUserDynamicsVo;
 import shop.alien.entity.store.vo.StoreInfoVo;
-import shop.alien.store.config.GaoDeMapUtil;
 import shop.alien.mapper.*;
+import shop.alien.store.config.GaoDeMapUtil;
 import shop.alien.util.common.DistanceUtil;
+import shop.alien.util.common.ListToPage;
 import shop.alien.util.common.UniqueRandomNumGenerator;
 import shop.alien.util.common.constant.DiscountCouponEnum;
 
@@ -209,9 +211,9 @@ public class LifeUserStoreService {
 
             returnMaps = returnMaps.stream().sorted(Comparator.comparingDouble(storeMap -> Double.parseDouble( storeMap.get("avgScore").toString()) * -1)).collect(Collectors.toList());
             //returnMaps.sort(Collections.reverseOrder());
-
+            IPage<Map<String, Object>> mapIPage = ListToPage.setPage(returnMaps, page, size);
             // 返回最终结果列表
-            return returnMaps;
+            return mapIPage.getRecords();
         } catch (Exception e) {
             // 捕获并抛出运行时异常
             throw new RuntimeException(e);

+ 0 - 10
alien-store/src/main/java/shop/alien/store/service/StoreInfoService.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.multipart.MultipartRequest;
-import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreBusinessInfo;
 import shop.alien.entity.store.StoreImg;
 import shop.alien.entity.store.StoreInfo;
@@ -53,15 +52,6 @@ public interface StoreInfoService extends IService<StoreInfo> {
     StoreMainInfoVo getStoreInfo(Integer id);
 
     /**
-     * 门店关联门店用户
-     *
-     * @param storeName 门店名称
-     * @param id        门店id
-     * @return List<StoreInfoVo>
-     */
-    List<StoreInfoVo> getStoreInfoVo(String storeName, Integer id);
-
-    /**
      * web-分页查询店铺信息
      *
      * @param page         页码

+ 7 - 9
alien-store/src/main/java/shop/alien/store/service/impl/LifeCouponServiceImpl.java

@@ -235,6 +235,7 @@ public class LifeCouponServiceImpl extends ServiceImpl<LifeCouponMapper, LifeCou
         Map<String, String> resultMap = new HashMap<>();
         OrderCouponMiddle orderCouponMiddle = orderCouponMiddleMapper.selectOne(new LambdaQueryWrapper<OrderCouponMiddle>().eq(OrderCouponMiddle::getCouponCode, quanCode));
         if (!StringUtils.isEmpty(orderCouponMiddle)) {
+            // 查询总订单
             LifeUserOrder lifeUserOrder = lifeUserOrderMapper.selectOne(new LambdaQueryWrapper<LifeUserOrder>().eq(LifeUserOrder::getId, orderCouponMiddle.getOrderId()));
             orderCouponMiddle.setStatus(OrderStatusEnum.USED.getStatus());
             orderCouponMiddle.setUsedTime(new Date());
@@ -243,8 +244,7 @@ public class LifeCouponServiceImpl extends ServiceImpl<LifeCouponMapper, LifeCou
             List<OrderCouponMiddle> couponMiddleList = orderCouponMiddleMapper.selectList(new LambdaQueryWrapper<OrderCouponMiddle>()
                     .eq(OrderCouponMiddle::getOrderId, lifeUserOrder.getId()));
             // 排除要核销的券的 所以券状态
-            boolean isExist = couponMiddleList.stream().filter(x -> x.getId() != orderCouponMiddle.getId())
-                    .allMatch(str -> str.getStatus() == OrderStatusEnum.USED.getStatus());
+            boolean isExist = couponMiddleList.stream().allMatch(str -> str.getStatus() == OrderStatusEnum.USED.getStatus());
             if (isExist) {
                 lifeUserOrder.setStatus(OrderStatusEnum.USED.getStatus());
                 lifeUserOrder.setFinishTime(new Date());
@@ -256,9 +256,8 @@ public class LifeCouponServiceImpl extends ServiceImpl<LifeCouponMapper, LifeCou
                 lifeDiscountCouponStoreFriendDto.setOrderId(Integer.parseInt(lifeUserOrder.getId()));
                 lifeDiscountCouponStoreFriendService.issueFriendCoupon(lifeDiscountCouponStoreFriendDto);
             }
-            // TODO  订单状态 -> 变已完成 筛选出未完成的状态
-            List<OrderCouponMiddle> collect = couponMiddleList.stream().filter(x -> x.getId() != orderCouponMiddle.getId())
-                    .filter(x -> x.getStatus() != OrderStatusEnum.WAIT_USE.getStatus() && x.getStatus() != OrderStatusEnum.REFUND_FAILED.getStatus())
+            // 订单状态 -> 已完成 筛选出未完成的状态
+            List<OrderCouponMiddle> collect = couponMiddleList.stream().filter(x -> x.getStatus() == OrderStatusEnum.WAIT_USE.getStatus() && x.getStatus() == OrderStatusEnum.REFUND_FAILED.getStatus())
                     .collect(Collectors.toList());
             if (collect.size() == 0) {
                 lifeUserOrder.setStatus(OrderStatusEnum.COMPLETE.getStatus());
@@ -272,15 +271,14 @@ public class LifeCouponServiceImpl extends ServiceImpl<LifeCouponMapper, LifeCou
                 lifeDiscountCouponStoreFriendService.issueFriendCoupon(lifeDiscountCouponStoreFriendDto);
             }
             // 计算总退款金额(orderCouponMiddle金额按实际的存)
-            BigDecimal refundAmount = couponMiddleList.stream().filter(x -> x.getStatus() == OrderStatusEnum.REFUND.getStatus()).map(x -> x.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
+//            BigDecimal refundAmount = couponMiddleList.stream().filter(x -> x.getStatus() == OrderStatusEnum.REFUND.getStatus()).map(x -> x.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
             StoreInfo storeInfo = storeInfoMapper.selectOne(new LambdaQueryWrapper<StoreInfo>().eq(StoreInfo::getId, lifeUserOrder.getStoreId()));
-            BigDecimal amounts = new BigDecimal(lifeUserOrder.getFinalPrice()).multiply(new BigDecimal(100)).subtract(refundAmount);
             // 先将抽成比例转换为BigDecimal,再除以100
             BigDecimal commissionRate = new BigDecimal(storeInfo.getCommissionRate())
                     .divide(new BigDecimal(100));
             // 感觉有问题。HALF_UP有问题。
-            BigDecimal commission = amounts.multiply(commissionRate).setScale(0, RoundingMode.HALF_UP);
-            BigDecimal money = amounts.subtract(commission);
+            BigDecimal commission = orderCouponMiddle.getPrice().multiply(commissionRate).setScale(2, RoundingMode.HALF_UP);
+            BigDecimal money = orderCouponMiddle.getPrice().subtract(commission);
 
             // 插入收入明细表数据
             StoreIncomeDetailsRecord record = new StoreIncomeDetailsRecord();