Pu Zhibing
2024-09-23 e49f212c5ae9c5382386ddc0d34e346799720116
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java
@@ -1,24 +1,28 @@
package com.ruoyi.shop.controller.console;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.shop.domain.pojo.shop.ShopRelUser;
import com.ruoyi.shop.domain.pojo.shop.ShopStaff;
import com.ruoyi.shop.service.shop.ShopRelUserService;
import com.ruoyi.shop.service.shop.ShopService;
import com.ruoyi.shop.service.shop.ShopStaffService;
import com.ruoyi.shop.service.shop.ShopSuggestService;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.shop.domain.pojo.shop.*;
import com.ruoyi.shop.service.shop.*;
import com.ruoyi.shop.service.task.MemberTaskService;
import com.ruoyi.shop.service.task.ShopTaskService;
import com.ruoyi.system.api.domain.dto.MgtShopIdByCodeDto;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.vo.ShopProportionVo;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo;
import com.ruoyi.system.api.domain.vo.MgtShopIdByCodeVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
import com.ruoyi.system.api.domain.vo.ShopRelUserVo;
import com.ruoyi.system.api.domain.vo.*;
import com.ruoyi.system.api.model.QwH5LoginVo;
import com.ruoyi.system.api.model.QwUserDetailDto;
import com.ruoyi.system.api.service.RemoteUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -27,6 +31,8 @@
import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * @author jqs34
@@ -57,6 +63,34 @@
    @Resource
    private ShopTaskService shopTaskService;
    @Resource
    private ShopTotalService shopTotalService;
    @Resource
    private MemberTaskService memberTaskService;
    @Resource
    private ShopAuthenticationService shopAuthenticationService;
    @Resource
    private ShopProportionService shopProportionService;
    @Resource
    private RedisService redisService;
    @Autowired
    private ShopAuthenticationHftxService shopAuthenticationHftxService;
    @PostMapping("/getShopIdsByUserIds")
    public R<List<Long>> getShopIdsByUserIds(@RequestBody List<Long> userIds)
    {
        // 店铺ids
        List<Long> list = shopService.list(new QueryWrapper<Shop>()
                .in("belong_user_id", userIds)
                .eq("del_flag", 0))
                .stream().map(Shop::getShopId).collect(Collectors.toList());
        return R.ok(list);
    }
    /**
     * 企业微信H5登录
@@ -67,10 +101,25 @@
    public R<QwH5LoginVo> qwH5Login(@RequestBody QwUserDetailDto qwUserDetail)
    {
        String mobile = qwUserDetail.getMobile();
        ShopStaff shopStaff = shopStaffService.getByMobile(mobile);
        ShopStaff shopStaff = null;
        if(StringUtils.isNotEmpty(mobile)){
            shopStaff = shopStaffService.getByMobile(mobile);
        }else{
            shopStaff = shopStaffService.getOne(new QueryWrapper<ShopStaff>().eq("del_flag", 0)
                    .eq("user_id", qwUserDetail.getUserid()));
        }
        if(shopStaff==null){
            throw new ServiceException(AppErrorConstant.USER_NO_SHOP);
        }
        Long userId = shopStaff.getUserId();
        SysUser sysUser = remoteUserService.getSysUser(userId).getData();
        Optional.ofNullable(sysUser).orElseThrow(() -> new ServiceException("登录失败,未查询到用户"));
        Shop shop = shopService.getByShopId(shopStaff.getShopId());
        if(shop.getFrozenFlag()==1){
            String userKey = SecurityUtils.getUserKey();
            redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey);
            throw new ServiceException("商户已被冻结,请联系管理员",401);
        }
        // 构造登录返回信息
        QwH5LoginVo qwH5LoginVo = new QwH5LoginVo();
        qwH5LoginVo.setUserid(qwUserDetail.getUserid());
@@ -86,15 +135,60 @@
        return R.ok(shop);
    }
    @PostMapping("/getShopSubMchId")
    public R<String> getShopSubMchId(@RequestBody Long shopId){
        String subMchid = "";
        ShopAuthentication authentication = shopAuthenticationService.getByShopId(shopId);
        if(null != authentication){
            subMchid = authentication.getSubMchid();
        }
        return R.ok(subMchid, "");
    }
    @PostMapping("/getShopHFTXSubMchId")
    public R<ShopAuthenticationHftxVo> getShopHFTXSubMchId(@RequestBody Long shopId){
        ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>()
                .eq("is_delete", 0).eq("shop_id", shopId));
        ShopAuthenticationHftxVo vo = new ShopAuthenticationHftxVo();
        BeanUtils.copyProperties(shopAuthenticationHftx, vo);
        return R.ok(vo, "");
    }
    /**
     * 获取商户分成
     * @param shopId
     * @return
     */
    @PostMapping("/getShopProportion")
    public R<ShopProportionVo> getShopProportion(@RequestBody Long shopId){
        ShopProportion shopProportion = shopProportionService.getByShopId(shopId);
        ShopProportionVo shopProportionVo = new ShopProportionVo();
        BeanUtils.copyBeanProp(shopProportionVo, shopProportion);
        return R.ok(shopProportionVo);
    }
    @PostMapping("/getShopByUserId")
    public R<ShopRelUserVo> getShopByUserId(@RequestBody Long userId)
    {
        ShopRelUser shopRelUser = shopRelUserService.getByUserId(userId);
        Optional.ofNullable(shopRelUser).orElseThrow(() -> new ServiceException("未查询到商户信息"));
        Optional.ofNullable(shopRelUser).orElseThrow(() -> new ServiceException("未查询到用户关联商户"));
        ShopRelUserVo shopRelUserVo = new ShopRelUserVo();
        shopRelUserVo.setShopId(shopRelUser.getShopId());
        shopRelUserVo.setUserName(shopRelUser.getUserName());
        return R.ok(shopRelUserVo);
    }
    @PostMapping("/getShopByBelongUserId")
    public R<ShopRelUserVo> getShopByBelongUserId(@RequestBody Long userId)
    {
        List<Shop> shopList = shopService.getShopByBelongUserId(userId);
        Optional.ofNullable(shopList.get(0)).orElseThrow(() -> new ServiceException("未查询到商户信息"));
        ShopRelUserVo shopRelUserVo = new ShopRelUserVo();
        shopRelUserVo.setShopId(shopList.get(0).getShopId());
        return R.ok(shopRelUserVo);
    }
@@ -126,6 +220,13 @@
        return R.ok();
    }
    /**
     * @description  通过区域代码获取shopId
     * @author  jqs
     * @date    2023/6/21 15:50
     * @param mgtShopIdByCodeDto
     * @return  R<MgtShopIdByCodeVo>
     */
    @PostMapping("/getShopIdByCode")
    public R<MgtShopIdByCodeVo> getShopIdByCode(@RequestBody MgtShopIdByCodeDto mgtShopIdByCodeDto)
    {
@@ -133,10 +234,17 @@
        return R.ok(mgtShopIdByCodeVo);
    }
    /**
     * @description  通过id获取商户简易信息list
     * @author  jqs
     * @date    2023/6/21 15:50
     * @param mgtBaseBathDto
     * @return  R<List<MgtSimpleShopVo>>
     */
    @PostMapping("/listShopSimpleVoByIds")
    public R<List<MgtSimpleShopVo>> listShopSimpleVoByIds(@RequestBody String shopIds)
    public R<List<MgtSimpleShopVo>> listShopSimpleVoByIds(@RequestBody MgtBaseBathDto mgtBaseBathDto)
    {
        List<MgtSimpleShopVo> mgtShopListSimpleVos = shopService.listShopSimpleVoByIds(shopIds);
        List<MgtSimpleShopVo> mgtShopListSimpleVos = shopService.listShopSimpleVoByIds(mgtBaseBathDto.getIds());
        return R.ok(mgtShopListSimpleVos);
    }
@@ -148,15 +256,193 @@
     * @date 2023/6/18 16:45
     */
    @PostMapping("/boardShopTotal")
    public R<MgtBulletinBoardVo> boardShopTotal()
    public R<MgtBulletinBoardVo> boardShopTotal(@RequestBody BoardMemberTotalDto boardMemberTotalDto)
    {
        MgtBulletinBoardVo bulletinBoardVo = new MgtBulletinBoardVo();
        MgtBulletinBoardVo bulletinBoardVoShop = shopService.boardShopTotal();
        MgtBulletinBoardVo bulletinBoardVoTask = shopTaskService.boardTaskTotal();
        MgtBulletinBoardVo bulletinBoardVoShop = shopService.boardShopTotal(boardMemberTotalDto.getUserIds());
        MgtBulletinBoardVo bulletinBoardVoTask = shopTaskService.boardTaskTotal(boardMemberTotalDto.getUserIds());
        bulletinBoardVo.setShopTotal(bulletinBoardVoShop.getShopTotal());
        bulletinBoardVo.setDealerTotal(bulletinBoardVoShop.getDealerTotal());
        bulletinBoardVo.setAgencyTotal(bulletinBoardVoShop.getAgencyTotal());
        bulletinBoardVo.setFollowShopToday(bulletinBoardVoTask.getFollowShopToday());
        return R.ok(bulletinBoardVo);
    }
    /**
    * @description 获取平台统计shopId
    * @param mgtBasePlatformDto
    * @return R<List<Long>>
    * @author jqs34
    * @date 2023/6/23 14:14
    */
    @PostMapping("/listShopIdByPlTotal")
    public R<List<Long>> listShopIdByPlTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto)
    {
        List<Long> shopIdList = shopService.listShopIdByPlTotal(mgtBasePlatformDto);
        return R.ok(shopIdList);
    }
    /**
     * @description  更新商户统计
     * @author  jqs
     * @date    2023/6/28 17:52
     * @param shopTotalChangeDto
     * @return  R
     */
    @PostMapping("/changeShopTotal")
    public R changeShopTotal(@RequestBody ShopTotalChangeDto shopTotalChangeDto)
    {
        shopTotalService.changeShopTotal(shopTotalChangeDto);
        return R.ok();
    }
    /**
     * @description  获取最近任务
     * @author  jqs
     * @date    2023/6/29 18:25
     * @param userId
     * @return  R<MemberTaskSimpleVo>
     */
    @PostMapping("/getLastMemberTask")
    public R<MemberTaskSimpleVo> getLastMemberTask(@RequestBody Long userId)
    {
        MemberTaskSimpleVo taskSimpleVo = memberTaskService.getLastMemberTask(userId);
        return R.ok(taskSimpleVo);
    }
    /**
     * @description  获取商户下属代理商
     * @author  jqs
     * @date    2023/7/3 17:26
     * @return  R<List<Long>>
     */
    @PostMapping("/listShopIdByShopId")
    public R<List<Long>> listShopIdByShopId(@RequestBody Long shopId)
    {
        List<Long> shopIdList = shopService.listShopIdByShopId(shopId);
        return R.ok(shopIdList);
    }
    /**
     * @description  获取未回复数量
     * @author  jqs
     * @date    2023/7/5 12:49
     * @param
     * @return  R<Integer>
     */
    @PostMapping("/getUnReplaySuggestVo")
    public R<Integer> getUnReplaySuggestVo()
    {
        Integer count = shopSuggestService.getUnReplaySuggestVo();
        return R.ok(count);
    }
    /**
     * @description  获取商户营销状态
     * @author  jqs
     * @date    2023/7/7 14:05
     * @param shopId
     * @return  R<Integer>
     */
    @PostMapping("/getShopMarketingStatus")
    public R<Integer> getShopMarketingStatus(@RequestBody Long shopId)
    {
        Shop shop = shopService.getByShopId(shopId);
        Integer platformCouponFlag = shop.getPlatformCouponFlag();
        Integer platformBirthdayFlag = shop.getPlatformBirthdayFlag();
        Integer marketingStatus = 0;
        if(platformCouponFlag==1&&platformBirthdayFlag==2){
            marketingStatus = 1;
        }else if(platformCouponFlag==2&&platformBirthdayFlag==1){
            marketingStatus = 2;
        }else if(platformCouponFlag==1&&platformBirthdayFlag==1){
            marketingStatus = 3;
        }
        return R.ok(marketingStatus);
    }
    /**
     * @description  修改商户员工
     * @author  jqs
     * @date    2023/7/19 19:02
     * @param mgtShopStaffEditDto
     * @return  R
     */
    @PostMapping("/editMgtShopStaff")
    public R editMgtShopStaff(@RequestBody MgtShopStaffEditDto mgtShopStaffEditDto)
    {
        shopStaffService.editMgtShopStaff(mgtShopStaffEditDto);
        return R.ok();
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/8/10 23:01
     * @param cityCodes
     * @return  R<List<Long>>
     */
    @PostMapping("/listShopIdByCityCode")
    R<List<Long>> listShopIdByCityCode(@RequestBody List<String> cityCodes){
        List<Long> shopIdList = shopService.listShopIdByCityCode(cityCodes);
        return R.ok(shopIdList);
    }
    @PostMapping("/authShop")
    R authShop(){
        shopService.authShop();
        return R.ok();
    }
    /**
     * @description  获取今日任务通知列表
     * @author  jqs
     * @date    2023/8/29 15:03
     * @param
     * @return  R<List<MgtUserTaskMsgVo>>
     */
    @PostMapping("/getTaskMsgList")
    R<List<MgtUserTaskMsgVo>> getTaskMsgList(){
        List<MgtUserTaskMsgVo> userTaskMsgVoList = shopService.getTaskMsgList();
        return R.ok(userTaskMsgVoList);
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/8/10 23:01
     * @param cityCodes
     * @return  R<List<Long>>
     */
    @PostMapping("/listShopByCityCode")
    public R<List<Shop>> listShopByCityCode(@RequestBody List<String> cityCodes){
        List<Shop> shopIdList = shopService.listShopByCityCode(cityCodes);
        return R.ok(shopIdList);
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/8/10 23:01
     * @return  R<List<Long>>
     */
    @PostMapping("/listShopByIds")
    public R<List<Shop>> listShopByIds(@RequestBody List<String> ids){
        List<Shop> shopIdList = shopService.listByIds(ids);
        return R.ok(shopIdList);
    }
    /**
     * 根据管理员id获取门店
     * @return
     */
    @PostMapping("/getShopBySysUserIds")
    public List<Shop> getShopBySysUserIds(@RequestBody BoardMemberTotalDto boardMemberTotalDto){
        return shopService.getShopBySysUserIds(boardMemberTotalDto.getUserIds());
    }
}