| @@ -148,39 +148,55 @@ public class BaseController { | |||||
| if (StringUtils.isBlank(phone)) | if (StringUtils.isBlank(phone)) | ||||
| return; | return; | ||||
| List<WxCUserBasicInfo> list = wxCUserBasicInfoService.findByPhone(tenantEntity, phone); | |||||
| if (list.size() > 0) { | |||||
| WxCUserBasicInfo basicInfo = list.get(0); | |||||
| WxCUserBasicInfo byId = null; | |||||
| if(user.getUserId() != null){ | |||||
| byId = wxCUserBasicInfoService.getById(user.getUserId()); | |||||
| } | |||||
| // List<WxCUserBasicInfo> list = wxCUserBasicInfoService.findByPhone(tenantEntity, phone); | |||||
| WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(tenantEntity, phone); | |||||
| if (basicInfo != null) { | |||||
| // WxCUserBasicInfo basicInfo = list.get(0); | |||||
| // 微信名称,统一成微信昵称 | // 微信名称,统一成微信昵称 | ||||
| if (!Objects.equals(basicInfo.getNickName(), user.getNickName())) { | |||||
| basicInfo.setNickName(user.getNickName()); | |||||
| } | |||||
| // 性别 | |||||
| if (basicInfo.getSex() == null) { | |||||
| basicInfo.setSex(user.getGender()); | |||||
| } | |||||
| // 成长值 | |||||
| if (Objects.nonNull(user.getScore())) { | |||||
| basicInfo.setPoins(user.getScore()); | |||||
| } | |||||
| // 积分 | |||||
| if (Objects.nonNull(user.getCredit())) { | |||||
| basicInfo.setCredit(user.getCredit()); | |||||
| } | |||||
| wxCUserBasicInfoService.updateObj(basicInfo, user); | |||||
| } else { | |||||
| // if (!Objects.equals(basicInfo.getNickName(), user.getNickName())) { | |||||
| // basicInfo.setNickName(user.getNickName()); | |||||
| // } | |||||
| // // 性别 | |||||
| // if (basicInfo.getSex() == null) { | |||||
| // basicInfo.setSex(user.getGender()); | |||||
| // } | |||||
| // // 成长值 | |||||
| // if (Objects.nonNull(user.getScore())) { | |||||
| // basicInfo.setPoins(user.getScore()); | |||||
| // } | |||||
| // // 积分 | |||||
| // if (Objects.nonNull(user.getCredit())) { | |||||
| // basicInfo.setCredit(user.getCredit()); | |||||
| // } | |||||
| user.setUserId(basicInfo.getId()); | |||||
| wxCUserService.updateUserId(user); | |||||
| //wxCUserBasicInfoService.updateObj(basicInfo, user); | |||||
| } else if(byId != null){ | |||||
| byId.setPhone(phone); | |||||
| byId.setNickName(user.getNickName()); | |||||
| wxCUserBasicInfoService.update(byId); | |||||
| }else{ | |||||
| Date cur = new Date(); | Date cur = new Date(); | ||||
| WxCUserBasicInfo basicInfo = new WxCUserBasicInfo(); | |||||
| basicInfo = new WxCUserBasicInfo(); | |||||
| basicInfo.setId(user.getId()); | basicInfo.setId(user.getId()); | ||||
| basicInfo.updateTenantInfo(tenantEntity); | basicInfo.updateTenantInfo(tenantEntity); | ||||
| basicInfo.setPhone(phone); | basicInfo.setPhone(phone); | ||||
| basicInfo.setNickName(user.getNickName()); | basicInfo.setNickName(user.getNickName()); | ||||
| basicInfo.setSex(user.getGender()); | basicInfo.setSex(user.getGender()); | ||||
| basicInfo.setPoins(user.getScore()); | |||||
| basicInfo.setCreateDate(cur); | basicInfo.setCreateDate(cur); | ||||
| basicInfo.setUpdateDate(cur); | basicInfo.setUpdateDate(cur); | ||||
| basicInfo.setCredit(user.getCredit()); | |||||
| wxCUserBasicInfoService.save(basicInfo); | wxCUserBasicInfoService.save(basicInfo); | ||||
| user.setUserId(basicInfo.getId()); | |||||
| wxCUserService.updateUserId(user); | |||||
| } | } | ||||
| } | } | ||||
| @@ -410,11 +410,11 @@ public class WxUserGrantController extends BaseController { | |||||
| } | } | ||||
| WxCUser user = getUser(); | WxCUser user = getUser(); | ||||
| if (user.getTenantId().equalsIgnoreCase(tenantId)) { | |||||
| if (user.getParentTenantId().equalsIgnoreCase(parentTenantId)) { | |||||
| HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | ||||
| request.setAttribute(Constant.TENANT_ID, tenantId); | request.setAttribute(Constant.TENANT_ID, tenantId); | ||||
| request.setAttribute(Constant.PARENT_TENANT_ID, parentTenantId); | request.setAttribute(Constant.PARENT_TENANT_ID, parentTenantId); | ||||
| user.setParentTenantId(parentTenantId); | |||||
| user.setTenantId(tenantId); | |||||
| userTokenService.saveOrUpdate(user); | userTokenService.saveOrUpdate(user); | ||||
| } | } | ||||
| @@ -640,10 +640,16 @@ public class WxUserGrantController extends BaseController { | |||||
| } | } | ||||
| wxCUserService.saveOrUpdate(user); | wxCUserService.saveOrUpdate(user); | ||||
| if (!user.getPhone().contains("*")) { // 用户手机非加密 | |||||
| // 更新到basicinfo | |||||
| saveToBasicInfo(user); | |||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_PHONE, user); | |||||
| } | |||||
| if(isFirstPhone) { | if(isFirstPhone) { | ||||
| // 首次授权, 增加成长值及积分 | // 首次授权, 增加成长值及积分 | ||||
| // 成长值 | // 成长值 | ||||
| user.setScore(user.getScore() + wxScoreRulesService.addScore(EnumScoreType.WECHAT_PHONE, user)); | |||||
| wxScoreRulesService.addScore(EnumScoreType.WECHAT_PHONE, user); | |||||
| // 增加积分 | // 增加积分 | ||||
| wxCUserService.addCredit(user, EnumScoreType.WECHAT_PHONE); | wxCUserService.addCredit(user, EnumScoreType.WECHAT_PHONE); | ||||
| // 外部注券 | // 外部注券 | ||||
| @@ -660,12 +666,6 @@ public class WxUserGrantController extends BaseController { | |||||
| return new ResultData(ErrorCode.DB_FAIL.getCode(), "解密并保存出错", resultMap); | return new ResultData(ErrorCode.DB_FAIL.getCode(), "解密并保存出错", resultMap); | ||||
| } | } | ||||
| if (!user.getPhone().contains("*")) { // 用户手机非加密 | |||||
| // 更新到basicinfo | |||||
| saveToBasicInfo(user); | |||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_PHONE, user); | |||||
| } | |||||
| return new ResultData(resultMap); | return new ResultData(resultMap); | ||||
| } | } | ||||
| @@ -781,7 +781,7 @@ public class WxUserGrantController extends BaseController { | |||||
| userVo.setUpgradeScore(levelTarget-userVo.getScore()); | userVo.setUpgradeScore(levelTarget-userVo.getScore()); | ||||
| } | } | ||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(user.getId()); | |||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(user.getUserId()); | |||||
| if (wxCUserBasicInfo != null) { | if (wxCUserBasicInfo != null) { | ||||
| userVo.setName(wxCUserBasicInfo.getName()); | userVo.setName(wxCUserBasicInfo.getName()); | ||||
| userVo.setBirthdate(wxCUserBasicInfo.getBirthdate()); | userVo.setBirthdate(wxCUserBasicInfo.getBirthdate()); | ||||
| @@ -799,7 +799,7 @@ public class WxUserGrantController extends BaseController { | |||||
| WxCUser user = getUser(); | WxCUser user = getUser(); | ||||
| WxCUserCar userCar = new WxCUserCar(); | WxCUserCar userCar = new WxCUserCar(); | ||||
| userCar.updateTenantInfo(user); | userCar.updateTenantInfo(user); | ||||
| userCar.setCUserId(user.getId()); | |||||
| userCar.setCUserId(user.getUserId()); | |||||
| Integer count = wxCUserCarService.countUserCar(userCar); | Integer count = wxCUserCarService.countUserCar(userCar); | ||||
| if (count > 0) { | if (count > 0) { | ||||
| Map returnMap = new HashMap(); | Map returnMap = new HashMap(); | ||||
| @@ -821,7 +821,7 @@ public class WxUserGrantController extends BaseController { | |||||
| public ResultData getCarList() { | public ResultData getCarList() { | ||||
| WxCUserCar userCar = new WxCUserCar(); | WxCUserCar userCar = new WxCUserCar(); | ||||
| userCar.updateTenantInfo(getTenantInfo()); | userCar.updateTenantInfo(getTenantInfo()); | ||||
| userCar.setCUserId(getUserId()); | |||||
| userCar.setCUserId(getUser().getUserId()); | |||||
| List<WxCUserCar> list = wxCUserCarService.getList(userCar); | List<WxCUserCar> list = wxCUserCarService.getList(userCar); | ||||
| return new ResultData(Result.SUCCESS, "获取查询成功", list); | return new ResultData(Result.SUCCESS, "获取查询成功", list); | ||||
| } | } | ||||
| @@ -875,7 +875,7 @@ public class WxUserGrantController extends BaseController { | |||||
| public ResultData updateUserInfo(@RequestBody WxCUserBasicInfo wxCUserBasicInfo) { | public ResultData updateUserInfo(@RequestBody WxCUserBasicInfo wxCUserBasicInfo) { | ||||
| if (wxCUserBasicInfo == null) | if (wxCUserBasicInfo == null) | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | ||||
| if (wxCUserBasicInfoService.getById(getUserId()) == null) | |||||
| if (wxCUserBasicInfoService.getById(getUser().getUserId()) == null) | |||||
| return new ResultData(ErrorCode.USER_IS_NOT_MEMBER); | return new ResultData(ErrorCode.USER_IS_NOT_MEMBER); | ||||
| TenantEntity tenantEntity = getTenantInfo(); | TenantEntity tenantEntity = getTenantInfo(); | ||||
| @@ -890,7 +890,7 @@ public class WxUserGrantController extends BaseController { | |||||
| record.setBirthdate(wxCUserBasicInfo.getBirthdate()); | record.setBirthdate(wxCUserBasicInfo.getBirthdate()); | ||||
| record.setSex(wxCUserBasicInfo.getSex()); | record.setSex(wxCUserBasicInfo.getSex()); | ||||
| record.setAddress(wxCUserBasicInfo.getAddress()); | record.setAddress(wxCUserBasicInfo.getAddress()); | ||||
| record.setId(getUserId()); | |||||
| record.setId(getUser().getUserId()); | |||||
| record.setUpdateDate(new Date()); | record.setUpdateDate(new Date()); | ||||
| wxCUserBasicInfoService.update(record); | wxCUserBasicInfoService.update(record); | ||||
| wxScoreRulesService.addScore(EnumScoreType.COMPLETE_INFO, record); | wxScoreRulesService.addScore(EnumScoreType.COMPLETE_INFO, record); | ||||
| @@ -901,7 +901,7 @@ public class WxUserGrantController extends BaseController { | |||||
| wxCreditHistory.setCreateDate(new Date()); | wxCreditHistory.setCreateDate(new Date()); | ||||
| wxCreditHistory.setCreditType(EnumScoreType.COMPLETE_INFO.getCode()); | wxCreditHistory.setCreditType(EnumScoreType.COMPLETE_INFO.getCode()); | ||||
| wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); | wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); | ||||
| wxCreditHistory.setOperatorId(getUserId()); | |||||
| wxCreditHistory.setOperatorId(getUser().getUserId()); | |||||
| wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | ||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, record); | wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, record); | ||||
| } | } | ||||
| @@ -935,7 +935,7 @@ public class WxUserGrantController extends BaseController { | |||||
| List<WxLevelMerchantCVo> levelMerchantList = wxLevelConfigService.findListCVo(levelMerchant); | List<WxLevelMerchantCVo> levelMerchantList = wxLevelConfigService.findListCVo(levelMerchant); | ||||
| Map<String, Object> result = new HashMap(); | Map<String, Object> result = new HashMap(); | ||||
| result.put("id", user.getId()); | |||||
| result.put("id", user.getUserId()); | |||||
| result.put("level", level); | result.put("level", level); | ||||
| result.put("levelMerchantList", levelMerchantList); | result.put("levelMerchantList", levelMerchantList); | ||||
| return new ResultData(result); | return new ResultData(result); | ||||
| @@ -11,6 +11,7 @@ import com.iformall.domain.po.base.TenantEntity; | |||||
| import lombok.Data; | import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | import lombok.EqualsAndHashCode; | ||||
| import lombok.ToString; | import lombok.ToString; | ||||
| import org.apache.commons.lang3.StringUtils; | |||||
| import javax.validation.constraints.NotNull; | import javax.validation.constraints.NotNull; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| @@ -161,5 +162,19 @@ public class WxCUserBasicInfo extends TenantEntity { | |||||
| public int hashCode() { | public int hashCode() { | ||||
| return Objects.hash(this.phone); | return Objects.hash(this.phone); | ||||
| } | } | ||||
| public void undateFinalTenantId(){ | |||||
| setFinalTenantId(getTenantId()); | |||||
| if(StringUtils.isNotBlank(getParentTenantId())){ | |||||
| setFinalTenantId(getParentTenantId()); | |||||
| } | |||||
| } | |||||
| public void undateFinalTenantId(TenantEntity tenantEntity){ | |||||
| setFinalTenantId(tenantEntity.getTenantId()); | |||||
| if(StringUtils.isNotBlank(tenantEntity.getParentTenantId())){ | |||||
| setFinalTenantId(tenantEntity.getParentTenantId()); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -32,4 +32,12 @@ public class TenantEntity extends BaseEntity { | |||||
| setParentTenantId(info.getParentTenantId()); | setParentTenantId(info.getParentTenantId()); | ||||
| } | } | ||||
| } | } | ||||
| public void updateFinalTenantInfo(TenantEntity info){ | |||||
| if (StringUtils.isNotBlank(info.getParentTenantId())) { | |||||
| setParentTenantId(info.getParentTenantId()); | |||||
| }else{ | |||||
| setTenantId(info.getTenantId()); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -19,6 +19,9 @@ public interface WxCUserBasicInfoMapper extends CommonMapper<WxCUserBasicInfo, S | |||||
| void updateScore(WxCUserBasicInfo record); | void updateScore(WxCUserBasicInfo record); | ||||
| void updateUpScore(WxCUserBasicInfo record); | |||||
| void updateDownScore(WxCUserBasicInfo record); | |||||
| void updateNewId(CUserBaseVo record); | void updateNewId(CUserBaseVo record); | ||||
| long findCountBySex(WxCUserBasicInfoDto dto); | long findCountBySex(WxCUserBasicInfoDto dto); | ||||
| @@ -27,4 +27,6 @@ public interface WxCUserMapper extends CommonMapper<WxCUser, Long> { | |||||
| long countByChannel(WxCUser wxCUser); | long countByChannel(WxCUser wxCUser); | ||||
| List<Map<String, Object>> checkCountByTenantOpenId(); | List<Map<String, Object>> checkCountByTenantOpenId(); | ||||
| void updateUserId(WxCUser user); | |||||
| } | } | ||||
| @@ -136,5 +136,7 @@ public interface WxCUserService { | |||||
| * @param enumScoreType | * @param enumScoreType | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| WxCreditHistory addCredit(WxCUser wxCUser, EnumScoreType enumScoreType); | |||||
| int addCredit(WxCUser wxCUser, EnumScoreType enumScoreType); | |||||
| void updateUserId(WxCUser user); | |||||
| } | } | ||||
| @@ -5,6 +5,7 @@ import com.github.pagehelper.PageHelper; | |||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.domain.po.MemCouponFromDsp; | import com.iformall.domain.po.MemCouponFromDsp; | ||||
| import com.iformall.domain.po.WxCUser; | import com.iformall.domain.po.WxCUser; | ||||
| import com.iformall.domain.po.WxCUserBasicInfo; | |||||
| import com.iformall.domain.po.WxCoupon; | import com.iformall.domain.po.WxCoupon; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.enums.EnumCouponDspStatus; | import com.iformall.enums.EnumCouponDspStatus; | ||||
| @@ -12,6 +13,7 @@ import com.iformall.enums.EnumUserType; | |||||
| import com.iformall.mapper.MemCouponFromDspMapper; | import com.iformall.mapper.MemCouponFromDspMapper; | ||||
| import com.iformall.mapper.WxCouponMapper; | import com.iformall.mapper.WxCouponMapper; | ||||
| import com.iformall.service.MemCouponFromDspService; | import com.iformall.service.MemCouponFromDspService; | ||||
| import com.iformall.service.WxCUserBasicInfoService; | |||||
| import com.iformall.service.WxCUserService; | import com.iformall.service.WxCUserService; | ||||
| import com.iformall.service.WxOrderService; | import com.iformall.service.WxOrderService; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| @@ -37,6 +39,8 @@ public class MemCouponFromDspServiceImpl implements MemCouponFromDspService { | |||||
| private WxOrderService wxOrderService; | private WxOrderService wxOrderService; | ||||
| @Autowired | @Autowired | ||||
| private WxCUserService wxCUserService; | private WxCUserService wxCUserService; | ||||
| @Autowired | |||||
| private WxCUserBasicInfoService wxCUserBasicInfoService; | |||||
| @Override | @Override | ||||
| @@ -81,11 +85,15 @@ public class MemCouponFromDspServiceImpl implements MemCouponFromDspService { | |||||
| @Override | @Override | ||||
| public Integer couponOrder(MemCouponFromDsp record) { | public Integer couponOrder(MemCouponFromDsp record) { | ||||
| // 获取C端用户 | |||||
| WxCUser user = wxCUserService.getByObject(new WxCUser() {{ | |||||
| updateTenantInfo(record); | |||||
| setPhone(record.getPhone()); | |||||
| }}); | |||||
| WxCUserBasicInfo user = wxCUserBasicInfoService.findInfoByPhone(record, record.getPhone()); | |||||
| // // 获取C端用户 | |||||
| // WxCUser user = wxCUserService.getByObject(new WxCUser() {{ | |||||
| // updateTenantInfo(record); | |||||
| // setPhone(record.getPhone()); | |||||
| // }}); | |||||
| if (user == null) { | if (user == null) { | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -568,12 +568,10 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { | |||||
| public WxCUserBasicInfo findInfoByPhone(TenantEntity tenantEntity, String phone) { | public WxCUserBasicInfo findInfoByPhone(TenantEntity tenantEntity, String phone) { | ||||
| WxCUserBasicInfo basic = null; | WxCUserBasicInfo basic = null; | ||||
| WxCUserBasicInfo basicQ = new WxCUserBasicInfo(); | WxCUserBasicInfo basicQ = new WxCUserBasicInfo(); | ||||
| basicQ.updateTenantInfo(tenantEntity); | |||||
| basicQ.undateFinalTenantId(tenantEntity); | |||||
| basicQ.setPhone(phone); | basicQ.setPhone(phone); | ||||
| List<WxCUserBasicInfo> basicInfos = wxCUserBasicInfoMapper.selectList(new QueryWrapper(basicQ)); | |||||
| if (basicInfos.size() > 0) { | |||||
| return basicInfos.get(0); | |||||
| } | |||||
| basic = wxCUserBasicInfoMapper.selectOne(new QueryWrapper(basicQ)); | |||||
| return basic; | return basic; | ||||
| } | } | ||||
| @@ -600,33 +598,33 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { | |||||
| @Override | @Override | ||||
| public void updateObj(WxCUserBasicInfo record, WxCUser user) { | public void updateObj(WxCUserBasicInfo record, WxCUser user) { | ||||
| // 1. update c_user_tags | // 1. update c_user_tags | ||||
| CUserTagNewIdVo userTagVo = new CUserTagNewIdVo(); | |||||
| userTagVo.updateTenantInfo(record); | |||||
| userTagVo.setUserId(record.getId()); | |||||
| userTagVo.setNewUserId(user.getId()); | |||||
| wxCUserTagsMapper.updateNewId(userTagVo); | |||||
| // 2. update score history | |||||
| WxScoreHistoryNewIdVo scoreHistoryNewIdVo = new WxScoreHistoryNewIdVo(); | |||||
| scoreHistoryNewIdVo.updateTenantInfo(record); | |||||
| scoreHistoryNewIdVo.setCUserId(record.getId()); | |||||
| scoreHistoryNewIdVo.setNewUserId(user.getId()); | |||||
| scoreHistoryMapper.updateNewId(scoreHistoryNewIdVo); | |||||
| // 3. update credit history | |||||
| WxCreditHistoryNewIdVo creditHistoryNewIdVo = new WxCreditHistoryNewIdVo(); | |||||
| creditHistoryNewIdVo.updateTenantInfo(record); | |||||
| creditHistoryNewIdVo.setCUserId(record.getId()); | |||||
| creditHistoryNewIdVo.setNewUserId(user.getId()); | |||||
| creditHistoryMapper.updateNewId(creditHistoryNewIdVo); | |||||
| // 10. base info | |||||
| CUserBaseVo userBaseVo = new CUserBaseVo(); | |||||
| org.springframework.beans.BeanUtils.copyProperties(record, userBaseVo); | |||||
| userBaseVo.setNewId(user.getId()); | |||||
| //userBaseVo.setCredit(user.getCredit()); | |||||
| userBaseVo.setPoins(user.getScore()); | |||||
| wxCUserBasicInfoMapper.updateNewId(userBaseVo); | |||||
| // CUserTagNewIdVo userTagVo = new CUserTagNewIdVo(); | |||||
| // userTagVo.updateTenantInfo(record); | |||||
| // userTagVo.setUserId(record.getId()); | |||||
| // userTagVo.setNewUserId(user.getId()); | |||||
| // wxCUserTagsMapper.updateNewId(userTagVo); | |||||
| // | |||||
| // // 2. update score history | |||||
| // WxScoreHistoryNewIdVo scoreHistoryNewIdVo = new WxScoreHistoryNewIdVo(); | |||||
| // scoreHistoryNewIdVo.updateTenantInfo(record); | |||||
| // scoreHistoryNewIdVo.setCUserId(record.getId()); | |||||
| // scoreHistoryNewIdVo.setNewUserId(user.getId()); | |||||
| // scoreHistoryMapper.updateNewId(scoreHistoryNewIdVo); | |||||
| // | |||||
| // // 3. update credit history | |||||
| // WxCreditHistoryNewIdVo creditHistoryNewIdVo = new WxCreditHistoryNewIdVo(); | |||||
| // creditHistoryNewIdVo.updateTenantInfo(record); | |||||
| // creditHistoryNewIdVo.setCUserId(record.getId()); | |||||
| // creditHistoryNewIdVo.setNewUserId(user.getId()); | |||||
| // creditHistoryMapper.updateNewId(creditHistoryNewIdVo); | |||||
| // | |||||
| // // 10. base info | |||||
| // CUserBaseVo userBaseVo = new CUserBaseVo(); | |||||
| // org.springframework.beans.BeanUtils.copyProperties(record, userBaseVo); | |||||
| // userBaseVo.setNewId(user.getId()); | |||||
| // //userBaseVo.setCredit(user.getCredit()); | |||||
| // userBaseVo.setPoins(user.getScore()); | |||||
| // wxCUserBasicInfoMapper.updateNewId(userBaseVo); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -247,9 +247,7 @@ public class WxCUserServiceImpl implements WxCUserService { | |||||
| } | } | ||||
| // 积分 | // 积分 | ||||
| try { | try { | ||||
| WxCreditHistory wxCreditHistory = addCredit(user, EnumScoreType.LOGIN); | |||||
| logger.info("wxCreditHistory_id" + wxCreditHistory.getId()); | |||||
| credit = wxCreditHistory.getCreditNum() == null ? 0 : wxCreditHistory.getCreditNum(); | |||||
| credit = addCredit(user, EnumScoreType.LOGIN); | |||||
| logger.info("user_id:" + user.getId() + " 登录新增积分:" + credit); | logger.info("user_id:" + user.getId() + " 登录新增积分:" + credit); | ||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error("c_user 积分 " + e.getMessage()); | logger.error("c_user 积分 " + e.getMessage()); | ||||
| @@ -259,8 +257,8 @@ public class WxCUserServiceImpl implements WxCUserService { | |||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, user); | wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, user); | ||||
| // 用户登陆后 更新最后一次活跃时间 | // 用户登陆后 更新最后一次活跃时间 | ||||
| if (user.getId() != null) { | |||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(user.getId()); | |||||
| if (user.getUserId() != null) { | |||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(user.getUserId()); | |||||
| if (wxCUserBasicInfo != null) { | if (wxCUserBasicInfo != null) { | ||||
| WxCUserBasicInfo basicInfo = new WxCUserBasicInfo(); | WxCUserBasicInfo basicInfo = new WxCUserBasicInfo(); | ||||
| basicInfo.setId(user.getId()); | basicInfo.setId(user.getId()); | ||||
| @@ -297,18 +295,26 @@ public class WxCUserServiceImpl implements WxCUserService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public WxCreditHistory addCredit(WxCUser user, EnumScoreType enumScoreType) { | |||||
| public int addCredit(WxCUser user, EnumScoreType enumScoreType) { | |||||
| if(user.getUserId() == null){ | |||||
| return 0; | |||||
| } | |||||
| WxCreditHistory wxCreditHistory = new WxCreditHistory(); | WxCreditHistory wxCreditHistory = new WxCreditHistory(); | ||||
| wxCreditHistory.setCUserId(user.getId()); | |||||
| wxCreditHistory.setCUserId(user.getUserId()); | |||||
| wxCreditHistory.updateTenantInfo(user); | wxCreditHistory.updateTenantInfo(user); | ||||
| wxCreditHistory.setCreateDate(new Date()); | wxCreditHistory.setCreateDate(new Date()); | ||||
| wxCreditHistory.setCreditType(enumScoreType.getCode()); | wxCreditHistory.setCreditType(enumScoreType.getCode()); | ||||
| wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); | wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); | ||||
| wxCreditHistory.setOperatorId(user.getId()); | |||||
| wxCreditHistory.setOperatorId(user.getUserId()); | |||||
| wxCreditHistory.setCreditNum(user.getCredit()); | wxCreditHistory.setCreditNum(user.getCredit()); | ||||
| wxCreditHistory.setCreditAmount(user.getCredit()); | wxCreditHistory.setCreditAmount(user.getCredit()); | ||||
| WxCreditHistory record = wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | WxCreditHistory record = wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | ||||
| user.setCredit(record.getCreditAmount()); | user.setCredit(record.getCreditAmount()); | ||||
| return record; | |||||
| return record.getCreditAmount(); | |||||
| } | |||||
| @Override | |||||
| public void updateUserId(WxCUser user) { | |||||
| wxCUserMapper.updateUserId(user); | |||||
| } | } | ||||
| } | } | ||||
| @@ -646,7 +646,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| break; | break; | ||||
| case ASSIGN_TAGS_TRIGGER_PHONE: { | case ASSIGN_TAGS_TRIGGER_PHONE: { | ||||
| WxCUser param = (WxCUser) obj; | WxCUser param = (WxCUser) obj; | ||||
| WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getId()); | |||||
| WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getUserId()); | |||||
| if (user != null) { | if (user != null) { | ||||
| if (param.getPhone() != null) { | if (param.getPhone() != null) { | ||||
| //来源 | //来源 | ||||
| @@ -659,7 +659,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| break; | break; | ||||
| case ASSIGN_TAGS_TRIGGER_BUY:{ | case ASSIGN_TAGS_TRIGGER_BUY:{ | ||||
| WxCUser param = (WxCUser) obj; | WxCUser param = (WxCUser) obj; | ||||
| WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getId()); | |||||
| WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getUserId()); | |||||
| if (user != null) { | if (user != null) { | ||||
| //消费类别 | //消费类别 | ||||
| resList = assignTypeId14(user, param); | resList = assignTypeId14(user, param); | ||||
| @@ -677,7 +677,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| case ASSIGN_TAGS_TRIGGER_LOGIN: { | case ASSIGN_TAGS_TRIGGER_LOGIN: { | ||||
| WxCUser param = (WxCUser) obj; | WxCUser param = (WxCUser) obj; | ||||
| WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getId()); | |||||
| WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getUserId()); | |||||
| if (user != null) { | if (user != null) { | ||||
| if (param.getGender() != null) { | if (param.getGender() != null) { | ||||
| //性别 | //性别 | ||||
| @@ -199,9 +199,9 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| @Override | @Override | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| public WxCreditHistory saveOrUpdate(WxCreditHistory record) { | public WxCreditHistory saveOrUpdate(WxCreditHistory record) { | ||||
| WxCUser wxCUser = wxCUserMapper.selectById(record.getCUserId()); | |||||
| //WxCUser wxCUser = wxCUserMapper.selectById(record.getCUserId()); | |||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(record.getCUserId()); | WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(record.getCUserId()); | ||||
| if (wxCUser == null && wxCUserBasicInfo == null) { | |||||
| if (wxCUserBasicInfo == null) { | |||||
| //验证此用户是否存在 | //验证此用户是否存在 | ||||
| throw new MallinkException(ErrorCode.USER_NOT_AUTH_PHONE); | throw new MallinkException(ErrorCode.USER_NOT_AUTH_PHONE); | ||||
| } | } | ||||
| @@ -214,9 +214,7 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| } | } | ||||
| int currentCreditAmount = 0; | int currentCreditAmount = 0; | ||||
| //获取当前用户总积分规则:优先获取wxCUser中数据 若不存在 再获取wxCUserBasicInfo表中数据 | //获取当前用户总积分规则:优先获取wxCUser中数据 若不存在 再获取wxCUserBasicInfo表中数据 | ||||
| if (wxCUser != null && wxCUser.getCredit() != null && wxCUser.getCredit() > 0) { | |||||
| currentCreditAmount = wxCUser.getCredit(); | |||||
| } else if (wxCUserBasicInfo != null && wxCUserBasicInfo.getCredit() != null && wxCUserBasicInfo.getCredit() > 0) { | |||||
| if (wxCUserBasicInfo != null && wxCUserBasicInfo.getCredit() != null && wxCUserBasicInfo.getCredit() > 0) { | |||||
| currentCreditAmount = wxCUserBasicInfo.getCredit(); | currentCreditAmount = wxCUserBasicInfo.getCredit(); | ||||
| } | } | ||||
| if (record.getCreditAmount() == null) { | if (record.getCreditAmount() == null) { | ||||
| @@ -230,7 +228,7 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| if (record.getCreditType().equals(EnumScoreType.CONSUMPTION.getCode()) || record.getCreditType().equals(EnumScoreType.SPEND_CREDIT.getCode())) { | if (record.getCreditType().equals(EnumScoreType.CONSUMPTION.getCode()) || record.getCreditType().equals(EnumScoreType.SPEND_CREDIT.getCode())) { | ||||
| //等级积分配置 | //等级积分配置 | ||||
| try { | try { | ||||
| creditChangeNum = CreditUtil.calUserCredit(creditChangeNumOrigin, wxCUser, wxCUserBasicInfo, wxScoreRulesService,wxLevelConfigMapper); | |||||
| creditChangeNum = CreditUtil.calUserCredit(creditChangeNumOrigin, null, wxCUserBasicInfo, wxScoreRulesService,wxLevelConfigMapper); | |||||
| if (Objects.nonNull(CreditUtil.getIsBirthDayScale())) { | if (Objects.nonNull(CreditUtil.getIsBirthDayScale())) { | ||||
| hasBirthDateCredit = true; | hasBirthDateCredit = true; | ||||
| } | } | ||||
| @@ -260,12 +258,12 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| record.setCreateDate(new Date()); | record.setCreateDate(new Date()); | ||||
| wxCreditHistoryMapper.insert(record); | wxCreditHistoryMapper.insert(record); | ||||
| //将计算出来新的总积分 更新到两张用户表里 | //将计算出来新的总积分 更新到两张用户表里 | ||||
| if (wxCUser != null) { | |||||
| WxCUser wxCUserNew = new WxCUser(); | |||||
| wxCUserNew.setId(wxCUser.getId()); | |||||
| wxCUserNew.setCredit(record.getCreditAmount()); | |||||
| wxCUserMapper.updateById(wxCUserNew); | |||||
| } | |||||
| // if (wxCUser != null) { | |||||
| // WxCUser wxCUserNew = new WxCUser(); | |||||
| // wxCUserNew.setId(wxCUser.getId()); | |||||
| // wxCUserNew.setCredit(record.getCreditAmount()); | |||||
| // wxCUserMapper.updateById(wxCUserNew); | |||||
| // } | |||||
| if (wxCUserBasicInfo != null) { | if (wxCUserBasicInfo != null) { | ||||
| WxCUserBasicInfo wxCUserBasicInfoNew = new WxCUserBasicInfo(); | WxCUserBasicInfo wxCUserBasicInfoNew = new WxCUserBasicInfo(); | ||||
| wxCUserBasicInfoNew.setId(wxCUserBasicInfo.getId()); | wxCUserBasicInfoNew.setId(wxCUserBasicInfo.getId()); | ||||
| @@ -344,9 +342,9 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| wxCreditHistory.setSpend(new BigDecimal(spendStr).multiply(new BigDecimal(100)).intValue()); | wxCreditHistory.setSpend(new BigDecimal(spendStr).multiply(new BigDecimal(100)).intValue()); | ||||
| credit = payAddCredit(wxCreditHistory); | credit = payAddCredit(wxCreditHistory); | ||||
| if (Objects.nonNull(userId)) { | if (Objects.nonNull(userId)) { | ||||
| WxCUser wxCUser = wxCUserMapper.selectById(userId); | |||||
| //WxCUser wxCUser = wxCUserMapper.selectById(userId); | |||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(userId); | WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(userId); | ||||
| creditNew = CreditUtil.calUserCredit(credit, wxCUser, wxCUserBasicInfo, wxScoreRulesService,wxLevelConfigMapper); | |||||
| creditNew = CreditUtil.calUserCredit(credit, null, wxCUserBasicInfo, wxScoreRulesService,wxLevelConfigMapper); | |||||
| } else { | } else { | ||||
| creditNew = credit; | creditNew = credit; | ||||
| } | } | ||||
| @@ -15,6 +15,7 @@ import com.iformall.mapper.*; | |||||
| import com.iformall.service.WxCUserService; | import com.iformall.service.WxCUserService; | ||||
| import com.iformall.service.WxScoreRulesService; | import com.iformall.service.WxScoreRulesService; | ||||
| import com.iformall.utils.Constant; | import com.iformall.utils.Constant; | ||||
| import org.apache.commons.lang3.StringUtils; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| @@ -104,8 +105,14 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| @Override | @Override | ||||
| public WxScoreRules getScoreRules(TenantEntity tenantEntity) { | public WxScoreRules getScoreRules(TenantEntity tenantEntity) { | ||||
| String tenantId = ""; | |||||
| if(StringUtils.isNotBlank(tenantEntity.getParentTenantId())){ | |||||
| tenantId = tenantEntity.getParentTenantId(); | |||||
| }else{ | |||||
| tenantId = tenantEntity.getTenantId(); | |||||
| } | |||||
| // get pushLime from cache | // get pushLime from cache | ||||
| String key = Constant.SCORE_RULES_KEY_PREV + tenantEntity.getTenantId(); | |||||
| String key = Constant.SCORE_RULES_KEY_PREV + tenantId; | |||||
| // 缓存存在 | // 缓存存在 | ||||
| if (scoreRulesRedisTemplate.hasKey(key)) { | if (scoreRulesRedisTemplate.hasKey(key)) { | ||||
| @@ -115,7 +122,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| } | } | ||||
| WxScoreRules scoreRules = new WxScoreRules(); | WxScoreRules scoreRules = new WxScoreRules(); | ||||
| scoreRules.updateTenantInfo(tenantEntity); | |||||
| scoreRules.setTenantId(tenantId); | |||||
| scoreRules.setType(EnumScoreRules.SCORE.getCode()); | scoreRules.setType(EnumScoreRules.SCORE.getCode()); | ||||
| List<WxScoreRules> list = wxScoreRulesMapper.findList(scoreRules); | List<WxScoreRules> list = wxScoreRulesMapper.findList(scoreRules); | ||||
| if (list.size() > 0) { | if (list.size() > 0) { | ||||
| @@ -180,8 +187,14 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| @Override | @Override | ||||
| public WxScoreRules getCreditRules(TenantEntity tenantEntity) { | public WxScoreRules getCreditRules(TenantEntity tenantEntity) { | ||||
| String tenantId = ""; | |||||
| if(StringUtils.isNotBlank(tenantEntity.getParentTenantId())){ | |||||
| tenantId = tenantEntity.getParentTenantId(); | |||||
| }else{ | |||||
| tenantId = tenantEntity.getTenantId(); | |||||
| } | |||||
| // get pushLime from cache | // get pushLime from cache | ||||
| String key = Constant.CREDIT_RULES_KEY_PREV + tenantEntity.getTenantId(); | |||||
| String key = Constant.CREDIT_RULES_KEY_PREV + tenantId; | |||||
| // 缓存存在 | // 缓存存在 | ||||
| if (scoreRulesRedisTemplate.hasKey(key)) { | if (scoreRulesRedisTemplate.hasKey(key)) { | ||||
| @@ -191,7 +204,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| } | } | ||||
| WxScoreRules scoreRules = new WxScoreRules(); | WxScoreRules scoreRules = new WxScoreRules(); | ||||
| scoreRules.updateTenantInfo(tenantEntity); | |||||
| scoreRules.setTenantId(tenantId); | |||||
| scoreRules.setType(EnumScoreRules.CREDIT.getCode()); | scoreRules.setType(EnumScoreRules.CREDIT.getCode()); | ||||
| List<WxScoreRules> list = wxScoreRulesMapper.findList(scoreRules); | List<WxScoreRules> list = wxScoreRulesMapper.findList(scoreRules); | ||||
| if (list.size() > 0) { | if (list.size() > 0) { | ||||
| @@ -290,33 +303,33 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| } | } | ||||
| private void updateScore(Long userId, int addedScoreNumber) { | private void updateScore(Long userId, int addedScoreNumber) { | ||||
| // 1. 获取cUser | |||||
| WxCUser wxCUser = wxCUserService.getById(userId); | |||||
| if (wxCUser.getScore() == null) { | |||||
| wxCUser.setScore(0); | |||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(userId); | |||||
| if (wxCUserBasicInfo.getPoins() == null) { | |||||
| wxCUserBasicInfo.setPoins(0); | |||||
| } | } | ||||
| int newScore = wxCUserBasicInfo.getPoins() + addedScoreNumber; | |||||
| wxCUserBasicInfo.setPoins(newScore); | |||||
| wxCUserBasicInfoMapper.updateScore(wxCUserBasicInfo); | |||||
| int newScore = wxCUser.getScore() + addedScoreNumber; | |||||
| // 2. update score | |||||
| wxCUser.setScore(newScore); | |||||
| wxCUserService.saveOrUpdate(wxCUser); | |||||
| // // 1. 获取cUser | |||||
| // WxCUser wxCUser = wxCUserService.getById(userId); | |||||
| // if (wxCUser.getScore() == null) { | |||||
| // wxCUser.setScore(0); | |||||
| // } | |||||
| // | |||||
| // int newScore = wxCUser.getScore() + addedScoreNumber; | |||||
| // | |||||
| // // 2. update score | |||||
| // wxCUser.setScore(newScore); | |||||
| // wxCUserService.saveOrUpdate(wxCUser); | |||||
| // 3. 修改basic points | |||||
| if (wxCUser.getPhone() != null) { | |||||
| //修改basic表积分 | |||||
| WxCUserBasicInfo wxCUserBasicInfo = new WxCUserBasicInfo(); | |||||
| wxCUserBasicInfo.setId(wxCUser.getId()); | |||||
| wxCUserBasicInfo.updateTenantInfo(wxCUser); | |||||
| wxCUserBasicInfo.setPhone(wxCUser.getPhone()); | |||||
| wxCUserBasicInfo.setPoins(newScore); | |||||
| wxCUserBasicInfoMapper.updateScore(wxCUserBasicInfo); | |||||
| } | |||||
| } | } | ||||
| private void resetBasicUserScore(Long userId, int scoreNumber) { | |||||
| /*private void resetBasicUserScore(Long userId, int scoreNumber) { | |||||
| // 1. basicUser | // 1. basicUser | ||||
| WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(userId); | WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(userId); | ||||
| if(user == null) { | if(user == null) { | ||||
| @@ -339,7 +352,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| wxCUserService.saveOrUpdate(wxCUser); | wxCUserService.saveOrUpdate(wxCUser); | ||||
| } | } | ||||
| } | } | ||||
| } | |||||
| }*/ | |||||
| private void resetBasicUserScore(WxCUserBasicInfo user, boolean bHaveCUser) { | private void resetBasicUserScore(WxCUserBasicInfo user, boolean bHaveCUser) { | ||||
| // 1. basicUser | // 1. basicUser | ||||
| @@ -360,15 +373,15 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| } | } | ||||
| } | } | ||||
| private int checkTodayLoginScoreCount(WxCUser cUser) { | |||||
| private int checkTodayLoginScoreCount(WxCUserBasicInfo cUser) { | |||||
| WxScoreHistory scoreHistory = new WxScoreHistory(); | WxScoreHistory scoreHistory = new WxScoreHistory(); | ||||
| scoreHistory.updateTenantInfo(cUser); | |||||
| scoreHistory.updateFinalTenantInfo(cUser); | |||||
| scoreHistory.setCUserId(cUser.getId()); | scoreHistory.setCUserId(cUser.getId()); | ||||
| scoreHistory.setScoreType(EnumScoreType.LOGIN.getCode()); | scoreHistory.setScoreType(EnumScoreType.LOGIN.getCode()); | ||||
| return wxScoreHistoryMapper.countTodayList(scoreHistory); | return wxScoreHistoryMapper.countTodayList(scoreHistory); | ||||
| } | } | ||||
| private int loginAddScore(WxCUser user) { | |||||
| private int loginAddScore(WxCUserBasicInfo user) { | |||||
| int addScoreNumber = 0; | int addScoreNumber = 0; | ||||
| if (checkTodayLoginScoreCount(user) > 0) | if (checkTodayLoginScoreCount(user) > 0) | ||||
| @@ -380,7 +393,6 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| // 2. 增长的成长值 | // 2. 增长的成长值 | ||||
| addScoreNumber = scoreRules.getRule(EnumScoreType.LOGIN,WxScoreRules.SCORE); | addScoreNumber = scoreRules.getRule(EnumScoreType.LOGIN,WxScoreRules.SCORE); | ||||
| updateScore(user.getId(), addScoreNumber); | updateScore(user.getId(), addScoreNumber); | ||||
| user.setScore(addScoreNumber); | |||||
| // 3. 记录历史 | // 3. 记录历史 | ||||
| recordScoreHistory(addScoreNumber, user, user.getId(), EnumScoreType.LOGIN); | recordScoreHistory(addScoreNumber, user, user.getId(), EnumScoreType.LOGIN); | ||||
| @@ -447,23 +459,23 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| } | } | ||||
| private int bindCarAddScore(WxCUserCar userCar) { | |||||
| private int bindCarAddScore(WxCUserBasicInfo user) { | |||||
| int addScoreNumber = 0; | int addScoreNumber = 0; | ||||
| // 1. 获取score rules | // 1. 获取score rules | ||||
| WxScoreRules scoreRules = getScoreRules(userCar); | |||||
| WxScoreRules scoreRules = getScoreRules(user); | |||||
| // 2. 获取成长值 | // 2. 获取成长值 | ||||
| addScoreNumber = scoreRules.getRule(EnumScoreType.BIND_CAR,WxScoreRules.SCORE); | addScoreNumber = scoreRules.getRule(EnumScoreType.BIND_CAR,WxScoreRules.SCORE); | ||||
| // 3. 增长的成长值 | // 3. 增长的成长值 | ||||
| updateScore(userCar.getCUserId(), addScoreNumber); | |||||
| updateScore(user.getId(), addScoreNumber); | |||||
| // 4. 记录历史 | // 4. 记录历史 | ||||
| recordScoreHistory(addScoreNumber, userCar, userCar.getCUserId(), EnumScoreType.BIND_CAR); | |||||
| recordScoreHistory(addScoreNumber, user, user.getId(), EnumScoreType.BIND_CAR); | |||||
| return addScoreNumber; | return addScoreNumber; | ||||
| } | } | ||||
| private int personAddScore(WxCUser user) { | |||||
| private int personAddScore(WxCUserBasicInfo user) { | |||||
| int addScoreNumber = 0; | int addScoreNumber = 0; | ||||
| // 1. 获取score rules | // 1. 获取score rules | ||||
| WxScoreRules scoreRules = getScoreRules(user); | WxScoreRules scoreRules = getScoreRules(user); | ||||
| @@ -479,7 +491,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| return addScoreNumber; | return addScoreNumber; | ||||
| } | } | ||||
| private int phoneAddScore(WxCUser user) { | |||||
| private int phoneAddScore(WxCUserBasicInfo user) { | |||||
| int addScoreNumber = 0; | int addScoreNumber = 0; | ||||
| // 1. 获取score rules | // 1. 获取score rules | ||||
| WxScoreRules scoreRules = getScoreRules(user); | WxScoreRules scoreRules = getScoreRules(user); | ||||
| @@ -495,19 +507,17 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| return addScoreNumber; | return addScoreNumber; | ||||
| } | } | ||||
| private int checkCompleteInfoScoreCount(WxCUser cUser) { | |||||
| private int checkCompleteInfoScoreCount(WxCUserBasicInfo user) { | |||||
| WxScoreHistory scoreHistory = new WxScoreHistory(); | WxScoreHistory scoreHistory = new WxScoreHistory(); | ||||
| scoreHistory.updateTenantInfo(cUser); | |||||
| scoreHistory.setCUserId(cUser.getId()); | |||||
| scoreHistory.updateFinalTenantInfo(user); | |||||
| scoreHistory.setCUserId(user.getId()); | |||||
| scoreHistory.setScoreType(EnumScoreType.COMPLETE_INFO.getCode()); | scoreHistory.setScoreType(EnumScoreType.COMPLETE_INFO.getCode()); | ||||
| return wxScoreHistoryMapper.countList(scoreHistory); | return wxScoreHistoryMapper.countList(scoreHistory); | ||||
| } | } | ||||
| private int infoAddScore(WxCUserBasicInfo userInfo) { | |||||
| private int infoAddScore(WxCUserBasicInfo user) { | |||||
| int addScoreNumber = 0; | int addScoreNumber = 0; | ||||
| WxCUser user = wxCUserService.getById(userInfo.getId()); | |||||
| if (user == null || checkCompleteInfoScoreCount(user) > 0) | |||||
| if (checkCompleteInfoScoreCount(user) > 0) | |||||
| return 0; | return 0; | ||||
| // 1. 获取score rules | // 1. 获取score rules | ||||
| @@ -538,18 +548,18 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| int score = userInfo.getPoins() - scoreNum; | int score = userInfo.getPoins() - scoreNum; | ||||
| // 1. update score/ 修改basic表积分 | // 1. update score/ 修改basic表积分 | ||||
| userInfo.setPoins(score); | |||||
| wxCUserBasicInfoMapper.updateScore(userInfo); | |||||
| userInfo.setPoins(scoreNum); | |||||
| wxCUserBasicInfoMapper.updateDownScore(userInfo); | |||||
| // 2. 修改 c_user表积分 score | // 2. 修改 c_user表积分 score | ||||
| if (userInfo.getPhone() != null) { | |||||
| WxCUser wxCUser = new WxCUser(); | |||||
| wxCUser.setId(userInfo.getId()); | |||||
| wxCUser.updateTenantInfo(userInfo); | |||||
| wxCUser.setPhone(userInfo.getPhone()); | |||||
| wxCUser.setScore(score); | |||||
| wxCUserService.saveOrUpdate(wxCUser);; | |||||
| } | |||||
| // if (userInfo.getPhone() != null) { | |||||
| // WxCUser wxCUser = new WxCUser(); | |||||
| // wxCUser.setId(userInfo.getId()); | |||||
| // wxCUser.updateTenantInfo(userInfo); | |||||
| // wxCUser.setPhone(userInfo.getPhone()); | |||||
| // wxCUser.setScore(score); | |||||
| // wxCUserService.saveOrUpdate(wxCUser);; | |||||
| // } | |||||
| // 2. 记录历史 | // 2. 记录历史 | ||||
| recordReduceScoreHistory(scoreNum, reason, userInfo, userInfo.getId(), EnumScoreType.MEM_REDUCE); | recordReduceScoreHistory(scoreNum, reason, userInfo, userInfo.getId(), EnumScoreType.MEM_REDUCE); | ||||
| @@ -618,7 +628,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| Long userId = null; | Long userId = null; | ||||
| if (param instanceof WxCUser) { | if (param instanceof WxCUser) { | ||||
| wxCUser = (WxCUser) param; | wxCUser = (WxCUser) param; | ||||
| userId = wxCUser.getId(); | |||||
| userId = wxCUser.getUserId(); | |||||
| } | } | ||||
| if (param instanceof WxCUserCar) { | if (param instanceof WxCUserCar) { | ||||
| userCar = (WxCUserCar) param; | userCar = (WxCUserCar) param; | ||||
| @@ -628,6 +638,10 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| userBasicInfo = (WxCUserBasicInfo) param; | userBasicInfo = (WxCUserBasicInfo) param; | ||||
| userId = userBasicInfo.getId(); | userId = userBasicInfo.getId(); | ||||
| } | } | ||||
| if(userId == null){ | |||||
| logger.info("暂未成为会员:cUserId" + userId); | |||||
| return 0; | |||||
| } | |||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(userId); | WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(userId); | ||||
| if (wxCUserBasicInfo != null && wxCUserBasicInfo.getStatus().equals(EnumCUserBasicInfoStatus.LOCKED.getCode())) { | if (wxCUserBasicInfo != null && wxCUserBasicInfo.getStatus().equals(EnumCUserBasicInfoStatus.LOCKED.getCode())) { | ||||
| logger.info("会员权益被锁定:cUserId:" + userId); | logger.info("会员权益被锁定:cUserId:" + userId); | ||||
| @@ -635,19 +649,19 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| } | } | ||||
| switch (scoreType){ | switch (scoreType){ | ||||
| case LOGIN: { | case LOGIN: { | ||||
| return loginAddScore(wxCUser); | |||||
| return loginAddScore(wxCUserBasicInfo); | |||||
| } | } | ||||
| case BIND_CAR:{ | case BIND_CAR:{ | ||||
| return bindCarAddScore(userCar); | |||||
| return bindCarAddScore(wxCUserBasicInfo); | |||||
| } | } | ||||
| case WECHAT_PERSION:{ | case WECHAT_PERSION:{ | ||||
| return personAddScore(wxCUser); | |||||
| return personAddScore(wxCUserBasicInfo); | |||||
| } | } | ||||
| case WECHAT_PHONE:{ | case WECHAT_PHONE:{ | ||||
| return phoneAddScore(wxCUser); | |||||
| return phoneAddScore(wxCUserBasicInfo); | |||||
| } | } | ||||
| case COMPLETE_INFO:{ | case COMPLETE_INFO:{ | ||||
| return infoAddScore(userBasicInfo); | |||||
| return infoAddScore(wxCUserBasicInfo); | |||||
| } | } | ||||
| default: { | default: { | ||||
| @@ -140,8 +140,15 @@ | |||||
| <update id="updateScore" parameterType="com.iformall.domain.po.WxCUserBasicInfo"> | <update id="updateScore" parameterType="com.iformall.domain.po.WxCUserBasicInfo"> | ||||
| update wx_c_user_basic_info set poins=#{poins} | update wx_c_user_basic_info set poins=#{poins} | ||||
| where phone=#{phone} | |||||
| and id=#{id} | |||||
| where id=#{id} | |||||
| </update> | |||||
| <update id="updateUpScore" parameterType="com.iformall.domain.po.WxCUserBasicInfo"> | |||||
| update wx_c_user_basic_info set poins=poins+#{poins} | |||||
| where id=#{id} | |||||
| </update> | |||||
| <update id="updateDownScore" parameterType="com.iformall.domain.po.WxCUserBasicInfo"> | |||||
| update wx_c_user_basic_info set poins=poins-#{poins} | |||||
| where id=#{id} | |||||
| </update> | </update> | ||||
| <update id="updateNewId" parameterType="com.iformall.domain.vo.CUserBaseVo"> | <update id="updateNewId" parameterType="com.iformall.domain.vo.CUserBaseVo"> | ||||
| @@ -365,4 +365,10 @@ | |||||
| select * from (select tenant_id, open_id, count(tenant_id+open_id) as u_count from wx_c_user group by tenant_id, open_id) t where t.u_count >= 2 | select * from (select tenant_id, open_id, count(tenant_id+open_id) as u_count from wx_c_user group by tenant_id, open_id) t where t.u_count >= 2 | ||||
| </select> | </select> | ||||
| <update id="updateUserId" parameterType="com.iformall.domain.po.WxCUser"> | |||||
| update wx_c_user set user_id=#{userId} | |||||
| where id = #{id} | |||||
| </update> | |||||
| </mapper> | </mapper> | ||||
| @@ -179,12 +179,14 @@ | |||||
| <select id="loginCount" parameterType="com.iformall.domain.po.WxCreditHistory" resultType="java.lang.Integer"> | <select id="loginCount" parameterType="com.iformall.domain.po.WxCreditHistory" resultType="java.lang.Integer"> | ||||
| select COUNT(0) from wx_credit_history | select COUNT(0) from wx_credit_history | ||||
| where 1=1 | where 1=1 | ||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and `tenant_id` = #{tenantId} | |||||
| </if> | |||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and `parent_tenant_id` = #{parentTenantId} | |||||
| </if> | |||||
| <choose> | |||||
| <when test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and `parent_tenant_id` = #{parentTenantId} | |||||
| </when> | |||||
| <otherwise> | |||||
| and `tenant_id` = #{tenantId} | |||||
| </otherwise> | |||||
| </choose> | |||||
| <if test=" null != cUserId "> | <if test=" null != cUserId "> | ||||
| and `c_user_id` = #{cUserId} | and `c_user_id` = #{cUserId} | ||||
| </if> | </if> | ||||