huliguo
2025-04-17 19df67e19f23cd2a04d1c7f355e1e656f4140af4
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -2,14 +2,18 @@
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.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.account.api.feignClient.AppUserShopClient;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.api.model.AppUserShop;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.security.service.TokenService;
@@ -19,6 +23,7 @@
import com.ruoyi.order.vo.OrderSaleNum;
import com.ruoyi.order.vo.VerifiableShopVo;
import com.ruoyi.other.api.domain.*;
import com.ruoyi.other.api.dto.ShopAnalysisDTO;
import com.ruoyi.other.dto.AddGoodsDTO;
import com.ruoyi.other.enums.PhoneType;
import com.ruoyi.other.mapper.ShopMapper;
@@ -80,7 +85,7 @@
    @Resource
    private ShopScoreMapper shopScoreMapper;
    @Resource
    private UserShopClient userShopClient;
    private AppUserShopClient appUserShopClient;
    @Resource
    private GoodsService goodsService;
    @Resource
@@ -153,12 +158,12 @@
    @ApiOperation(value = "新增门店", tags = {"管理后台-门店管理"})
    @Transactional(rollbackFor = Exception.class)
    public R<Void> add(@RequestBody Shop shop){
        String phone = shop.getPhone();
        /*String phone = shop.getPhone();
        AppUser appUser = appUserClient.getAppUserByPhone1(phone).getData();
        if (appUser == null){
            return R.fail("该手机号未注册");
        }
     /*   shop.setShopAllPoint(0);
     *//*   shop.setShopAllPoint(0);
        shop.setLowerLevelSharePoint(0);
        shop.setSharePoint(0);
        shop.setServerPoint(0);
@@ -166,20 +171,20 @@
        shop.setGiveawayAllMoney(BigDecimal.ZERO);
        shop.setGiveawayMoney(BigDecimal.ZERO);
        shop.setLowerLevelGiveawayMoney(BigDecimal.ZERO);
        shop.setServerGiveawayMoney(BigDecimal.ZERO);*/
        shop.setServerGiveawayMoney(BigDecimal.ZERO);*//*
        shop.setCanWithdrawMoney(BigDecimal.ZERO);
        shop.setWithdrawMoney(BigDecimal.ZERO);
        shop.setOrderNumber(0);
      /*  shop.setServerOrderNumber(0);
        shop.setCustomOrderNumber(0);*/
      *//*  shop.setServerOrderNumber(0);
        shop.setCustomOrderNumber(0);*//*
        shop.setAppUserId(appUser.getId());
        String city = TencentMapUtil.inverseGeographicalAnalysis(shop.getLongitude(), shop.getLatitude(), false);
        if(!StringUtils.hasLength(city)){
            city = "510100";
        }
        shop.setProvinceCode(city.substring(0, 2) + "0000");
        *//*shop.setProvinceCode(city.substring(0, 2) + "0000");
        shop.setCityCode(city.substring(0, 4) + "00");
        shop.setDistrictCode(city);
        shop.setDistrictCode(city);*//*
        shopService.save(shop);
        Integer shopId = shop.getId();
@@ -249,7 +254,7 @@
        R<List<AppUser>> lowerShopR = appUserClient.setLowerUserShop(appUser.getId(), shopId);
        if (R.isError(lowerShopR)){
            throw new RuntimeException("更换下级会员绑定门店失败");
        }
        }*/
        return R.ok();
    }
@@ -258,9 +263,7 @@
    @ApiOperation(value = "门店详情", tags = {"管理后台-门店管理"})
    public R<Shop> getDetailById(@RequestParam("id") Integer id){
        Shop shop = shopService.getById(id);
        if (null != shop.getPid() && shop.getPid()==0){
            shop.setPid(null);
        }
        return R.ok(shop);
    }
@@ -301,23 +304,17 @@
    @PutMapping("/editShop")
    @ApiOperation(value = "门店管理-编辑门店", tags = {"管理后台-门店管理"})
    public R<Void> editShop(@RequestBody Shop shop){
        String phone = shop.getPhone();
        /*String phone = shop.getPhone();
        if (!shopService.cheUserByPhone(phone)) {
            return R.fail("该手机号未注册");
        }
        if (shop.getPid() != null && shop.getPid() != 0){
            Shop shopP = shopService.getById(shop.getPid());
            if (shopP.getPid()!=null&&shopP.getPid()!=0&& shopP.getPid().equals(shop.getId())){
                return R.fail("门店之间不能互相作为上级门店");
            }
        }
        String city = TencentMapUtil.inverseGeographicalAnalysis(shop.getLongitude(), shop.getLatitude(), false);
        if(!StringUtils.hasLength(city)){
            city = "510100";
        }
        shop.setProvinceCode(city.substring(0, 2) + "0000");
        *//*shop.setProvinceCode(city.substring(0, 2) + "0000");
        shop.setCityCode(city.substring(0, 4) + "00");
        shop.setDistrictCode(city);
        shop.setDistrictCode(city);*//*
        Shop old_shop = shopService.getById(shop.getId());
        shopService.updateById(shop);
        //修改管理员
@@ -397,7 +394,7 @@
                userShop.setCreateTime(LocalDateTime.now());
                userShopClient.saveUserShop(userShop);
            }
        }
        }*/
        return R.ok();
    }
@@ -409,7 +406,7 @@
    @PutMapping("/freezingOrThawing")
    @ApiOperation(value = "门店管理-冻结/解冻门店", tags = {"管理后台-门店管理"})
    public R freezingOrThawing(@RequestParam("id") Integer id, @RequestParam("status") Integer status){
        Shop shop = shopService.getById(id);
       /* Shop shop = shopService.getById(id);
        if(shop.getStatus().equals(status)){
            return R.fail("不能重复操作");
        }
@@ -460,7 +457,7 @@
                    }
                }
            }
        }
        }*/
        
        return R.ok();
    }
@@ -493,7 +490,7 @@
    @GetMapping ("/resetPassword")
    @ApiOperation(value = "重置密码", tags = {"管理后台-门店管理"})
    public R<Void> resetPassword(@RequestParam(value = "ids") String ids) {
        String[] idsArr = ids.split(",");
       /* String[] idsArr = ids.split(",");
        for (String id : idsArr) {
            Shop shop = shopService.getById(Integer.valueOf(id));
            UserShop userShop = new UserShop();
@@ -504,7 +501,7 @@
            String s = MD5Generator.generateMD5(userData.getPhonenumber().substring(5));
            userData.setPassword(s);
            sysUserClient.resetPassword(userData);
        }
        }*/
        return R.ok();
    }
@@ -601,11 +598,7 @@
        return R.ok(one);
    }
/*    @PostMapping("/getShopByUserIds")
    public R<List<Shop>> getShopByUserIds(@RequestBody List<Long> userIds){
        List<Shop> list = shopService.list(new LambdaQueryWrapper<Shop>().in(Shop::getAppUserId, userIds));
        return R.ok(list);
    }*/
    /**
     * 根据名称查询门店id
@@ -667,28 +660,27 @@
    @ApiOperation(value = "获取可切换的门店列表", tags = {"门店后台-首页"})
    public R<List<VerifiableShopVo>> getSysUserShop(@ApiParam("经度") @RequestParam(required = false) BigDecimal longitude,
                                                    @ApiParam("纬度") @RequestParam(required = false) BigDecimal latitude){
        Long userid = tokenService.getLoginUser().getUserid();
        UserShop userShop = new UserShop();
        userShop.setUserId(userid);
        List<UserShop> data = userShopClient.getUserShop(userShop).getData();
        Long userid = tokenService.getLoginUserApplet().getUserid();
        List<AppUserShop> data = appUserShopClient.getUserShopListByUserId(userid).getData();
        if (null == data || data.isEmpty()) {
            return R.ok();
            return R.fail("暂无其他门店可切换");
        }
        List<Integer> collect = data.stream().map(UserShop::getShopId).collect(Collectors.toList());
        List<Integer> collect = data.stream().map(AppUserShop::getShopId).collect(Collectors.toList());
        List<Shop> shops = shopService.list(new LambdaQueryWrapper<Shop>()
                .in(!CollectionUtils.isEmpty(collect),Shop::getId, collect)
                .eq(Shop::getDelFlag, 0).eq(Shop::getStatus, 1));
        if (shops == null || shops.isEmpty()) {
            return  R.ok();
            return  R.fail("暂无其他门店可切换");
        }
        List<VerifiableShopVo> list = new ArrayList<>();
        for (Shop shop : shops) {
            VerifiableShopVo vo = new VerifiableShopVo();
            BeanUtils.copyProperties(shop, vo);
            vo.setId(shop.getId());
            vo.setName(shop.getName());
            vo.setHomePicture(shop.getHomePicture());
            String address = shop.getProvince() + shop.getCity() + shop.getDistrict()+ shop.getAddress();
            vo.setAddress(address);
            if (null != latitude && null != longitude) {
                Double wgs84 = GeodesyUtil.getDistance(longitude + "," + latitude, shop.getLongitude() + "," + shop.getLatitude()).get("WGS84");
                vo.setDistance(wgs84.longValue());
@@ -756,7 +748,9 @@
    @ResponseBody
    @GetMapping("/getGoodsListByShopId")
    @ApiOperation(value = "获取门店内商品列表", tags = {"门店后台-首页"})
    public R<PageInfo<GoodsVO>> getGoodsListByShopId(@ApiParam("门店id") Integer shopId, Integer pageCurr, Integer pageSize) {
    public R<PageInfo<GoodsVO>> getGoodsListByShopId(@ApiParam("门店id")@RequestParam("shopId") Integer shopId,
                                                     @ApiParam("门店id")@RequestParam("pageCurr") Integer pageCurr,
                                                     @ApiParam("门店id")@RequestParam("pageSize") Integer pageSize) {
        PageInfo<GoodsVO> pageInfo = new PageInfo<>(pageCurr, pageSize);
        List<GoodsVO> goodsList = shopService.getGoodsListByShopId(pageInfo, shopId);
        return R.ok(pageInfo.setRecords(goodsList));
@@ -779,6 +773,16 @@
    public R<Integer> addGoods(@RequestBody AddGoodsDTO addGoodsDTO) {
        return R.ok( shopService.addGoodsByShop(addGoodsDTO));
    }
    /**
     * 编辑商品
     */
    @PostMapping("/editGoods")
    @ApiOperation(value = "编辑商品", tags = {"门店后台-商品管理"})
    public R<Integer> editGoods(@RequestBody AddGoodsDTO addGoodsDTO) {
        return R.ok( shopService.editGoodsByShop(addGoodsDTO));
    }
    /**
     * 上、下架商品
@@ -815,11 +819,10 @@
    /**
     * 获取所有门店
     * @return
     */
    @PostMapping("/getAllShop")
    public R<List<Shop>> getAllShop(){
        List<Shop> list = shopService.list(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getStatus, 1));
        List<Shop> list = shopService.list(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0));
        return R.ok(list);
    }
@@ -863,6 +866,7 @@
    }
/*
    @GetMapping("/getShopStatistics")
    public R<Map<String, BigDecimal> > getShopStatistics(@RequestParam("shopId") Integer shopId){
        LambdaQueryWrapper<Shop> queryWrapper = new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getStatus, 1);
@@ -872,16 +876,34 @@
        List<Shop> shopList = shopService.list(queryWrapper);
        BigDecimal serverGiveawayMoney = BigDecimal.ZERO;
        BigDecimal giveawayMoney = BigDecimal.ZERO;
       /* for (Shop shop : shopList) {
       */
/* for (Shop shop : shopList) {
            serverGiveawayMoney = serverGiveawayMoney.add(shop.getServerGiveawayMoney());
            giveawayMoney = giveawayMoney.add(shop.getGiveawayMoney().add(shop.getLowerLevelGiveawayMoney()));
        }*/
        }*//*
        Map<String, BigDecimal> map = new HashMap<>();
        map.put("serverGiveawayMoney", serverGiveawayMoney);
        map.put("giveawayMoney", giveawayMoney);
        return R.ok(map);
    }
*/
    /**
     * 获取店铺收益 后天-工作台-收益分析
     */
    @PostMapping("/getIncomeAnalysis")
    R<Map<String, Object>> getIncomeAnalysis(@RequestBody ShopAnalysisDTO shopAnalysisDTO){
        QueryWrapper<Shop> queryWrapper=new QueryWrapper<>();
        //余额  已提现 提现中 可提现
        queryWrapper.select("sum(balance) as balance","sum(withdraw_money) as withdrawMoney"
                ,"sum(withdraw_audit_money) as withdrawAuditMoney","sum(can_withdraw_money) as canWithdrawMoney");
        queryWrapper.eq("del_flag",0);
        if (shopAnalysisDTO.getShopId() != null) {
            queryWrapper.eq("id", shopAnalysisDTO.getShopId());
        }
        return R.ok(shopService.getMap(queryWrapper));
    }
}