123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632 |
- package com.ydd.app.service.impl;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.ydd.api.DeliveryService;
- import com.ydd.app.QueryAmountEntityUtils;
- import com.ydd.app.service.ApiDeliveryService;
- import com.ydd.common.enums.DeliveryTypeEnums;
- import com.ydd.common.utils.StringUtils;
- import com.ydd.ecloud.core.utils.JsonMapper;
- import com.ydd.module.domain.*;
- import com.ydd.module.dto.DeliveryDto;
- import com.ydd.module.dto.DeliveryInfo;
- import com.ydd.module.dto.MemberConfigDto;
- import com.ydd.module.enums.BindStatusEnum;
- import com.ydd.module.enums.IsDeleteEnum;
- import com.ydd.module.enums.StatusEnum;
- import com.ydd.module.expection.CustomAppException;
- import com.ydd.module.service.*;
- import com.ydd.system.service.ISysConfigService;
- import com.ydd.third.common.dto.*;
- import com.ydd.third.common.huolalaresponse.TokenResponse;
- import com.ydd.third.common.vo.ResObject;
- import com.ydd.third.common.vo.callback.ShansongTokenVo;
- import com.ydd.third.common.vo.huolalavo.HCityInfo;
- import com.ydd.third.common.vo.huolalavo.HPoiSearch;
- import com.ydd.third.common.vo.huolalavo.Haddress;
- import com.ydd.third.common.vo.shop.AmountResultVo;
- import com.ydd.third.common.vo.shop.QueryAmount;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.math.BigDecimal;
- import java.util.List;
- /**
- * Project:lb-server
- * Class:ApiDeliveryServiceImpl
- * Description:TODO
- * Time:2021/3/3 10:03
- *
- * @author zoe
- */
- @Slf4j
- @Service
- @RequiredArgsConstructor(onConstructor_ = @Autowired)
- public class ApiDeliveryServiceImpl implements ApiDeliveryService {
- private final ISysConfigService iSysConfigService;
- private final IDspDeliveryService iDspDeliveryService;
- private final IMemberConfigService iMemberConfigService;
- private final IShopDeliveryService iShopDeliveryService;
- private final IMemberService iMemberService;
- private final IMerchantService iMerchantService;
- private final DeliveryService client;
- private final IShopService iShopService;
- private final IHuoLaLaCityService iHuoLaLaCityService;
- @Override
- public List<DeliveryDto> list(Long loginId) {
- Member member = iMemberService.getById(loginId);
- List<DeliveryDto> list = iShopDeliveryService.findList(member.getMerchantId());
- // 查询余额
- for (DeliveryDto l : list){
- DeliveryInfo delivery = new DeliveryInfo();
- delivery.setThirdShopId(l.getThirdShopId());
- delivery.setShopId(l.getThirdShopId());
- delivery.setAuthToken(l.getAuthToken());
- delivery.setPhone(l.getAccount());
- delivery.setType(l.getType());
- // 达达或者达达优质的门店编号
- if (DeliveryTypeEnums.DADA.getType().equals(l.getType()) || DeliveryTypeEnums.DADA_YZ.getType().equals(l.getType())){
- ShopDelivery delivery1 = iShopDeliveryService.getDadaShopNo(member.getMerchantId(),l.getDeliveryId());
- if (delivery1 != null){
- if (DeliveryTypeEnums.DADA.getType().equals(l.getType())){
- l.setShopNo(delivery1.getDadaShopNo());
- }
- if (DeliveryTypeEnums.DADA_YZ.getType().equals(l.getType())){
- l.setShopNo(delivery1.getDadaYzShopNo());
- }
- }
- }
- DspDelivery dspDelivery = iDspDeliveryService.findOne(l.getType());
- QueryAmount queryAmount = QueryAmountEntityUtils.queryAmount(delivery, member.getMerchantId(),1);
- ResObject<AmountResultVo> amountRes = client.queryAmount(queryAmount);
- if (amountRes.getCode() == 0) {
- // 更新余额
- AmountResultVo vo = amountRes.getData();
- ShopDelivery shopDelivery = iShopDeliveryService.getOne(new QueryWrapper<ShopDelivery>().eq("merchant_id", member.getMerchantId()).eq("delivery_id", dspDelivery.getId())
- .eq("deleted", IsDeleteEnum.NORMAL.status).isNull("shop_id").eq("bind_status",1));
- if (shopDelivery != null){
- shopDelivery.setBalance(vo.getBalanceAmount());
- iShopDeliveryService.updateById(shopDelivery);
- }
- }
- }
- List<DeliveryDto> deliveryList = iDspDeliveryService.floorList();
- List<DeliveryDto> dadaList = iShopDeliveryService.findBindList(member.getMerchantId());
- for (DeliveryDto dada : dadaList){
- DspDelivery dspDelivery = iDspDeliveryService.getById(dada.getDeliveryId());
- if (!dspDelivery.getType().equals(DeliveryTypeEnums.DADA.getType())
- && !dspDelivery.getType().equals(DeliveryTypeEnums.DADA_YZ.getType())
- && !dspDelivery.getType().equals(DeliveryTypeEnums.SHUN_FENG.getType())){
- continue;
- }
- list.add(dada);
- }
- deliveryList.removeAll(list);
- for (DeliveryDto dto : deliveryList){
- if (dto.getType().equals(DeliveryTypeEnums.MEI_TUAN.getType()) ||
- dto.getType().equals(DeliveryTypeEnums.FENG_NIAO.getType()) ||
- dto.getType().equals(DeliveryTypeEnums.FENG_NIAO_KA.getType()) ||
- dto.getType().equals(DeliveryTypeEnums.HUO_LA_LA.getType())){
- continue;
- }
- dto.setBindStatus(BindStatusEnum.UNBIND.getStatus());
- list.add(dto);
- }
- return list;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void release(Long loginId, Integer id,String sfId) {
- ShopDelivery shopDelivery = iShopDeliveryService.getById(id);
- DspDelivery delivery =iDspDeliveryService.getById(shopDelivery.getDeliveryId());
- if (delivery.getType().equals(DeliveryTypeEnums.AIPT.getType())){
- AiptUnBindDto dto = unBind(id,loginId);
- }else {
- if (delivery.getType().equals(DeliveryTypeEnums.SHUN_FENG.getType()) ||
- delivery.getType().equals(DeliveryTypeEnums.DADA.getType())||
- delivery.getType().equals(DeliveryTypeEnums.DADA_YZ.getType()) ||
- delivery.getType().equals(DeliveryTypeEnums.MEI_TUAN_ZB.getType())||
- delivery.getType().equals(DeliveryTypeEnums.MEI_TUAN_SG_ZB.getType())){
- iShopDeliveryService.removeById(id);
- }
- if(DeliveryTypeEnums.SHAN_SONG.getType().equals(delivery.getType())){
- //解除绑定
- ResObject res = client.cancelToken(shopDelivery.getAuthToken());
- if (res.getCode() == 0){
- iShopDeliveryService.removeById(id);
- }
- log.info("===闪送解除绑定结果===》"+ JsonMapper.nonEmptyMapper().toJson(res));
- }
- if (DeliveryTypeEnums.KUAI_FU.getType().equals(delivery.getType())){
- log.info("===快服解除绑定===》");
- iShopDeliveryService.removeById(id);
- }
- }
- }
- /**
- * 爱跑腿-解除绑定
- * @param id 商家绑定平台ID
- * @param loginId
- */
- @Override
- public AiptUnBindDto unBind(Integer id,Long loginId) {
- ShopDelivery shopDelivery = iShopDeliveryService.getById(id);
- if (shopDelivery != null){
- //解除绑定
- AiptUnBindDto bindDto = client.unBind(shopDelivery.getAccount());
- if (bindDto.getCode().equals(1) && bindDto.getState().equals("Success")){
- iShopDeliveryService.removeById(id);
- }
- log.info("===解除绑定结果===》"+ JsonMapper.nonEmptyMapper().toJson(bindDto));
- return bindDto;
- }else {
- AiptUnBindDto bindDto = new AiptUnBindDto();
- bindDto.setState("Fail");
- bindDto.setInfo("该运力不存在");
- return bindDto;
- }
- }
- @Override
- public String explain() {
- return iSysConfigService.selectConfigByKey("BINDING_PROCESS");
- }
- @Override
- public List<DeliveryDto> floorList(Long loginId) {
- return iDspDeliveryService.floorList();
- }
- @Override
- public MemberConfigDto findDetail(Long loginId) {
- return iMemberConfigService.findDetail(loginId);
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void saveConfig(Long loginId, MemberConfigDto config) {
- MemberConfig memberConfig = iMemberConfigService.getOne(new QueryWrapper<MemberConfig>().eq("member_id",loginId));
- if (memberConfig == null){
- memberConfig = new MemberConfig();
- memberConfig.setMemberId(loginId);
- }
- memberConfig.setAddPriceTime(config.getAddPriceTime());
- memberConfig.setGuaranteeDeliveryIds(config.getGuaranteeDeliveryIds());
- memberConfig.setGuaranteeOrderTime(config.getGuaranteeOrderTime());
- memberConfig.setOpenGuarantee(config.getOpenGuarantee());
- memberConfig.setOpenTipSwitch(config.getOpenTipSwitch());
- memberConfig.setTipAmount(config.getTipAmount());
- memberConfig.setTipRemark(config.getTipRemark());
- iMemberConfigService.saveOrUpdate(memberConfig);
- }
- @Override
- public void status(Long loginId, Integer id, Integer preferredDelivery) {
- ShopDelivery delivery = iShopDeliveryService.getById(id);
- if (delivery == null){
- throw new CustomAppException("绑定运力不存在!");
- }
- if (preferredDelivery.equals(StatusEnum.SHOW.status)){
- iShopDeliveryService.updateStatus(delivery.getMerchantId());
- }
- delivery.setPreferredDelivery(preferredDelivery);
- iShopDeliveryService.updateById(delivery);
- }
- /**
- * 绑定运力平台
- * @param loginId
- * @param deliveryId
- * @param sfId
- * @param dadaName
- * @return
- */
- @Override
- public String bind(Long loginId, Long deliveryId,String sfId,String dadaName) {
- Member member = iMemberService.getById(loginId);
- ShopDelivery shopDelivery = iShopDeliveryService.getOne(new QueryWrapper<ShopDelivery>().eq("merchant_id",member.getMerchantId()).eq("delivery_id",deliveryId).isNull("shop_id"));
- if (member.getMerchantId() == null){
- throw new CustomAppException("请先申请成为商家!");
- }
- Merchant merchant = iMerchantService.getById(member.getMerchantId());
- if (merchant == null){
- throw new CustomAppException("商家信息异常,请联系管理员!");
- }
- DspDelivery delivery = iDspDeliveryService.getById(deliveryId);
- if (shopDelivery != null && shopDelivery.getBindStatus().equals(BindStatusEnum.BIND)){
- throw new CustomAppException("已绑定成功!");
- }
- // if (shopDelivery != null && delivery.getType().equals(DeliveryTypeEnums.SHUN_FENG.getType()) && shopDelivery.getBindStatus().equals(BindStatusEnum.BIND)){
- // throw new CustomAppException("已绑定成功!");
- // }
- // if (shopDelivery != null && delivery.getType().equals(DeliveryTypeEnums.DADA.getType()) && shopDelivery.getBindStatus().equals(BindStatusEnum.BIND)){
- // throw new CustomAppException("已绑定成功!");
- // }
- // if (shopDelivery != null && delivery.getType().equals(DeliveryTypeEnums.DADA_YZ.getType()) && shopDelivery.getBindStatus().equals(BindStatusEnum.BIND)){
- // throw new CustomAppException("已绑定成功!");
- // }
- // if (shopDelivery != null && delivery.getType().equals(DeliveryTypeEnums.KUAI_FU.getType()) && shopDelivery.getBindStatus().equals(BindStatusEnum.BIND)){
- // throw new CustomAppException("已绑定成功!");
- // }
- String url = null;
- if (delivery.getType().equals(DeliveryTypeEnums.SHAN_SONG.getType())){
- url = client.shansongAuthUrl(merchant.getCode());
- }
- if (delivery.getType().equals(DeliveryTypeEnums.FENG_NIAO.getType())){
- url = client.fengniaoAuthUrl();
- }
- if (delivery.getType().equals(DeliveryTypeEnums.AIPT.getType())){
- url = client.aptAuthUrl(merchant.getCode());
- }
- if (delivery.getType().equals(DeliveryTypeEnums.HUO_LA_LA.getType())){
- url = client.hllAuthUrl();
- }
- if (delivery.getType().equals(DeliveryTypeEnums.KUAI_FU.getType())){
- url = client.kfAuthUrl(merchant.getCode());
- }
- if (delivery.getType().equals(DeliveryTypeEnums.MEI_TUAN_ZB.getType())){
- shopDelivery = new ShopDelivery();
- shopDelivery.setAccount("sssss");
- shopDelivery.setMerchantId(merchant.getId());
- shopDelivery.setDeliveryId(delivery.getId());
- shopDelivery.setBindStatus(BindStatusEnum.BIND.status);
- iShopDeliveryService.save(shopDelivery);
- }
- if (delivery.getType().equals(DeliveryTypeEnums.MEI_TUAN_SG_ZB.getType())){
- shopDelivery = new ShopDelivery();
- shopDelivery.setAccount("sssss");
- shopDelivery.setMerchantId(merchant.getId());
- shopDelivery.setDeliveryId(delivery.getId());
- shopDelivery.setBindStatus(BindStatusEnum.BIND.status);
- iShopDeliveryService.save(shopDelivery);
- }
- if (StringUtils.isBlank(sfId) && (delivery.getType().equals(DeliveryTypeEnums.DADA.getType()) || delivery.getType().equals(DeliveryTypeEnums.DADA_YZ.getType()))){
- Integer type = 0;
- if (delivery.getType().equals(DeliveryTypeEnums.DADA_YZ.getType())){
- type = 1;
- }
- JSONObject jsonObject = client.partyTicket(type);
- if (jsonObject.getString("status").equals("success")){
- url = client.getPartyOauth(jsonObject.getString("result"),type,merchant.getCode());
- }else {
- throw new CustomAppException(jsonObject.getString("msg"));
- }
- }
- if (delivery.getType().equals(DeliveryTypeEnums.SHUN_FENG.getType()) || delivery.getType().equals(DeliveryTypeEnums.DADA.getType()) || delivery.getType().equals(DeliveryTypeEnums.DADA_YZ.getType())){
- if (StringUtils.isNotBlank(sfId)){
- if (shopDelivery == null){
- shopDelivery = new ShopDelivery();
- shopDelivery.setAccount("sssss");
- if (StringUtils.isNotBlank(dadaName)){
- shopDelivery.setAccount(dadaName);
- }
- shopDelivery.setBalance(new BigDecimal("0"));
- shopDelivery.setThirdShopId(sfId);
- shopDelivery.setMerchantId(merchant.getId());
- shopDelivery.setDeliveryId(delivery.getId());
- shopDelivery.setBindStatus(BindStatusEnum.CHECK.status);
- iShopDeliveryService.save(shopDelivery);
- }else {
- // 更新
- shopDelivery.setThirdShopId(sfId);
- shopDelivery.setBindStatus(BindStatusEnum.CHECK.status);
- shopDelivery.setAccount("sssss");
- if (StringUtils.isNotBlank(dadaName)){
- shopDelivery.setAccount(dadaName);
- }
- iShopDeliveryService.updateById(shopDelivery);
- }
- }
- }
- return url;
- }
- /**
- * 填写达达/达达优质门店编号
- * @param loginId
- * @param deliveryId 运力
- * @param shopNo 达达/优质门店编号
- */
- @Override
- public void updateDadaShopNo(Long loginId, Long deliveryId, String shopNo) {
- Member member = iMemberService.getById(loginId);
- ShopDelivery shopDelivery = iShopDeliveryService.getOne(new QueryWrapper<ShopDelivery>().eq("merchant_id",member.getMerchantId()).eq("delivery_id",deliveryId).isNull("shop_id"));
- DspDelivery dspDelivery = iDspDeliveryService.getById(deliveryId);
- getBalance(shopDelivery,dspDelivery,member.getMerchantId(),deliveryId,shopNo);
- }
- /**
- * 查询达达余额,并且更新达达门店编号
- * @param shopDelivery
- * @param dspDelivery
- * @param merchantId
- * @param deliveryId
- * @param shopNo
- */
- public void getBalance(ShopDelivery shopDelivery,DspDelivery dspDelivery,Long merchantId,Long deliveryId,String shopNo){
- QueryAmount queryAmount = new QueryAmount();
- queryAmount.setIsDirectDelivery(0);
- queryAmount.setLbClient(DeliveryTypeEnums.DADA.getName());
- if (DeliveryTypeEnums.DADA_YZ.getType().equals(dspDelivery.getType())){
- queryAmount.setIsDirectDelivery(1);
- queryAmount.setLbClient(DeliveryTypeEnums.DADA_YZ.getName());
- }
- shopDelivery.setBindStatus(BindStatusEnum.BIND.status);
- // 查询余额
- queryAmount.setMerchantId(shopDelivery.getThirdShopId());
- ResObject<AmountResultVo> res = client.queryAmount(queryAmount);
- if(res.getCode().intValue()==0){
- BigDecimal balanceAmount = res.getData().getBalanceAmount();
- shopDelivery.setBalance(balanceAmount);
- }
- iShopDeliveryService.updateById(shopDelivery);
- iShopDeliveryService.updateDaDaShopNo(dspDelivery.getType(),merchantId,deliveryId,shopNo);
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void bindCallBack(ShansongTokenVo tokenVo) {
- DspDelivery delivery = iDspDeliveryService.findOne(DeliveryTypeEnums.SHAN_SONG.getType());
- Merchant merchant = iMerchantService.getOne(new QueryWrapper<Merchant>().eq("code",tokenVo.getShopId()));
- if(merchant!=null){
- ShopDelivery shopDelivery = new ShopDelivery();
- //绑定闪送目前只能拿到授权token
- //TODO
- shopDelivery.setAccount("sssss");
- // shopDelivery.setBalance(new BigDecimal("12.03"));
- shopDelivery.setThirdShopId(tokenVo.getShopId());
- shopDelivery.setMerchantId(merchant.getId());
- shopDelivery.setBindStatus(BindStatusEnum.BIND.status);
- shopDelivery.setDeliveryId(delivery.getId());
- shopDelivery.setAuthToken(tokenVo.getAccessToken());
- //获取余额
- try {
- QueryAmount queryAmount = new QueryAmount();
- queryAmount.setAccessToken(tokenVo.getAccessToken());
- queryAmount.setIsShansongSH(true);
- queryAmount.setLbClient(DeliveryTypeEnums.SHAN_SONG.getName());
- ResObject<AmountResultVo> res = client.queryAmount(queryAmount);
- if (res.getCode() == 0){
- AmountResultVo vo = res.getData();
- shopDelivery.setBalance(vo.getBalanceAmount());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- shopDelivery.setRefreshToken(tokenVo.getRefreshToken());
- shopDelivery.setExpiresIn(tokenVo.getExpireIn());
- iShopDeliveryService.save(shopDelivery);
- }
- }
- /**
- * 爱跑腿绑定回调
- * @param aiptAuthDto
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void bindAipt(AiptAuthDto aiptAuthDto) {
- DspDelivery delivery = iDspDeliveryService.findOne(DeliveryTypeEnums.AIPT.getType());
- Merchant merchant = iMerchantService.getOne(new QueryWrapper<Merchant>().eq("code",aiptAuthDto.getUnique_id()));
- System.out.println("爱跑腿绑定回调商户---"+merchant.getId());
- if(merchant!=null){
- ShopDelivery shopDelivery = iShopDeliveryService.getByMerchantIdAndDeliveryId(merchant.getId(),delivery.getId());
- if (shopDelivery == null){
- shopDelivery = new ShopDelivery();
- shopDelivery.setAccount(aiptAuthDto.getPhone());
- shopDelivery.setThirdShopId(aiptAuthDto.getUnique_id());
- shopDelivery.setMerchantId(merchant.getId());
- if ("bind".equals(aiptAuthDto.getState())){
- shopDelivery.setBindStatus(BindStatusEnum.BIND.status);
- }else {
- shopDelivery.setBindStatus(BindStatusEnum.UNBIND.status);
- }
- shopDelivery.setDeliveryId(delivery.getId());
- //获取余额
- try {
- QueryAmount queryAmount = new QueryAmount();
- queryAmount.setPhone(aiptAuthDto.getPhone());
- queryAmount.setLbClient(DeliveryTypeEnums.AIPT.getName());
- ResObject<AmountResultVo> res = client.queryAmount(queryAmount);
- if (res.getCode() == 0){
- AmountResultVo vo = res.getData();
- shopDelivery.setBalance(vo.getBalanceAmount());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- iShopDeliveryService.save(shopDelivery);
- }
- }
- }
- /**
- * 绑定快服回调
- * @param kfAuthDto
- */
- @Override
- public void bindKf(KfAuthDto kfAuthDto) {
- DspDelivery delivery = iDspDeliveryService.findOne(DeliveryTypeEnums.KUAI_FU.getType());
- Merchant merchant = iMerchantService.getOne(new QueryWrapper<Merchant>().eq("code",kfAuthDto.getMerchantCode()));
- if(merchant==null){
- log.info("快服绑定商家为空");
- return;
- }
- ShopDelivery shopDelivery = iShopDeliveryService.getByThirdShopIdAndMerchantId(merchant.getId(),kfAuthDto.getOpenid());
- if (shopDelivery == null){
- shopDelivery = new ShopDelivery();
- shopDelivery.setThirdShopId(kfAuthDto.getOpenid());
- shopDelivery.setMerchantId(merchant.getId());
- shopDelivery.setBindStatus(BindStatusEnum.BIND.status);
- shopDelivery.setDeliveryId(delivery.getId());
- shopDelivery.setAuthToken(kfAuthDto.getAccess_token());
- // 表示该商家是首次绑定,不是yes则是下过订单后的账户
- shopDelivery.setAccount("yes");
- iShopDeliveryService.save(shopDelivery);
- }
- }
- /**
- * 达达授权绑定
- * @param sourceId 三方门店ID
- * @param merchantCode 商家code
- * @param type
- * @param shopNo 门店编号,App账户会返回
- */
- @Override
- public void bindDaDa(String sourceId, String merchantCode, Integer type,String shopNo) {
- DspDelivery delivery = iDspDeliveryService.findOne(type);
- Merchant merchant = iMerchantService.getOne(new QueryWrapper<Merchant>().eq("code",merchantCode));
- if(merchant==null){
- log.info("达达绑定商家为空");
- return;
- }
- ShopDelivery shopDelivery = iShopDeliveryService.getOne(new QueryWrapper<ShopDelivery>().eq("merchant_id",merchant.getId()).
- eq("delivery_id",delivery.getId()).eq("deleted",0).isNull("shop_id"));
- if (shopDelivery == null){
- shopDelivery = new ShopDelivery();
- }
- shopDelivery.setThirdShopId(sourceId);
- shopDelivery.setMerchantId(merchant.getId());
- shopDelivery.setBindStatus(BindStatusEnum.WAIT_INFO.status);
- shopDelivery.setDeliveryId(delivery.getId());
- shopDelivery.setAccount("sssss");
- iShopDeliveryService.saveOrUpdate(shopDelivery);
- if (StringUtils.isNotBlank(shopNo)){
- shopDelivery.setBindStatus(BindStatusEnum.BIND.status);
- // 更新门店编号,同时查询余额
- getBalance( shopDelivery, delivery,merchant.getId(), delivery.getId(), shopNo);
- }
- }
- @Override
- public boolean bindUserApply(String mobile, String ip) {
- ResObject<BindUserApplyResponse> resObject = client.bindUserApply(mobile,ip);
- if(resObject.getCode()!=0){
- return false;
- }
- return true;
- }
- @Override
- public String bindUserSubmit(Long memberId,String mobile, String validateCode, String cityName) {
- log.info("绑定用户请求:memberId:{}",memberId);
- ResObject<BindUserSubmitResponse> resObject = client.bindUserSubmit(mobile,validateCode,cityName);
- if(resObject.getCode()==0){
- BindUserSubmitResponse response = resObject.getData();
- Member member = iMemberService.getById(memberId);
- DspDelivery delivery = iDspDeliveryService.findOne(DeliveryTypeEnums.UUPT.getType());
- Merchant merchant = iMerchantService.getById(member.getMerchantId());
- ShopDelivery shopDelivery = new ShopDelivery();
- shopDelivery.setAccount(mobile);
- ResObject<GetBalanceDetailResponse> res = client.getBalance(response.getOpenid());
- if(res.getCode().intValue()==0){
- String accountMoney = res.getData().getAccountMoney();
- shopDelivery.setBalance(new BigDecimal(accountMoney));
- }
- shopDelivery.setThirdShopId(response.getOpenid());
- shopDelivery.setMerchantId(merchant.getId());
- shopDelivery.setBindStatus(BindStatusEnum.BIND.status);
- shopDelivery.setDeliveryId(delivery.getId());
- iShopDeliveryService.save(shopDelivery);
- return "ok";
- }
- return resObject.getMsg();
- }
- @Override
- public String cancelBind(Long memberId,String mobile) {
- Member member = iMemberService.getById(memberId);
- DspDelivery delivery = iDspDeliveryService.findOne(DeliveryTypeEnums.UUPT.getType());
- ShopDelivery shopDelivery = iShopDeliveryService.getOne(new QueryWrapper<ShopDelivery>().eq("merchant_id",member.getMerchantId()).
- eq("delivery_id",delivery.getId()).isNull("shop_id"));
- log.info("uupt 解除绑定开始:"+JSONObject.toJSONString(shopDelivery));
- if(shopDelivery!=null&&shopDelivery.getAccount().equals(mobile)&&StringUtils.isNotBlank(shopDelivery.getThirdShopId())){
- String openId = shopDelivery.getThirdShopId();
- ResObject<CancelBindResponse> resObject = client.cancelBind(openId);
- if(resObject.getCode()==0){
- CancelBindResponse response = resObject.getData();
- log.info("uupt 解除绑定返回:"+JSONObject.toJSONString(response));
- // ShopDelivery shopDelivery1 = new ShopDelivery();
- // shopDelivery1.setBindStatus(BindStatusEnum.UNBIND.status);
- // iShopDeliveryService.update(shopDelivery1,new UpdateWrapper<ShopDelivery>().eq("third_shop_id",openId));
- iShopDeliveryService.removeById(shopDelivery.getId());
- return "ok";
- }
- return resObject.getMsg();
- }else{
- return "用户不存在" ;
- }
- }
- @Override
- public void bindHuoLaLa(TokenResponse tokenResponse) {
- DspDelivery delivery = iDspDeliveryService.findOne(DeliveryTypeEnums.HUO_LA_LA.getType());
- Merchant merchant = iMerchantService.findByMobile(tokenResponse.getAuthMobile());
- if (merchant==null){
- log.info("货拉拉商户绑定未找到,手机号为"+tokenResponse.getAuthMobile());
- }
- ShopDelivery shopDelivery = iShopDeliveryService.getByMerchantIdAndDeliveryId(merchant.getId(),delivery.getId());
- if (shopDelivery==null){
- shopDelivery=new ShopDelivery();
- shopDelivery.setMerchantId(merchant.getId());
- shopDelivery.setRefreshToken(tokenResponse.getRefreshToken());
- shopDelivery.setAuthToken(tokenResponse.getAccessToken());
- shopDelivery.setExpiresIn(tokenResponse.getExpires().getTime());
- shopDelivery.setDeliveryId(delivery.getId());
- shopDelivery.setBindStatus(BindStatusEnum.BIND.getStatus());
- iShopDeliveryService.save(shopDelivery);
- }
- }
- @Override
- public String findCity(String cityName) {
- HuoLaLaCity city = iHuoLaLaCityService.findCity(cityName);
- if (city!=null){
- return city.getCityId()+"";
- }else{
- return "";
- }
- }
- @Override
- public HCityInfo getCityInfo(String cityId) {
- HCityInfo cityInfo = iHuoLaLaCityService.getCityInfo(cityId);
- return cityInfo;
- }
- @Override
- public List<Haddress> poiSearch(HPoiSearch hPoiSearch) {
- List<Haddress> list = client.poiSearch(hPoiSearch);
- return list;
- }
- }
|