From 366bfe4202088ce4c7d1a9ed34a9c50d013e5396 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期一, 11 三月 2019 17:02:00 +0800
Subject: [PATCH] 分类查询优化
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java | 219 +++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 198 insertions(+), 21 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java
index d2c7cc0..2e9c12c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java
@@ -4,14 +4,18 @@
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.tencentcloud.COSManager;
import com.google.gson.Gson;
import com.qcloud.cos.model.COSObjectSummary;
@@ -21,7 +25,6 @@
import com.yeshi.fanli.dao.mybatis.BindingAccountMapper;
import com.yeshi.fanli.dao.mybatis.MoneyRecordMapper;
import com.yeshi.fanli.dao.mybatis.PidOrderMapper;
-import com.yeshi.fanli.dao.mybatis.ThreeSaleMapper;
import com.yeshi.fanli.dao.mybatis.UserConnectHistoryMapper;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
import com.yeshi.fanli.dao.mybatis.hongbao.HongBaoMapper;
@@ -30,6 +33,8 @@
import com.yeshi.fanli.entity.bus.user.AccountDetails;
import com.yeshi.fanli.entity.bus.user.AccountMessage;
import com.yeshi.fanli.entity.bus.user.BindingAccount;
+import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
+import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
import com.yeshi.fanli.entity.bus.user.HongBao;
import com.yeshi.fanli.entity.bus.user.LoginResult;
import com.yeshi.fanli.entity.bus.user.MoneyRecord;
@@ -43,16 +48,21 @@
import com.yeshi.fanli.exception.UserAccountException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
+import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
+import com.yeshi.fanli.service.inter.msg.UserAccountMsgNotificationService;
+import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService;
import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
import com.yeshi.fanli.service.inter.user.UserAccountService;
+import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.FileUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.factory.AccountDetailsFactory;
+import com.yeshi.fanli.util.factory.msg.MsgAccountDetailFactory;
import com.yeshi.fanli.util.wx.WXLoginUtil;
-import org.yeshi.utils.JsonUtil;
-import org.yeshi.utils.tencentcloud.COSManager;
+
+import net.sf.json.JSONObject;
@Service
public class UserAccountServiceImpl implements UserAccountService {
@@ -79,7 +89,7 @@
private OrderItemMapper orderItemMapper;
@Resource
- private ThreeSaleMapper threeSaleMapper;
+ private ThreeSaleSerivce threeSaleSerivce;
@Resource
private PidOrderMapper pidOrderMapper;
@@ -95,11 +105,30 @@
@Resource
private SpreadUserImgService spreadUserImgService;
+ @Resource
+ private UserAccountMsgNotificationService userAccountMsgNotificationService;
+
+ @Resource
+ private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
+
+ @Resource
+ private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
+
@Transactional
@Override
- public LoginResult login(HttpSession session, Boolean first, String appId, String code, String phone,
+ public LoginResult login(HttpServletRequest request, Boolean first, String appId, String code, String phone,
UserInfo tbUserInfo, boolean wxinstall, int loginType) throws UserAccountException {
+ JSONObject logInfo = new JSONObject();
+ logInfo.put("appId", appId);
+ logInfo.put("code", code);
+ logInfo.put("phone", phone);
+ if (tbUserInfo != null)
+ logInfo.put("tbUserInfo", tbUserInfo.getId());
+ logInfo.put("loginType", loginType);
+ LogHelper.lgoinInfo(logInfo.toString());
+
+ HttpSession session = request.getSession();
if (first != null && first == true)
session.removeAttribute("LAST_LOGIN_USER");
// 浼氳瘽涓笂娆$櫥褰曠殑鐢ㄦ埛
@@ -109,7 +138,20 @@
WeiXinUser weiXinUser = null;
switch (loginType) {
case 1:// 娣樺疂
+ // 鍒ゆ柇娣樺疂鏄惁琚皝绂�
+ if (!StringUtil.isNullOrEmpty(tbUserInfo.getTaoBaoUid())) {
+ ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode(
+ ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, tbUserInfo.getTaoBaoUid());
+ if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective())
+ throw new UserAccountException(Constant.CODE_FORBIDDEN_USER,
+ Constant.FORBIDDEN_USER_REASON_DESC);
+ }
userInfo = getUserInfoByTaoBaoOpenId(appId, tbUserInfo.getOpenid());
+ // 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄�
+ if (userInfo != null && userInfo.getState() != null
+ && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE
+ || userInfo.getState() == UserInfo.STATE_DELETE))
+ userInfo = null;
if (userInfo == null) {// 鍘熷厛鐨勮处鍙蜂笉瀛樺湪
userInfo = new UserInfo();
userInfo.setAppId(appId);
@@ -141,12 +183,23 @@
if (weiXinUser == null)
throw new UserAccountException(1001, "鏃犳硶鑾峰彇鍒板井淇′釜浜轰俊鎭�");
LogHelper.test("寰俊鎺堟潈鐢ㄦ埛淇℃伅锛�" + new Gson().toJson(weiXinUser));
+ // 鍒ゆ柇寰俊unionid鏄惁琚皝绂�
+ ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode(
+ ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, weiXinUser.getUnionid());
+ if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective())
+ throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
+
userInfo = getUserInfoByWXUnionId(appId, weiXinUser.getUnionid());
+ // 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄�
+ if (userInfo != null && userInfo.getState() != null
+ && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE
+ || userInfo.getState() == UserInfo.STATE_DELETE))
+ userInfo = null;
// 鐩存帴鐢ㄧ殑寰俊鐧诲綍
if (lastUser == null) {
if (userInfo != null) {
// 浣垮垎閿�鍏崇郴鐢熸晥
- threeSaleMapper.effectThreeSale(userInfo.getId());
+ threeSaleSerivce.effective(userInfo);
// 鏇存柊澶村儚涓庢樀绉�
UserInfo updateUserInfo = new UserInfo(userInfo.getId());
updateUserInfo.setNickName(weiXinUser.getNickname());
@@ -154,6 +207,11 @@
updateUserInfo.setPortrait(weiXinUser.getHeadimgurl());
updateUserInfo.setWxPic(weiXinUser.getHeadimgurl());
updateUserInfo.setWxName(weiXinUser.getNickname());
+ // 璁剧疆鐧诲綍鏃堕棿涓庣櫥褰曠被鍨�
+ updateUserInfo.setLastLoginTime(System.currentTimeMillis());
+ updateUserInfo.setLoginType(loginType);
+ updateUserInfo.setLastLoginIp(request.getRemoteHost());
+
userInfoMapper.updateByPrimaryKeySelective(updateUserInfo);
// 鍒犻櫎閭�璇峰浘鐗�
spreadUserImgService.deleteImgUrl(userInfo.getId());
@@ -167,6 +225,9 @@
userInfo.setWxOpenId(weiXinUser.getOpenid());
userInfo.setWxUnionId(weiXinUser.getUnionid());
userInfo.setWxPic(weiXinUser.getHeadimgurl());
+ userInfo.setLastLoginTime(System.currentTimeMillis());
+ userInfo.setLoginType(loginType);
+ userInfo.setLastLoginIp(request.getRemoteHost());
addUser(userInfo);
return new LoginResult(LoginResult.TYPE_NORMAL, userInfo);
@@ -197,20 +258,24 @@
// 缁戝畾鍏崇郴
UserInfo updateUserInfo = new UserInfo(userInfo.getId());
- if (!StringUtil.isNullOrEmpty(lastUser.getPhone()))
+ if (!StringUtil.isNullOrEmpty(lastUser.getPhone())) {
updateUserInfo.setPhone(lastUser.getPhone());
-
+ userAccountMsgNotificationService.bindingSuccess(userInfo.getId(),
+ MsgAccountDetailFactory.TYPE_PHONE);
+ }
if (!StringUtil.isNullOrEmpty(lastUser.getOpenid())) {
updateUserInfo.setOpenid(lastUser.getOpenid());
updateUserInfo.setTbName(lastUser.getTbName());
updateUserInfo.setTbPic(lastUser.getTbPic());
+ userAccountMsgNotificationService.bindingSuccess(userInfo.getId(),
+ MsgAccountDetailFactory.TYPE_TB);
}
updateUserInfo.setLastLoginTime(System.currentTimeMillis());
userInfoMapper.updateByPrimaryKeySelective(updateUserInfo);
session.removeAttribute("LAST_LOGIN_USER");
// 浣垮垎閿�鍏崇郴鐢熸晥
- threeSaleMapper.effectThreeSale(userInfo.getId());
+ threeSaleSerivce.effective(userInfo);
return new LoginResult(LoginResult.TYPE_NORMAL, userInfo);
} else {// 涓や釜璐﹀彿鎷ユ湁涓嶅悓鐨刄ID
@@ -224,7 +289,7 @@
result.setLessUser(lastUser);
// 浣垮垎閿�鍏崇郴鐢熸晥
- threeSaleMapper.effectThreeSale(userInfo.getId());
+ threeSaleSerivce.effective(userInfo);
return result;
}
@@ -247,13 +312,27 @@
userInfo.setTbPic(lastUser.getTbPic());
}
userInfo.setLastLoginTime(System.currentTimeMillis());
+ userInfo.setLoginType(loginType);
+ userInfo.setLastLoginIp(request.getRemoteHost());
addUser(userInfo);
session.removeAttribute("LAST_LOGIN_USER");
return new LoginResult(LoginResult.TYPE_NORMAL, userInfo);
}
}
case 3:// 鎵嬫満鍙风爜
+ // 鍒ゆ柇鎵嬫満鍙风爜鏄惁琚皝绂�
+ ForbiddenUserIdentifyCode identifyCode1 = forbiddenUserIdentifyCodeService
+ .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone);
+ if (identifyCode1 != null && identifyCode1.getEffective() != null && identifyCode1.getEffective())
+ throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
+
userInfo = getUserInfoByPhone(appId, phone);
+ // 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄�
+ if (userInfo != null && userInfo.getState() != null
+ && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE
+ || userInfo.getState() == UserInfo.STATE_DELETE))
+ userInfo = null;
+
if (userInfo == null) {// 鍘熷厛鐨勮处鍙蜂笉瀛樺湪
userInfo = new UserInfo();
userInfo.setAppId(appId);
@@ -292,10 +371,25 @@
@Override
public LoginResult loginNoInstallWX(String appId, String code, String phone, UserInfo tbUserInfo, int loginType)
throws UserAccountException {
+ JSONObject logInfo = new JSONObject();
+ logInfo.put("appId", appId);
+ logInfo.put("code", code);
+ logInfo.put("phone", phone);
+ if (tbUserInfo != null)
+ logInfo.put("tbUserInfo", tbUserInfo.getId());
+ logInfo.put("loginType", loginType);
+ LogHelper.lgoinInfo(logInfo.toString());
+
UserInfo userInfo = null;
WeiXinUser weiXinUser = null;
switch (loginType) {
case 1:// 娣樺疂
+ if (!StringUtil.isNullOrEmpty(tbUserInfo.getTaoBaoUid())) {
+ ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode(
+ ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, tbUserInfo.getTaoBaoUid());
+ if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective())
+ throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
+ }
userInfo = getUserInfoByTaoBaoOpenId(appId, tbUserInfo.getOpenid());
break;
case 2:// 寰俊
@@ -303,12 +397,29 @@
weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
if (weiXinUser == null)
throw new UserAccountException(1001, "鏃犳硶鑾峰彇鍒板井淇′釜浜轰俊鎭�");
+
+ // 鍒ゆ柇鏄惁琚皝绂�
+ ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService
+ .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone);
+ if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective())
+ throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
+
userInfo = getUserInfoByWXUnionId(appId, weiXinUser.getUnionid());
break;
case 3:// 鎵嬫満鍙风爜
+ // 鍒ゆ柇鏄惁琚皝绂�
+ ForbiddenUserIdentifyCode identifyCode1 = forbiddenUserIdentifyCodeService
+ .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone);
+ if (identifyCode1 != null && identifyCode1.getEffective() != null && identifyCode1.getEffective())
+ throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
userInfo = getUserInfoByPhone(appId, phone);
break;
}
+
+ // 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄�
+ if (userInfo != null && userInfo.getState() != null && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE
+ || userInfo.getState() == UserInfo.STATE_DELETE))
+ userInfo = null;
if (userInfo != null) {
UserInfo updateUserInfo = new UserInfo(userInfo.getId());
@@ -389,9 +500,9 @@
if (!StringUtil.isNullOrEmpty(mainUser.getPhone()) && !StringUtil.isNullOrEmpty(lessUser.getPhone()))
throw new UserAccountException(9, "涓や釜璐﹀彿閮界粦瀹氫簡鎵嬫満鍙风爜锛岃瑙g粦鍏朵腑涓�涓�");
- if (lessUser.getMyHongBao().compareTo(new BigDecimal("20")) >= 0
- && mainUser.getMyHongBao().compareTo(new BigDecimal("20")) > 0)
- throw new UserAccountException(10, String.format("璐︽埛ID:%s 鐨勮祫閲戣秴杩�20鍏冿紝涓轰繚璇佽祫閲戝畨鍏ㄨ鑱旂郴瀹㈡湇鎵撻��", lessUser.getId() + ""));
+ if (lessUser.getMyHongBao().compareTo(new BigDecimal("10")) >= 0
+ && mainUser.getMyHongBao().compareTo(new BigDecimal("10")) > 0)
+ throw new UserAccountException(10, String.format("璐︽埛ID:%s 鐨勮祫閲戣秴杩�10鍏冿紝涓轰繚璇佽祫閲戝畨鍏ㄨ鑱旂郴瀹㈡湇鎵撻��", lessUser.getId() + ""));
// 鍒ゅ畾鏄惁缁戝畾浜嗗悓涓�鏀粯瀹�
List<BindingAccount> mainUserAccountList = bindingAccountMapper.selectByUid(mainUser.getId());
@@ -499,6 +610,7 @@
moneyRecordMapper.insertSelective(moneyRecord);
}
+ userAccountMsgNotificationService.connectSuccess(mainUser.getId(), lessUser.getId());
}
/**
@@ -508,8 +620,25 @@
* @param unionId
* @return
*/
- public UserInfo getUserInfoByWXUnionId(String appId, String unionId) {
- return userInfoMapper.getUserInfoByAppIdAndWXUnionId(appId, unionId);
+ public UserInfo getUserInfoByWXUnionId(String appId, String unionId) throws UserAccountException {
+ if (StringUtil.isNullOrEmpty(appId))
+ throw new UserAccountException(1, "appId涓虹┖");
+ if (StringUtil.isNullOrEmpty(unionId))
+ throw new UserAccountException(2, "unionId涓虹┖");
+
+ List<UserInfo> list = userInfoMapper.listByAppIdAndWXUnionId(appId, unionId);
+ // 鍓旈櫎琚垹闄ゆ帀鐨勭敤鎴�
+ for (int i = 0; i < list.size(); i++) {
+ if (list.get(i).getState() == UserInfo.STATE_DELETE
+ || list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) {
+ list.remove(i);
+ i--;
+ }
+ }
+ if (list.size() > 0)
+ return list.get(list.size() - 1);
+ else
+ return null;
}
/**
@@ -519,9 +648,26 @@
* @param openId
* @return
*/
- public UserInfo getUserInfoByTaoBaoOpenId(String appId, String openId) {
+ public UserInfo getUserInfoByTaoBaoOpenId(String appId, String openId) throws UserAccountException {
+ if (StringUtil.isNullOrEmpty(appId))
+ throw new UserAccountException(1, "appId涓虹┖");
+ if (StringUtil.isNullOrEmpty(openId))
+ throw new UserAccountException(2, "openId涓虹┖");
+ List<UserInfo> list = userInfoMapper.listByAppIdAndTaoBaoOpenId(appId, openId);
- return userInfoMapper.getUserInfoByAppIdAndTaoBaoOpenId(appId, openId);
+ // 鍓旈櫎琚垹闄ゆ帀鐨勭敤鎴�
+ for (int i = 0; i < list.size(); i++) {
+ if (list.get(i).getState() == UserInfo.STATE_DELETE
+ || list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) {
+ list.remove(i);
+ i--;
+ }
+ }
+ if (list.size() > 0)
+ return list.get(list.size() - 1);
+ else
+ return null;
+
}
/**
@@ -531,9 +677,26 @@
* @param phone
* @return
*/
- public UserInfo getUserInfoByPhone(String appId, String phone) {
+ public UserInfo getUserInfoByPhone(String appId, String phone) throws UserAccountException {
+ if (StringUtil.isNullOrEmpty(appId))
+ throw new UserAccountException(1, "appId涓虹┖");
+ if (StringUtil.isNullOrEmpty(phone))
+ throw new UserAccountException(2, "phone涓虹┖");
+ List<UserInfo> list = userInfoMapper.listByAppIdAndPhone(appId, phone);
- return userInfoMapper.getUserInfoByAppIdAndPhone(appId, phone);
+ // 鍓旈櫎琚垹闄ゆ帀鐨勭敤鎴�
+ for (int i = 0; i < list.size(); i++) {
+ if (list.get(i).getState() == UserInfo.STATE_DELETE
+ || list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) {
+ list.remove(i);
+ i--;
+ }
+ }
+ if (list.size() > 0)
+ return list.get(list.size() - 1);
+ else
+ return null;
+
}
private void updateLatestLoginTime(Long uid) {
@@ -613,6 +776,7 @@
UserInfo update = new UserInfo(user.getId());
update.setPhone(phone);
userInfoMapper.updateByPrimaryKeySelective(update);
+ userAccountMsgNotificationService.bindingSuccess(uid, MsgAccountDetailFactory.TYPE_PHONE);
}
@Override
@@ -633,6 +797,7 @@
UserInfo updateUserInfo = new UserInfo(uid);
updateUserInfo.setPhone("");
userInfoMapper.updateByPrimaryKeySelective(updateUserInfo);
+ userAccountMsgNotificationService.unBindingSuccess(uid, MsgAccountDetailFactory.TYPE_PHONE);
}
@Override
@@ -642,8 +807,12 @@
if (user == null)
throw new UserAccountException(4, "鐢ㄦ埛涓嶅瓨鍦�");
- if (!StringUtil.isNullOrEmpty(user.getOpenid()))
+ if (!StringUtil.isNullOrEmpty(user.getOpenid()) && !user.getOpenid().equalsIgnoreCase(tbOpenId))
throw new UserAccountException(5, "褰撳墠璐﹀彿宸茬粡缁戝畾浜嗘窐瀹濓紝璇峰厛瑙g粦");
+
+ // 缁戝畾鍚屼竴涓窐瀹濆彿
+ if (!StringUtil.isNullOrEmpty(user.getOpenid()) && user.getOpenid().equalsIgnoreCase(tbOpenId))
+ return;
UserInfo taoBaoUser = getUserInfoByTaoBaoOpenId(user.getAppId(), tbOpenId);
if (taoBaoUser != null)
@@ -658,6 +827,8 @@
update.setPortrait(tbPortrait);
}
userInfoMapper.updateByPrimaryKeySelective(update);
+
+ userAccountMsgNotificationService.bindingSuccess(uid, MsgAccountDetailFactory.TYPE_TB);
}
@Override
@@ -682,6 +853,10 @@
}
userInfoMapper.updateByPrimaryKeySelective(update);
+
+ userExtraTaoBaoInfoService.unBindUid(uid);
+
+ userAccountMsgNotificationService.unBindingSuccess(uid, MsgAccountDetailFactory.TYPE_TB);
}
@Override
@@ -714,6 +889,8 @@
updateUserInfo.setPortrait(Constant.systemCommonConfig.getDefaultPortrait());
}
userInfoMapper.updateByPrimaryKeySelective(updateUserInfo);
+
+ userAccountMsgNotificationService.changeBindingSuccess(uid, MsgAccountDetailFactory.TYPE_WX);
}
@Override
@@ -734,7 +911,7 @@
List<OrderItem> orderItemList = orderItemMapper.selectByUid(uid);
// 澶囦唤閭�璇峰叧绯�
- List<ThreeSale> threeSaleList = threeSaleMapper.selectByUid(uid);
+ List<ThreeSale> threeSaleList = new ArrayList<>();
// 澶囦唤鍒嗕韩璧�
List<PidOrder> pidOrderList = pidOrderMapper.selectByUid(uid);
--
Gitblit v1.8.0