From cbe9cbd4a99dafcf50418a8fa1e8ff7b0e4b6c72 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 31 May 2024 16:31:28 +0800
Subject: [PATCH] 图片上传

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |  388 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 362 insertions(+), 26 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index bf4b5ca..bde2101 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -5,8 +5,7 @@
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.properties.XcxProperties;
 import cc.mrbird.febs.common.utils.*;
-import cc.mrbird.febs.mall.conversion.MallMemberConversion;
-import cc.mrbird.febs.mall.conversion.MallShopApplyConversion;
+import cc.mrbird.febs.mall.conversion.*;
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
@@ -14,10 +13,14 @@
 import cc.mrbird.febs.mall.vo.*;
 import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
 import cc.mrbird.febs.pay.service.IXcxPayService;
+import cc.mrbird.febs.pay.util.MD5;
+import cc.mrbird.febs.pay.util.Util;
+import cc.mrbird.febs.vip.VipSettingUnAliveSettingBo;
 import cc.mrbird.febs.vip.entity.MallVipConfig;
 import cc.mrbird.febs.vip.mapper.MallVipConfigMapper;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -25,6 +28,7 @@
 import cn.hutool.crypto.SecureUtil;
 import cn.hutool.crypto.asymmetric.KeyType;
 import cn.hutool.crypto.asymmetric.RSA;
+import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -34,6 +38,16 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.entity.ByteArrayEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.security.SecurityProperties;
 import org.springframework.http.HttpStatus;
@@ -43,6 +57,7 @@
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author wzy
@@ -77,6 +92,10 @@
     private final MallGoodsMapper mallGoodsMapper;
 
     private final MallVipConfigMapper mallVipConfigMapper;
+    private final MallStoreMapper mallStoreMapper;
+    private final MallStoreItemMapper mallStoreItemMapper;
+    private final MallStoreMemberMapper mallStoreMemberMapper;
+    private final MallMemberLevelMapper mallMemberLevelMapper;
 
 
     @Value("${spring.profiles.active}")
@@ -361,12 +380,30 @@
         MallMember mallMember = this.baseMapper.selectById(memberId);
 
         List<TeamListVo> list = this.baseMapper.selectTeamListByInviteId(mallMember.getInviteId());
+        if(CollUtil.isNotEmpty(list)){
+            for(TeamListVo teamListVo : list){
+                String levelName = "";
+                if(1 == teamListVo.getLevelCode()){
+                    levelName = "一级";
+                }else if(2 == teamListVo.getLevelCode()){
+                    levelName = "二级";
+                }
+                teamListVo.setLevelName(levelName);
+            }
+        }
+
+        QueryWrapper<MallMemberLevel> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("member_id",memberId);
+        MallMemberLevel mallMemberLevel = mallMemberLevelMapper.selectOne(queryWrapper);
 
         MyTeamVo myTeamVo = new MyTeamVo();
+        myTeamVo.setLevelPercent(mallMemberLevel.getLevelPercent());
+        myTeamVo.setLevelCode(mallMemberLevel.getLevelCode());
         myTeamVo.setTeam(list);
         myTeamVo.setMyAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 1));
         myTeamVo.setMyTeamAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 2));
-        myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size());
+        List<MallMember> mallMembers = this.baseMapper.selectChildAgentListByInviteId(mallMember.getInviteId());
+        myTeamVo.setMyTeamCnt(CollUtil.isEmpty(mallMembers) ? 0 : mallMembers.size());
         return new FebsResponse().success().data(myTeamVo);
     }
 
@@ -382,11 +419,11 @@
         moneyFlowDto.setMemberId(id);
         IPage<MoneyFlowVo> pages = mallMoneyFlowMapper.selectApiMoneyFlowInPage(page, moneyFlowDto);
 
-//        if (moneyFlowDto.getFlowType() == 3) {
-//            pages.getRecords().forEach(item -> {
-//                item.setDescription(ScoreFlowTypeEnum.getDescByValue(item.getType()));
-//            });
-//        }
+        if (moneyFlowDto.getFlowType() == 3) {
+            pages.getRecords().forEach(item -> {
+                item.setDescription(ScoreFlowTypeEnum.getDescByValue(item.getType()));
+            });
+        }
         return new FebsResponse().success().data(pages);
     }
 
@@ -619,7 +656,6 @@
                     mallMember = new MallMember();
                     mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
                     mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
-                    mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name());
                     mallMember.setOpenId(openId);
                     mallMember.setSessionKey(sessionKey);
 
@@ -657,6 +693,12 @@
                         }
                     }
                     this.baseMapper.insert(mallMember);
+
+//                    MallMemberLevel mallMemberLevel = new MallMemberLevel();
+//                    mallMemberLevel.setMemberId(mallMember.getId());
+//                    mallMemberLevel.setLevelCode(0);
+//                    mallMemberLevel.setLevelPercent(BigDecimal.ZERO);
+//                    mallMemberLevelMapper.insert(mallMemberLevel);
 
                     mallMember = this.baseMapper.selectMemberByOpenId(openId);
                     String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId());
@@ -714,21 +756,21 @@
             mallMember.setAvatar(avatarUrl);
         }
 
-        if (StrUtil.isNotBlank(apiXcxSaveInfoDto.getRealName())) {
-            mallMember.setRealName(apiXcxSaveInfoDto.getRealName());
-        }
-
-        if (apiXcxSaveInfoDto.getBirthday() != null) {
-            mallMember.setBirthday(apiXcxSaveInfoDto.getBirthday());
-        }
-
-        List<MallVipConfig> configs = mallVipConfigMapper.selectVipConfigList();
-        if (CollUtil.isNotEmpty(configs)) {
-            MallVipConfig mallVipConfig = configs.get(0);
-            mallMember.setLevel(mallVipConfig.getCode());
-        }
-
-        mallMember.setSex(1 == apiXcxSaveInfoDto.getGender() ? "女" : "男");
+//        if (StrUtil.isNotBlank(apiXcxSaveInfoDto.getRealName())) {
+//            mallMember.setRealName(apiXcxSaveInfoDto.getRealName());
+//        }
+//
+//        if (apiXcxSaveInfoDto.getBirthday() != null) {
+//            mallMember.setBirthday(apiXcxSaveInfoDto.getBirthday());
+//        }
+//
+//        List<MallVipConfig> configs = mallVipConfigMapper.selectVipConfigList();
+//        if (StrUtil.isBlank(mallMember.getLevel()) && CollUtil.isNotEmpty(configs)) {
+//            MallVipConfig mallVipConfig = configs.get(0);
+//            mallMember.setLevel(mallVipConfig.getCode());
+//        }
+//
+//        mallMember.setSex(1 == apiXcxSaveInfoDto.getGender() ? "女" : "男");
         this.baseMapper.updateById(mallMember);
         return new FebsResponse().success();
     }
@@ -748,7 +790,6 @@
                     mallMember.setPhone(phone);
                     mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
                     mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
-                    mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name());
                     this.baseMapper.insert(mallMember);
 
                     String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId());
@@ -1003,7 +1044,10 @@
         Long memberId = LoginUserUtil.getLoginUser().getId();
         mallMemberCouponDto.setMemberId(memberId);
         mallMemberCouponDto.setExpireTime(DateUtil.date());
-        List<Long> couponIds = couponGoodsMapper.selectByGoodId(mallMemberCouponDto.getGoodsId());
+//        List<Long> couponIds = couponGoodsMapper.selectByGoodId(mallMemberCouponDto.getGoodsId());
+        List<Long> goodsIdList = mallMemberCouponDto.getGoodsIdList();
+        List<Long> couponIds = couponGoodsMapper.selectByGoodIdList(goodsIdList);
+
         List<MallMemberCouponVo> mallMemberCouponVos = new ArrayList<>();
         if(CollUtil.isNotEmpty(couponIds)){
             mallMemberCouponVos = mallMemberCouponMapper.selectListCreateInPage(mallMemberCouponDto,couponIds);
@@ -1077,4 +1121,296 @@
         String wechatLoginUrl =xcxProperties.getWecharLoginUrl();
         return String.format(wechatLoginUrl, xcxProperties.getXcxAppid(), xcxProperties.getXcxSecret(), code);
     }
+
+    @Override
+    public Map<String, Object>  loginEvent() {
+        MallMember loginUser = LoginUserUtil.getLoginUser();
+
+        MallMember member = this.baseMapper.selectById(loginUser.getId());
+
+        MallMember mallMember = new MallMember();
+        mallMember.setId(member.getId());
+        mallMember.setLastLoginTime(new Date());
+        this.baseMapper.updateById(mallMember);
+
+        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.UNALIVE_COUPON.getType(), DataDictionaryEnum.UNALIVE_COUPON.getCode());
+        if (dic == null || StrUtil.isBlank(dic.getValue())) {
+            return new HashMap<>();
+        }
+
+        Date today = new Date();
+        Date lastLoginTime = member.getLastLoginTime();
+        if (lastLoginTime == null) {
+            lastLoginTime = new Date();
+        }
+
+        long days = DateUtil.between(DateUtil.endOfDay(lastLoginTime), DateUtil.endOfDay(today), DateUnit.DAY);
+
+        List<VipSettingUnAliveSettingBo> list = JSONObject.parseArray(dic.getValue(), VipSettingUnAliveSettingBo.class);
+        List<Long> couponIds = list.stream().filter(item -> {
+            return item.getDay() <= days && item.getCouponId() != null;
+        }).map(VipSettingUnAliveSettingBo::getCouponId).collect(Collectors.toList());
+        if (CollUtil.isEmpty(couponIds)) {
+            return new HashMap<>();
+        }
+
+        LambdaQueryWrapper<MallGoodsCoupon> query = new LambdaQueryWrapper<>();
+        query.in(MallGoodsCoupon::getId, couponIds)
+                .eq(MallGoodsCoupon::getState, 2);
+        List<MallGoodsCoupon> coupons = mallGoodsCouponMapper.selectList(query);
+
+        LambdaQueryWrapper<MallMemberCoupon> memberCouponQuery = new LambdaQueryWrapper<>();
+        memberCouponQuery.in(MallMemberCoupon::getCouponId, couponIds)
+                        .eq(MallMemberCoupon::getMemberId, member.getId())
+                        .eq(MallMemberCoupon::getFromType, 3)
+                        .ge(MallMemberCoupon::getCreatedTime, DateUtil.beginOfDay(new Date()))
+                        .le(MallMemberCoupon::getCreatedTime, DateUtil.endOfDay(new Date()));
+        List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectList(memberCouponQuery);
+        if (CollUtil.isNotEmpty(mallMemberCoupons)) {
+            Map<Long, MallMemberCoupon> map = mallMemberCoupons.stream().collect(Collectors.toMap(MallMemberCoupon::getCouponId, MallMemberCoupon -> MallMemberCoupon));
+            coupons = coupons.stream().filter(item -> {
+                return map.get(item.getId()) == null;
+            }).collect(Collectors.toList());
+        }
+
+        if (CollUtil.isEmpty(coupons)) {
+            return new HashMap<>();
+        }
+
+        coupons.forEach(item -> {
+            MallMemberCoupon memberCoupon = new MallMemberCoupon();
+            memberCoupon.setCouponId(item.getId());
+            memberCoupon.setCouponName(item.getName());
+            memberCoupon.setInviteId(member.getInviteId());
+            memberCoupon.setCouponUuid(IdUtil.simpleUUID());
+            memberCoupon.setState(1);
+            memberCoupon.setFromType(3);
+            memberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(), item.getExpireDay()));
+            memberCoupon.setMemberId(member.getId());
+            mallMemberCouponMapper.insert(memberCoupon);
+        });
+
+        Map<String, Object> result = new HashMap<>();
+        result.put("coupon", coupons);
+        return result;
+    }
+
+    @Override
+    public FebsResponse storeList(MallStoreDto mallStoreDto) {
+        QueryWrapper<MallStore> mallStoreQueryWrapper = new QueryWrapper<>();
+        if(StrUtil.isNotEmpty(mallStoreDto.getName())){
+            mallStoreQueryWrapper.like("name",mallStoreQueryWrapper);
+        }
+        List<MallStore> mallStores = mallStoreMapper.selectList(mallStoreQueryWrapper);
+        List<MallStoreVo> mallStoreVos = MallStoreConversion.INSTANCE.entitysToVos(mallStores);
+        return new FebsResponse().success().data(mallStoreVos);
+    }
+
+    @Override
+    public FebsResponse storeItemList(MallStoreItemDto mallStoreItemDto) {
+        QueryWrapper<MallStoreItem> mallStoreQueryWrapper = new QueryWrapper<>();
+        mallStoreQueryWrapper.like("store_id",mallStoreItemDto.getStoreId());
+        List<MallStoreItem> mallStores = mallStoreItemMapper.selectList(mallStoreQueryWrapper);
+        return new FebsResponse().success().data(mallStores);
+    }
+
+    @Override
+    public FebsResponse bindStoreMember(BindStoreMemberDto bindStoreMemberDto) {
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+        Long storeItemId = bindStoreMemberDto.getStoreItemId();
+
+        QueryWrapper<MallStoreMember> objectQueryWrapper = new QueryWrapper<>();
+        objectQueryWrapper.eq("member_id",memberId);
+        List<MallStoreMember> mallStoreMembers = mallStoreMemberMapper.selectList(objectQueryWrapper);
+        if(CollUtil.isNotEmpty(mallStoreMembers)){
+            mallStoreMemberMapper.delete(objectQueryWrapper);
+        }
+
+        MallStoreItem mallStoreItem = mallStoreItemMapper.selectById(storeItemId);
+        HashMap<String, String> objectObjectHashMap = new HashMap<>();
+        String shopAccount = mallStoreItem.getAccount();
+        String shopPwd = mallStoreItem.getPassword();
+        String name = bindStoreMemberDto.getName();
+        String address = bindStoreMemberDto.getAddress();
+        Integer age = bindStoreMemberDto.getAge();
+        String phoneNumber = bindStoreMemberDto.getPhone();
+
+        objectObjectHashMap.put("shopAccount",shopAccount);
+        objectObjectHashMap.put("shopPwd",shopPwd);
+        objectObjectHashMap.put("name",name);
+        objectObjectHashMap.put("address",address);
+        objectObjectHashMap.put("age",age.toString());
+        objectObjectHashMap.put("phoneNumber",phoneNumber);
+
+        //sign= MD5(address+age+name+phoneNumber+shopAccount+shopPwd)
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append(address);
+        stringBuffer.append(age);
+        stringBuffer.append(name);
+        stringBuffer.append(phoneNumber);
+        stringBuffer.append(shopAccount);
+        stringBuffer.append(shopPwd);
+        String sign = MD5.MD5Encode(stringBuffer.toString());
+        objectObjectHashMap.put("sign",sign);
+        String url = "https://data.muchun.co/api/bindCustomer";
+        String result = HttpCurlUtil.sendPost(url, objectObjectHashMap);
+        Integer retCode = JSONUtil.parseObj(result).getInt("retCode");
+        String message = JSONUtil.parseObj(result).getStr("message");
+        if(0 != retCode || !"绑定成功".equals(message)){
+            return new FebsResponse().fail().message(message);
+        }
+        Long bindId = JSONUtil.parseObj(result).getJSONObject("data").getLong("userId");
+
+        MallStoreMember mallStoreMember = new MallStoreMember();
+        mallStoreMember.setMemberId(memberId);
+        mallStoreMember.setBindId(bindId);
+        mallStoreMember.setStoreId(mallStoreItem.getStoreId());
+        mallStoreMember.setStoreItemId(mallStoreItem.getId());
+
+        mallStoreMember.setAccount(shopAccount);
+        mallStoreMember.setPassword(shopPwd);
+
+        mallStoreMember.setName(name);
+        mallStoreMember.setAddress(address);
+        mallStoreMember.setAge(age);
+        mallStoreMember.setPhone(phoneNumber);
+        mallStoreMemberMapper.insert(mallStoreMember);
+        return new FebsResponse().success().message("绑定成功");
+    }
+
+    @Override
+    public FebsResponse bindList() {
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+        QueryWrapper<MallStoreMember> objectQueryWrapper = new QueryWrapper<>();
+        objectQueryWrapper.eq("member_id",memberId);
+        List<MallStoreMember> mallStoreMembers = mallStoreMemberMapper.selectList(objectQueryWrapper);
+
+        ArrayList<MallStoreMemberVo> mallStoreMemberVos = new ArrayList<>();
+        for(MallStoreMember mallStoreMember : mallStoreMembers){
+            MallStoreMemberVo mallStoreMemberVo = new MallStoreMemberVo();
+            Long storeId = mallStoreMember.getStoreId();
+            Long storeItemId = mallStoreMember.getStoreItemId();
+            MallStore mallStore = mallStoreMapper.selectById(storeId);
+            MallStoreItem mallStoreItem = mallStoreItemMapper.selectById(storeItemId);
+            mallStoreMemberVo.setId(mallStoreMember.getId());
+            mallStoreMemberVo.setBindInfo(mallStore.getName()+"-"+mallStoreItem.getCode());
+            mallStoreMemberVos.add(mallStoreMemberVo);
+        }
+        return new FebsResponse().success().data(mallStoreMemberVos);
+    }
+
+    @Override
+    public FebsResponse bindResult(BindResultDto bindResultDto) {
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+        MallStoreMember mallStoreMember = mallStoreMemberMapper.selectById(bindResultDto.getBindId());
+        Long userld = mallStoreMember.getBindId();
+        String shopAccount = mallStoreMember.getAccount();
+        String shopPwd = mallStoreMember.getPassword();
+
+        HashMap<String, String> objectObjectHashMap = new HashMap<>();
+
+        objectObjectHashMap.put("shopAccount",shopAccount);
+        objectObjectHashMap.put("shopPwd",shopPwd);
+        objectObjectHashMap.put("userId",userld.toString());
+
+        //sign= MD5(shopAccount+shopPwd+userId)
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append(shopAccount);
+        stringBuffer.append(shopPwd);
+        stringBuffer.append(userld);
+        String sign = MD5.MD5Encode(stringBuffer.toString());
+        objectObjectHashMap.put("sign",sign);
+
+        String url = "https://data.muchun.co/api/getCustomerCheckRecords";
+        String result = HttpCurlUtil.sendPost(url, objectObjectHashMap);
+        Integer retCode = JSONUtil.parseObj(result).getInt("retCode");
+        String message = JSONUtil.parseObj(result).getStr("message");
+        if(0 != retCode){
+            return new FebsResponse().fail().message(message);
+        }
+        JSONArray data = JSONUtil.parseObj(result).getJSONArray("data");
+        return new FebsResponse().success().data(data);
+    }
+
+    @Override
+    public FebsResponse levelUpdate(ApiLevelUpdateDto apiLevelUpdateDto) {
+        Long levelId = apiLevelUpdateDto.getLevelId();
+        MallMemberLevel mallMemberLevel = mallMemberLevelMapper.selectById(levelId);
+        if(ObjectUtil.isEmpty(mallMemberLevel)){
+            throw new FebsException("记录不存在");
+        }
+
+        DataDictionaryCustom memberLevelOneDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MEMBER_LEVEL_ONE.getType(),
+                DataDictionaryEnum.MEMBER_LEVEL_ONE.getCode()
+        );
+        if(Integer.parseInt(memberLevelOneDic.getValue()) != mallMemberLevel.getLevelCode()){
+            throw new FebsException(StrUtil.format("{}才能设置层级和佣金比例}", memberLevelOneDic.getDescription()));
+        }
+
+        DataDictionaryCustom memberLevelTwoDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MEMBER_LEVEL_TWO.getType(),
+                DataDictionaryEnum.MEMBER_LEVEL_TWO.getCode()
+        );
+        Integer levelCode = apiLevelUpdateDto.getLevelCode();
+        if(Integer.parseInt(memberLevelTwoDic.getValue()) != levelCode){
+            throw new FebsException(StrUtil.format("当前用户只能设置{}}", memberLevelTwoDic.getDescription()));
+        }
+
+        DataDictionaryCustom minPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MEMBER_LEVEL_PERCENT_MIN.getType(),
+                DataDictionaryEnum.MEMBER_LEVEL_PERCENT_MIN.getCode()
+        );
+        DataDictionaryCustom maxPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MEMBER_LEVEL_PERCENT_MAX.getType(),
+                DataDictionaryEnum.MEMBER_LEVEL_PERCENT_MAX.getCode()
+        );
+        BigDecimal minPercent = new BigDecimal(minPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+        BigDecimal maxPercent = new BigDecimal(maxPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+        BigDecimal levelPercent = apiLevelUpdateDto.getLevelPercent();
+        if(levelPercent.compareTo(minPercent) < 0 || levelPercent.compareTo(maxPercent) > 0){
+            throw new FebsException(StrUtil.format("佣金比例必须在{}和{}之间。", minPercent,maxPercent));
+        }
+
+        mallMemberLevel.setLevelCode(levelCode);
+        mallMemberLevel.setLevelPercent(levelPercent);
+        mallMemberLevelMapper.updateById(mallMemberLevel);
+        return new FebsResponse().success().message("操作成功");
+    }
+
+    public static void main(String[] args) {
+        Long userld = 173L;
+        String shopAccount = "luohu";
+        String shopPwd = "123456";
+
+        HashMap<String, String> objectObjectHashMap = new HashMap<>();
+
+        objectObjectHashMap.put("shopAccount",shopAccount);
+        objectObjectHashMap.put("shopPwd",shopPwd);
+        objectObjectHashMap.put("userId",userld.toString());
+
+        //sign= MD5(shopAccount+shopPwd+userId)
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append(shopAccount);
+        stringBuffer.append(shopPwd);
+        stringBuffer.append(userld);
+        String sign = MD5.MD5Encode(stringBuffer.toString());
+        objectObjectHashMap.put("sign",sign);
+
+        System.out.println(sign);
+
+        System.out.println(objectObjectHashMap);
+        String url = "https://data.muchun.co/api/getCustomerCheckRecords";
+        String result = HttpCurlUtil.sendPost(url, objectObjectHashMap);
+        Integer retCode = JSONUtil.parseObj(result).getInt("retCode");
+        String message = JSONUtil.parseObj(result).getStr("message");
+        if(0 != retCode){
+            System.out.println(message);
+        }
+
+        JSONArray data = JSONUtil.parseObj(result).getJSONArray("data");
+        System.out.println(data);
+    }
+
+
 }

--
Gitblit v1.9.1