From aab1daeeef907d502e3c451d1671a3bfea8612ca Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 15 Jan 2019 16:26:54 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=9A=E5=91=98=E5=88=97=E8=A1=A8][?= =?UTF-8?q?=E6=96=B0=E5=A2=9E]:=E4=BC=9A=E5=91=98=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxCUserBasicInfoServiceImpl.java | 32 ++++++++++++++-- .../service/impl/WxScoreRulesServiceImpl.java | 37 ++++++++----------- 2 files changed, 44 insertions(+), 25 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index 71988b396..b79b65561 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -497,6 +497,19 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { return; } + boolean bHaveCUser = false; + + // 成长值 + Integer points = null; + if (StringUtils.isNotBlank(uBase.getPoins())) { + try { + points = Integer.valueOf(uBase.getPoins()); + userBase.setPoins(points); + } catch (Exception e) { + logger.error(e.getMessage()); + } + } + WxCUserBasicInfo oldUserBase = null; WxCUserBasicInfo userBaseQ = new WxCUserBasicInfo(); userBaseQ.setTenantId(tenantId); @@ -515,8 +528,16 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { oldUserBase.setAddress(userBase.getAddress()); oldUserBase.setUpdateDate(new Date()); oldUserBase.setCreateDate(userBase.getCreateDate()); + // 成长值 + if(points != null) { + userBase.setPoins(points); + } } else { userBase.setId(idWorker.nextId()); + // 成长值 + if(points != null) { + userBase.setPoins(points); + } } // update 昵称 @@ -529,6 +550,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { if (userList.size() > 0) { WxCUser user = userList.get(0); if (user != null) { + bHaveCUser = true; if (oldUserBase != null) { if(oldUserBase != null) { oldUserBase.setNickName(user.getNickName()); @@ -536,13 +558,15 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { userBase.setId(user.getId()); userBase.setNickName(user.getNickName()); } else { - userBase.setNickName(user.getNickName()); } } + } else { + } } + if (oldUserBase != null) { logger.info("update user base: " + oldUserBase.getId()); wxCUserBasicInfoMapper.updateByPrimaryKeySelective(oldUserBase); @@ -589,11 +613,11 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { */ // 成长值 - if (StringUtils.isNotBlank(uBase.getPoins())) { + if (points != null) { if (oldUserBase != null) { - wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, oldUserBase, uBase.getPoins()); + wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, oldUserBase, bHaveCUser); } else { - wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, userBase, uBase.getPoins()); + wxScoreRulesService.addScore2(EnumScoreType.MEM_IMPORT, userBase, bHaveCUser); } } } catch (Exception e) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java index 7c7a57185..b7155b1e6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java @@ -148,27 +148,22 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { } } - private void resetBasicUserScore(WxCUserBasicInfo user, int scoreNumber) { + private void resetBasicUserScore(WxCUserBasicInfo user, boolean bHaveCUser) { // 1. basicUser if(user == null) { return; } // 2. update score/ 修改basic表积分 - user.setPoins(scoreNumber); - wxCUserBasicInfoMapper.updateScore(user); + // user.setPoins(scoreNumber); + // wxCUserBasicInfoMapper.updateScore(user); - // 3. 修改 c_user表积分 score - if (user.getPhone() != null) { + // 3. 只修改已存在 c_user表积分 score + if(bHaveCUser) { WxCUser wxCUser = new WxCUser(); - wxCUser.setTenantId(user.getTenantId()); - wxCUser.setPhone(user.getPhone()); - List list = wxCUserMapper.findList(wxCUser); - if (!list.isEmpty()) { - wxCUser = list.get(0); - wxCUser.setScore(scoreNumber); - wxCUserMapper.updateByPrimaryKeySelective(wxCUser); - } + wxCUser.setId(user.getId()); + wxCUser.setScore(user.getPoins()); + wxCUserMapper.updateByPrimaryKeySelective(wxCUser); } } @@ -332,14 +327,14 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { return addScoreNumber; } - private int memResetScore(WxCUserBasicInfo userInfo, Integer score) { + private int memResetScore(WxCUserBasicInfo userInfo, boolean bHaveCUser) { // 1. 导入成长值 - resetBasicUserScore(userInfo, score); + resetBasicUserScore(userInfo, bHaveCUser); // 2. 记录历史 - recordScoreHistory(userInfo, score, EnumScoreType.MEM_IMPORT); - return score; + recordScoreHistory(userInfo, EnumScoreType.MEM_IMPORT); + return userInfo.getPoins(); } private int memReduceScore(WxCUserBasicInfo userInfo, String reason, Integer scoreNum) { @@ -364,7 +359,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { return score; } - private void recordScoreHistory(WxCUserBasicInfo userInfo, int addScoreNumber, EnumScoreType wechatPhone) { + private void recordScoreHistory(WxCUserBasicInfo userInfo, EnumScoreType wechatPhone) { final IdWorker idWorker = IdWorker.get(); WxScoreHistory history = new WxScoreHistory(); history.setId(idWorker.nextId()); @@ -372,7 +367,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { history.setCUserId(userInfo.getId()); history.setCreateDate(new Date()); history.setScoreType(wechatPhone.getCode()); - history.setScoreAmount(addScoreNumber); + history.setScoreAmount(userInfo.getPoins()); wxScoreHistoryMapper.insert(history); } @@ -463,8 +458,8 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { } case MEM_IMPORT: { WxCUserBasicInfo user = (WxCUserBasicInfo) param1; - Integer score = Integer.valueOf((String)param2); - return memResetScore(user, score); + boolean bHaveCUser = (boolean)(param2); + return memResetScore(user, bHaveCUser); } default: break;