| | |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | 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.exception.WxPayException; |
| | | import com.ruoyi.common.core.constant.CacheConstants; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | |
| | | import com.ruoyi.shop.domain.pojo.shop.*; |
| | | import com.ruoyi.shop.domain.pojo.task.ShopFile; |
| | | import com.ruoyi.shop.domain.vo.*; |
| | | import com.ruoyi.shop.enums.WxApplyMentStateEnum; |
| | | import com.ruoyi.shop.mapper.shop.ShopMapper; |
| | | import com.ruoyi.shop.service.shop.*; |
| | | import com.ruoyi.shop.service.task.MemberTaskService; |
| | | import com.ruoyi.shop.service.task.ShopFileService; |
| | | import com.ruoyi.shop.service.task.ShopTaskService; |
| | | import com.ruoyi.shop.util.WechatPayUtils; |
| | | import com.ruoyi.shop.util.WxShopUtils; |
| | | import com.ruoyi.shop.util.dto.*; |
| | | import com.ruoyi.system.api.constant.AppErrorConstant; |
| | | import com.ruoyi.system.api.domain.dto.*; |
| | | import com.ruoyi.system.api.domain.poji.config.SysTag; |
| | |
| | | import com.ruoyi.system.api.domain.vo.*; |
| | | import com.ruoyi.system.api.service.*; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | |
| | | |
| | | /** |
| | | * 获取商户详情 |
| | | * |
| | | * @param shopId |
| | | * @return |
| | | */ |
| | |
| | | //验证关联账号唯一 |
| | | String relUserIds = mgtEditShopDto.getRelUserIds(); |
| | | if(StringUtils.isNotBlank(relUserIds)) { |
| | | if(relUserIds.startsWith(",")){ |
| | | relUserIds = relUserIds.substring(1); |
| | | } |
| | | String[] relUserIdArray = relUserIds.split(","); |
| | | ShopRelUser shopRelUser; |
| | | Long userId; |
| | |
| | | //验证商户名唯一 |
| | | 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())){ |
| | | //取消验重 |
| | | /*if(shopSame!=null&&!Objects.equals(shopSame.getShopId(),mgtEditShopDto.getShopId())){ |
| | | throw new ServiceException(AppErrorConstant.SHOP_DOUBLE); |
| | | } |
| | | }*/ |
| | | shop = this.getById(mgtEditShopDto.getShopId()); |
| | | shop.setUpdateTime(new Date()); |
| | | shop.setUpdateUserId(mgtEditShopDto.getUserId()); |
| | |
| | | remoteMemberService.updateMemberShopName(mgtMemberShopNameDto); |
| | | } |
| | | }else{ |
| | | if(shopSame!=null){ |
| | | //取消验重 |
| | | /*if(shopSame!=null){ |
| | | throw new ServiceException(AppErrorConstant.SHOP_DOUBLE); |
| | | } |
| | | }*/ |
| | | shop.setDelFlag(0); |
| | | shop.setShopStatus(3); |
| | | shop.setCreateTime(new Date()); |
| | |
| | | //生成商户关联记录 |
| | | initNewShop(shop,mgtEditShopDto.getUserId()); |
| | | CodeGetDto codeGetDto = new CodeGetDto(); |
| | | String url = "https://wxapp.hhhrt.cn/mini/activity?activityId="+shop.getShopId(); |
| | | String url = "https://wxapp.hhhrt.cn/mini/shop?id="+shop.getShopId(); |
| | | codeGetDto.setUrl(url); |
| | | codeGetDto.setFileName("shop-"+shop.getShopId()); |
| | | String codeUrl = remoteFileService.getAppOrderTotal(codeGetDto).getData(); |
| | |
| | | shopAuthentication.setAuthId(authId); |
| | | shopAuthentication.setDelFlag(0); |
| | | shopAuthentication.setShopId(shop.getShopId()); |
| | | shopAuthentication.setAuditStatus(0); |
| | | shopAuthentication.setSignState(1); |
| | | shopAuthenticationService.save(shopAuthentication); |
| | | //商户分成信息初始化 |
| | | ShopProportion shopProportion = new ShopProportion(); |
| | |
| | | } |
| | | mgtShopInfoVo.setShopTagIds(shopTagJs.toString()); |
| | | } |
| | | //归属员工 |
| | | if(mgtShopInfoVo.getBelongUserId()!=null){ |
| | | SysUser sysUser = sysUserService.getSysUser(mgtShopInfoVo.getBelongUserId()).getData(); |
| | | mgtShopInfoVo.setBelongUserName(sysUser.getNickName()); |
| | | if(sysUser!=null){ |
| | | mgtShopInfoVo.setBelongUserName(sysUser.getNickName()); |
| | | } |
| | | } |
| | | //归属商户 |
| | | if(mgtShopInfoVo.getBelongShopId()!=null){ |
| | | Shop belongShop = this.getByShopId(mgtShopInfoVo.getBelongShopId()); |
| | | mgtShopInfoVo.setBelongShopName(belongShop.getShopName()); |
| | | if(belongShop!=null){ |
| | | mgtShopInfoVo.setBelongShopName(belongShop.getShopName()); |
| | | } |
| | | } |
| | | //商户关联用户 |
| | | List<ShopRelUser> shopRelUserList = shopRelUserService.listByShopId(shopId); |
| | |
| | | appMemberBindingDto.setBindingFlag(0); |
| | | remoteMemberService.updateMemberBinding(appMemberBindingDto); |
| | | } |
| | | //商品图片 |
| | | List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shop.getShopId()); |
| | | String shopPicture = null; |
| | | StringJoiner shopBanners = new StringJoiner(","); |
| | | if(shopFileList!=null&&!shopFileList.isEmpty()){ |
| | | for(ShopFile shopFile : shopFileList){ |
| | | if(shopFile.getFileType()==1){ |
| | | shopPicture = shopFile.getFileUrl(); |
| | | }else{ |
| | | shopBanners.add(shopFile.getFileUrl()); |
| | | } |
| | | } |
| | | } |
| | | appNearbyShopVo.setShopPicture(shopPicture); |
| | | appNearbyShopVo.setShopId(shop.getShopId()); |
| | | appNearbyShopVo.setShopName(shop.getShopName()); |
| | | appNearbyShopVo.setShopAddress(shop.getShopAreaName()+shop.getShopAddress()); |
| | |
| | | shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto); |
| | | Shop shop = this.getShopByBelongUserId(userId); |
| | | shopIds.add(shop.getShopId()); |
| | | userIds.add(userId); |
| | | }else { |
| | | //普通员工查询商户归属的shopId |
| | | Shop shop = this.getShopByBelongUserId(userId); |
| | | |
| | | shopIds.add(shop.getShopId()); |
| | | } |
| | | //分别查询 |
| | | StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(shopIds); |
| | | StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds); |
| | | Integer shopTaskCount = shopTaskService.getShopIngTotal(shopIds); |
| | | staffHomeShopTotalVo.setFollowMember(0); |
| | | staffHomeShopTotalVo.setNewMember(0); |
| | |
| | | } |
| | | merHomeShopTotalVo.setShopId(shopId); |
| | | Shop shop = this.getById(shopId); |
| | | if(shop.getFrozenFlag()==1){ |
| | | String userKey = SecurityUtils.getUserKey(); |
| | | redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey); |
| | | throw new ServiceException("商户已被冻结",401); |
| | | } |
| | | merHomeShopTotalVo.setShopType(shop.getShopType()); |
| | | MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); |
| | | ShopTotal shopTotal = shopTotalService.getById(shopId); |
| | | merHomeShopTotalVo.setShopId(shopId); |
| | | merHomeShopTotalVo.setShopType(shop.getShopType()); |
| | | merHomeShopTotalVo.setTodayShop(orderVo.getTodayShop()); |
| | |
| | | Integer taskCount = memberTaskService.getMemberIngTotal(shopId); |
| | | merHomeShopTotalVo.setTask(taskCount); |
| | | merHomeShopTotalVo.setShopTurnover(orderVo.getShopTurnover()); |
| | | merHomeShopTotalVo.setCycleSurp(shopTotal.getUseableCyclePerson()); |
| | | merHomeShopTotalVo.setExplorationSurp(shopTotal.getUseableExperiencePerson()); |
| | | merHomeShopTotalVo.setCycleSurp(orderVo.getCycleSurp()); |
| | | merHomeShopTotalVo.setExplorationSurp(orderVo.getExplorationSurp()); |
| | | merHomeShopTotalVo.setPlatformBirthdayFlag(shop.getPlatformBirthdayFlag()); |
| | | merHomeShopTotalVo.setPlatformCouponFlag(shop.getPlatformCouponFlag()); |
| | | return merHomeShopTotalVo; |
| | | } |
| | | |
| | |
| | | ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthDto.getAuthId()); |
| | | Shop shop = this.getByShopId(shopAuthentication.getShopId()); |
| | | String applyNumber = IdUtils.simpleUUID(); |
| | | if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){ |
| | | mgtShopAuthDto.setBlBusinessDeanline(mgtShopAuthDto.getBlBusinessStartTime()+",长期"); |
| | | } |
| | | if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){ |
| | | mgtShopAuthDto.setLpIcEndDate("长期"); |
| | | } |
| | | BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication); |
| | | shopAuthentication.setApplyNumber(applyNumber); |
| | | ApplymentsResult applymentsResult; |
| | | try { |
| | | applymentsResult = wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop); |
| | | } catch (Exception e) { |
| | | log.debug("-----"+shop.getShopId()+":进件异常-----"); |
| | | throw new RuntimeException(e); |
| | | } |
| | | shopAuthentication.setAuditStatus(3); |
| | | shopAuthenticationService.saveOrUpdate(shopAuthentication); |
| | | wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop); |
| | | } |
| | | |
| | | /** |
| | |
| | | MgtShopAuthGetVo shopAuthGetVo = new MgtShopAuthGetVo(); |
| | | ShopAuthentication shopAuthentication = shopAuthenticationService.getById(authId); |
| | | BeanUtils.copyProperties(shopAuthentication, shopAuthGetVo); |
| | | if(shopAuthGetVo.getBlBusinessDeanline()!=null){ |
| | | if(shopAuthGetVo.getBlBusinessDeanline().equals("长期")){ |
| | | shopAuthGetVo.setBlBusinessFoeverFlag(1); |
| | | }else{ |
| | | shopAuthGetVo.setBlBusinessFoeverFlag(0); |
| | | } |
| | | } |
| | | if(shopAuthGetVo.getLpIcEndDate()!=null){ |
| | | if(shopAuthGetVo.getLpIcEndDate().equals("长期")){ |
| | | shopAuthGetVo.setLpIcForeverFlag(1); |
| | | }else{ |
| | | shopAuthGetVo.setLpIcForeverFlag(0); |
| | | } |
| | | } |
| | | return shopAuthGetVo; |
| | | } |
| | | |
| | |
| | | shop.setUpdateTime(new Date()); |
| | | shopMapper.updateShop(shop); |
| | | } |
| | | |
| | | @Override |
| | | public void queryEcommerceApplyMentsStatus() { |
| | | List<ShopAuthentication> list = shopAuthenticationService.getShopAuthNeedUpdateStatus(); |
| | | list.forEach(item -> queryApplyStatusByApplymentId(item.getApplymentId(), item.getShopId())); |
| | | } |
| | | |
| | | /** |
| | | * 调用微信接口查询申请审核状态 |
| | | * @param applymentId |
| | | */ |
| | | private void queryApplyStatusByApplymentId(String applymentId, Long shopId) { |
| | | try { |
| | | if (StringUtils.isNotBlank(applymentId)) { |
| | | ApplymentsStatusResult result = wechatPayUtils.queryApplyStatusByApplymentId(applymentId); |
| | | shopAuthenticationService.updateAuditStatusByApplymentId(applymentId, result); |
| | | String applymentState = result.getApplymentState(); |
| | | if(WxApplyMentStateEnum.FINISH.getText().equals(applymentState)){ |
| | | applySuccessUpdateShopStatus(shopId); |
| | | } |
| | | } |
| | | } catch (WxPayException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 商户进件审核完成,更新商户状态 |
| | | * @param shopId |
| | | */ |
| | | private void applySuccessUpdateShopStatus(Long shopId){ |
| | | // 更新商户状态为正常 |
| | | Shop shop = this.getById(shopId); |
| | | Integer shopStatus = handelShopStatus(shop.getFrozenFlag(), shop.getCooperativeFlag(), 1); |
| | | LambdaUpdateWrapper<Shop> updateWrapper = Wrappers.lambdaUpdate(); |
| | | updateWrapper.eq(Shop::getShopId, shopId) |
| | | .set(Shop::getShopStatus, shopStatus) |
| | | .set(Shop::getAuthFlag, 1); |
| | | this.update(updateWrapper); |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/8/10 22:53 |
| | | * @param cityCodes |
| | | * @return List<Long> |
| | | */ |
| | | @Override |
| | | public List<Long> listShopIdByCityCode(List<String> cityCodes){ |
| | | return shopMapper.listShopIdByCityCode(cityCodes); |
| | | } |
| | | |
| | | @Override |
| | | public void authShop(){ |
| | | ShopAuthentication shopAuthentication = shopAuthenticationService.getById("8c23fa423beb4673a0edc641a1ca0c23"); |
| | | Shop shop = this.getByShopId(shopAuthentication.getShopId()); |
| | | try { |
| | | wechatPayUtils.ecommerceApply(shopAuthentication,shopAuthentication.getApplyNumber(),shop); |
| | | |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | } |