From 6acf6357094588946b5528f1ef1ed84a0f1037fd Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期五, 13 六月 2025 19:45:27 +0800
Subject: [PATCH] 小程序收付款

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserApplyForAdmissionServiceImpl.java |  109 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 96 insertions(+), 13 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserApplyForAdmissionServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserApplyForAdmissionServiceImpl.java
index d07648b..c576dfe 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserApplyForAdmissionServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserApplyForAdmissionServiceImpl.java
@@ -1,23 +1,36 @@
 package com.ruoyi.account.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.api.model.AppUserShop;
 import com.ruoyi.account.api.model.ApplyForAdmission;
 import com.ruoyi.account.dto.ApplyForAdmissionDTO;
+import com.ruoyi.account.dto.ApplyReviewDTO;
 import com.ruoyi.account.mapper.AppUserMapper;
 import com.ruoyi.account.mapper.ApplyForAdmissionMapper;
 import com.ruoyi.account.service.AppUserService;
+import com.ruoyi.account.service.AppUserShopService;
 import com.ruoyi.account.service.UserApplyForAdmissionService;
 import com.ruoyi.account.util.tencentMap.TencentMapUtil;
+import com.ruoyi.account.vo.ApplyForAdmissionDetailVO;
+import com.ruoyi.account.vo.ApplyForAdmissionListVO;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.other.api.domain.Phone;
 import com.ruoyi.other.api.domain.Region;
+import com.ruoyi.other.api.domain.Shop;
+import com.ruoyi.other.api.feignClient.PhoneClient;
 import com.ruoyi.other.api.feignClient.RegionClient;
+import com.ruoyi.other.api.feignClient.ShopClient;
+import com.ruoyi.system.api.model.UserShop;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
@@ -34,6 +47,14 @@
     private AppUserService appUserService;
     @Resource
     private RegionClient regionClient;
+    @Resource
+    private ShopClient shopClient;
+    @Resource
+    private PhoneClient phoneClient;
+
+    @Autowired
+    private AppUserShopService appUserShopService;
+
 
     /**
      * 申请入驻
@@ -51,20 +72,7 @@
         applyForAdmission.setCreateTime(LocalDateTime.now());
         applyForAdmission.setApplyUserId(userid);
         applyForAdmission.setStatus(0);
-        String city = TencentMapUtil.inverseGeographicalAnalysis(applyForAdmission.getLongitude(), applyForAdmission.getLatitude(), false);
-        if(!StringUtils.hasLength(city)){
-            city = "510100";
-        }
-        applyForAdmission.setProvinceCode(city.substring(0, 2) + "0000");
-        Region provinceRegion = regionClient.getRegionBiCode(applyForAdmission.getProvinceCode()).getData();
-        applyForAdmission.setCityCode(city.substring(0, 4) + "00");
-        Region cityRegion = regionClient.getRegionBiCode(applyForAdmission.getCityCode()).getData();
-        applyForAdmission.setDistrictCode(city);
-        Region districtRegion = regionClient.getRegionBiCode(applyForAdmission.getDistrictCode()).getData();
 
-        applyForAdmission.setProvince(provinceRegion.getName());
-        applyForAdmission.setCity(cityRegion.getName());
-        applyForAdmission.setDistrict(districtRegion.getName());
 
         this.save(applyForAdmission);
         return R.ok();
@@ -82,4 +90,79 @@
                         .orderByDesc(ApplyForAdmission::getCreateTime)  // 按申请日期降序
                         .last("LIMIT 1"));
     }
+
+    @Override
+    public IPage<ApplyForAdmissionListVO> getApplyList(Integer pageNum, Integer pageSize, String shopName, String shopManager, String phone, Integer status) {
+        Page<ApplyForAdmissionListVO> page = new Page<>(pageNum, pageSize);
+        return userApplyForAdmissionMapper.selectApplyList(page, shopName, shopManager, phone, status);
+    }
+
+    @Override
+    public ApplyForAdmissionDetailVO getApplyDetail(Integer id) {
+        ApplyForAdmission apply = userApplyForAdmissionMapper.selectById(id);
+        if (apply == null) {
+            throw new RuntimeException("申请记录不存在");
+        }
+
+        ApplyForAdmissionDetailVO detail = new ApplyForAdmissionDetailVO();
+        BeanUtils.copyProperties(apply, detail);
+        detail.setFullAddress(apply.getAddress() + apply.getDetailAddress());
+        return detail;
+    }
+
+    @Override
+    @Transactional(rollbackFor=Exception.class)
+    public void review(ApplyReviewDTO applyReviewDTO) {
+        ApplyForAdmission apply = userApplyForAdmissionMapper.selectById(applyReviewDTO.getId());
+        if (apply == null) {
+            throw new RuntimeException("申请记录不存在");
+        }
+        if (apply.getStatus() != 0) {
+            throw new RuntimeException("该记录已审核过");
+        }
+        if(applyReviewDTO.getStatus()==2){
+            //审核不通过
+            apply.setStatus(2);
+            apply.setRemark(applyReviewDTO.getRemark());
+            apply.setUpdateTime(LocalDateTime.now());
+            this.updateById(apply);
+            return;
+        }
+        //审核通过
+        apply.setStatus(1);
+        apply.setUpdateTime(LocalDateTime.now());
+        apply.setRemark(applyReviewDTO.getRemark());
+        this.updateById(apply);
+
+        //先加入商店
+        Shop shop = new Shop();
+        BeanUtils.copyProperties(apply, shop);
+        shop.setId(null);
+        shop.setName(apply.getShopName());
+        shop.setBusinessTime(apply.getBusinessTime());
+        shop.setAppUserId(apply.getApplyUserId());
+        shop.setCreateTime(LocalDateTime.now());
+        R shopR = shopClient.insert(shop);
+        if (shopR.getCode()!=200){
+            throw new RuntimeException("添加店铺失败");
+        }
+        Integer shopId = (Integer) shopR.getData();
+        //加入usershop
+        AppUserShop userShop = new AppUserShop();
+        userShop.setAppUserId(apply.getApplyUserId());
+        userShop.setShopId(shopId);
+        appUserShopService.save(userShop);
+        //加入客服手机号
+        Phone phone = new Phone();
+        phone.setType(2);//门店
+        phone.setPhoneOne(apply.getServiceTel());
+        phone.setShopId(shopId);
+        R phoneR = phoneClient.insert(phone);
+        if (phoneR.getCode()!=200){
+            throw new RuntimeException("添加店铺客服电话失败");
+        }
+
+
+    }
+
 }

--
Gitblit v1.7.1