bug
jiangqs
2023-09-11 3adbcc42d5f84c3c83d220543189361add81e04d
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -8,7 +8,8 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult;
import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingReceiver;
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverRequest;
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.exception.ServiceException;
@@ -31,6 +32,7 @@
import com.ruoyi.shop.service.task.ShopTaskService;
import com.ruoyi.shop.util.WechatPayUtils;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.constant.SecurityConstant;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.domain.poji.member.Member;
@@ -38,7 +40,7 @@
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.domain.vo.*;
import com.ruoyi.system.api.service.*;
import lombok.extern.slf4j.Slf4j;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -58,7 +60,7 @@
 * @since 2023-04-25
 */
@Service
@Slf4j
@Log4j2
public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements ShopService {
    @Resource
@@ -209,7 +211,7 @@
        }
        //验证商户名唯一
        Shop shopSame = this.getOne(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag,0).eq(Shop::getShopName,mgtEditShopDto.getShopName()));
        //Shop shopSame = this.getOne(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag,0).eq(Shop::getShopName,mgtEditShopDto.getShopName()));
        if(mgtEditShopDto.getShopId()!=null){
            //取消验重
            /*if(shopSame!=null&&!Objects.equals(shopSame.getShopId(),mgtEditShopDto.getShopId())){
@@ -242,8 +244,9 @@
            shop.setCreateTime(new Date());
            shop.setCreateUserId(mgtEditShopDto.getUserId());
            shop.setFrozenFlag(0);
            shop.setCooperativeFlag(0);
            shop.setCooperativeFlag(1);
            shop.setAuthFlag(0);
            shop.setAccountFlag(0);
            newShop = true;
        }
        BeanUtils.copyProperties(mgtEditShopDto,shop);
@@ -373,7 +376,11 @@
        shopProportion.setDelFlag(0);
        shopProportion.setShopId(shop.getShopId());
        shopProportion.setShopType(shop.getShopType());
        shopProportion.setProportionPercent(new BigDecimal("100.00"));
        BigDecimal proportionPercent = redisService.getCacheObject(SecurityConstant.SHOP_COMMON_PROPORTION);
        if(proportionPercent==null){
            proportionPercent = new BigDecimal("30");
        }
        shopProportion.setProportionPercent(proportionPercent);
        shopProportion.setUpdateTime(new Date());
        shopProportion.setUpdateUserId(userId);
        shopProportionService.save(shopProportion);
@@ -436,7 +443,7 @@
        }else{
            shop.setCooperativeFlag(0);
        }
        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag()));
        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag(),shop.getAccountFlag()));
        shop.setUpdateTime(new Date());
        shop.setUpdateUserId(mgtTerminateCooperationDto.getUserId());
        this.saveOrUpdate(shop);
@@ -457,7 +464,7 @@
        }else{
            shop.setFrozenFlag(0);
        }
        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag()));
        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag(),shop.getAccountFlag()));
        this.saveOrUpdate(shop);
    }
@@ -468,13 +475,13 @@
     * @param
     * @return  Integer
     */
    private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag){
    private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag,Integer accountFlag){
        Integer shopStatus = 1;
        if(frozenFlag == 1){
            shopStatus = 0;
            return shopStatus;
        }
        if(authFlag == 0){
        if(authFlag == 0 || accountFlag==0){
            shopStatus = 3;
            return shopStatus;
        }
@@ -816,6 +823,7 @@
                for(Shop shop : shopList){
                    shopIds.add(shop.getShopId());
                }
                userIds.add(userId);
            }
        }
        //分别查询
@@ -858,7 +866,7 @@
        if(shop.getFrozenFlag()==1){
            String userKey = SecurityUtils.getUserKey();
            redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey);
            throw new ServiceException("商户已被冻结",401);
            throw new ServiceException("商户已被冻结,请联系管理员",401);
        }
        merHomeShopTotalVo.setShopType(shop.getShopType());
        MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
@@ -1028,7 +1036,7 @@
     * @return  void
     */
    @Override
    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) throws WxPayException {
    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) {
        ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthDto.getAuthId());
        Shop shop = this.getByShopId(shopAuthentication.getShopId());
@@ -1115,8 +1123,12 @@
            String[] shopSalesKey = new String[shopSalesRank.size()];
            BigDecimal[] shopSalesValue = new BigDecimal[shopSalesRank.size()];
            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
            Long shopId;
            Shop shop;
            for (int i = 0; i < shopSalesRank.size(); i++) {
                shopSalesKey[i] = shopSalesRank.get(i).getMapKey();
                shopId = Long.valueOf(shopSalesRank.get(i).getMapKey());
                shop = this.getByShopId(shopId);
                shopSalesKey[i] = shop.getShopName();
                shopSalesValue[i] = shopSalesRank.get(i).getMapValue();
            }
            plTotalShopTotalVo.setShopSalesRankKey(shopSalesKey);
@@ -1363,8 +1375,8 @@
            if (shopIdList != null && !shopIdList.isEmpty()) {
                Integer count = remoteMemberService.getAreaNewMember(shopIdList).getData();
                staffShopInfoGetVo.setNewAreaMember(count);
                ShopTotal shopTotalAll = shopTotalService.shopsTotalByIds(shopIdList);
                staffShopInfoGetVo.setAreaTurnover(shopTotalAll.getTotalOrderMoney());
                AgencyTotalVo agencyTotalVo = remoteOrderService.getAgencyTotalVo(shopIdList).getData();
                staffShopInfoGetVo.setAreaTurnover(agencyTotalVo.getAreaTurnover());
            }
        }
        // 如果商店的扩展联系方式不为空,则设置员工商店信息对象的扩展联系方式列表
@@ -1477,7 +1489,7 @@
    private void applySuccessUpdateShopStatus(Long shopId){
        // 更新商户状态为正常
        Shop shop = this.getById(shopId);
        Integer shopStatus = handelShopStatus(shop.getFrozenFlag(), shop.getCooperativeFlag(), 1);
        Integer shopStatus = handelShopStatus(shop.getFrozenFlag(), shop.getCooperativeFlag(), 1,shop.getAccountFlag());
        LambdaUpdateWrapper<Shop> updateWrapper = Wrappers.lambdaUpdate();
        updateWrapper.eq(Shop::getShopId, shopId)
                .set(Shop::getShopStatus, shopStatus)
@@ -1587,18 +1599,46 @@
    /**
     * @description
     * @description  添加分账方
     * @author  jqs
     * @date    2023/8/23 9:44
     * @param
     * @return  void
     */
    @Override
    public void addProfitSharingReceiver(ProfitSharingReceiver profitSharingReceiver){
    public void addProfitSharingReceiver(MgtShopAuthGetDto mgtShopAuthGetDto){
        try {
            ProfitSharingReceiver result = wechatPayUtils.addProfitSharingReceiver(profitSharingReceiver);
            ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthGetDto.getAuthId());
            Shop shop = this.getByShopId(shopAuthentication.getShopId());
            if(shopAuthentication!=null&&shopAuthentication.getAuditStatus()==6){
                ProfitSharingReceiverRequest request = new ProfitSharingReceiverRequest();
                request.setAccount(shopAuthentication.getSubMchid());
                request.setName(shopAuthentication.getBlShopName());
                ProfitSharingReceiverResult result = wechatPayUtils.addProfitSharingReceiver(request);
                if(StringUtils.isNotBlank(result.getAccount())){
                    shop.setAccountFlag(1);
                    shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag(),1));
                    this.saveOrUpdate(shop);
                }
            }
        } catch (WxPayException e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/8/29 14:33
     * @param
     * @return  List<MgtUserTaskMsgVo>
     */
    @Override
    public List<MgtUserTaskMsgVo> getTaskMsgList(){
        return shopMapper.getTaskMsgList();
    }
}