| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | * @since 2023-04-25 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | @Log4j2 |
| | | public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements ShopService { |
| | | |
| | | @Resource |
| | |
| | | |
| | | } |
| | | //验证商户名唯一 |
| | | 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())){ |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | }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); |
| | |
| | | }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); |
| | | } |
| | | |
| | |
| | | * @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; |
| | | } |
| | |
| | | for(Shop shop : shopList){ |
| | | shopIds.add(shop.getShopId()); |
| | | } |
| | | userIds.add(userId); |
| | | } |
| | | } |
| | | //分别查询 |
| | |
| | | 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(); |
| | |
| | | * @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()); |
| | | |
| | |
| | | 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); |
| | |
| | | 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()); |
| | | } |
| | | } |
| | | // 如果商店的扩展联系方式不为空,则设置员工商店信息对象的扩展联系方式列表 |
| | |
| | | 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) |
| | |
| | | |
| | | |
| | | /** |
| | | * @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(); |
| | | } |
| | | |
| | | } |