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 queryShareInfoList(XzxUserShareInfoModel model){ if(StrUtil.isBlank(model.getPartnerId())){ List list = cityPartnerService.queryPartnerByCurrent(); if(CollUtil.isNotEmpty(list)){ model.setPartnerId(CollUtil.getFirst(list)); } } Map map = new HashMap<>(); PageHelper.startPage(model.getPage(),model.getLimit()); List list = userShareInfoMapper.queryShareInfoList(model); PageInfo 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 queryWeightOrderList(WeightOrderModel model) { List partnerIds = cityPartnerService.queryPartnerByCurrent(); List 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 map = new HashMap<>(); map.put("code",0); PageHelper.startPage(model.getPage(),model.getLimit()); List 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 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 queryShareOrderList(XzxPlatformCapitalInfoModel model) { Map map = new HashMap<>(); PageHelper.startPage(model.getPage(),model.getLimit()); List list = userShareInfoMapper.queryShareOrderList(model.getShareId(),model.getInvitedUserId()); PageInfo pageInfo=new PageInfo<>(list); map.put("data",pageInfo.getList()); map.put("count",pageInfo.getTotal()); map.put("code",0); return map; } public Map queryPackageType(String packageId){ List partnerIds = cityPartnerService.queryPartnerByCurrent(); String partnerId=""; if(null!=partnerIds&&partnerIds.size()>0){ partnerId = partnerIds.get(0); } List> list = userShareInfoMapper.queryPackageGoods(packageId,partnerId); for (Map map1 :list) { map1.put("configTypeName",map1.get("title")); map1.put("configTypeCode",map1.get("item_type")); } Map map = new HashMap<>(); map.put("data",list); map.put("code",0); return map; } }