package com.xzx.gc.user.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.constant.OrderEnum; import com.xzx.gc.common.constant.RedisKeyConstant; import com.xzx.gc.common.exception.RestException; import com.xzx.gc.common.utils.*; import com.xzx.gc.entity.*; import com.xzx.gc.model.admin.CollectorModel; import com.xzx.gc.model.admin.PromoterModel; import com.xzx.gc.model.admin.UserModel; import com.xzx.gc.model.user.*; import com.xzx.gc.user.dto.AddressDto; import com.xzx.gc.user.dto.RayaltyDto; import com.xzx.gc.user.mapper.*; import com.xzx.gc.util.DoubleUtil; import lombok.extern.slf4j.Slf4j; 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 org.springframework.util.CollectionUtils; import tk.mybatis.mapper.common.example.SelectByExampleMapper; import tk.mybatis.mapper.entity.Example; import javax.servlet.http.HttpServletRequest; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @Service @Transactional @Slf4j public class UserService { @Autowired private UserMapper userMapper; @Autowired private UserLoginInfoMapper userLoginInfoMapper; @Autowired private HttpServletRequest request; @Autowired private UserTargetInfoMapper userTargetInfoMapper; @Autowired private RedisUtil redisUtil; @Autowired private OrderMapper orderMapper; @Autowired private OtherUserService otherUserService; @Autowired private BusinessUtil businessUtil; @Autowired private WeightItemPriceService weightItemPriceService; @Autowired private AccountService accountService; @Autowired private PartnerGaodeService partnerGaodeService; @Autowired private CityPartnerService cityPartnerService; @Autowired private OtherUserMapper otherUserMapper; @Autowired private AddressMapper addressMapper; @Autowired private PayInfoMapper payInfoMapper; @Autowired private OrderStorageInfoMapper orderStorageInfoMapper; @Autowired private SysStorageMapper sysStorageMapper; @Autowired private OrderService orderService; public List findForBidden() { UserInfo userInfo = new UserInfo(); userInfo.setDelFlag(Constants.DEL_NOT_FLAG); List userInfo1 = userMapper.select(userInfo); return userInfo1; } public List queryMyMoney(AccountReq accountReq) { Map map = new HashMap(); map.put("userId", accountReq.getUserId()); List list = userMapper.queryMyMoneyWithStatus(map); if (!CollectionUtils.isEmpty(list)) { //获取回收订单完成次数 map.put("receiver", accountReq.getUserId()); map.put("orderType", OrderEnum.回收.getValue()); map.put("orderStatus", OrderEnum.完成.getValue()); String recycleCount = orderMapper.orderCountStat(map); //回收员完成订单数 list.get(0).setRecycleCompleteOrderCount(recycleCount); //我的环保金和积分 String money = list.get(0).getMoney(); String collectScore = list.get(0).getCollectScore(); list.get(0).setMoney(businessUtil.changeMoney(money)); list.get(0).setCollectScore(businessUtil.changeMoney(collectScore)); //未结算的提成 if (businessUtil.isApp(request.getHeader("clientType"))) { RayaltyDto byReceiver = weightItemPriceService.findByReceiver(accountReq.getUserId()); list.get(0).setNotPay(byReceiver.getNotPay()); } list.stream().forEach(x -> { if (StringUtils.isNotBlank(x.getPayPassword())) { //存在支付密码 x.setPayPassword("true"); } }); //格式化 list.get(0).setOverdraftLimit(businessUtil.changeMoney(list.get(0).getOverdraftLimit())); list.get(0).setFreezeMoney(businessUtil.changeMoney(list.get(0).getFreezeMoney())); list.get(0).setWithdrawMoney(businessUtil.changeMoney(list.get(0).getWithdrawMoney())); } return list; } public List queryUserInfo(UserReq userReq) { List list = userMapper.queryUserInfo(userReq); return list; } public UserInfoVo queryUserInfoByUserId(String userId) { UserInfoVo userInfoVo = userMapper.queryUserInfoByUserId(userId); if (userInfoVo != null) { userInfoVo.setNickName(com.xzx.gc.common.utils.StringUtils.decode(userInfoVo.getNickName())); userInfoVo.setAvatarUrl(userInfoVo.getAvatar()); } return userInfoVo; } public String VerifyPayPassword(AccountReq accountReq) { String userId = accountReq.getUserId(); AccountReq req = new AccountReq(); req.setUserId(userId); // 查询是否被锁定 List list = userMapper.queryIsLock(userId); AccountVo vo = list.get(0); //错误次数 int errorTimes = vo.getErrorTimes() == null ? 0 : vo.getErrorTimes(); //锁定时间 String lockTime = vo.getLockTime(); if (errorTimes >= Constants.PAY_ERROR_NUM) { //判断当前时间超出锁定时间1天。 错误次数重置为0. long l = DateUtil.betweenDay(DateUtil.parse(lockTime, DateUtils.DATE_FORMAT_YMDHMS), new Date(), false); if (l >= 1) { errorTimes = 0; } } if (errorTimes >= Constants.PAY_ERROR_NUM) { return "isLock"; } List accountList = userMapper.queryAccountInfo(accountReq); if (CollUtil.isNotEmpty(accountList)) { req.setErrorTimes(0); req.setLockTime(""); req.setLastErrorTime(""); userMapper.setLock(req); return "success"; } else { errorTimes++; req.setErrorTimes(errorTimes); req.setLastErrorTime(DateUtil.now()); if (errorTimes >= Constants.PAY_ERROR_NUM) { req.setLockTime(DateUtil.now()); } userMapper.setLock(req); if (errorTimes >= Constants.PAY_ERROR_NUM) { return "isLock"; } else { return errorTimes + ""; } } } public int AddPayPassword(AccountReq accountReq) { int returnvalue = 0; try { returnvalue = userMapper.modifyPayPassword(accountReq); } catch (Exception e) { ExceptionUtils.err("支付密码新增失败", e); } return returnvalue; } public void updateAddr(AddressDto addressDto) { UserInfo userInf = new UserInfo(); userInf.setUserId(addressDto.getUserId()); userInf.setLatitude(addressDto.getLatitude()); userInf.setLongitude(addressDto.getLongitude()); //根据经纬度查询围栏及合伙人 UserInfo byId = findById(userInf.getUserId()); if (StrUtil.isBlank(byId.getPartnerId())) { String partnerIdByLon = partnerGaodeService.findPartnerIdByLon(addressDto.getLongitude(), addressDto.getLatitude()); userInf.setPartnerId(partnerIdByLon); } userMapper.updateByPrimaryKeySelective(userInf); } public int ModifyPayPassword(AccountReq accountReq) { int returnvalue = 0; String mobilePhone = accountReq.getMobilePhone(); if (SpringUtil.isProdOrCloud()) { String redisVerifyCode = ""; redisVerifyCode = redisUtil.get(Constants.REDIS_USER_KEY + "code:" + mobilePhone); if (redisVerifyCode == null || "".equals(redisVerifyCode)) { //验证码失效 returnvalue = -1; return returnvalue; } else if (!redisVerifyCode.equals(accountReq.getVerifyCode())) { //验证码错误 returnvalue = -2; return returnvalue; } } //判断手机是否是自己 AccountInfo select = accountService.findByUserIdForbidden(accountReq.getUserId()); if (select == null || !select.getAccountName().equals(mobilePhone)) { return -3; } returnvalue = userMapper.modifyPayPassword(accountReq); return returnvalue; } public UserInfo findByMobile(String mobilePhone) { UserInfo userInfo = new UserInfo(); userInfo.setMobilePhone(mobilePhone); userInfo.setDelFlag(Constants.DEL_NOT_FLAG); userInfo.setIsProhibit(false); UserInfo userInfo1 = userMapper.selectOne(userInfo); return userInfo1; } public UserInfo findByMobileForbidden(String mobilePhone) { UserInfo userInfo = new UserInfo(); userInfo.setMobilePhone(mobilePhone); userInfo.setDelFlag(Constants.DEL_NOT_FLAG); UserInfo userInfo1 = userMapper.selectOne(userInfo); return userInfo1; } public UserInfo findByOpenId(String openId) { UserInfo userInfo = new UserInfo(); userInfo.setOpenId(openId); userInfo.setDelFlag(Constants.DEL_NOT_FLAG); userInfo.setIsProhibit(false); UserInfo userInfo1 = userMapper.selectOne(userInfo); return userInfo1; } /** * 更新用户缓存信息 * * @param byMobileForbidden */ public void setRedisUserInfo(UserInfo byMobileForbidden) { if (redisUtil.exists(RedisKeyConstant.TOKEN + byMobileForbidden.getUserId())) { String hget = redisUtil.hget(RedisKeyConstant.USER_INFO, byMobileForbidden.getOpenId()); if (StrUtil.isNotBlank(hget)) { UserInfoVo vo = JSONUtil.toBean(hget, UserInfoVo.class); UserInfoVo userInfoVo = queryUserInfoByUserId(byMobileForbidden.getUserId()); userInfoVo.setToken(vo.getToken()); redisUtil.hset(RedisKeyConstant.USER_INFO, byMobileForbidden.getOpenId(), JSONUtil.toJsonStr(userInfoVo)); } } } public UserInfo findById(String id) { return userMapper.selectByPrimaryKey(id); } public List findByDistance() { return userMapper.findByDistance(); } public List find() { UserInfo userInfo = new UserInfo(); userInfo.setDelFlag(0); userInfo.setIsProhibit(false); List userInfo1 = userMapper.select(userInfo); return userInfo1; } public void updateById(UserInfo userInfo) { userMapper.updateByPrimaryKeySelective(userInfo); } public PageInfo findOtherAll(int pageNo, int pageSize, String keyword) { PageHelper.startPage(pageNo, pageSize); List list = userMapper.findOtherAll(keyword); return new PageInfo<>(list); } /** * 查询手机号码 * * @param userId * @param type 类型 0普通用户 1平台用户 * @return */ public String findOtherByUserId(String userId, int type) { if (businessUtil.isApp(request.getHeader("clientType"))) { OtherUserInfo byId = otherUserService.findById(userId); if (byId != null) return byId.getMobilePhone(); } else { UserInfo byId = userMapper.selectByPrimaryKey(userId); if (byId != null) return byId.getMobilePhone(); } return "未知"; } public Map queryCuserForTimeList(UserModel userModel) { List partnerIds = cityPartnerService.queryPartnerByCurrent(); String partnerId = ""; if (null != partnerIds && partnerIds.size() > 0) { partnerId = partnerIds.get(0); } else { partnerId = userModel.getPartnerId(); } String startTime = userModel.getStartTime(); String endTime = userModel.getEndTime(); String phone = userModel.getMobilePhone(); String isProhibit = userModel.getIsProhibit(); if (null != startTime && !"".equals(startTime)) { startTime = startTime + " 00:00:00"; } if (null != endTime && !"".equals(endTime)) { endTime = endTime + " 23:59:59"; } Map m = new HashMap<>(); PageHelper.startPage(userModel.getPage(), userModel.getLimit()); List map = userMapper.queryCuserForTimeList(phone, startTime, endTime, userModel.getUserType(), isProhibit, partnerId); PageInfo pageInfo = new PageInfo<>(map); List orderStatus1 = new ArrayList<>(); List orderStatus2 = new ArrayList<>(); orderStatus1.add("3"); orderStatus2.add("4"); orderStatus2.add("5"); orderStatus2.add("7"); for (UserModel mx : map) { //设置登录时间 if (userModel.getExportFlag() == 0) { Example example = new Example(UserLoginInfo.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("userId", mx.getUserId()); example.setOrderByClause("login_time desc"); List userLoginInfos = userLoginInfoMapper.selectByExample(example); if (CollUtil.isNotEmpty(userLoginInfos)) { mx.setLoginTime(CollUtil.getFirst(userLoginInfos).getLoginTime()); } } if (!StringUtils.isEmpty(mx.getNickName())) { mx.setNickName(com.xzx.gc.common.utils.StringUtils.decode(mx.getNickName())); } // 待完成订单总数 Map osMap = orderMapper.queryCuserOrderByUserIdCount1(mx.getUserId()); mx.setOrderStatus3(Integer.parseInt(osMap.get("count1").toString())); mx.setOrderStatus5(Integer.parseInt(osMap.get("count").toString())); //查询用户首次下单时间和最近下单时间 List byCreateUserId = orderService.findByCreateUserId(mx.getUserId(), null); if(CollUtil.isNotEmpty(byCreateUserId)) { mx.setOrderRecentTime(CollUtil.getFirst(byCreateUserId).getCreateTime()); mx.setOrderFirstTime(CollUtil.getLast(byCreateUserId).getCreateTime()); } if (userModel.getExportFlag() == 0) { String yqName = userTargetInfoMapper.queryTgNameByRealUserId(mx.getMobilePhone()); String tgName = userTargetInfoMapper.queryTgNameByUserId(mx.getMobilePhone()); mx.setTgName(StrUtil.isBlank(tgName) ? "无" : tgName); mx.setYqName(StrUtil.isBlank(yqName) ? "无" : yqName); String upid = mx.getPartnerId(); StringBuffer partnerName = new StringBuffer(); if (null != upid && !"".equals(upid)) { String[] pIds = upid.split(","); for (String pid : pIds) { CityPartner cityPartner = cityPartnerService.findById(Convert.toInt(pid)); partnerName.append(cityPartner.getPartnerName()).append(","); } String ax = partnerName.toString(); if (null != ax && !"".equals(ax)) { ax = ax.substring(0, ax.length() - 1); mx.setPartnerName(ax); } else { mx.setPartnerName("-"); } } else { mx.setPartnerName("-"); } } } m.put("count", pageInfo.getTotal()); m.put("data", map); m.put("code", 0); //不是导出的情况 if (userModel.getExportFlag() == 0) { // 总用户量 int allNomUser = userMapper.queryCuserForTimeListCount(null, null, null, null, partnerId); // 今日新增用户 String dbTime = DateUtil.today(); String[] dt = dbTime.split(" "); String stTime = dt[0] + " 00:00:00"; String edTime = dt[0] + " 23:59:59"; int todayNewUser = userMapper.queryCuserForTimeListCount(null, stTime, edTime, null, partnerId); //日活跃用户 //查询日活 int userVisit = 0; Map dayCountMap = userLoginInfoMapper.queryUserDayCount(userModel.getTownIds()); if (null != dayCountMap && null != dayCountMap.get("userDayCount")) { userVisit = Integer.parseInt(dayCountMap.get("userDayCount").toString()); } m.put("allNomUser", allNomUser); m.put("todayNewUser", todayNewUser); m.put("userVisit", userVisit); } return m; } public void UpdateUserApiByUserId(String isProhibit, String userId, String userType) { UserInfo userModel = findById(userId); boolean bool = false; if (isProhibit.equals("1")) { bool = true; if (userModel == null) { if (userType.equals("6")) { userTargetInfoMapper.UpdateUserApiByTargetUserId(bool, userId); } otherUserMapper.UpdateUserApiByOtherUserId(bool, userId, userType); } else { if (userType.equals("6")) { userTargetInfoMapper.UpdateUserApiByTargetUserId(bool, userId); } userMapper.UpdateUserApiByUserId(bool, userId); } } else { if (userModel == null) { if (userType.equals("6")) { userTargetInfoMapper.UpdateUserApiByTargetUserId(bool, userId); } otherUserMapper.UpdateUserApiByOtherUserId(bool, userId, userType); } else { if (userType.equals("6")) { userTargetInfoMapper.UpdateUserApiByTargetUserId(bool, userId); } userMapper.UpdateUserApiByUserId(bool, userId); } } } /** * C端用户管理---用户查询----详情 * * @param userId * @param phone * @param userType * @return */ public Map queryCuserDetail(String userId, String phone, String userType, int limit, int page) { int p = page; p = (p - 1) * limit; Map m = new HashMap<>(); // 查询用户信息 m.put("user", userMapper.queryCuserDetail(phone, userType)); // 查询用户地址 m.put("address", addressMapper.queryCuserAddress(phone, userId)); m.put("userOrderList", orderMapper.queryUserOrderList(userId)); // 查询统计用户的订单, 这里面问题,如是普通用户对应为create_userid, 如是回收员或代丢员对应为recice Integer[] x = new Integer[2]; x[0] = 4; x[1] = 5; List> om = orderMapper.queryCuserOrderCount(userId, x); m.put("orderNum", om); return m; } /** * 推广员列表 */ public Map queryPromoterApiList(UserModel userModel) { List partnerIds = new ArrayList<>(); if (null != userModel.getPartnerId() && !"".equals(userModel.getPartnerId())) { partnerIds.add(userModel.getPartnerId()); } else { partnerIds = cityPartnerService.queryPartnerByCurrent(); } String startTime = userModel.getStartTime(); String endTime = userModel.getEndTime(); if (null != startTime && !"".equals(startTime)) { startTime = startTime + " 00:00:00"; } if (null != endTime && !"".equals(endTime)) { endTime = endTime + " 23:59:59"; } String phone = userModel.getMobilePhone(); Map m = new HashMap<>(); List list = new ArrayList<>(); PageHelper.startPage(userModel.getPage(), userModel.getLimit()); list = otherUserMapper.queryPromoterApiList(phone, startTime, endTime, userModel.getIsProhibit(), partnerIds); PageInfo pageInfo = new PageInfo<>(list); for (UserModel model : list) { String nickName = model.getNickName(); if (nickName != null && !"".equals(nickName)) { nickName = com.xzx.gc.common.utils.StringUtils.decode(model.getNickName()); } if (null != model.getFinishNum()) { model.setRegistNum(String.valueOf(Integer.parseInt(model.getFinishNum()) + Integer.parseInt(model.getRegistNum()))); } else { model.setRegistNum(model.getRegistNum()); } model.setNickName(nickName); if (null != model.getFinishNum()) { String finishNum = model.getFinishNum(); String registNum = model.getRegistNum(); BigDecimal rate = new BigDecimal("0"); if (null != registNum && !"".equals(registNum)) { if (registNum.equals("0")) { rate = new BigDecimal("0"); } else { rate = new BigDecimal(finishNum).divide(new BigDecimal(registNum), 3, BigDecimal.ROUND_DOWN); } } model.setFinishRate(rate.multiply(new BigDecimal("100")).toString() + "%"); } else { model.setFinishRate("0" + "%"); } } m.put("data", list); m.put("count", pageInfo.getTotal()); m.put("code", 0); return m; } public Map queryCollectorApiList(CollectorModel userModel) { List partnerIds = new ArrayList<>(); if (null != userModel.getPartnerId() && !"".equals(userModel.getPartnerId())) { partnerIds.add(userModel.getPartnerId()); } else { partnerIds = cityPartnerService.queryPartnerByCurrent(); } userModel.setPartnerIds(partnerIds); PageHelper.startPage(userModel.getPage(), userModel.getLimit()); List list = otherUserMapper.queryCollectorApiList(userModel); PageInfo pageInfo = new PageInfo<>(list); for (CollectorModel collectorModel : list) { String nickName = ""; if (null != collectorModel.getStorageWeight() && !"".equals(collectorModel.getStorageWeight())) { collectorModel.setStorageWeight(DoubleUtil.roundThree(collectorModel.getStorageWeight())); } else { collectorModel.setStorageWeight("0"); } if (null != collectorModel.getStorageMoney() && !"".equals(collectorModel.getStorageMoney())) { collectorModel.setStorageMoney(DoubleUtil.roundTwo(collectorModel.getStorageMoney())); } else { collectorModel.setStorageMoney("0"); } if (collectorModel.getNickName() != null) { nickName = com.xzx.gc.common.utils.StringUtils.decode(collectorModel.getNickName()); } collectorModel.setNickName(nickName); //回收员统计按重量支出返利 String totalWeightMoney = payInfoMapper.queryCollectorWM(collectorModel.getUserId()); collectorModel.setWeightMoney(DoubleUtil.roundTwo(totalWeightMoney)); } //如果为入库员,需要管理订单数量 if (userModel.getUserType().equals("4")) { for (CollectorModel collectorModel : list) { String userId = collectorModel.getUserId(); int orderNum = 0; List orderList = orderStorageInfoMapper.orderListByStorageUserId(userId); for (String orderIds : orderList) { orderNum = orderNum + orderIds.split(",").length; } collectorModel.setOrderNum(orderNum); //仓库名称 String sysStorage = sysStorageMapper.querySysStorageNameById(collectorModel.getSysStorageId()); collectorModel.setSysStorage(sysStorage); } } Map resultMap = new HashMap<>(); resultMap.put("code", 0); resultMap.put("data", list); resultMap.put("count", pageInfo.getTotal()); return resultMap; } public Map queryPackageApiList(CollectorModel userModel) { List partnerIds = new ArrayList<>(); if (null != userModel.getPartnerId() && !"".equals(userModel.getPartnerId())) { List packageIdByPartnerId = cityPartnerService.findPackageIdByPartnerId(userModel.getPartnerId()); if (CollUtil.isNotEmpty(packageIdByPartnerId)) { partnerIds = packageIdByPartnerId.stream().map(x -> x.getId().toString()).collect(Collectors.toList()); } partnerIds.add(userModel.getPartnerId()); //partnerIds.add(userModel.getPartnerId()); } else { partnerIds = cityPartnerService.queryPartnerByCurrent(); } if (null != partnerIds && partnerIds.size() > 0) { List packageIdByPartnerId = cityPartnerService.findPackageIdByPartnerId(partnerIds.get(0)); for (CityPartner packageId : packageIdByPartnerId) { partnerIds.add(packageId.getId().toString()); } } userModel.setPartnerIds(partnerIds); PageHelper.startPage(userModel.getPage(), userModel.getLimit()); List list = otherUserMapper.queryCollectorApiList(userModel); PageInfo pageInfo = new PageInfo<>(list); for (CollectorModel collectorModel : list) { String nickName = ""; if (null != collectorModel.getStorageWeight() && !"".equals(collectorModel.getStorageWeight())) { collectorModel.setStorageWeight(DoubleUtil.roundThree(collectorModel.getStorageWeight())); } else { collectorModel.setStorageWeight("0"); } if (null != collectorModel.getStorageMoney() && !"".equals(collectorModel.getStorageMoney())) { collectorModel.setStorageMoney(DoubleUtil.roundTwo(collectorModel.getStorageMoney())); } else { collectorModel.setStorageMoney("0"); } if (collectorModel.getNickName() != null) { nickName = com.xzx.gc.common.utils.StringUtils.decode(collectorModel.getNickName()); } collectorModel.setNickName(nickName); //回收员统计按重量支出返利 String totalWeightMoney = payInfoMapper.queryCollectorWM(collectorModel.getUserId()); collectorModel.setWeightMoney(DoubleUtil.roundTwo(totalWeightMoney)); } //如果为入库员,需要管理订单数量 if (userModel.getUserType().equals("7")) { for (CollectorModel collectorModel : list) { String userId = collectorModel.getUserId(); int orderNum = 0; List orderList = orderStorageInfoMapper.orderListByStorageUserId(userId); for (String orderIds : orderList) { orderNum = orderNum + orderIds.split(",").length; } collectorModel.setOrderNum(orderNum); //仓库名称 String sysStorage = sysStorageMapper.querySysStorageNameById(collectorModel.getSysStorageId()); collectorModel.setSysStorage(sysStorage); } } Map resultMap = new HashMap<>(); resultMap.put("code", 0); resultMap.put("data", list); resultMap.put("count", pageInfo.getTotal()); return resultMap; } public Map updateWarehouse(CollectorModel userModel) { Map map = new HashMap<>(); String type = userModel.getUserType(); if (type.equals("0")) { String sysStorageId = userModel.getSysStorageId(); String name = userModel.getSysStorage(); if (null != name) { sysStorageMapper.updateSysStorageName(sysStorageId, name); map.put("code", 0); map.put("message", "修改成功"); } else { map.put("code", -1); map.put("message", "仓库名称不能为空"); } } else { String userId = userModel.getUserId(); String name = userModel.getName(); OtherUserInfo otherUserInfo = new OtherUserInfo(); otherUserInfo.setUserId(userId); otherUserInfo.setName(name); otherUserService.update(otherUserInfo); map.put("code", 0); map.put("message", "修改成功"); } return map; } public Map queryUnregisteredApiList(CollectorModel collectorModel) { List partnerIds = new ArrayList<>(); if (null != collectorModel.getPartnerId() && !"".equals(collectorModel.getPartnerId())) { partnerIds.add(collectorModel.getPartnerId()); } else { partnerIds = cityPartnerService.queryPartnerByCurrent(); } collectorModel.setPartnerIds(partnerIds); PageHelper.startPage(collectorModel.getPage(), collectorModel.getLimit()); List list = userTargetInfoMapper.queryUnregisteredApiList(collectorModel); PageInfo pageInfo = new PageInfo<>(list); for (CollectorModel collect : list) { if (null != collect.getNickName() && !"".equals(collect.getNickName())) { if (com.xzx.gc.common.utils.StringUtils.isBase64(collect.getNickName())) { collect.setNickName(cn.hutool.core.codec.Base64.decodeStr(collect.getNickName())); } } if (null != collect.getPartnerName() && !"".equals(collect.getPartnerName())) { } else { collect.setPartnerName("-"); } } Map map = new HashMap<>(); map.put("code", 0); map.put("data", list); map.put("count", pageInfo.getTotal()); return map; } public void updateUserNameApi(String userId, String name, String mobile, String type) { if (null != type && !"".equals(type)) { if (type != "1") { otherUserMapper.updateOtherUserName(userId, name, mobile); } } userMapper.updateUserName(userId, name, mobile); } public Map queryApiCuserDetail(String userId, String phone, String userType, int page, int limit) { Map m = new HashMap<>(); // 查询用户信息 m.put("user", userMapper.queryCuserDetail(phone, userType)); // 查询用户地址 m.put("address", addressMapper.queryCuserAddress(phone, userId)); // 查询统计用户的订单, 这里面问题,如是普通用户对应为create_userid, 如是回收员或代丢员对应为recice Integer[] x = new Integer[3]; x[0] = 4; x[1] = 5; x[2] = 7; List> om = orderMapper.queryCuserOrderCount(userId, x); PageHelper.startPage(page, limit); List> odlist = orderMapper.queryCuserOrderFinishList(userId, x); PageInfo> pageInfo = new PageInfo<>(odlist); for (Map map : odlist) { map.put("money", DoubleUtil.roundTwo(map.get("money").toString())); map.put("weight", DoubleUtil.roundThree(map.get("weight").toString())); map.put("orderid", map.get("orderId").toString()); map.put("createtime", map.get("createTime").toString()); } m.put("orderList", odlist); m.put("count", pageInfo.getTotal()); m.put("orderNum", om); m.put("code", 0); return m; } public void add(UserInfo userInfo) { userMapper.insertSelective(userInfo); } }