| package com.xzx.gc.order.service;  | 
|   | 
| import cn.hutool.core.collection.CollUtil;  | 
| import cn.hutool.core.convert.Convert;  | 
| import cn.hutool.core.lang.Snowflake;  | 
| import cn.hutool.core.util.IdUtil;  | 
| import cn.hutool.core.util.NumberUtil;  | 
| import cn.hutool.core.util.StrUtil;  | 
| import com.github.pagehelper.PageHelper;  | 
| import com.github.pagehelper.PageInfo;  | 
| import com.xzx.gc.common.constant.Constants;  | 
| import com.xzx.gc.common.exception.RestException;  | 
| import com.xzx.gc.common.utils.BusinessUtil;  | 
| import com.xzx.gc.entity.*;  | 
| import com.xzx.gc.model.admin.*;  | 
| import com.xzx.gc.order.mapper.*;  | 
| import com.xzx.gc.util.DateUtil;  | 
| import com.xzx.gc.util.DoubleUtil;  | 
| import com.xzx.gc.util.SessionUtil;  | 
| import org.apache.commons.codec.binary.Base64;  | 
| import org.apache.commons.lang3.StringUtils;  | 
| 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.ArrayList;  | 
| import java.util.HashMap;  | 
| import java.util.List;  | 
| import java.util.Map;  | 
|   | 
| @Service  | 
| @Transactional  | 
| public class UserShareService {  | 
|   | 
|     @Autowired  | 
|     private UserShareInfoMapper userShareInfoMapper;  | 
|   | 
|     @Autowired  | 
|     private CityPartnerService cityPartnerService;  | 
|     @Autowired  | 
|     private OrderMapper orderMapper;  | 
|     @Autowired  | 
|     private BusinessUtil businessUtil;  | 
|   | 
|   | 
|     public UserShareInfo findByRegister(String registerMobilePhone){  | 
|         UserShareInfo userShareInfo = new UserShareInfo();  | 
|         userShareInfo.setRegisterMobilePhone(registerMobilePhone);  | 
|         return  userShareInfoMapper.selectOne(userShareInfo);  | 
|     }  | 
|   | 
|     public void updateById(UserShareInfo userShareInfo){  | 
|         userShareInfoMapper.updateByPrimaryKeySelective(userShareInfo);  | 
|     }  | 
|   | 
|   | 
|     public Map<String,Object> queryShareInfoList(XzxUserShareInfoModel model){  | 
|         if(StrUtil.isBlank(model.getPartnerId())){  | 
|             List<String> list = cityPartnerService.queryPartnerByCurrent();  | 
|             if(CollUtil.isNotEmpty(list)){  | 
|                 model.setPartnerId(CollUtil.getFirst(list));  | 
|             }  | 
|         }  | 
|         Map<String,Object> map = new HashMap<>();  | 
|   | 
|         PageHelper.startPage(model.getPage(),model.getLimit());  | 
|         List<XzxUserShareInfoModel> list = userShareInfoMapper.queryShareInfoList(model);  | 
|         PageInfo<XzxUserShareInfoModel> pageInfo=new PageInfo<>(list);  | 
|         //下单金额  | 
|         for (XzxUserShareInfoModel info:list) {  | 
|             info.setStatus("1");  | 
|             BigDecimal completeOrders = orderMapper.findSumMoney(info.getInvitedUserId());  | 
|             completeOrders=completeOrders==null?BigDecimal.ZERO:completeOrders;  | 
|             if(completeOrders.compareTo(BigDecimal.ZERO)>0){  | 
|                 info.setStatus("0");  | 
|                 info.setTotalMoney(businessUtil.changeMoney(completeOrders));  | 
|             }else {  | 
|                 //未下单  | 
|                 info.setStatus("1");  | 
|                 info.setTotalMoney("0");  | 
|             }  | 
|         }  | 
|   | 
|         //累计提成  | 
|         String totalAmount=userShareInfoMapper.totalAmount(model);  | 
|         map.put("totalAmount",businessUtil.changeMoney(totalAmount));  | 
|         map.put("data",pageInfo.getList());  | 
|         map.put("count",pageInfo.getTotal());  | 
|         map.put("personNum",pageInfo.getTotal());  | 
|         return map;  | 
|     }  | 
|   | 
|   | 
|     public Map<String,Object> queryWeightOrderList(WeightOrderModel model) {  | 
|         List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();  | 
|         List<String> fenceIds = userShareInfoMapper.queryFenceByPartnerIds(partnerIds);  | 
|         model.setFenceIds(fenceIds);  | 
|         if(null!=model.getStartTime()&&!"".equals(model.getStartTime())){  | 
|             model.setStartTime(model.getStartTime()+" 00:00:00");  | 
|         }  | 
|         if(null!=model.getEndTime()&&!"".equals(model.getEndTime())){  | 
|             model.setEndTime(model.getEndTime()+" 23:59:59");  | 
|         }  | 
|         if(null!=model.getNickName()&&!"".equals(model.getNickName())){  | 
|             model.setMobilePhone(model.getNickName());  | 
|             model.setNickName(new String(Base64.encodeBase64(model.getNickName().getBytes())));  | 
|         }  | 
|         if(null!=model.getMobilePhone()&&!"".equals(model.getMobilePhone())){  | 
|             model.setNickName(new String(Base64.encodeBase64(model.getMobilePhone().getBytes())));  | 
|         }  | 
|         Map<String,Object> map = new HashMap<>();  | 
|         map.put("code",0);  | 
|         PageHelper.startPage(model.getPage(),model.getLimit());  | 
|         List<WeightOrderModel> list = userShareInfoMapper.queryWeightOrderList(model);  | 
|         String totalMoney = userShareInfoMapper.queryTotalRoyaltyMoney(fenceIds);  | 
|         for (WeightOrderModel model1:list) {  | 
|             String royaltMoney = DoubleUtil.roundTwo(model1.getRoyaltyMoney());  | 
|             String partnerMoney = DoubleUtil.roundTwo(model1.getPartnerMoney());  | 
|             BigDecimal t = new BigDecimal(royaltMoney);  | 
|             BigDecimal pa = new BigDecimal(partnerMoney);  | 
|             model1.setHsyMoney(DoubleUtil.roundTwo(t.subtract(pa).toString()));  | 
|             model1.setRoyaltyMoney(royaltMoney);  | 
|             model1.setPartnerMoney(partnerMoney);  | 
|             model1.setDesignatedWeight(DoubleUtil.roundThree(model1.getDesignatedWeight()));  | 
|             model1.setOrderMoney(DoubleUtil.roundTwo(model1.getOrderMoney()));  | 
|             if(DateUtil.isBase64(model1.getNickName())){  | 
|                 model1.setNickName(cn.hutool.core.codec.Base64.decodeStr(model1.getNickName()));  | 
|   | 
|             }  | 
|         }  | 
|         PageInfo<WeightOrderModel> pageInfo=new PageInfo<>(list);  | 
|         map.put("data",pageInfo.getList());  | 
|         map.put("count",pageInfo.getTotal());  | 
|         map.put("flNum",pageInfo.getTotal());  | 
|         if(null!=totalMoney&&!"".equals(totalMoney)){  | 
|             map.put("totalMoney",DoubleUtil.roundTwo(totalMoney));  | 
|         }else{  | 
|             map.put("totalMoney","0");  | 
|         }  | 
|         return map;  | 
|     }  | 
|     public Map<String,Object> queryShareOrderList(XzxPlatformCapitalInfoModel model) {  | 
|         Map<String, Object> map = new HashMap<>();  | 
|         PageHelper.startPage(model.getPage(),model.getLimit());  | 
|         List<XzxPlatformCapitalInfoModel> list = userShareInfoMapper.queryShareOrderList(model.getShareId(),model.getInvitedUserId());  | 
|         PageInfo<XzxPlatformCapitalInfoModel> pageInfo=new PageInfo<>(list);  | 
|         map.put("data",pageInfo.getList());  | 
|         map.put("count",pageInfo.getTotal());  | 
|         map.put("code",0);  | 
|         return map;  | 
|     }  | 
|   | 
|   | 
|     public Map<String,Object> queryPackageType(String packageId){  | 
|         List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();  | 
|         String partnerId="";  | 
|         if(null!=partnerIds&&partnerIds.size()>0){  | 
|             partnerId = partnerIds.get(0);  | 
|         }  | 
|         List<Map<String,Object>> list = userShareInfoMapper.queryPackageGoods(packageId,partnerId);  | 
|         for (Map<String,Object> map1 :list) {  | 
|             map1.put("configTypeName",map1.get("title"));  | 
|             map1.put("configTypeCode",map1.get("item_type"));  | 
|         }  | 
|         Map<String,Object> map = new HashMap<>();  | 
|         map.put("data",list);  | 
|         map.put("code",0);  | 
|         return map;  | 
|     }  | 
|   | 
| }  |