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;
|
}
|
|
}
|