| @@ -62,6 +62,7 @@ public class BaseController { | |||||
| /** | /** | ||||
| * 返回租户信息 | * 返回租户信息 | ||||
| * 集团版帐号tenantId为空,parentTenantId为集团tenantId | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| public TenantEntity getTenantInfo(){ | public TenantEntity getTenantInfo(){ | ||||
| @@ -76,6 +77,7 @@ public class BaseController { | |||||
| /** | /** | ||||
| * 处理集团新增修改所需租户信息(广场独立修改,集团修改全部) | * 处理集团新增修改所需租户信息(广场独立修改,集团修改全部) | ||||
| * 处理集团版 tenantId为空,parentTenantId为集团tenantId | |||||
| * ifParentUpdateTenantInfo | * ifParentUpdateTenantInfo | ||||
| */ | */ | ||||
| public TenantEntity ifParentUpdateTenantInfo() { | public TenantEntity ifParentUpdateTenantInfo() { | ||||
| @@ -149,10 +149,10 @@ public class WxProjectConfigController extends BaseController { | |||||
| if(wxMall.getId() == null){ | if(wxMall.getId() == null){ | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | ||||
| } | } | ||||
| TenantEntity TenantEntity = new TenantEntity(){{ | |||||
| setTenantId(wxMall.getId().toString()); | |||||
| }}; | |||||
| WxMall parentWxMall = wxMallService.getByTenantInfo(TenantEntity); | |||||
| TenantEntity tenantEntity = new TenantEntity(); | |||||
| tenantEntity.setTenantId(wxMall.getId().toString()); | |||||
| WxMall parentWxMall = wxMallService.getByTenantInfo(tenantEntity); | |||||
| if(parentWxMall == null || parentWxMall.getSaleType() != 100 | if(parentWxMall == null || parentWxMall.getSaleType() != 100 | ||||
| || !parentWxMall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) | || !parentWxMall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) | ||||
| || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ | || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ | ||||
| @@ -558,74 +558,72 @@ public class WxProjectConfigController extends BaseController { | |||||
| map.put("wxMall",wxMall); | map.put("wxMall",wxMall); | ||||
| List<WxMall> subWxMall = wxMallService.getSubByParentTenantId(wxMall.getTenantId()); | List<WxMall> subWxMall = wxMallService.getSubByParentTenantId(wxMall.getTenantId()); | ||||
| map.put("subWxMall",subWxMall); | map.put("subWxMall",subWxMall); | ||||
| WxCouponSendConfig wxCouponSendConfig = new WxCouponSendConfig(){{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| WxCouponSendConfig wxCouponSendConfig = new WxCouponSendConfig(); | |||||
| wxCouponSendConfig.setTenantId(wxMall.getTenantId()); | |||||
| List<WxCouponSendConfig> wxCouponSendConfigList = wxCouponSendConfigService.findList(wxCouponSendConfig); | List<WxCouponSendConfig> wxCouponSendConfigList = wxCouponSendConfigService.findList(wxCouponSendConfig); | ||||
| map.put("wxCouponSendConfigList",wxCouponSendConfigList); | map.put("wxCouponSendConfigList",wxCouponSendConfigList); | ||||
| WxScoreRules wxScoreRules = new WxScoreRules(){{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| WxScoreRules wxScoreRules = new WxScoreRules(); | |||||
| wxScoreRules.setTenantId(wxMall.getTenantId()); | |||||
| List<WxScoreRules> wxScoreRulesList = wxScoreRulesService.findList(wxScoreRules); | List<WxScoreRules> wxScoreRulesList = wxScoreRulesService.findList(wxScoreRules); | ||||
| map.put("wxScoreRulesList",wxScoreRulesList); | map.put("wxScoreRulesList",wxScoreRulesList); | ||||
| WxTemplateMsg wxTemplateMsg = new WxTemplateMsg(){{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| WxTemplateMsg wxTemplateMsg = new WxTemplateMsg(); | |||||
| wxTemplateMsg.setTenantId(wxMall.getTenantId()); | |||||
| List<WxTemplateMsg> wxTemplateMsgList = wxTemplateMsgService.findList(wxTemplateMsg); | List<WxTemplateMsg> wxTemplateMsgList = wxTemplateMsgService.findList(wxTemplateMsg); | ||||
| map.put("wxTemplateMsgList",wxTemplateMsgList); | map.put("wxTemplateMsgList",wxTemplateMsgList); | ||||
| WxQuestion wxQuestion = new WxQuestion(){{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| WxQuestion wxQuestion = new WxQuestion(); | |||||
| wxQuestion.setTenantId(wxMall.getTenantId()); | |||||
| List<WxQuestion> wxQuestionList = wxQuestionService.findList(wxQuestion); | List<WxQuestion> wxQuestionList = wxQuestionService.findList(wxQuestion); | ||||
| map.put("wxQuestionList",wxQuestionList); | map.put("wxQuestionList",wxQuestionList); | ||||
| WxMsgValidationcodeModel wxMsgValidationcodeModel = new WxMsgValidationcodeModel(){{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| WxMsgValidationcodeModel wxMsgValidationcodeModel = new WxMsgValidationcodeModel(); | |||||
| wxMsgValidationcodeModel.setTenantId(wxMall.getTenantId()); | |||||
| List<WxMsgValidationcodeModel> wxMsgValidationcodeModelList = wxMsgValidationcodeModelService.findList(wxMsgValidationcodeModel); | List<WxMsgValidationcodeModel> wxMsgValidationcodeModelList = wxMsgValidationcodeModelService.findList(wxMsgValidationcodeModel); | ||||
| map.put("wxMsgValidationcodeModelList",wxMsgValidationcodeModelList); | map.put("wxMsgValidationcodeModelList",wxMsgValidationcodeModelList); | ||||
| WxFlowConfig wxFlowConfig = new WxFlowConfig(){{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| WxFlowConfig wxFlowConfig = new WxFlowConfig(); | |||||
| wxFlowConfig.setTenantId(wxMall.getTenantId()); | |||||
| List<WxFlowConfig> wxFlowConfigList = wxFlowConfigService.findList(wxFlowConfig); | List<WxFlowConfig> wxFlowConfigList = wxFlowConfigService.findList(wxFlowConfig); | ||||
| map.put("wxFlowConfigList",wxFlowConfigList); | map.put("wxFlowConfigList",wxFlowConfigList); | ||||
| TenantEntity tenantEntity = new TenantEntity() {{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| TenantEntity tenantEntity = new TenantEntity(); | |||||
| tenantEntity.setTenantId(wxMall.getTenantId()); | |||||
| ResultData wxMallBuildingFloorList = wxMallBuildingService.getBuildingFloorList(tenantEntity); | ResultData wxMallBuildingFloorList = wxMallBuildingService.getBuildingFloorList(tenantEntity); | ||||
| map.put("wxMallBuildingFloorList",wxMallBuildingFloorList.data); | map.put("wxMallBuildingFloorList",wxMallBuildingFloorList.data); | ||||
| WxPayAccount wxPayAccount = wxPayAccountService.getByTenantId(wxMall.getTenantId()); | WxPayAccount wxPayAccount = wxPayAccountService.getByTenantId(wxMall.getTenantId()); | ||||
| map.put("wxPayAccount",wxPayAccount); | map.put("wxPayAccount",wxPayAccount); | ||||
| WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(wxMall.getTenantId()); | WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(wxMall.getTenantId()); | ||||
| map.put("wxPayAccountBill",wxPayAccountBill); | map.put("wxPayAccountBill",wxPayAccountBill); | ||||
| WxAppinfo wxAppinfo = new WxAppinfo() {{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| WxAppinfo wxAppinfo = new WxAppinfo(); | |||||
| wxAppinfo.setTenantId(wxMall.getTenantId()); | |||||
| List<WxAppinfo> wxAppinfoList = wxAppinfoService.getList(wxAppinfo); | List<WxAppinfo> wxAppinfoList = wxAppinfoService.getList(wxAppinfo); | ||||
| map.put("wxAppinfoList",wxAppinfoList); | map.put("wxAppinfoList",wxAppinfoList); | ||||
| MallUserInfo mallUserInfo = new MallUserInfo() {{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| setIsAdmin(1); | |||||
| }}; | |||||
| MallUserInfo mallUserInfo = new MallUserInfo(); | |||||
| mallUserInfo.setTenantId(wxMall.getTenantId()); | |||||
| mallUserInfo. setIsAdmin(1); | |||||
| List<MallUserInfo> mallUserInfoList = mallUserInfoService.findList(mallUserInfo); | List<MallUserInfo> mallUserInfoList = mallUserInfoService.findList(mallUserInfo); | ||||
| map.put("mallUserInfoList",mallUserInfoList); | map.put("mallUserInfoList",mallUserInfoList); | ||||
| WxMsgConfig wxMsgConfig = new WxMsgConfig() {{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| WxMsgConfig wxMsgConfig = new WxMsgConfig(); | |||||
| wxMsgConfig.setTenantId(wxMall.getTenantId()); | |||||
| WxMsgConfig wxMsgConfigObject = wxMsgConfigService.findObject(wxMsgConfig); | WxMsgConfig wxMsgConfigObject = wxMsgConfigService.findObject(wxMsgConfig); | ||||
| map.put("wxMsgConfig",wxMsgConfigObject); | map.put("wxMsgConfig",wxMsgConfigObject); | ||||
| WxPark wxPark = new WxPark(){{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| WxPark wxPark = new WxPark(); | |||||
| wxPark.setTenantId(wxMall.getTenantId()); | |||||
| WxPark wxParkObj = wxParkService.getByObj(wxPark); | WxPark wxParkObj = wxParkService.getByObj(wxPark); | ||||
| map.put("wxPark",wxParkObj); | map.put("wxPark",wxParkObj); | ||||
| WxWiWideInfo wxWiWideInfo = new WxWiWideInfo(){{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| WxWiWideInfo wxWiWideInfo = new WxWiWideInfo(); | |||||
| wxWiWideInfo.setTenantId(wxMall.getTenantId()); | |||||
| WxWiWideInfo wxWiWideInfoObject = wxWiWideInfoService.findObject(wxWiWideInfo); | WxWiWideInfo wxWiWideInfoObject = wxWiWideInfoService.findObject(wxWiWideInfo); | ||||
| map.put("wxWiWideInfo",wxWiWideInfoObject); | map.put("wxWiWideInfo",wxWiWideInfoObject); | ||||
| WxWeappInfo wxWeappInfo = new WxWeappInfo(){{ | |||||
| setTenantId(wxMall.getTenantId()); | |||||
| }}; | |||||
| WxWeappInfo wxWeappInfo = new WxWeappInfo(); | |||||
| wxWeappInfo.setTenantId(wxMall.getTenantId()); | |||||
| List<WxWeappInfo> wxAuthorizerInfoList = wxAuthorizerInfoService.getList(wxWeappInfo); | List<WxWeappInfo> wxAuthorizerInfoList = wxAuthorizerInfoService.getList(wxWeappInfo); | ||||
| map.put("wxAuthorizerInfoList",wxAuthorizerInfoList); | map.put("wxAuthorizerInfoList",wxAuthorizerInfoList); | ||||
| @@ -652,10 +650,9 @@ public class WxProjectConfigController extends BaseController { | |||||
| // if(subTenantIds == null || subTenantIds.length == 0){ | // if(subTenantIds == null || subTenantIds.length == 0){ | ||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | // return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | ||||
| // } | // } | ||||
| TenantEntity TenantEntity = new TenantEntity(){{ | |||||
| setTenantId(tenantId); | |||||
| }}; | |||||
| WxMall parentWxMall = wxMallService.getByTenantInfo(TenantEntity); | |||||
| TenantEntity tenantEntity = new TenantEntity(); | |||||
| tenantEntity.setTenantId(tenantId); | |||||
| WxMall parentWxMall = wxMallService.getByTenantInfo(tenantEntity); | |||||
| if(parentWxMall == null || parentWxMall.getSaleType() != 100 | if(parentWxMall == null || parentWxMall.getSaleType() != 100 | ||||
| || !parentWxMall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) | || !parentWxMall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) | ||||
| || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ | || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ | ||||
| @@ -689,10 +686,10 @@ public class WxProjectConfigController extends BaseController { | |||||
| }else{ | }else{ | ||||
| subTenantIdStrs = StringUtils.join(subTenantIds, ','); | subTenantIdStrs = StringUtils.join(subTenantIds, ','); | ||||
| } | } | ||||
| TenantEntity TenantEntity = new TenantEntity(){{ | |||||
| setTenantId(tenantId); | |||||
| }}; | |||||
| WxMall parentWxMall = wxMallService.getByTenantInfo(TenantEntity); | |||||
| TenantEntity tenantEntity = new TenantEntity(); | |||||
| tenantEntity.setTenantId(tenantId); | |||||
| WxMall parentWxMall = wxMallService.getByTenantInfo(tenantEntity); | |||||
| if(parentWxMall == null || parentWxMall.getSaleType() != 100 | if(parentWxMall == null || parentWxMall.getSaleType() != 100 | ||||
| || !parentWxMall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) | || !parentWxMall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) | ||||
| || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ | || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ | ||||
| @@ -3,6 +3,7 @@ package com.iformall.controller.market; | |||||
| import com.alibaba.fastjson.JSONArray; | import com.alibaba.fastjson.JSONArray; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.annotation.SystemControllerLog; | import com.iformall.annotation.SystemControllerLog; | ||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.controller.base.BaseController; | import com.iformall.controller.base.BaseController; | ||||
| @@ -54,6 +55,14 @@ public class WxGameController extends BaseController { | |||||
| if (StringUtils.isBlank(wxGame.getCouponIds())) { | if (StringUtils.isBlank(wxGame.getCouponIds())) { | ||||
| wxGame.setCouponIds(JSONArray.toJSONString(new String[0])); | wxGame.setCouponIds(JSONArray.toJSONString(new String[0])); | ||||
| } | } | ||||
| if(wxGame.getPlayCreditLimit() != null && wxGame.getPlayCreditLimit() >= 0){ | |||||
| if(wxGame.getPlayCredit() == null || wxGame.getPlayCredit() <= 0){ | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL,"游戏消耗积分不能为空或为0"); | |||||
| } | |||||
| if(wxGame.getPlayLimit() == null || wxGame.getPlayLimit() == 0){ | |||||
| wxGame.setPlayLimit(-1); | |||||
| } | |||||
| } | |||||
| wxGame.setStatus(EnumGameStatus.STATUS_THROW_IN.getCode()); | wxGame.setStatus(EnumGameStatus.STATUS_THROW_IN.getCode()); | ||||
| wxGame.updateTenantInfo(getTenantInfo()); | wxGame.updateTenantInfo(getTenantInfo()); | ||||
| wxGameService.saveOrUpdate(wxGame); | wxGameService.saveOrUpdate(wxGame); | ||||
| @@ -68,6 +77,14 @@ public class WxGameController extends BaseController { | |||||
| if (StringUtils.isBlank(wxGame.getCouponIds())) { | if (StringUtils.isBlank(wxGame.getCouponIds())) { | ||||
| wxGame.setCouponIds(JSONArray.toJSONString(new String[0])); | wxGame.setCouponIds(JSONArray.toJSONString(new String[0])); | ||||
| } | } | ||||
| if(wxGame.getPlayCreditLimit() != null && wxGame.getPlayCreditLimit() >= 0){ | |||||
| if(wxGame.getPlayCredit() == null || wxGame.getPlayCredit() <= 0){ | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL,"游戏消耗积分不能为空或为0"); | |||||
| } | |||||
| if(wxGame.getPlayLimit() == null || wxGame.getPlayLimit() == 0){ | |||||
| wxGame.setPlayLimit(-1); | |||||
| } | |||||
| } | |||||
| wxGame.updateTenantInfo(getTenantInfo()); | wxGame.updateTenantInfo(getTenantInfo()); | ||||
| wxGameService.saveOrUpdate(wxGame); | wxGameService.saveOrUpdate(wxGame); | ||||
| return new ResultData(); | return new ResultData(); | ||||
| @@ -56,6 +56,9 @@ public class WxCUserBasicInfoController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private WxCUserBasicInfoService wxCUserBasicInfoService; | private WxCUserBasicInfoService wxCUserBasicInfoService; | ||||
| @Autowired | |||||
| private WxCUserBasicChildService wxCUserBasicChildService; | |||||
| @Autowired | @Autowired | ||||
| private WxCUserTagsService wxCUserTagsService; | private WxCUserTagsService wxCUserTagsService; | ||||
| @@ -86,6 +89,9 @@ public class WxCUserBasicInfoController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private WxMerchantMapper wxMerchantMapper; | private WxMerchantMapper wxMerchantMapper; | ||||
| @Autowired | |||||
| private WxCreditHistoryService wxCreditHistoryService; | |||||
| private void setUserInfoLevel(WxCUserBasicInfo info) { | private void setUserInfoLevel(WxCUserBasicInfo info) { | ||||
| if (info.getPoins() == null || info.getPoins() == 0) { | if (info.getPoins() == null || info.getPoins() == 0) { | ||||
| @@ -101,6 +107,14 @@ public class WxCUserBasicInfoController extends BaseController { | |||||
| } | } | ||||
| } | } | ||||
| private void setUserChildren(WxCUserBasicInfo info) { | |||||
| WxCUserBasicChild uChild = new WxCUserBasicChild(); | |||||
| uChild.setTenantId(info.getFinalTenantId()); | |||||
| uChild.setCUserId(info.getId()); | |||||
| info.setChildrenList(wxCUserBasicChildService.findList(uChild)); | |||||
| } | |||||
| private void setUserInfoTag(WxCUserBasicInfo info) { | private void setUserInfoTag(WxCUserBasicInfo info) { | ||||
| if (info.getTagId() != null) { | if (info.getTagId() != null) { | ||||
| @@ -129,6 +143,16 @@ public class WxCUserBasicInfoController extends BaseController { | |||||
| info.setCarCount(wxCUserCarService.countUserCar(wxCUserCar)); | info.setCarCount(wxCUserCarService.countUserCar(wxCUserCar)); | ||||
| } | } | ||||
| private void setCreditSumDate(WxCUserBasicInfo info){ | |||||
| WxCreditHistory wxCreditHistory = new WxCreditHistory(); | |||||
| wxCreditHistory.setTenantId(info.getFinalTenantId()); | |||||
| wxCreditHistory.setCUserId(info.getId()); | |||||
| wxCreditHistory.setStartTime(info.getCreditStartTime()); | |||||
| wxCreditHistory.setEndTime(info.getCreditEndTime()); | |||||
| info.setAddCredit(wxCreditHistoryService.getAddCreditSummary(wxCreditHistory)); | |||||
| info.setLesCredit(wxCreditHistoryService.getLesCreditSummary(wxCreditHistory)); | |||||
| } | |||||
| @ApiOperation("分页列表接口") | @ApiOperation("分页列表接口") | ||||
| @GetMapping("list") | @GetMapping("list") | ||||
| @ApiImplicitParams({ | @ApiImplicitParams({ | ||||
| @@ -155,6 +179,9 @@ public class WxCUserBasicInfoController extends BaseController { | |||||
| for (WxCUserBasicInfo info : page.getList()) { | for (WxCUserBasicInfo info : page.getList()) { | ||||
| // setUserInfoLevel(info); | // setUserInfoLevel(info); | ||||
| setUserInfoCarCount(info); | setUserInfoCarCount(info); | ||||
| info.setCreditStartTime(wxCUserBasicInfo.getCreditStartTime()); | |||||
| info.setCreditEndTime(wxCUserBasicInfo.getCreditEndTime()); | |||||
| setCreditSumDate(info); | |||||
| } | } | ||||
| } | } | ||||
| return new ResultData(page); | return new ResultData(page); | ||||
| @@ -231,6 +258,7 @@ public class WxCUserBasicInfoController extends BaseController { | |||||
| setUserInfoTag(info); | setUserInfoTag(info); | ||||
| setUserInfoLevel(info); | setUserInfoLevel(info); | ||||
| setUserInfoCar(info); | setUserInfoCar(info); | ||||
| setUserChildren(info); | |||||
| return new ResultData(info); | return new ResultData(info); | ||||
| } | } | ||||
| @@ -32,6 +32,7 @@ public class WxCUserCarController extends BaseController { | |||||
| public ResultData list(@ModelAttribute WxCUserCar wxCUserCar, Integer pageNum, Integer pageSize) { | public ResultData list(@ModelAttribute WxCUserCar wxCUserCar, Integer pageNum, Integer pageSize) { | ||||
| logger.debug("[" + getIpAddr() + "] WxCUserCarController::list"); | logger.debug("[" + getIpAddr() + "] WxCUserCarController::list"); | ||||
| if (null == wxCUserCar) wxCUserCar = new WxCUserCar(); | if (null == wxCUserCar) wxCUserCar = new WxCUserCar(); | ||||
| wxCUserCar.updateTenantInfo(getTenantInfo()); | |||||
| final PageInfo<WxCUserCar> page = wxCUserCarService.listAsPage(wxCUserCar, pageNum, pageSize); | final PageInfo<WxCUserCar> page = wxCUserCarService.listAsPage(wxCUserCar, pageNum, pageSize); | ||||
| return new ResultData(page); | return new ResultData(page); | ||||
| } | } | ||||
| @@ -2,16 +2,22 @@ package com.iformall.controller.mem; | |||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.annotation.SystemControllerLog; | import com.iformall.annotation.SystemControllerLog; | ||||
| import com.iformall.annotation.TenantIgnore; | |||||
| import com.iformall.common.ErrorCode; | import com.iformall.common.ErrorCode; | ||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.controller.base.BaseController; | import com.iformall.controller.base.BaseController; | ||||
| import com.iformall.domain.po.MallUserInfo; | import com.iformall.domain.po.MallUserInfo; | ||||
| import com.iformall.domain.po.WxCreditHistory; | import com.iformall.domain.po.WxCreditHistory; | ||||
| import com.iformall.domain.po.WxMerchant; | |||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.WxCreditHistoryVo; | import com.iformall.domain.vo.WxCreditHistoryVo; | ||||
| import com.iformall.enums.EnumMerchantStatus; | |||||
| import com.iformall.enums.EnumScoreType; | |||||
| import com.iformall.enums.EnumUserType; | |||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.service.WxCreditHistoryService; | import com.iformall.service.WxCreditHistoryService; | ||||
| import com.iformall.service.WxMerchantService; | |||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||
| import io.swagger.annotations.ApiImplicitParams; | import io.swagger.annotations.ApiImplicitParams; | ||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
| @@ -32,7 +38,10 @@ public class WxCreditHistoryController extends BaseController { | |||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | private final Logger logger = LoggerFactory.getLogger(this.getClass()); | ||||
| @Autowired | @Autowired | ||||
| private WxCreditHistoryService wxCreditHistoryService; | |||||
| WxCreditHistoryService wxCreditHistoryService; | |||||
| @Autowired | |||||
| private WxMerchantService wxMerchantService; | |||||
| @ApiOperation("分页列表接口") | @ApiOperation("分页列表接口") | ||||
| @GetMapping("list") | @GetMapping("list") | ||||
| @@ -79,10 +88,25 @@ public class WxCreditHistoryController extends BaseController { | |||||
| public ResultData add(@RequestBody WxCreditHistory wxCreditHistory) { | public ResultData add(@RequestBody WxCreditHistory wxCreditHistory) { | ||||
| logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::add"); | logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::add"); | ||||
| MallUserInfo user = getUser(); | MallUserInfo user = getUser(); | ||||
| //wxCreditHistory.updateTenantInfo(user); | |||||
| wxCreditHistory.setTenantId(user.getFinalTenantId()); | wxCreditHistory.setTenantId(user.getFinalTenantId()); | ||||
| wxCreditHistory.setFinalTenantId(user.getFinalTenantId()); | wxCreditHistory.setFinalTenantId(user.getFinalTenantId()); | ||||
| wxCreditHistory.setOperatorId(user.getId()); | wxCreditHistory.setOperatorId(user.getId()); | ||||
| wxCreditHistory.setOperatorType(EnumUserType.MALLUSER.getCode()); | |||||
| String desc = ""; | |||||
| if(wxCreditHistory.getCreditType().equals(EnumScoreType.SPEND_CREDIT.getCode())){ | |||||
| WxMerchant byId = wxMerchantService.getById(wxCreditHistory.getMerchantId()); | |||||
| desc = "管理端手动积分:消费商户["+byId.getName()+"] 消费金额["+wxCreditHistory.getSpendStr()+"元]"; | |||||
| }else if(wxCreditHistory.getCreditType().equals(EnumScoreType.REDUCE_CREDIT.getCode())){ | |||||
| desc = "管理端手动扣减积分"; | |||||
| if(StringUtils.isNotBlank(wxCreditHistory.getChangePurpose())){ | |||||
| desc = desc + "["+wxCreditHistory.getChangePurpose()+"]"; | |||||
| } | |||||
| }else{ | |||||
| desc = "管理端("+user.getUsername()+")操作未知积分来源"; | |||||
| } | |||||
| wxCreditHistory.setChangePurpose(desc); | |||||
| try { | try { | ||||
| wxCreditHistoryService.creditUsercheck(wxCreditHistory.getCUserId(),getTenantInfo()) ; | wxCreditHistoryService.creditUsercheck(wxCreditHistory.getCUserId(),getTenantInfo()) ; | ||||
| WxCreditHistory credit = wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | WxCreditHistory credit = wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | ||||
| @@ -116,13 +140,6 @@ public class WxCreditHistoryController extends BaseController { | |||||
| @GetMapping("exportData") | @GetMapping("exportData") | ||||
| @SystemControllerLog(description = "积分历史-导出数据") | @SystemControllerLog(description = "积分历史-导出数据") | ||||
| public void exportData(@ModelAttribute WxCreditHistory wxCreditHistory, HttpServletRequest request, HttpServletResponse response) { | public void exportData(@ModelAttribute WxCreditHistory wxCreditHistory, HttpServletRequest request, HttpServletResponse response) { | ||||
| // wxCreditHistory.updateTenantInfo(getTenantInfo()); | |||||
| // TenantEntity tenantEntity = ifParentUpdateTenantInfo(); | |||||
| // if(StringUtils.isNotBlank(tenantEntity.getParentTenantId())){ | |||||
| // wxCreditHistory.setTenantId(tenantEntity.getParentTenantId()); | |||||
| // }else{ | |||||
| // wxCreditHistory.setTenantId(tenantEntity.getTenantId()); | |||||
| // } | |||||
| wxCreditHistory.setTenantId(getTenantInfo().getFinalTenantId()); | wxCreditHistory.setTenantId(getTenantInfo().getFinalTenantId()); | ||||
| wxCreditHistory.setFinalTenantId(getTenantInfo().getFinalTenantId()); | wxCreditHistory.setFinalTenantId(getTenantInfo().getFinalTenantId()); | ||||
| wxCreditHistoryService.exportData(request, response, wxCreditHistory); | wxCreditHistoryService.exportData(request, response, wxCreditHistory); | ||||
| @@ -133,17 +150,27 @@ public class WxCreditHistoryController extends BaseController { | |||||
| @SystemControllerLog(description = "积分历史-积分统计概览") | @SystemControllerLog(description = "积分历史-积分统计概览") | ||||
| public ResultData getCreditSummary(@ModelAttribute WxCreditHistory wxCreditHistory) { | public ResultData getCreditSummary(@ModelAttribute WxCreditHistory wxCreditHistory) { | ||||
| logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::getCreditSummary"); | logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::getCreditSummary"); | ||||
| // wxCreditHistory.updateTenantInfo(getTenantInfo()); | |||||
| // TenantEntity tenantEntity = ifParentUpdateTenantInfo(); | |||||
| // if(StringUtils.isNotBlank(tenantEntity.getParentTenantId())){ | |||||
| // wxCreditHistory.setTenantId(tenantEntity.getParentTenantId()); | |||||
| // }else{ | |||||
| // wxCreditHistory.setTenantId(tenantEntity.getTenantId()); | |||||
| // } | |||||
| TenantEntity tenantInfo = getTenantInfo(); | TenantEntity tenantInfo = getTenantInfo(); | ||||
| wxCreditHistory.setTenantId(tenantInfo.getFinalTenantId()); | wxCreditHistory.setTenantId(tenantInfo.getFinalTenantId()); | ||||
| wxCreditHistory.setFinalTenantId(tenantInfo.getFinalTenantId()); | wxCreditHistory.setFinalTenantId(tenantInfo.getFinalTenantId()); | ||||
| return wxCreditHistoryService.getCreditSummary(wxCreditHistory); | return wxCreditHistoryService.getCreditSummary(wxCreditHistory); | ||||
| } | } | ||||
| @ApiOperation("积分清零计划") | |||||
| @PostMapping("clearCreditByYear") | |||||
| @SystemControllerLog(description = "积分清零计划") | |||||
| @TenantIgnore | |||||
| public ResultData clearCreditByYear(@RequestBody WxCreditHistory wxCreditHistory) { | |||||
| logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::clearCreditByYear"); | |||||
| if(wxCreditHistory == null){ | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL) ; | |||||
| } | |||||
| if(StringUtils.isBlank(wxCreditHistory.getFinalTenantId())){ | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL) ; | |||||
| } | |||||
| wxCreditHistoryService.clearCreditByYear(wxCreditHistory); | |||||
| return new ResultData(Result.SUCCESS); | |||||
| } | |||||
| } | } | ||||
| @@ -0,0 +1,63 @@ | |||||
| CREATE DEFINER=`root`@`%` PROCEDURE `user_credit_clear`(IN `cutOffDate` VARCHAR(50),IN `finalTableIndex` VARCHAR(50)) | |||||
| BEGIN | |||||
| DECLARE done INT DEFAULT 0; | |||||
| DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET done = -1; | |||||
| select concat(finalTableIndex,'_',date_format(now(),'%Y%m%d%H%i')) into @tableSuffix; | |||||
| #START TRANSACTION; | |||||
| set @backUpSql1_0 = concat('CREATE TABLE `wx_credit_clear_md',@tableSuffix,'` (' | |||||
| ,'`id` bigint(20) NOT NULL,' | |||||
| ,'`user_id` bigint(20) DEFAULT NULL,' | |||||
| ,'`final_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,' | |||||
| ,'`credit` int(11) DEFAULT NULL COMMENT \'用户当前总积分\',' | |||||
| ,'`sum_credit` int(11) DEFAULT NULL COMMENT \'用户当前清零截止时间后总积分\',' | |||||
| ,'`credit_amount` int(11) DEFAULT NULL COMMENT \'用户清零扣减积分\',' | |||||
| ,'`cut_off_date` datetime(0) DEFAULT NULL COMMENT \'清零截止时间\',' | |||||
| ,'PRIMARY KEY (`id`) USING BTREE' | |||||
| ,') ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;'); | |||||
| PREPARE back_up_sql1_0 FROM @backUpSql1_0; | |||||
| EXECUTE back_up_sql1_0; | |||||
| DEALLOCATE PREPARE back_up_sql1_0; | |||||
| INSERT into zz_process_log VALUES(NOW(),'user_credit_clear()','创建积分清零数据处理备份表',@backUpSql1_0); | |||||
| set @backUpSql1_1 = concat('insert into `wx_credit_clear_md',@tableSuffix,'`' | |||||
| ,'(`id`, `user_id`, `final_tenant_id`, `credit`, `sum_credit`, `credit_amount`, `cut_off_date`)' | |||||
| ,' select (select unix_timestamp(now()) + CEILING(RAND()*90000+10000)) id,wcubi.id user_id,wcubi.final_tenant_id,wcubi.credit,ifnull(wch.sum_credit,0) sum_credit,(ifnull(wch.sum_credit,0)-wcubi.credit) credit_amount,\'',cutOffDate,'\'' | |||||
| ,' from wx_c_user_basic_info',finalTableIndex,' wcubi' | |||||
| ,' left join (select c_user_id,sum(credit_num) sum_credit from wx_credit_history',finalTableIndex,' where credit_num > 0 and create_date >= \'',cutOffDate,'\' group by c_user_id) wch on wch.c_user_id = wcubi.id' | |||||
| ,' where wcubi.credit > ifnull(wch.sum_credit,0);'); | |||||
| PREPARE back_up_sql1_1 FROM @backUpSql1_1; | |||||
| EXECUTE back_up_sql1_1; | |||||
| DEALLOCATE PREPARE back_up_sql1_1; | |||||
| INSERT into zz_process_log VALUES(NOW(),'user_credit_clear()','添加积分清零数据处理',@backUpSql1_1); | |||||
| set @backUpSql1_2 = concat('insert into `wx_credit_history',finalTableIndex,'`' | |||||
| ,'(`id`, `tenant_id`, `c_user_id`, `credit_amount`, `credit_num`, `credit_type`, `create_date`, `operator_type`, `operator_id`) ' | |||||
| ,'select id,final_tenant_id,user_id,sum_credit,credit_amount,14,now(),4,0' | |||||
| ,' from `wx_credit_clear_md',@tableSuffix,'`;'); | |||||
| PREPARE back_up_sql1_2 FROM @backUpSql1_2; | |||||
| EXECUTE back_up_sql1_2; | |||||
| DEALLOCATE PREPARE back_up_sql1_2; | |||||
| INSERT into zz_process_log VALUES(NOW(),'user_credit_clear()','添加积分历史',@backUpSql1_2); | |||||
| set @backUpSql1_3 = concat('update wx_c_user_basic_info',finalTableIndex,' wcubi ' | |||||
| ,'left join `wx_credit_clear_md',@tableSuffix,'` wccm on wcubi.id = wccm.user_id' | |||||
| ,' set wcubi.credit = (wcubi.credit + wccm.credit_amount), wcubi.update_date = now()' | |||||
| ,' where wccm.id is not null;'); | |||||
| PREPARE back_up_sql1_3 FROM @backUpSql1_3; | |||||
| EXECUTE back_up_sql1_3; | |||||
| DEALLOCATE PREPARE back_up_sql1_3; | |||||
| INSERT into zz_process_log VALUES(NOW(),'user_credit_clear()','修改用户积分',@backUpSql1_3); | |||||
| #IF done = -1 THEN | |||||
| # ROLLBACK; | |||||
| # ELSE | |||||
| # COMMIT; | |||||
| # END IF; | |||||
| END | |||||
| @@ -0,0 +1,199 @@ | |||||
| ALTER TABLE `wx_coupon_action_log_0` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_1` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_2` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_3` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_4` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_5` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_6` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_7` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_8` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_9` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_10` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_11` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_12` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_13` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_14` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_15` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_16` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_17` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_18` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_19` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_20` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_21` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_22` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_23` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_24` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_25` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_26` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_27` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_28` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_29` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_30` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_31` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_32` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_33` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_34` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_35` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_36` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_37` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_38` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_39` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_40` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_41` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_42` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_43` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_44` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_45` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_46` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_47` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_48` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_49` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_50` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_51` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_52` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_53` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_54` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_55` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_56` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_57` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_58` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_59` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_60` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_61` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_62` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_63` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_64` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_65` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_66` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_67` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_68` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_69` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_70` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_71` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_72` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_73` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_74` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_75` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_76` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_77` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_78` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_79` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_80` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_81` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_82` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_83` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_84` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_85` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_86` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_87` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_88` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_89` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_90` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_91` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_92` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_93` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_94` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_95` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_96` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_97` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_98` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| ALTER TABLE `wx_coupon_action_log_99` ADD COLUMN `operator_id` bigint(20) AFTER `create_time_md`; | |||||
| @@ -0,0 +1,7 @@ | |||||
| ALTER TABLE `wx_game` | |||||
| ADD COLUMN `play_credit_limit` int(11) NOT NULL DEFAULT -1 AFTER `award_limit`, | |||||
| ADD COLUMN `play_credit` int(11) AFTER `play_credit_limit`; | |||||
| ALTER TABLE `wx_game_action_log` | |||||
| ADD COLUMN `type` int(11) NOT NULL DEFAULT 0 AFTER `create_time`; | |||||
| @@ -0,0 +1,8 @@ | |||||
| INSERT INTO `wx_tags_type`(`id`, `name`, `group_id`, `group_name`, `flag`) VALUES (29, '子女', 2, '生活属性', 0); | |||||
| INSERT INTO `wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (166, '婴儿', 2, '生活属性', 29, '子女'); | |||||
| INSERT INTO `wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (167, '幼儿', 2, '生活属性', 29, '子女'); | |||||
| INSERT INTO `wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (168, '学龄前', 2, '生活属性', 29, '子女'); | |||||
| INSERT INTO `wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (169, '学龄初', 2, '生活属性', 29, '子女'); | |||||
| INSERT INTO `wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (170, '学龄中', 2, '生活属性', 29, '子女'); | |||||
| INSERT INTO `wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (171, '学龄晚', 2, '生活属性', 29, '子女'); | |||||
| @@ -13,6 +13,7 @@ import com.iformall.enums.EnumAssignTagsTrigger; | |||||
| import com.iformall.enums.EnumScoreType; | import com.iformall.enums.EnumScoreType; | ||||
| import com.iformall.enums.EnumUserType; | import com.iformall.enums.EnumUserType; | ||||
| import com.iformall.service.*; | import com.iformall.service.*; | ||||
| import com.iformall.utils.Constant; | |||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||
| import io.swagger.annotations.ApiImplicitParams; | import io.swagger.annotations.ApiImplicitParams; | ||||
| @@ -23,6 +24,7 @@ import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
| import java.math.BigDecimal; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -35,7 +37,6 @@ import java.util.List; | |||||
| public class WxCUserController extends BaseController { | public class WxCUserController extends BaseController { | ||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | private final Logger logger = LoggerFactory.getLogger(this.getClass()); | ||||
| @Autowired | @Autowired | ||||
| private WxCUserBasicInfoService wxCUserBasicInfoService; | private WxCUserBasicInfoService wxCUserBasicInfoService; | ||||
| @@ -48,6 +49,9 @@ public class WxCUserController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private WxMerchantBUserService wxMerchantBUserService; | private WxMerchantBUserService wxMerchantBUserService; | ||||
| @Autowired | |||||
| private WxMerchantService wxMerchantService; | |||||
| @Autowired | @Autowired | ||||
| private WxCUserFromBService wxCUserFromBService; | private WxCUserFromBService wxCUserFromBService; | ||||
| @@ -57,7 +61,6 @@ public class WxCUserController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private WxCreditHistoryService wxCreditHistoryService; | private WxCreditHistoryService wxCreditHistoryService; | ||||
| /** | /** | ||||
| * 会员更新信息 | * 会员更新信息 | ||||
| * | * | ||||
| @@ -76,70 +79,147 @@ public class WxCUserController extends BaseController { | |||||
| if (StringUtils.isEmpty(wxCUserFromBDto.getAppId())) { | if (StringUtils.isEmpty(wxCUserFromBDto.getAppId())) { | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "C端appId不能为空"); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "C端appId不能为空"); | ||||
| } | } | ||||
| if (wxCUserFromBDto.getUserId() == null) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "bUserId不能为空"); | |||||
| if (StringUtils.isEmpty(wxCUserFromBDto.getPhone())) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "C端手机号不能为空"); | |||||
| } | } | ||||
| // if (wxCUserFromBDto.getUserId() == null) { | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "bUserId不能为空"); | |||||
| // } | |||||
| //根据bUserId查询B端用户是否存在 | //根据bUserId查询B端用户是否存在 | ||||
| WxMerchantBUser bUser = wxMerchantBUserService.getById(wxCUserFromBDto.getUserId()); | |||||
| // WxMerchantBUser bUser = wxMerchantBUserService.getById(wxCUserFromBDto.getUserId()); | |||||
| WxMerchantBUser bUser = getLoginBUser(); | |||||
| if (bUser == null) { | if (bUser == null) { | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "B端用户不存在"); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "B端用户不存在"); | ||||
| } | } | ||||
| WxMerchant wxMerchant = wxMerchantService.getById(bUser.getMerchantId()); | |||||
| if (wxMerchant == null) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "商户不存在"); | |||||
| } | |||||
| final IdWorker idWorker = IdWorker.get(); | final IdWorker idWorker = IdWorker.get(); | ||||
| WxCUserFromB wxCUserFromB = wxCUserFromBService.getByOpenidAndAppId(wxCUserFromBDto); | WxCUserFromB wxCUserFromB = wxCUserFromBService.getByOpenidAndAppId(wxCUserFromBDto); | ||||
| //查询C端微信信息 | |||||
| WxCUser wxCUser = new WxCUser(); | WxCUser wxCUser = new WxCUser(); | ||||
| wxCUser.setAppId(wxCUserFromBDto.getAppId()); | wxCUser.setAppId(wxCUserFromBDto.getAppId()); | ||||
| wxCUser.setOpenId(wxCUserFromBDto.getOpenid()); | wxCUser.setOpenId(wxCUserFromBDto.getOpenid()); | ||||
| wxCUser = wxCUserService.getByOpenId(wxCUser); | wxCUser = wxCUserService.getByOpenId(wxCUser); | ||||
| if (wxCUserFromB == null) { | |||||
| //TODO phone可能为空 | |||||
| String phone = wxCUser.getPhone(); | |||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.findInfoByPhone(bUser, phone); | |||||
| //查询会员信息 | |||||
| //List<WxCUserBasicInfo> byPhone = wxCUserBasicInfoService.findByPhone(bUser, phone); | |||||
| //存在会员信息 | |||||
| if (wxCUserBasicInfo != null) { | |||||
| //更新会员信息 | |||||
| if (!StringUtils.isEmpty(wxCUserFromBDto.getName())) { | |||||
| wxCUserBasicInfo.setName(wxCUserFromBDto.getName()); | |||||
| boolean isAddCredit = false; | |||||
| WxCUserBasicInfo wxCUserBasicInfo = null; | |||||
| if(wxCUserFromB != null){ | |||||
| wxCUserBasicInfo = wxCUserBasicInfoService.getById(wxCUserFromB.getCUserId(),bUser.getFinalTenantId()); | |||||
| if (!wxCUserBasicInfo.getPhone().equals(wxCUserFromBDto.getPhone())){ | |||||
| TenantEntity tenantEntity = new TenantEntity(); | |||||
| tenantEntity.setTenantId(wxCUser.getTenantId()); | |||||
| tenantEntity.setParentTenantId(wxCUser.getParentTenantId()); | |||||
| WxCUserBasicInfo infoByPhone = wxCUserBasicInfoService.findInfoByPhone(tenantEntity, wxCUserFromBDto.getPhone()); | |||||
| if(infoByPhone != null){ | |||||
| return new ResultData(ErrorCode.USER_PHONE_IS_FOUND,"手机号已存在"); | |||||
| } | } | ||||
| if (wxCUserFromBDto != null) { | |||||
| wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate()); | |||||
| wxCUser.setPhone(wxCUserFromBDto.getPhone()); | |||||
| wxCUserBasicInfo.setPhone(wxCUserFromBDto.getPhone()); | |||||
| } | |||||
| if (StringUtils.isNotEmpty(wxCUserFromBDto.getName())) { | |||||
| if(StringUtils.isEmpty(wxCUserBasicInfo.getName())){ | |||||
| isAddCredit = true; | |||||
| } | } | ||||
| if (wxCUserFromBDto.getSex() != null) { | |||||
| wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex()); | |||||
| wxCUserBasicInfo.setName(wxCUserFromBDto.getName()); | |||||
| } | |||||
| if (wxCUserFromBDto.getBirthdate() != null) { | |||||
| wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate()); | |||||
| } | |||||
| if (wxCUserFromBDto.getSex() != null) { | |||||
| wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex()); | |||||
| } | |||||
| if (StringUtils.isNotEmpty(wxCUserFromBDto.getAddress())) { | |||||
| wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress()); | |||||
| } | |||||
| wxCUserBasicInfoService.update(wxCUserBasicInfo); | |||||
| }else{ | |||||
| wxCUserFromB = new WxCUserFromB(); | |||||
| if(wxCUser != null){ | |||||
| if(wxCUser.getUserId() != null){ | |||||
| wxCUserBasicInfo = wxCUserBasicInfoService.getById(wxCUser.getUserId(),wxCUser.getFinalTenantId()); | |||||
| if (!wxCUserBasicInfo.getPhone().equals(wxCUserFromBDto.getPhone())){ | |||||
| TenantEntity tenantEntity = new TenantEntity(); | |||||
| tenantEntity.setTenantId(wxCUser.getTenantId()); | |||||
| tenantEntity.setParentTenantId(wxCUser.getParentTenantId()); | |||||
| WxCUserBasicInfo infoByPhone = wxCUserBasicInfoService.findInfoByPhone(tenantEntity, wxCUserFromBDto.getPhone()); | |||||
| if(infoByPhone != null){ | |||||
| return new ResultData(ErrorCode.USER_PHONE_IS_FOUND,"手机号已存在"); | |||||
| } | |||||
| wxCUser.setPhone(wxCUserFromBDto.getPhone()); | |||||
| wxCUserBasicInfo.setPhone(wxCUserFromBDto.getPhone()); | |||||
| } | |||||
| if (StringUtils.isNotEmpty(wxCUserFromBDto.getName())) { | |||||
| if(StringUtils.isEmpty(wxCUserBasicInfo.getName())){ | |||||
| isAddCredit = true; | |||||
| } | |||||
| wxCUserBasicInfo.setName(wxCUserFromBDto.getName()); | |||||
| } | |||||
| if (wxCUserFromBDto.getBirthdate() != null) { | |||||
| wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate()); | |||||
| } | |||||
| if (wxCUserFromBDto.getSex() != null) { | |||||
| wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex()); | |||||
| } | |||||
| if (StringUtils.isNotEmpty(wxCUserFromBDto.getAddress())) { | |||||
| wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress()); | |||||
| } | |||||
| wxCUserBasicInfoService.update(wxCUserBasicInfo); | |||||
| }else{ | |||||
| TenantEntity tenantEntity = new TenantEntity(); | |||||
| tenantEntity.setTenantId(wxCUser.getTenantId()); | |||||
| tenantEntity.setParentTenantId(wxCUser.getParentTenantId()); | |||||
| WxCUserBasicInfo infoByPhone = wxCUserBasicInfoService.findInfoByPhone(tenantEntity, wxCUserFromBDto.getPhone()); | |||||
| if(infoByPhone != null){ | |||||
| return new ResultData(ErrorCode.USER_PHONE_IS_FOUND,"手机号已存在"); | |||||
| } | |||||
| isAddCredit = true; | |||||
| wxCUserBasicInfo = new WxCUserBasicInfo(); | |||||
| wxCUserBasicInfo.setId(idWorker.nextId()); | |||||
| wxCUserBasicInfo.setTenantId("," + wxCUser.getTenantId() + ","); | |||||
| wxCUserBasicInfo.setFinalTenantId(wxCUser.getFinalTenantId()); | |||||
| wxCUserBasicInfo.setPhone(wxCUserFromBDto.getPhone()); | |||||
| if (StringUtils.isNotEmpty(wxCUserFromBDto.getName())) { | |||||
| wxCUserBasicInfo.setName(wxCUserFromBDto.getName()); | |||||
| } | |||||
| if (wxCUserFromBDto.getBirthdate() != null) { | |||||
| wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate()); | |||||
| } | |||||
| if (wxCUserFromBDto.getSex() != null) { | |||||
| wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex()); | |||||
| } | |||||
| if (!StringUtils.isEmpty(wxCUserFromBDto.getAddress())) { | |||||
| wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress()); | |||||
| } | |||||
| wxCUserBasicInfo.setLoginCount(1); | |||||
| wxCUserBasicInfo.setActiveTime(new Date()); | |||||
| wxCUserBasicInfo.setCreateDate(new Date()); | |||||
| wxCUserBasicInfo.setUpdateDate(new Date()); | |||||
| wxCUserBasicInfoService.save(wxCUserBasicInfo); | |||||
| } | } | ||||
| if (!StringUtils.isEmpty(wxCUserFromBDto.getAddress())) { | |||||
| wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress()); | |||||
| }else{ | |||||
| TenantEntity tenantEntity = new TenantEntity(); | |||||
| tenantEntity.setTenantId(bUser.getTenantId()); | |||||
| tenantEntity.setParentTenantId(bUser.getParentTenantId()); | |||||
| WxCUserBasicInfo infoByPhone = wxCUserBasicInfoService.findInfoByPhone(tenantEntity, wxCUserFromBDto.getPhone()); | |||||
| if(infoByPhone != null){ | |||||
| return new ResultData(ErrorCode.USER_PHONE_IS_FOUND,"手机号已存在"); | |||||
| } | } | ||||
| wxCUserBasicInfo.setPhone(wxCUser.getPhone()); | |||||
| wxCUserBasicInfo.setUpdateDate(new Date()); | |||||
| wxCUserBasicInfoService.update(wxCUserBasicInfo); | |||||
| wxScoreRulesService.addScore(getTenantInfo(),EnumScoreType.COMPLETE_INFO, wxCUserBasicInfo); | |||||
| //增加积分 | |||||
| addCredit(wxCUserBasicInfo, EnumScoreType.COMPLETE_INFO, wxCUserFromBDto.getUserId(), wxCUserFromB); | |||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo,bUser); | |||||
| //新增来自B端的会员关联数据 | |||||
| wxCUserFromB = new WxCUserFromB(); | |||||
| wxCUserFromB.setBUserId(wxCUserFromBDto.getUserId()); | |||||
| wxCUserFromB.setCUserId(wxCUserBasicInfo.getId()); | |||||
| wxCUserFromB.setOpenid(wxCUserFromBDto.getOpenid()); | |||||
| wxCUserFromB.setMerchantId(bUser.getMerchantId()); | |||||
| wxCUserFromB.updateTenantInfo(bUser); | |||||
| wxCUserFromB.setAppId(wxCUserFromBDto.getAppId()); | |||||
| wxCUserFromB.setInfo(JSONObject.toJSONString(wxCUserBasicInfo)); | |||||
| wxCUserFromBService.saveOrUpdate(wxCUserFromB); | |||||
| } else { | |||||
| //新增来自B端的会员 | |||||
| long cUserId = idWorker.nextId(); | |||||
| isAddCredit = true; | |||||
| wxCUserBasicInfo = new WxCUserBasicInfo(); | wxCUserBasicInfo = new WxCUserBasicInfo(); | ||||
| wxCUserBasicInfo.setId(cUserId); | |||||
| if (!StringUtils.isEmpty(wxCUserFromBDto.getName())) { | |||||
| wxCUserBasicInfo.setId(idWorker.nextId()); | |||||
| wxCUserBasicInfo.setTenantId("," + bUser.getTenantId() + ","); | |||||
| wxCUserBasicInfo.setFinalTenantId(bUser.getFinalTenantId()); | |||||
| wxCUserBasicInfo.setPhone(wxCUserFromBDto.getPhone()); | |||||
| if (StringUtils.isNotEmpty(wxCUserFromBDto.getName())) { | |||||
| wxCUserBasicInfo.setName(wxCUserFromBDto.getName()); | wxCUserBasicInfo.setName(wxCUserFromBDto.getName()); | ||||
| } | } | ||||
| if (wxCUserFromBDto != null) { | |||||
| if (wxCUserFromBDto.getBirthdate() != null) { | |||||
| wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate()); | wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate()); | ||||
| } | } | ||||
| if (wxCUserFromBDto.getSex() != null) { | if (wxCUserFromBDto.getSex() != null) { | ||||
| @@ -148,57 +228,57 @@ public class WxCUserController extends BaseController { | |||||
| if (!StringUtils.isEmpty(wxCUserFromBDto.getAddress())) { | if (!StringUtils.isEmpty(wxCUserFromBDto.getAddress())) { | ||||
| wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress()); | wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress()); | ||||
| } | } | ||||
| wxCUserBasicInfo.setPhone(wxCUser.getPhone()); | |||||
| wxCUserBasicInfo.setLoginCount(1); | |||||
| wxCUserBasicInfo.setActiveTime(new Date()); | |||||
| wxCUserBasicInfo.setCreateDate(new Date()); | |||||
| wxCUserBasicInfo.setUpdateDate(new Date()); | wxCUserBasicInfo.setUpdateDate(new Date()); | ||||
| wxCUserBasicInfoService.save(wxCUserBasicInfo); | wxCUserBasicInfoService.save(wxCUserBasicInfo); | ||||
| //新增来自B端的会员关联数据 | |||||
| wxCUserFromB = new WxCUserFromB(); | |||||
| wxCUserFromB.setBUserId(wxCUserFromBDto.getUserId()); | |||||
| wxCUserFromB.setCUserId(cUserId); | |||||
| wxCUserFromB.setOpenid(wxCUserFromBDto.getOpenid()); | |||||
| wxCUserFromB.setMerchantId(bUser.getMerchantId()); | |||||
| wxCUserFromB.updateTenantInfo(bUser); | |||||
| wxCUserFromB.setAppId(wxCUserFromBDto.getAppId()); | |||||
| wxCUserFromB.setInfo(JSONObject.toJSONString(wxCUserBasicInfo)); | |||||
| wxCUserFromBService.saveOrUpdate(wxCUserFromB); | |||||
| } | |||||
| } else { | |||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(wxCUserFromB.getCUserId(),bUser.getFinalTenantId()); | |||||
| if (!StringUtils.isEmpty(wxCUserFromBDto.getName())) { | |||||
| wxCUserBasicInfo.setName(wxCUserFromBDto.getName()); | |||||
| } | |||||
| if (wxCUserFromBDto != null) { | |||||
| wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate()); | |||||
| } | |||||
| if (wxCUserFromBDto.getSex() != null) { | |||||
| wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex()); | |||||
| } | |||||
| if (!StringUtils.isEmpty(wxCUserFromBDto.getAddress())) { | |||||
| wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress()); | |||||
| wxCUser = new WxCUser(); | |||||
| wxCUser.setTenantId(bUser.getTenantId()); | |||||
| wxCUser.setParentTenantId(bUser.getParentTenantId()); | |||||
| wxCUser.setAppId(wxCUserFromBDto.getAppId()); | |||||
| wxCUser.setOpenId(wxCUserFromBDto.getOpenid()); | |||||
| wxCUser.setPhone(wxCUserBasicInfo.getPhone()); | |||||
| wxCUser.setLoginCount(1); | |||||
| wxCUser.setUserId(wxCUserBasicInfo.getId()); | |||||
| } | } | ||||
| wxCUserBasicInfo.setPhone(wxCUser.getPhone()); | |||||
| wxCUserBasicInfoService.update(wxCUserBasicInfo); | |||||
| } | |||||
| wxCUserService.saveOrUpdate(wxCUser); | |||||
| if(isAddCredit){ | |||||
| wxScoreRulesService.addScore(getTenantInfo(),EnumScoreType.COMPLETE_INFO, wxCUserBasicInfo); | wxScoreRulesService.addScore(getTenantInfo(),EnumScoreType.COMPLETE_INFO, wxCUserBasicInfo); | ||||
| //增加积分 | //增加积分 | ||||
| addCredit(wxCUserBasicInfo, EnumScoreType.COMPLETE_INFO, wxCUserFromBDto.getUserId(), wxCUserFromB); | |||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo,bUser); | |||||
| //更新B端来源会员 | |||||
| wxCUserFromB.setInfo(JSONObject.toJSONString(wxCUserBasicInfo)); | |||||
| wxCUserFromBService.saveOrUpdate(wxCUserFromB); | |||||
| addCredit(wxCUserBasicInfo, EnumScoreType.COMPLETE_INFO, bUser,wxMerchant); | |||||
| } | } | ||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo,bUser); | |||||
| wxCUserFromB.setBUserId(wxCUserFromBDto.getUserId()); | |||||
| wxCUserFromB.setCUserId(wxCUserBasicInfo.getId()); | |||||
| wxCUserFromB.setOpenid(wxCUserFromBDto.getOpenid()); | |||||
| wxCUserFromB.setMerchantId(bUser.getMerchantId()); | |||||
| wxCUserFromB.updateTenantInfo(bUser); | |||||
| wxCUserFromB.setAppId(wxCUserFromBDto.getAppId()); | |||||
| //更新B端来源会员 | |||||
| wxCUserFromB.setInfo(JSONObject.toJSONString(wxCUserBasicInfo)); | |||||
| wxCUserFromBService.saveOrUpdate(wxCUserFromB); | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| private void addCredit(WxCUserBasicInfo wxCUserBasicInfo, EnumScoreType enumScoreType, Long userId, TenantEntity tenantEntity) { | |||||
| private void addCredit(WxCUserBasicInfo wxCUserBasicInfo, EnumScoreType enumScoreType, WxMerchantBUser bUser,WxMerchant wxMerchant) { | |||||
| WxCreditHistory wxCreditHistory = new WxCreditHistory(); | WxCreditHistory wxCreditHistory = new WxCreditHistory(); | ||||
| wxCreditHistory.setCUserId(wxCUserBasicInfo.getId()); | wxCreditHistory.setCUserId(wxCUserBasicInfo.getId()); | ||||
| wxCreditHistory.setMerchantId(wxMerchant.getId()); | |||||
| // wxCreditHistory.updateTenantInfo(tenantEntity); | // wxCreditHistory.updateTenantInfo(tenantEntity); | ||||
| wxCreditHistory.setTenantId(tenantEntity.getFinalTenantId()); | |||||
| wxCreditHistory.setFinalTenantId(getTenantInfo().getFinalTenantId()); | |||||
| wxCreditHistory.setTenantId(wxCUserBasicInfo.getFinalTenantId()); | |||||
| wxCreditHistory.setFinalTenantId(wxCUserBasicInfo.getFinalTenantId()); | |||||
| wxCreditHistory.setCreateDate(new Date()); | wxCreditHistory.setCreateDate(new Date()); | ||||
| wxCreditHistory.setCreditType(enumScoreType.getCode()); | wxCreditHistory.setCreditType(enumScoreType.getCode()); | ||||
| wxCreditHistory.setChangePurpose("商户端["+wxMerchant.getName()+"]操作完善个人信息"); | |||||
| wxCreditHistory.setOperatorType(EnumUserType.BUSER.getCode()); | wxCreditHistory.setOperatorType(EnumUserType.BUSER.getCode()); | ||||
| wxCreditHistory.setOperatorId(userId); | |||||
| wxCreditHistory.setOperatorId(bUser.getId()); | |||||
| wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | ||||
| } | } | ||||
| @@ -228,6 +308,16 @@ public class WxCUserController extends BaseController { | |||||
| if(wxCUserFromB!=null){ | if(wxCUserFromB!=null){ | ||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(wxCUserFromB.getCUserId(),wxCUserFromB.getFinalTenantId()); | WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(wxCUserFromB.getCUserId(),wxCUserFromB.getFinalTenantId()); | ||||
| return new ResultData(wxCUserBasicInfo); | return new ResultData(wxCUserBasicInfo); | ||||
| }else{ | |||||
| WxCUser wxCUser = new WxCUser(); | |||||
| wxCUser.updateTenantInfo(getTenantInfo()); | |||||
| wxCUser.setAppId(wxCUserFromBDto.getAppId()); | |||||
| wxCUser.setOpenId(wxCUserFromBDto.getOpenid()); | |||||
| WxCUser byOpenId = wxCUserService.getByOpenId(wxCUser); | |||||
| if(byOpenId != null && byOpenId.getUserId() != null){ | |||||
| WxCUserBasicInfo byId = wxCUserBasicInfoService.getById(byOpenId.getUserId(), byOpenId.getFinalTenantId()); | |||||
| return new ResultData(byId); | |||||
| } | |||||
| } | } | ||||
| return new ResultData(Result.SUCCESS,"查询成功",null); | return new ResultData(Result.SUCCESS,"查询成功",null); | ||||
| } | } | ||||
| @@ -102,7 +102,7 @@ public class WxCouponSendController extends BaseController { | |||||
| wxCouponSend.setSendType(EnumCouponSendSendType.MERCHANT.getCode()); | wxCouponSend.setSendType(EnumCouponSendSendType.MERCHANT.getCode()); | ||||
| wxCouponSend.setStatus(EnumCouponSendStatus.VALID.getCode()); | wxCouponSend.setStatus(EnumCouponSendStatus.VALID.getCode()); | ||||
| try { | try { | ||||
| wxCouponSendService.handSel(wxCouponSend, Long.parseLong(cUserId),EnumPayWay.PAY_WAY_NOT_UNPAY_MERCHANT); | |||||
| wxCouponSendService.handSel(wxCouponSend, Long.parseLong(cUserId),EnumPayWay.PAY_WAY_NOT_UNPAY_MERCHANT,getLoginBUser().getId()); | |||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error("注券异常: ", e); | logger.error("注券异常: ", e); | ||||
| return new ResultData(e.getErrorCode(), e.getMessage()); | return new ResultData(e.getErrorCode(), e.getMessage()); | ||||
| @@ -111,13 +111,17 @@ public class WxCreditHistoryController extends BaseController { | |||||
| //消费积分:取当前人的商户ID | //消费积分:取当前人的商户ID | ||||
| if (wxCreditHistory.getCreditType() == EnumScoreType.REDUCE_CREDIT.getCode()) { | if (wxCreditHistory.getCreditType() == EnumScoreType.REDUCE_CREDIT.getCode()) { | ||||
| wxCreditHistory.setMerchantId(getLoginBUser().getMerchantId()); | wxCreditHistory.setMerchantId(getLoginBUser().getMerchantId()); | ||||
| wxCreditHistory.setChangePurpose("商户端手动扣减积分["+wxCreditHistory.getChangePurpose()+"]"); | |||||
| } else { | } else { | ||||
| //新增积分: | //新增积分: | ||||
| //如果为商管商户 则消费商户按前端传入的进行记录 | //如果为商管商户 则消费商户按前端传入的进行记录 | ||||
| if (merchant != null && merchant.getIsAdmin() != null && merchant.getIsAdmin() == 1) { | if (merchant != null && merchant.getIsAdmin() != null && merchant.getIsAdmin() == 1) { | ||||
| wxCreditHistory.setMerchantId(wxCreditHistory.getMerchantId()); | wxCreditHistory.setMerchantId(wxCreditHistory.getMerchantId()); | ||||
| WxMerchant byId = wxMerchantService.getById(wxCreditHistory.getMerchantId()); | |||||
| wxCreditHistory.setChangePurpose("商户端手动积分:消费商户["+byId.getName()+"] 消费金额["+wxCreditHistory.getSpendStr()+"元]"); | |||||
| } else { | } else { | ||||
| wxCreditHistory.setMerchantId(getLoginBUser().getMerchantId()); | wxCreditHistory.setMerchantId(getLoginBUser().getMerchantId()); | ||||
| wxCreditHistory.setChangePurpose("商户端手动积分:消费商户["+merchant.getName()+"] 消费金额["+wxCreditHistory.getSpendStr()+"元]"); | |||||
| } | } | ||||
| } | } | ||||
| //B端操作用户 | //B端操作用户 | ||||
| @@ -5,7 +5,6 @@ import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.domain.po.base.BaseCUserEntity; | import com.iformall.domain.po.base.BaseCUserEntity; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.enums.EnumAppPlat; | |||||
| import com.iformall.domain.po.WxAppinfo; | import com.iformall.domain.po.WxAppinfo; | ||||
| import com.iformall.domain.po.WxCUser; | import com.iformall.domain.po.WxCUser; | ||||
| import com.iformall.domain.po.WxCUserBasicInfo; | import com.iformall.domain.po.WxCUserBasicInfo; | ||||
| @@ -13,8 +12,6 @@ import com.iformall.exception.MallinkException; | |||||
| import com.iformall.service.CUserTokenService; | import com.iformall.service.CUserTokenService; | ||||
| import com.iformall.service.WxAppinfoService; | import com.iformall.service.WxAppinfoService; | ||||
| import com.iformall.service.WxCUserBasicInfoService; | import com.iformall.service.WxCUserBasicInfoService; | ||||
| import com.iformall.service.WxCUserService; | |||||
| import com.iformall.service.cuser.CUserServiceFactory; | |||||
| import com.iformall.service.wechat.FmOpenService; | import com.iformall.service.wechat.FmOpenService; | ||||
| import com.iformall.utils.Constant; | import com.iformall.utils.Constant; | ||||
| import com.iformall.utils.IPUtil; | import com.iformall.utils.IPUtil; | ||||
| @@ -22,10 +19,11 @@ import com.iformall.utils.MaUtil; | |||||
| import com.iformall.utils.RedisCacheUtils; | import com.iformall.utils.RedisCacheUtils; | ||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.beans.factory.annotation.Qualifier; | import org.springframework.beans.factory.annotation.Qualifier; | ||||
| import org.springframework.data.redis.core.RedisTemplate; | import org.springframework.data.redis.core.RedisTemplate; | ||||
| import org.springframework.data.redis.core.ValueOperations; | |||||
| import org.springframework.web.bind.WebDataBinder; | import org.springframework.web.bind.WebDataBinder; | ||||
| import org.springframework.web.bind.annotation.InitBinder; | import org.springframework.web.bind.annotation.InitBinder; | ||||
| import org.springframework.web.bind.annotation.RestController; | import org.springframework.web.bind.annotation.RestController; | ||||
| @@ -37,15 +35,14 @@ import java.beans.PropertyEditorSupport; | |||||
| import java.text.ParseException; | import java.text.ParseException; | ||||
| import java.text.SimpleDateFormat; | import java.text.SimpleDateFormat; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.concurrent.TimeUnit; | |||||
| @RestController | @RestController | ||||
| public class BaseController { | public class BaseController { | ||||
| @Autowired | |||||
| private boolean isFmOpen; | |||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||||
| @Autowired | @Autowired | ||||
| private WxCUserService wxCUserService; | |||||
| private boolean isFmOpen; | |||||
| @Autowired | @Autowired | ||||
| private WxAppinfoService wxAppinfoService; | private WxAppinfoService wxAppinfoService; | ||||
| @@ -104,17 +101,10 @@ public class BaseController { | |||||
| public String getFinalTenantId() { | public String getFinalTenantId() { | ||||
| TenantEntity tenantEntity = getTenantInfo(); | TenantEntity tenantEntity = getTenantInfo(); | ||||
| String tenantId = tenantEntity.getTenantId(); | |||||
| return tenantEntity.getFinalTenantId(); | return tenantEntity.getFinalTenantId(); | ||||
| } | } | ||||
| // public Long getUserId() { | |||||
| // HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | |||||
| // Long cUserId = (Long) request.getAttribute(Constant.LOGIN_USER_KEY); | |||||
| // return cUserId; | |||||
| // } | |||||
| public Long getMemberId() throws Exception { | |||||
| public Long getMemberId() { | |||||
| HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | ||||
| Long memberId = (Long) request.getAttribute(Constant.LOGIN_MEMBER_KEY); | Long memberId = (Long) request.getAttribute(Constant.LOGIN_MEMBER_KEY); | ||||
| if(memberId == null){ | if(memberId == null){ | ||||
| @@ -130,8 +120,7 @@ public class BaseController { | |||||
| public WxCUser getWxCUser() { | public WxCUser getWxCUser() { | ||||
| HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | ||||
| BaseCUserEntity baseuser = (BaseCUserEntity) request.getAttribute(Constant.REQUEST_C_USER_KEY); | BaseCUserEntity baseuser = (BaseCUserEntity) request.getAttribute(Constant.REQUEST_C_USER_KEY); | ||||
| // Long cUserId = getUserId(); | |||||
| // WxCUser user = wxCUserService.getById(cUserId); | |||||
| if (baseuser == null) { | if (baseuser == null) { | ||||
| throw new MallinkException(ErrorCode.USER_IS_EMPTY); | throw new MallinkException(ErrorCode.USER_IS_EMPTY); | ||||
| } | } | ||||
| @@ -190,14 +179,6 @@ public class BaseController { | |||||
| String shortKey = "webapp:short:member:"+memberId; | String shortKey = "webapp:short:member:"+memberId; | ||||
| RedisCacheUtils.removeCache(cuserBasicInfoTemplate, shortKey); | RedisCacheUtils.removeCache(cuserBasicInfoTemplate, shortKey); | ||||
| } | } | ||||
| // public WxCUserBasicInfo getMember() throws Exception { | |||||
| // Long memberId = getMemberId(); | |||||
| // WxCUserBasicInfo member = wxCUserBasicInfoService.getById(memberId); | |||||
| // if (member == null) { | |||||
| // throw new MallinkException(ErrorCode.USER_IS_EMPTY); | |||||
| // } | |||||
| // return member; | |||||
| // } | |||||
| public WxAppinfo getAppInfo(String appId) { | public WxAppinfo getAppInfo(String appId) { | ||||
| return wxAppinfoService.getByAppId(appId); | return wxAppinfoService.getByAppId(appId); | ||||
| @@ -236,62 +217,56 @@ public class BaseController { | |||||
| byId = wxCUserBasicInfoService.getById(userId,getFinalTenantId()); | byId = wxCUserBasicInfoService.getById(userId,getFinalTenantId()); | ||||
| } | } | ||||
| // List<WxCUserBasicInfo> list = wxCUserBasicInfoService.findByPhone(tenantEntity, phone); | |||||
| WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(tenantEntity, userPhone); | WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(tenantEntity, userPhone); | ||||
| if (basicInfo != null) { | if (basicInfo != null) { | ||||
| if(byId != null && !byId.getPhone().equals(basicInfo.getPhone())){ | |||||
| return Long.valueOf(-1); | |||||
| if (byId != null) { | |||||
| if (!byId.getId().equals(basicInfo.getId())) { | |||||
| //数据库存在此手机号的会员,并且当前微信存在另一手机号会员 | |||||
| logger.error("会员" + userId + "更换手机号时,当前手机号会员表已存在:" + userPhone); | |||||
| return Long.valueOf(-1); | |||||
| } | |||||
| } | } | ||||
| if(!basicInfo.getTenantId().contains(","+tenantEntity.getTenantId()+",")){ | |||||
| basicInfo.setTenantId(basicInfo.getTenantId()+tenantEntity.getTenantId()+","); | |||||
| wxCUserBasicInfoService.update(basicInfo); | |||||
| if (!basicInfo.getTenantId().contains("," + tenantEntity.getTenantId() + ",")) { | |||||
| basicInfo.setTenantId(basicInfo.getTenantId() + tenantEntity.getTenantId() + ","); | |||||
| } | } | ||||
| // 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); | |||||
| return basicInfo.getId(); | |||||
| } else if(byId != null){ | |||||
| byId.setPhone(userPhone); | |||||
| byId.setNickName(userName); | |||||
| byId.setAvatarUrl(avatarUrl); | |||||
| byId.setSex(sex); | |||||
| wxCUserBasicInfoService.update(byId); | |||||
| removeCacheMember(byId.getId()); | |||||
| return byId.getId(); | |||||
| }else{ | |||||
| Date cur = new Date(); | |||||
| basicInfo = new WxCUserBasicInfo(); | |||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| basicInfo.setId(idWorker.nextId()); | |||||
| basicInfo.setTenantId(","+tenantEntity.getTenantId()+","); | |||||
| basicInfo.undateFinalTenantId(tenantEntity); | |||||
| basicInfo.setPhone(userPhone); | |||||
| basicInfo.setNickName(userName); | basicInfo.setNickName(userName); | ||||
| basicInfo.setAvatarUrl(avatarUrl); | basicInfo.setAvatarUrl(avatarUrl); | ||||
| basicInfo.setSex(sex); | basicInfo.setSex(sex); | ||||
| basicInfo.setLoginCount(1); | |||||
| basicInfo.setActiveTime(cur); | |||||
| basicInfo.setCreateDate(cur); | |||||
| basicInfo.setUpdateDate(cur); | |||||
| wxCUserBasicInfoService.save(basicInfo); | |||||
| wxCUserBasicInfoService.update(basicInfo); | |||||
| removeCacheMember(basicInfo.getId()); | removeCacheMember(basicInfo.getId()); | ||||
| return basicInfo.getId(); | return basicInfo.getId(); | ||||
| } else { | |||||
| if (byId != null) { | |||||
| if (!byId.getTenantId().contains("," + tenantEntity.getTenantId() + ",")) { | |||||
| byId.setTenantId(byId.getTenantId() + tenantEntity.getTenantId() + ","); | |||||
| } | |||||
| byId.setPhone(userPhone); | |||||
| byId.setNickName(userName); | |||||
| byId.setAvatarUrl(avatarUrl); | |||||
| byId.setSex(sex); | |||||
| wxCUserBasicInfoService.update(byId); | |||||
| removeCacheMember(basicInfo.getId()); | |||||
| return byId.getId(); | |||||
| } else { | |||||
| Date cur = new Date(); | |||||
| basicInfo = new WxCUserBasicInfo(); | |||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| basicInfo.setId(idWorker.nextId()); | |||||
| basicInfo.setTenantId("," + tenantEntity.getTenantId() + ","); | |||||
| basicInfo.setFinalTenantId(tenantEntity.getFinalTenantId()); | |||||
| basicInfo.setPhone(userPhone); | |||||
| basicInfo.setNickName(userName); | |||||
| basicInfo.setAvatarUrl(avatarUrl); | |||||
| basicInfo.setSex(sex); | |||||
| basicInfo.setLoginCount(1); | |||||
| basicInfo.setActiveTime(cur); | |||||
| basicInfo.setCreateDate(cur); | |||||
| basicInfo.setUpdateDate(cur); | |||||
| wxCUserBasicInfoService.save(basicInfo); | |||||
| removeCacheMember(basicInfo.getId()); | |||||
| return basicInfo.getId(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -4,9 +4,14 @@ import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.ErrorCode; | import com.iformall.common.ErrorCode; | ||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.MallUserInfo; | |||||
| import com.iformall.domain.po.WxCUser; | import com.iformall.domain.po.WxCUser; | ||||
| import com.iformall.domain.po.WxMerchant; | |||||
| import com.iformall.domain.po.base.BaseEntity; | import com.iformall.domain.po.base.BaseEntity; | ||||
| import com.iformall.domain.po.WxCreditHistory; | import com.iformall.domain.po.WxCreditHistory; | ||||
| import com.iformall.enums.EnumScoreType; | |||||
| import com.iformall.enums.EnumUserType; | |||||
| import com.iformall.exception.MallinkException; | |||||
| import com.iformall.service.WxCreditHistoryService; | import com.iformall.service.WxCreditHistoryService; | ||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||
| @@ -53,4 +58,38 @@ public class WxCreditHistoryController extends BaseController{ | |||||
| final PageInfo<WxCreditHistory> page = wxCreditHistoryService.listAsPage(wxCreditHistory, pageNum, pageSize); | final PageInfo<WxCreditHistory> page = wxCreditHistoryService.listAsPage(wxCreditHistory, pageNum, pageSize); | ||||
| return new ResultData(page); | return new ResultData(page); | ||||
| } | } | ||||
| @ApiOperation("新增接口") | |||||
| @PostMapping("add") | |||||
| public ResultData add(@RequestBody WxCreditHistory wxCreditHistory) { | |||||
| logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::add"); | |||||
| WxCUser wxCUser = getWxCUser(); | |||||
| if(wxCUser.getUserId() == null){ | |||||
| return new ResultData(ErrorCode.PHONE_NOT_FOUND,"用户未授权手机号"); | |||||
| } | |||||
| wxCreditHistory.setTenantId(wxCUser.getFinalTenantId()); | |||||
| wxCreditHistory.setCUserId(wxCUser.getId()); | |||||
| wxCreditHistory.setOperatorId(wxCUser.getId()); | |||||
| wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); | |||||
| if(wxCreditHistory.getCreditType().equals(EnumScoreType.GAME_ADD_CREDIT.getCode())){ | |||||
| wxCreditHistory.setChangePurpose(EnumScoreType.GAME_ADD_CREDIT.getMessage()); | |||||
| }else if(wxCreditHistory.getCreditType().equals(EnumScoreType.GAME_LES_CREDIT.getCode())){ | |||||
| wxCreditHistory.setChangePurpose(EnumScoreType.GAME_LES_CREDIT.getMessage()); | |||||
| }else{ | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,"未知操作"); | |||||
| } | |||||
| try { | |||||
| wxCreditHistoryService.creditUsercheck(wxCreditHistory.getCUserId(),getTenantInfo()) ; | |||||
| WxCreditHistory credit = wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | |||||
| removeCacheCUser(); | |||||
| return new ResultData(Result.SUCCESS, "操作成功", credit); | |||||
| } catch (MallinkException e) { | |||||
| logger.error(e.getMessage()); | |||||
| return new ResultData(e.getErrorCode(), e.getMessage()); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -28,7 +28,7 @@ public class WxCuserFloatingLayerController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| WxCuserFloatingLayerService wxCuserFloatingLayerService; | WxCuserFloatingLayerService wxCuserFloatingLayerService; | ||||
| @AuthIgnore | |||||
| // @AuthIgnore | |||||
| @ApiOperation("获取浮层") | @ApiOperation("获取浮层") | ||||
| @GetMapping("/getFloatingLayer") | @GetMapping("/getFloatingLayer") | ||||
| @ApiImplicitParams({ | @ApiImplicitParams({ | ||||
| @@ -1,15 +1,11 @@ | |||||
| package com.iformall.controller; | package com.iformall.controller; | ||||
| import com.github.pagehelper.Page; | |||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.ErrorCode; | import com.iformall.common.ErrorCode; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.enums.EnumGameStatus; | import com.iformall.enums.EnumGameStatus; | ||||
| import com.iformall.service.WxCouponOrderService; | import com.iformall.service.WxCouponOrderService; | ||||
| import com.iformall.service.WxGameService; | import com.iformall.service.WxGameService; | ||||
| import com.iformall.service.WxGameTemplateService; | |||||
| import com.iformall.service.WxOrderService; | |||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||
| import io.swagger.annotations.ApiImplicitParams; | import io.swagger.annotations.ApiImplicitParams; | ||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
| @@ -18,7 +14,6 @@ import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
| import java.util.HashMap; | |||||
| import java.util.Map; | import java.util.Map; | ||||
| @RestController | @RestController | ||||
| @@ -68,7 +68,7 @@ public class WxPressOrderController extends BaseController { | |||||
| @ApiOperation(value = "参与砍价", notes = "{\"orderId\":\"String\"}") | @ApiOperation(value = "参与砍价", notes = "{\"orderId\":\"String\"}") | ||||
| @PostMapping("pressOrderJoin") | @PostMapping("pressOrderJoin") | ||||
| @Transactional | |||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| public ResultData pressOrderJoin(@RequestBody Map<String, String> paramMap) { | public ResultData pressOrderJoin(@RequestBody Map<String, String> paramMap) { | ||||
| Date curDate = new Date(); | Date curDate = new Date(); | ||||
| String orderIdStr = paramMap.get("orderId"); | String orderIdStr = paramMap.get("orderId"); | ||||
| @@ -549,11 +549,6 @@ public class WxUserGrantController extends BaseController { | |||||
| if (user != null) { | if (user != null) { | ||||
| logger.debug(user.toString()); | logger.debug(user.toString()); | ||||
| boolean bFirstNickName = false; | |||||
| if(StringUtils.isNoneEmpty(user.getNickName())) { | |||||
| bFirstNickName = true; | |||||
| } | |||||
| WxMaService wxMaService = getWeappService(user.getAppId()); | WxMaService wxMaService = getWeappService(user.getAppId()); | ||||
| String session_key = user.getSessionKey(); | String session_key = user.getSessionKey(); | ||||
| @@ -592,13 +587,6 @@ public class WxUserGrantController extends BaseController { | |||||
| removeCacheCUser(); | removeCacheCUser(); | ||||
| if(bFirstNickName) { | |||||
| // 首次获取昵称 | |||||
| // 成长值 | |||||
| wxScoreRulesService.addScore(getTenantInfo(),EnumScoreType.WECHAT_PERSION, user); | |||||
| //增加积分 | |||||
| wxCUserService.addCredit(user, EnumScoreType.WECHAT_PERSION); | |||||
| } | |||||
| resultMap.put("openId", user.getOpenId()); | resultMap.put("openId", user.getOpenId()); | ||||
| resultMap.put("unionId", user.getUnionId()); | resultMap.put("unionId", user.getUnionId()); | ||||
| resultMap.put("msg", "获取用户信息成功!"); | resultMap.put("msg", "获取用户信息成功!"); | ||||
| @@ -624,9 +612,9 @@ public class WxUserGrantController extends BaseController { | |||||
| @PostMapping("/getUserPhone") | @PostMapping("/getUserPhone") | ||||
| @ApiOperation(value = "授权后获取用户的手机号", notes = "{\"encryptedData\":\"string\",\"iv\":\"string\"}") | @ApiOperation(value = "授权后获取用户的手机号", notes = "{\"encryptedData\":\"string\",\"iv\":\"string\"}") | ||||
| public ResultData getUserPhone(@RequestBody Map<String, String> map) { | public ResultData getUserPhone(@RequestBody Map<String, String> map) { | ||||
| logger.debug(map.toString()); | |||||
| logger.info(map.toString()); | |||||
| TenantEntity tenantEntity = getTenantInfo(); | TenantEntity tenantEntity = getTenantInfo(); | ||||
| Map resultMap = new HashMap(); | |||||
| String encryptedData = map.get("encryptedData"); | String encryptedData = map.get("encryptedData"); | ||||
| String iv = map.get("iv"); | String iv = map.get("iv"); | ||||
| @@ -638,6 +626,8 @@ public class WxUserGrantController extends BaseController { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "iv 不能为空"); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "iv 不能为空"); | ||||
| } | } | ||||
| Map resultMap = new HashMap(); | |||||
| WxCUser user = getWxCUser(); | WxCUser user = getWxCUser(); | ||||
| if (user == null) { | if (user == null) { | ||||
| @@ -645,7 +635,7 @@ public class WxUserGrantController extends BaseController { | |||||
| } | } | ||||
| boolean isFirstPhone = false; | boolean isFirstPhone = false; | ||||
| if(StringUtils.isBlank(user.getPhone())) { | |||||
| if(user.getUserId() == null) { | |||||
| isFirstPhone = true; | isFirstPhone = true; | ||||
| } | } | ||||
| @@ -660,18 +650,6 @@ public class WxUserGrantController extends BaseController { | |||||
| user.setPhone(phoneNoInfo.getPhoneNumber()); | user.setPhone(phoneNoInfo.getPhoneNumber()); | ||||
| user.setPurePhone(phoneNoInfo.getPurePhoneNumber()); | user.setPurePhone(phoneNoInfo.getPurePhoneNumber()); | ||||
| user.setCountryCode(phoneNoInfo.getCountryCode()); | user.setCountryCode(phoneNoInfo.getCountryCode()); | ||||
| if (isFirstPhone) { | |||||
| //检查是否存在会员信息 如果有 赋值积分 | |||||
| // WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(tenantEntity, user.getPhone()); | |||||
| // if (basicInfo != null ) { | |||||
| // int credit = user.getCredit() == null ? 0 : user.getCredit(); | |||||
| // int score = user.getScore() == null ? 0 : user.getScore(); | |||||
| // int memScore = basicInfo.getPoins() == null ? 0 : basicInfo.getPoins(); | |||||
| // int memCredit = basicInfo.getCredit() == null ? 0 : basicInfo.getCredit(); | |||||
| // user.setCredit(memCredit + credit); | |||||
| // user.setScore(memScore + score); | |||||
| // } | |||||
| } | |||||
| if (!user.getPhone().contains("*")) { // 用户手机非加密 | if (!user.getPhone().contains("*")) { // 用户手机非加密 | ||||
| String phone = user.getPhone(); | String phone = user.getPhone(); | ||||
| @@ -685,6 +663,8 @@ public class WxUserGrantController extends BaseController { | |||||
| return new ResultData(ErrorCode.USER_PHONE_IS_FOUND); | return new ResultData(ErrorCode.USER_PHONE_IS_FOUND); | ||||
| } | } | ||||
| user.setUserId(userBasicId); | user.setUserId(userBasicId); | ||||
| }else{ | |||||
| return new ResultData(ErrorCode.PHONE_DECODE_ERR, resultMap); | |||||
| } | } | ||||
| wxCUserService.saveOrUpdate(user); | wxCUserService.saveOrUpdate(user); | ||||
| wxCUserService.delForUserIdOnly(user.getId(),user.getUserId(),user.getTenantId()); | wxCUserService.delForUserIdOnly(user.getId(),user.getUserId(),user.getTenantId()); | ||||
| @@ -889,7 +869,7 @@ public class WxUserGrantController extends BaseController { | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| return new ResultData(Result.ERROR,e.getMessage()); | return new ResultData(Result.ERROR,e.getMessage()); | ||||
| } | } | ||||
| userCar.updateTenantInfo(getTenantInfo()); | |||||
| userCar.setCUserId(memberId); | userCar.setCUserId(memberId); | ||||
| List<WxCUserCar> list = wxCUserCarService.getList(userCar); | List<WxCUserCar> list = wxCUserCarService.getList(userCar); | ||||
| return new ResultData(Result.SUCCESS, "获取查询成功", list); | return new ResultData(Result.SUCCESS, "获取查询成功", list); | ||||
| @@ -976,10 +956,13 @@ public class WxUserGrantController extends BaseController { | |||||
| wxCreditHistory.setFinalTenantId(tenantEntity.getFinalTenantId()); | wxCreditHistory.setFinalTenantId(tenantEntity.getFinalTenantId()); | ||||
| wxCreditHistory.setCreateDate(new Date()); | wxCreditHistory.setCreateDate(new Date()); | ||||
| wxCreditHistory.setCreditType(EnumScoreType.COMPLETE_INFO.getCode()); | wxCreditHistory.setCreditType(EnumScoreType.COMPLETE_INFO.getCode()); | ||||
| wxCreditHistory.setChangePurpose(EnumScoreType.COMPLETE_INFO.getMessage()); | |||||
| wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); | wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); | ||||
| wxCreditHistory.setOperatorId(memberId); | wxCreditHistory.setOperatorId(memberId); | ||||
| wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | ||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, record,tenantEntity); | wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, record,tenantEntity); | ||||
| removeCacheCUser(); | |||||
| } | } | ||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| @@ -58,6 +58,7 @@ public class PosServiceImpl implements PosService { | |||||
| private final WxCouponOrderMapper couponOrderMapper; | private final WxCouponOrderMapper couponOrderMapper; | ||||
| private final WxCouponMerchantMapper couponMerchantMapper; | private final WxCouponMerchantMapper couponMerchantMapper; | ||||
| private final WxCouponMapper couponMapper; | private final WxCouponMapper couponMapper; | ||||
| private final WxMerchantMapper merchantMapper; | |||||
| /** | /** | ||||
| @@ -1357,12 +1358,12 @@ public class PosServiceImpl implements PosService { | |||||
| logger.info("核销已完成: " + couponOrderCVo.getId()); | logger.info("核销已完成: " + couponOrderCVo.getId()); | ||||
| } | } | ||||
| private int posAddCredit(WxCouponOrderCVo couponOrderCVo, WxCoupon coupon, Long merchantId, Long buUserId) { | |||||
| private int posAddCredit(WxCouponOrderCVo couponOrderCVo, WxCoupon coupon, WxMerchantBUser merchantBUser, WxMerchant wxMerchant) { | |||||
| try { | try { | ||||
| //-------此处为【现金支付】记录增加积分操作------- | //-------此处为【现金支付】记录增加积分操作------- | ||||
| WxCreditHistory creditHistory = new WxCreditHistory(); | WxCreditHistory creditHistory = new WxCreditHistory(); | ||||
| creditHistory.setOperatorType(EnumUserType.BUSER.getCode()); | creditHistory.setOperatorType(EnumUserType.BUSER.getCode()); | ||||
| creditHistory.setOperatorId(buUserId); | |||||
| creditHistory.setOperatorId(merchantBUser.getId()); | |||||
| creditHistory.setCUserId(couponOrderCVo.getcUserId()); | creditHistory.setCUserId(couponOrderCVo.getcUserId()); | ||||
| creditHistory.setCreateDate(new Date()); | creditHistory.setCreateDate(new Date()); | ||||
| // creditHistory.updateTenantInfo(couponOrderCVo); | // creditHistory.updateTenantInfo(couponOrderCVo); | ||||
| @@ -1373,7 +1374,8 @@ public class PosServiceImpl implements PosService { | |||||
| creditHistory.setBusinessId(coupon.getBusiness()); | creditHistory.setBusinessId(coupon.getBusiness()); | ||||
| creditHistory.setSpend(couponOrderCVo.getCouponPrice()); | creditHistory.setSpend(couponOrderCVo.getCouponPrice()); | ||||
| //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | ||||
| creditHistory.setMerchantId(merchantId); | |||||
| creditHistory.setMerchantId(wxMerchant.getId()); | |||||
| creditHistory.setChangePurpose("pos消费:消费商户["+wxMerchant.getName()+"] 卷名称["+coupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] "); | |||||
| creditHistory = creditHistoryService.saveOrUpdate(creditHistory); | creditHistory = creditHistoryService.saveOrUpdate(creditHistory); | ||||
| if (creditHistory.getCreditNum() != null) { | if (creditHistory.getCreditNum() != null) { | ||||
| return creditHistory.getCreditNum(); | return creditHistory.getCreditNum(); | ||||
| @@ -1386,12 +1388,12 @@ public class PosServiceImpl implements PosService { | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| private int posAddCreditForPay(WxMerchant merchant, Long buUserId, Long memId, Integer payment) { | |||||
| private int posAddCreditForPay(WxMerchant merchant,WxMerchantBUser buUser, Long memId, Integer payment) { | |||||
| try { | try { | ||||
| //-------此处为【现金支付】记录增加积分操作------- | //-------此处为【现金支付】记录增加积分操作------- | ||||
| WxCreditHistory creditHistory = new WxCreditHistory(); | WxCreditHistory creditHistory = new WxCreditHistory(); | ||||
| creditHistory.setOperatorType(EnumUserType.BUSER.getCode()); | creditHistory.setOperatorType(EnumUserType.BUSER.getCode()); | ||||
| creditHistory.setOperatorId(buUserId); | |||||
| creditHistory.setOperatorId(buUser.getId()); | |||||
| creditHistory.setCUserId(memId); | creditHistory.setCUserId(memId); | ||||
| creditHistory.setCreateDate(new Date()); | creditHistory.setCreateDate(new Date()); | ||||
| // creditHistory.updateTenantInfo(merchant); | // creditHistory.updateTenantInfo(merchant); | ||||
| @@ -1402,6 +1404,7 @@ public class PosServiceImpl implements PosService { | |||||
| creditHistory.setSpend(payment); | creditHistory.setSpend(payment); | ||||
| //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | ||||
| creditHistory.setMerchantId(merchant.getId()); | creditHistory.setMerchantId(merchant.getId()); | ||||
| creditHistory.setChangePurpose("pos消费:消费商户["+merchant.getName()+"] 消费金额["+creditHistory.getSpendStr()+"元]"); | |||||
| creditHistory = creditHistoryService.saveOrUpdate(creditHistory); | creditHistory = creditHistoryService.saveOrUpdate(creditHistory); | ||||
| if (creditHistory.getCreditNum() != null) { | if (creditHistory.getCreditNum() != null) { | ||||
| return creditHistory.getCreditNum(); | return creditHistory.getCreditNum(); | ||||
| @@ -1414,92 +1417,92 @@ public class PosServiceImpl implements PosService { | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| /** | |||||
| * 核销回退 | |||||
| * @param couponOrderCVo | |||||
| * @param buUserId | |||||
| * @param posOrderId | |||||
| */ | |||||
| private void cancelVerify(WxCouponOrderCVo couponOrderCVo, Long buUserId, Long posOrderId) { | |||||
| // 1. 积分历史回退 | |||||
| try { | |||||
| WxCreditHistory creditHistory = new WxCreditHistory(); | |||||
| creditHistory.setOperatorType(EnumUserType.BUSER.getCode()); | |||||
| creditHistory.setOperatorId(buUserId); | |||||
| creditHistory.setCUserId(couponOrderCVo.getcUserId()); | |||||
| // creditHistory.updateTenantInfo(couponOrderCVo); | |||||
| creditHistory.setFinalTenantId(couponOrderCVo.getFinalTenantId()); | |||||
| creditHistory.setTenantId(couponOrderCVo.getFinalTenantId()); | |||||
| creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode()); | |||||
| creditHistory.setCouponId(couponOrderCVo.getCouponId()); | |||||
| int num = creditHistoryService.cancelCredit(creditHistory); | |||||
| if (num <= 1) { | |||||
| logger.warn("核销积分历史回退: " + creditHistory.toString()); | |||||
| } | |||||
| } catch (Exception e) { | |||||
| String errMessage = "核销积分历史回退:" + e.getMessage(); | |||||
| logger.error(errMessage); | |||||
| throw new MallinkException(500, errMessage); | |||||
| } | |||||
| // 2. 成长值历史回退 | |||||
| try { | |||||
| WxScoreHistory scoreHistory = new WxScoreHistory(); | |||||
| // scoreHistory.updateTenantInfo(couponOrderCVo); | |||||
| scoreHistory.setTenantId(couponOrderCVo.getFinalTenantId()); | |||||
| scoreHistory.setFinalTenantId(couponOrderCVo.getFinalTenantId()); | |||||
| scoreHistory.setScoreType(EnumScoreType.CONSUMPTION.getCode()); | |||||
| scoreHistory.setCUserId(couponOrderCVo.getcUserId()); | |||||
| scoreHistory.setOrderId(couponOrderCVo.getOrderId()); | |||||
| int num = scoreRulesService.cancelScore(scoreHistory); | |||||
| if (num <= 1) { | |||||
| logger.warn("核销成长值历史回退: " + scoreHistory.toString()); | |||||
| } | |||||
| } catch (Exception e) { | |||||
| String errMessage = "核销成长值历史回退:" + e.getMessage(); | |||||
| logger.error(errMessage); | |||||
| throw new MallinkException(500, errMessage); | |||||
| } | |||||
| // 3. update posOrderId | |||||
| PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify(); | |||||
| posCouponOrderVerify.updateTenantInfo(couponOrderCVo); | |||||
| posCouponOrderVerify.setCouponOrderId(couponOrderCVo.getId()); | |||||
| posCouponOrderVerify.setPosOrderId(posOrderId); | |||||
| posCouponOrderVerify.setState(EnumEnableType.Enable.getCode()); | |||||
| List<PosCouponOrderVerify> posCouponOrderVerifyList = posCouponOrderVerifyService.getList(posCouponOrderVerify); | |||||
| if (posCouponOrderVerifyList.size() == 1) { | |||||
| posCouponOrderVerify = posCouponOrderVerifyList.get(0); | |||||
| if (posCouponOrderVerify != null) { | |||||
| try { | |||||
| posCouponOrderVerifyService.deleteById(posCouponOrderVerify.getId()); | |||||
| } catch(Exception e){ | |||||
| logger.error("db failed: couponOrder-" + couponOrderCVo.getId() + ", e:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| } | |||||
| } | |||||
| } else { | |||||
| logger.error(ErrorCode.VERIFY_POS_ORDER_NOT_EQUAL.getMessage() + ": " + posOrderId); | |||||
| throw new MallinkException(ErrorCode.VERIFY_POS_ORDER_NOT_EQUAL); | |||||
| } | |||||
| // 4. update couponOrder | |||||
| int num = 0; | |||||
| try { | |||||
| WxCouponOrder couponOrder = new WxCouponOrder(); | |||||
| couponOrder.setId(couponOrderCVo.getId()); | |||||
| couponOrder.updateTenantInfo(couponOrderCVo); | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | |||||
| couponOrder.setUpdateDate(new Date()); | |||||
| num = couponOrderMapper.cancelVerifyCouponOrder(couponOrder); | |||||
| } catch (Exception e) { | |||||
| logger.error("db failed: couponOrder-" + couponOrderCVo.getId() + ", e:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| } | |||||
| if (num != 1) { | |||||
| logger.error("核销异常:updatete num " + num); | |||||
| throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); | |||||
| } | |||||
| logger.info("核销已取消: " + couponOrderCVo.getId()); | |||||
| } | |||||
| // /** | |||||
| // * 核销回退 | |||||
| // * @param couponOrderCVo | |||||
| // * @param buUserId | |||||
| // * @param posOrderId | |||||
| // */ | |||||
| // private void cancelVerify(WxCouponOrderCVo couponOrderCVo, Long buUserId, Long posOrderId) { | |||||
| // // 1. 积分历史回退 | |||||
| // try { | |||||
| // WxCreditHistory creditHistory = new WxCreditHistory(); | |||||
| // creditHistory.setOperatorType(EnumUserType.BUSER.getCode()); | |||||
| // creditHistory.setOperatorId(buUserId); | |||||
| // creditHistory.setCUserId(couponOrderCVo.getcUserId()); | |||||
| //// creditHistory.updateTenantInfo(couponOrderCVo); | |||||
| // creditHistory.setFinalTenantId(couponOrderCVo.getFinalTenantId()); | |||||
| // creditHistory.setTenantId(couponOrderCVo.getFinalTenantId()); | |||||
| // creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode()); | |||||
| // creditHistory.setCouponId(couponOrderCVo.getCouponId()); | |||||
| // int num = creditHistoryService.cancelCredit(creditHistory); | |||||
| // if (num <= 1) { | |||||
| // logger.warn("核销积分历史回退: " + creditHistory.toString()); | |||||
| // } | |||||
| // } catch (Exception e) { | |||||
| // String errMessage = "核销积分历史回退:" + e.getMessage(); | |||||
| // logger.error(errMessage); | |||||
| // throw new MallinkException(500, errMessage); | |||||
| // } | |||||
| // // 2. 成长值历史回退 | |||||
| // try { | |||||
| // WxScoreHistory scoreHistory = new WxScoreHistory(); | |||||
| //// scoreHistory.updateTenantInfo(couponOrderCVo); | |||||
| // scoreHistory.setTenantId(couponOrderCVo.getFinalTenantId()); | |||||
| // scoreHistory.setFinalTenantId(couponOrderCVo.getFinalTenantId()); | |||||
| // scoreHistory.setScoreType(EnumScoreType.CONSUMPTION.getCode()); | |||||
| // scoreHistory.setCUserId(couponOrderCVo.getcUserId()); | |||||
| // scoreHistory.setOrderId(couponOrderCVo.getOrderId()); | |||||
| // int num = scoreRulesService.cancelScore(scoreHistory); | |||||
| // if (num <= 1) { | |||||
| // logger.warn("核销成长值历史回退: " + scoreHistory.toString()); | |||||
| // } | |||||
| // } catch (Exception e) { | |||||
| // String errMessage = "核销成长值历史回退:" + e.getMessage(); | |||||
| // logger.error(errMessage); | |||||
| // throw new MallinkException(500, errMessage); | |||||
| // } | |||||
| // | |||||
| // // 3. update posOrderId | |||||
| // PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify(); | |||||
| // posCouponOrderVerify.updateTenantInfo(couponOrderCVo); | |||||
| // posCouponOrderVerify.setCouponOrderId(couponOrderCVo.getId()); | |||||
| // posCouponOrderVerify.setPosOrderId(posOrderId); | |||||
| // posCouponOrderVerify.setState(EnumEnableType.Enable.getCode()); | |||||
| // List<PosCouponOrderVerify> posCouponOrderVerifyList = posCouponOrderVerifyService.getList(posCouponOrderVerify); | |||||
| // if (posCouponOrderVerifyList.size() == 1) { | |||||
| // posCouponOrderVerify = posCouponOrderVerifyList.get(0); | |||||
| // if (posCouponOrderVerify != null) { | |||||
| // try { | |||||
| // posCouponOrderVerifyService.deleteById(posCouponOrderVerify.getId()); | |||||
| // } catch(Exception e){ | |||||
| // logger.error("db failed: couponOrder-" + couponOrderCVo.getId() + ", e:" + e.getMessage()); | |||||
| // throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| // } | |||||
| // } | |||||
| // } else { | |||||
| // logger.error(ErrorCode.VERIFY_POS_ORDER_NOT_EQUAL.getMessage() + ": " + posOrderId); | |||||
| // throw new MallinkException(ErrorCode.VERIFY_POS_ORDER_NOT_EQUAL); | |||||
| // } | |||||
| // // 4. update couponOrder | |||||
| // int num = 0; | |||||
| // try { | |||||
| // WxCouponOrder couponOrder = new WxCouponOrder(); | |||||
| // couponOrder.setId(couponOrderCVo.getId()); | |||||
| // couponOrder.updateTenantInfo(couponOrderCVo); | |||||
| // couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | |||||
| // couponOrder.setUpdateDate(new Date()); | |||||
| // num = couponOrderMapper.cancelVerifyCouponOrder(couponOrder); | |||||
| // } catch (Exception e) { | |||||
| // logger.error("db failed: couponOrder-" + couponOrderCVo.getId() + ", e:" + e.getMessage()); | |||||
| // throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| // } | |||||
| // if (num != 1) { | |||||
| // logger.error("核销异常:updatete num " + num); | |||||
| // throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); | |||||
| // } | |||||
| // logger.info("核销已取消: " + couponOrderCVo.getId()); | |||||
| // } | |||||
| @Override | @Override | ||||
| @Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
| @@ -2201,7 +2204,8 @@ public class PosServiceImpl implements PosService { | |||||
| // 4. 积分 | // 4. 积分 | ||||
| try { | try { | ||||
| int credit = posAddCredit(couponOrderCVo, wxCoupon, merchantBUser.getMerchantId(), merchantBUser.getId()); | |||||
| WxMerchant wxMerchant = merchantMapper.selectById(merchantBUser.getMerchantId()); | |||||
| int credit = posAddCredit(couponOrderCVo, wxCoupon, merchantBUser, wxMerchant); | |||||
| scoreCreditCalc.setCredit(scoreCreditCalc.getCredit() + credit); | scoreCreditCalc.setCredit(scoreCreditCalc.getCredit() + credit); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("交易核销积分异常:" + e.getMessage()); | logger.error("交易核销积分异常:" + e.getMessage()); | ||||
| @@ -2359,7 +2363,7 @@ public class PosServiceImpl implements PosService { | |||||
| // 4. 积分 | // 4. 积分 | ||||
| try { | try { | ||||
| int credit = posAddCreditForPay(merchant, buUser.getId(), memId, neuPaymentAmount); | |||||
| int credit = posAddCreditForPay(merchant, buUser, memId, neuPaymentAmount); | |||||
| scoreCreditCalc.setCredit(scoreCreditCalc.getCredit() + credit); | scoreCreditCalc.setCredit(scoreCreditCalc.getCredit() + credit); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("交易核销积分异常:" + e.getMessage()); | logger.error("交易核销积分异常:" + e.getMessage()); | ||||
| @@ -192,7 +192,7 @@ public class CouponSendSchedule { | |||||
| // 发放免费券 | // 发放免费券 | ||||
| try { | try { | ||||
| WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(cu.getId(), cs,cs.getCouponId(), null,EnumPayWay.PAY_WAY_NOT_UNPAY_SYSTEM_SEND); | WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(cu.getId(), cs,cs.getCouponId(), null,EnumPayWay.PAY_WAY_NOT_UNPAY_SYSTEM_SEND); | ||||
| wxCouponActionLogService.addOne(tenantEntity, cs.getCouponId(), couponOrder.getId(), cs.getSendType(), cs.getId()); | |||||
| wxCouponActionLogService.addOne(tenantEntity, cs.getCouponId(), couponOrder.getId(), cs.getSendType(), cs.getId(),0L); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("定时发券:发券失败 levelId=" + l.getId() + " couponId=" + cs.getCouponId() + " userId=" + cu.getId() + e.getMessage()); | logger.error("定时发券:发券失败 levelId=" + l.getId() + " couponId=" + cs.getCouponId() + " userId=" + cu.getId() + e.getMessage()); | ||||
| continue; | continue; | ||||
| @@ -322,7 +322,7 @@ public class CouponSendSchedule { | |||||
| // 发放生日券 | // 发放生日券 | ||||
| try { | try { | ||||
| WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(cu.getId(),cs, cs.getCouponId(), null,EnumPayWay.PAY_WAY_NOT_UNPAY_SYSTEM_SEND); | WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(cu.getId(),cs, cs.getCouponId(), null,EnumPayWay.PAY_WAY_NOT_UNPAY_SYSTEM_SEND); | ||||
| wxCouponActionLogService.addOne(tenantEntity, cs.getCouponId(), couponOrder.getId(), cs.getSendType(), cs.getId()); | |||||
| wxCouponActionLogService.addOne(tenantEntity, cs.getCouponId(), couponOrder.getId(), cs.getSendType(), cs.getId(), 0L); | |||||
| couponSendedUsers.add(cu); | couponSendedUsers.add(cu); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("定时发券:发券失败 levelId=" + cu.getId() + " couponId=" + cs.getCouponId() + " userId=" + cu.getId() + e.getMessage()); | logger.error("定时发券:发券失败 levelId=" + cu.getId() + " couponId=" + cs.getCouponId() + " userId=" + cu.getId() + e.getMessage()); | ||||
| @@ -137,7 +137,7 @@ public enum ErrorCode{ | |||||
| PUSH_LIMIT_NOT_INRANG(2042, "不在疲劳度允许的时间段"), | PUSH_LIMIT_NOT_INRANG(2042, "不在疲劳度允许的时间段"), | ||||
| COUPON_ONLY_FOR_NEW_MEMBER(2044, "您已经参加过新会员活动"), | COUPON_ONLY_FOR_NEW_MEMBER(2044, "您已经参加过新会员活动"), | ||||
| COUPON_ALREADY_IN_NEW_MEMBER(2045, "您正在参加别的新会员活动"), | |||||
| COUPON_ALREADY_IN_NEW_MEMBER(2045, "您已经不是新用户"), | |||||
| COUPON_VALID_NOT_SUPPORTED(2046, "券类型不支持"), | COUPON_VALID_NOT_SUPPORTED(2046, "券类型不支持"), | ||||
| /** | /** | ||||
| * 车流 2040 | * 车流 2040 | ||||
| @@ -47,8 +47,7 @@ public class BaseMyBatisConfiguration { | |||||
| wxCouponrSharding.setCount(100); | wxCouponrSharding.setCount(100); | ||||
| wxCouponrSharding.setRule(EnumShardingRule.HASH.getCode()); | wxCouponrSharding.setRule(EnumShardingRule.HASH.getCode()); | ||||
| shardingList.add(wxCouponrSharding); | shardingList.add(wxCouponrSharding); | ||||
| ShardingSphere wxCouponrMerchantSharding = new ShardingSphere(); | ShardingSphere wxCouponrMerchantSharding = new ShardingSphere(); | ||||
| wxCouponrMerchantSharding.setColumn("tenant_id"); | wxCouponrMerchantSharding.setColumn("tenant_id"); | ||||
| wxCouponrMerchantSharding.setTableName("wx_coupon_merchant"); | wxCouponrMerchantSharding.setTableName("wx_coupon_merchant"); | ||||
| @@ -76,6 +75,13 @@ public class BaseMyBatisConfiguration { | |||||
| basicInfoSharding.setCount(100); | basicInfoSharding.setCount(100); | ||||
| basicInfoSharding.setRule(EnumShardingRule.HASH.getCode()); | basicInfoSharding.setRule(EnumShardingRule.HASH.getCode()); | ||||
| shardingList.add(basicInfoSharding); | shardingList.add(basicInfoSharding); | ||||
| ShardingSphere wxbasicChildSharding = new ShardingSphere(); | |||||
| wxbasicChildSharding.setColumn("tenant_id"); | |||||
| wxbasicChildSharding.setTableName("wx_c_user_basic_child"); | |||||
| wxbasicChildSharding.setCount(100); | |||||
| wxbasicChildSharding.setRule(EnumShardingRule.HASH.getCode()); | |||||
| shardingList.add(wxbasicChildSharding); | |||||
| ShardingSphere wxOrderSharding = new ShardingSphere(); | ShardingSphere wxOrderSharding = new ShardingSphere(); | ||||
| wxOrderSharding.setColumn("tenant_id"); | wxOrderSharding.setColumn("tenant_id"); | ||||
| @@ -0,0 +1,48 @@ | |||||
| package com.iformall.domain.po; | |||||
| import com.baomidou.mybatisplus.annotation.TableField; | |||||
| import com.baomidou.mybatisplus.annotation.TableName; | |||||
| import com.iformall.domain.po.base.BaseTenantEntity; | |||||
| import lombok.Data; | |||||
| import lombok.EqualsAndHashCode; | |||||
| import lombok.ToString; | |||||
| import java.util.Date; | |||||
| @TableName(value = "wx_c_user_basic_child") | |||||
| @Data | |||||
| @ToString(callSuper = true) | |||||
| @EqualsAndHashCode(callSuper = true) | |||||
| public class WxCUserBasicChild extends BaseTenantEntity { | |||||
| protected Long id; | |||||
| private Long cUserId; | |||||
| @io.swagger.annotations.ApiModelProperty(value="用户姓名",name="name") | |||||
| private String name; | |||||
| @io.swagger.annotations.ApiModelProperty(value="性别:0:保密 1.男 2女",name="sex") | |||||
| private Integer sex; | |||||
| @io.swagger.annotations.ApiModelProperty(value="昵称",name="nickName") | |||||
| private String nickName; | |||||
| @io.swagger.annotations.ApiModelProperty(value="出生日期",name="birthdate") | |||||
| private Date birthdate; | |||||
| @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") | |||||
| private Date updateDate; | |||||
| @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") | |||||
| private Date createDate; | |||||
| @io.swagger.annotations.ApiModelProperty(value="备注",name="remark") | |||||
| private String remark; | |||||
| @TableField(exist = false) | |||||
| private Date startTime; | |||||
| @TableField(exist = false) | |||||
| private Date endTime; | |||||
| } | |||||
| @@ -106,6 +106,16 @@ public class WxCUserBasicInfo extends TenantEntityWithoutFinalTenantId { | |||||
| @io.swagger.annotations.ApiModelProperty(value="积分",name="credit") | @io.swagger.annotations.ApiModelProperty(value="积分",name="credit") | ||||
| private Integer credit; | private Integer credit; | ||||
| @Excel(name="扣减总积分",width = 20, orderNum = "12") | |||||
| @io.swagger.annotations.ApiModelProperty(value="扣减积分",name="lesCredit") | |||||
| @TableField(exist = false) | |||||
| private Integer lesCredit; | |||||
| @Excel(name="增长总积分",width = 20, orderNum = "12") | |||||
| @io.swagger.annotations.ApiModelProperty(value="增加积分",name="addCredit") | |||||
| @TableField(exist = false) | |||||
| private Integer addCredit; | |||||
| @io.swagger.annotations.ApiModelProperty(value="活动记录",name="actRecord") | @io.swagger.annotations.ApiModelProperty(value="活动记录",name="actRecord") | ||||
| private Integer actRecord; | private Integer actRecord; | ||||
| @@ -117,6 +127,9 @@ public class WxCUserBasicInfo extends TenantEntityWithoutFinalTenantId { | |||||
| private String tagNames; | private String tagNames; | ||||
| @TableField(exist = false) | |||||
| private List<WxCUserBasicChild> childrenList; | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private String tagIds; | private String tagIds; | ||||
| @@ -129,11 +142,20 @@ public class WxCUserBasicInfo extends TenantEntityWithoutFinalTenantId { | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Integer carCount; | private Integer carCount; | ||||
| @TableField(exist = false) | |||||
| private String carNumber; | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Date startTime; | private Date startTime; | ||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Date endTime; | private Date endTime; | ||||
| @TableField(exist = false) | |||||
| private Date creditStartTime; | |||||
| @TableField(exist = false) | |||||
| private Date creditEndTime; | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Integer begin; | private Integer begin; | ||||
| @@ -1,5 +1,6 @@ | |||||
| package com.iformall.domain.po; | package com.iformall.domain.po; | ||||
| import com.baomidou.mybatisplus.annotation.TableField; | |||||
| import com.baomidou.mybatisplus.annotation.TableName; | import com.baomidou.mybatisplus.annotation.TableName; | ||||
| import com.iformall.domain.po.base.BaseTenantEntity; | import com.iformall.domain.po.base.BaseTenantEntity; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| @@ -18,6 +19,10 @@ public class WxCUserCar extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="c端用户id",name="cUserId") | @io.swagger.annotations.ApiModelProperty(value="c端用户id",name="cUserId") | ||||
| private Long cUserId; | private Long cUserId; | ||||
| @TableField(exist = false) | |||||
| private String userPhone; | |||||
| @io.swagger.annotations.ApiModelProperty(value="车牌号",name="carNumber") | @io.swagger.annotations.ApiModelProperty(value="车牌号",name="carNumber") | ||||
| private String carNumber; | private String carNumber; | ||||
| @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") | @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") | ||||
| @@ -2,6 +2,7 @@ package com.iformall.domain.po; | |||||
| import com.baomidou.mybatisplus.annotation.TableField; | import com.baomidou.mybatisplus.annotation.TableField; | ||||
| import com.baomidou.mybatisplus.annotation.TableName; | import com.baomidou.mybatisplus.annotation.TableName; | ||||
| import com.fasterxml.jackson.annotation.JsonIgnore; | |||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import lombok.Data; | import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | import lombok.EqualsAndHashCode; | ||||
| @@ -36,4 +37,8 @@ public class WxCouponActionLog extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="月日",name="createTimeMd") | @io.swagger.annotations.ApiModelProperty(value="月日",name="createTimeMd") | ||||
| private String createTimeMd; | private String createTimeMd; | ||||
| @JsonIgnore | |||||
| @io.swagger.annotations.ApiModelProperty(value="操作人ID",name="operatorId") | |||||
| private Long operatorId; | |||||
| } | } | ||||
| @@ -7,6 +7,7 @@ import com.iformall.domain.po.base.TenantEntity; | |||||
| import lombok.Data; | import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | import lombok.EqualsAndHashCode; | ||||
| import java.math.BigDecimal; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -78,4 +79,10 @@ public class WxCreditHistory extends BaseTenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value = "标签", name = "tags") | @io.swagger.annotations.ApiModelProperty(value = "标签", name = "tags") | ||||
| private List<Long> tags; | private List<Long> tags; | ||||
| public String getSpendStr() { | |||||
| if(getSpend()!=null) { | |||||
| spendStr = new BigDecimal(getSpend()).divide(new BigDecimal(100)).toString(); | |||||
| } | |||||
| return spendStr; | |||||
| } | |||||
| } | } | ||||
| @@ -34,9 +34,15 @@ public class WxGame extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value = "触发条件(-1:不受限制,1:登录触发, 2:主页固定入口,3:购买触发,4:核销触发,5:公众号链接触发,6:二维码触发)", name = "triggleAction") | @io.swagger.annotations.ApiModelProperty(value = "触发条件(-1:不受限制,1:登录触发, 2:主页固定入口,3:购买触发,4:核销触发,5:公众号链接触发,6:二维码触发)", name = "triggleAction") | ||||
| private Integer triggleAction; | private Integer triggleAction; | ||||
| @io.swagger.annotations.ApiModelProperty(value = "限玩次数(0:不受限制,n:限玩次数)", name = "playLimit") | |||||
| @io.swagger.annotations.ApiModelProperty(value = "限玩免费次数(-1:不能免费玩,0:不受限制,n:限玩次数)", name = "playLimit") | |||||
| private Integer playLimit; | private Integer playLimit; | ||||
| @io.swagger.annotations.ApiModelProperty(value = "限玩积分次数(-1:不能积分玩法,0:不受限制,n:限玩次数)", name = "playCreditLimit") | |||||
| private Integer playCreditLimit; | |||||
| @io.swagger.annotations.ApiModelProperty(value = "积分玩法消耗积分", name = "playCredit") | |||||
| private Integer playCredit; | |||||
| @io.swagger.annotations.ApiModelProperty(value = "限奖次数(0:不受限制,n:限奖次数)", name = "awardLimit") | @io.swagger.annotations.ApiModelProperty(value = "限奖次数(0:不受限制,n:限奖次数)", name = "awardLimit") | ||||
| private Integer awardLimit; | private Integer awardLimit; | ||||
| @@ -33,5 +33,8 @@ public class WxGameActionLog extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="",name="createTime") | @io.swagger.annotations.ApiModelProperty(value="",name="createTime") | ||||
| private Date createTime; | private Date createTime; | ||||
| @io.swagger.annotations.ApiModelProperty(value = "", name = "type") | |||||
| private Integer type; | |||||
| } | } | ||||
| @@ -26,7 +26,10 @@ public class BaseTenantEntity extends BaseEntity { | |||||
| protected String finalTenantId; | protected String finalTenantId; | ||||
| public String getFinalTenantId() { | public String getFinalTenantId() { | ||||
| return finalTenantId; | |||||
| if (!StringUtils.isBlank(parentTenantId)) { | |||||
| return parentTenantId; | |||||
| } | |||||
| return tenantId; | |||||
| } | } | ||||
| public void setFinalTenantId(String finalTenantId) { | public void setFinalTenantId(String finalTenantId) { | ||||
| @@ -45,7 +45,7 @@ public class WxCreditHistoryVo extends BaseTenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value = "操作人类型", name = "operator") | @io.swagger.annotations.ApiModelProperty(value = "操作人类型", name = "operator") | ||||
| private Integer operatorType; | private Integer operatorType; | ||||
| @Excel(name = "操作说明", width = 20, orderNum = "9", replace = {"每日登录_1", "消费_2", "绑车牌_3", "连接WIFI_4", "微信用户昵称授权_5", "微信用户手机授权_6", "完善个人信息_7", "会员导入_8", "会员成长值扣减_9", "新增积分_10", "积分兑换_11", "消费积分_12", "活动报名_13"}) | |||||
| @Excel(name = "操作说明", width = 20, orderNum = "9", replace = {"每日登录_1", "消费_2", "绑车牌_3", "连接WIFI_4", "微信用户昵称授权_5", "微信用户手机授权_6", "完善个人信息_7", "会员导入_8", "会员成长值扣减_9", "新增积分_10", "积分兑换_11", "消费积分_12", "活动报名_13", "积分清零计划_14", "游戏消耗积分_15", "游戏奖励积分_16"}) | |||||
| @io.swagger.annotations.ApiModelProperty(value = "积分类型", name = "creditType") | @io.swagger.annotations.ApiModelProperty(value = "积分类型", name = "creditType") | ||||
| private Integer creditType; | private Integer creditType; | ||||
| @@ -73,6 +73,7 @@ public class WxCreditHistoryVo extends BaseTenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value = "小票号", name = "ticketNumber") | @io.swagger.annotations.ApiModelProperty(value = "小票号", name = "ticketNumber") | ||||
| private String ticketNumber; | private String ticketNumber; | ||||
| @Excel(name = "说明", width = 20, orderNum = "11") | |||||
| @io.swagger.annotations.ApiModelProperty(value = "兑换用途", name = "changePurpose") | @io.swagger.annotations.ApiModelProperty(value = "兑换用途", name = "changePurpose") | ||||
| private String changePurpose; | private String changePurpose; | ||||
| @@ -18,7 +18,9 @@ public enum EnumScoreType { | |||||
| CHANGE_CREDIT(11, "积分兑换"), | CHANGE_CREDIT(11, "积分兑换"), | ||||
| REDUCE_CREDIT(12, "消费积分"), | REDUCE_CREDIT(12, "消费积分"), | ||||
| ACTIVITY_JOIN(13, "活动报名"), | ACTIVITY_JOIN(13, "活动报名"), | ||||
| CLEAN_CREDIT(14, "积分清零计划"),; | |||||
| CLEAN_CREDIT(14, "积分清零计划"), | |||||
| GAME_LES_CREDIT(15, "游戏消耗积分"), | |||||
| GAME_ADD_CREDIT(16, "游戏奖励积分"),; | |||||
| public static EnumScoreType getEnum(Integer code) { | public static EnumScoreType getEnum(Integer code) { | ||||
| for (EnumScoreType value : values()) { | for (EnumScoreType value : values()) { | ||||
| @@ -204,6 +204,13 @@ public enum EnumTag { | |||||
| ID_164(164L, EnumTagType.ID_28, "鞋尺码"), | ID_164(164L, EnumTagType.ID_28, "鞋尺码"), | ||||
| ID_165(165L, EnumTagType.ID_28, "鞋尺码"), | ID_165(165L, EnumTagType.ID_28, "鞋尺码"), | ||||
| ID_166(166L, EnumTagType.ID_29, "婴儿"), | |||||
| ID_167(167L, EnumTagType.ID_29, "幼儿"), | |||||
| ID_168(168L, EnumTagType.ID_29, "学龄前"), | |||||
| ID_169(169L, EnumTagType.ID_29, "学龄初"), | |||||
| ID_170(170L, EnumTagType.ID_29, "学龄中"), | |||||
| ID_171(171L, EnumTagType.ID_29, "学龄晚"), | |||||
| ID_1000(1000L, EnumTagType.ID_50,"一天以内"), | ID_1000(1000L, EnumTagType.ID_50,"一天以内"), | ||||
| ID_1001(1001L, EnumTagType.ID_50,"一周以内"), | ID_1001(1001L, EnumTagType.ID_50,"一周以内"), | ||||
| ID_1002(1002L, EnumTagType.ID_50,"一月以内"), | ID_1002(1002L, EnumTagType.ID_50,"一月以内"), | ||||
| @@ -35,6 +35,8 @@ public enum EnumTagType { | |||||
| ID_27(27L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_1, "服饰尺码"), | ID_27(27L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_1, "服饰尺码"), | ||||
| ID_28(28L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_1, "鞋尺码"), | ID_28(28L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_1, "鞋尺码"), | ||||
| ID_29(29L, EnumTagTypeFlag.FLAG_NORMAL, EnumTagGroup.ID_2, "子女"), | |||||
| ID_0(0L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员手机"), | ID_0(0L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员手机"), | ||||
| ID_50(50L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员会龄"), | ID_50(50L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员会龄"), | ||||
| ID_51(51L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员等级"), | ID_51(51L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员等级"), | ||||
| @@ -0,0 +1,15 @@ | |||||
| package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | |||||
| import com.iformall.domain.po.WxCUserBasicChild; | |||||
| import com.iformall.domain.po.WxCreditHistory; | |||||
| import java.util.List; | |||||
| public interface WxCUserBasicChildMapper extends CommonMapper<WxCUserBasicChild, Long>{ | |||||
| List<WxCUserBasicChild> findList(WxCUserBasicChild record); | |||||
| int updDelById(WxCUserBasicChild record); | |||||
| } | |||||
| @@ -17,4 +17,6 @@ public interface WxCUserCarMapper extends CommonMapper<WxCUserCar, Long> { | |||||
| long queryCarCount(Map<String,Object> carParams); | long queryCarCount(Map<String,Object> carParams); | ||||
| List<Map<String, Object>> queryCarCountHistory(HashMap<String,Object> params); | List<Map<String, Object>> queryCarCountHistory(HashMap<String,Object> params); | ||||
| List<WxCUserCar> findList1(WxCUserCar record); | |||||
| } | } | ||||
| @@ -32,4 +32,10 @@ public interface WxCreditHistoryMapper extends CommonMapper<WxCreditHistory, Lon | |||||
| long getPeopleCount(WxCreditHistory wxCreditHistory); | long getPeopleCount(WxCreditHistory wxCreditHistory); | ||||
| int deleteById(@Param("id")Long id,@Param("tenantId")String tenantId); | int deleteById(@Param("id")Long id,@Param("tenantId")String tenantId); | ||||
| void userCreditClear(@Param("cutOffDate")String cutOffDate,@Param("finalTableIndex")String finalTableIndex); | |||||
| Integer getAddCreditSummary(WxCreditHistory wxCreditHistory); | |||||
| Integer getLesCreditSummary(WxCreditHistory wxCreditHistory); | |||||
| } | } | ||||
| @@ -10,4 +10,6 @@ public interface WxGameActionLogMapper extends CommonMapper<WxGameActionLog, Str | |||||
| List<WxGameActionLog> findList(WxGameActionLog wxGameActionLog); | List<WxGameActionLog> findList(WxGameActionLog wxGameActionLog); | ||||
| int getPlayCount(WxGameActionLog wxGameActionLog); | int getPlayCount(WxGameActionLog wxGameActionLog); | ||||
| int getAwardCount(WxGameActionLog wxGameActionLog); | int getAwardCount(WxGameActionLog wxGameActionLog); | ||||
| int getPlayCreditCount(WxGameActionLog wxGameActionLog); | |||||
| } | } | ||||
| @@ -0,0 +1,18 @@ | |||||
| package com.iformall.service; | |||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.domain.po.*; | |||||
| import java.util.List; | |||||
| public interface WxCUserBasicChildService { | |||||
| PageInfo<WxCUserBasicChild> listAsPage(WxCUserBasicChild record, Integer pageIndex, Integer pageSize); | |||||
| List<WxCUserBasicChild> findList(WxCUserBasicChild record); | |||||
| WxCUserBasicChild saveOrUpdate(WxCUserBasicChild record); | |||||
| int updDelById(WxCUserBasicChild record); | |||||
| } | |||||
| @@ -42,7 +42,7 @@ public interface WxCouponActionLogService { | |||||
| void deleteById(Long id,String tenantId); | void deleteById(Long id,String tenantId); | ||||
| void addOne(TenantEntity tenantEntity,Long couponId,Long coupon_order_id,int channelType,Long channelId); | |||||
| void addOne(TenantEntity tenantEntity,Long couponId,Long coupon_order_id,int channelType,Long channelId,Long bUserId); | |||||
| int getCountByChannelId(TenantEntity tenantEntity, int channelType, Long channelId); | int getCountByChannelId(TenantEntity tenantEntity, int channelType, Long channelId); | ||||
| @@ -96,7 +96,7 @@ public interface WxCouponSendService { | |||||
| * | * | ||||
| * @param wxCouponSend | * @param wxCouponSend | ||||
| */ | */ | ||||
| void handSel(WxCouponSend wxCouponSend,Long cUserId,EnumPayWay payWay) ; | |||||
| void handSel(WxCouponSend wxCouponSend,Long cUserId,EnumPayWay payWay,Long bUserId) ; | |||||
| } | } | ||||
| @@ -8,6 +8,7 @@ import com.iformall.domain.vo.WxCreditHistoryVo; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| import java.util.Date; | |||||
| import java.util.Map; | import java.util.Map; | ||||
| public interface WxCreditHistoryService { | public interface WxCreditHistoryService { | ||||
| @@ -72,8 +73,13 @@ public interface WxCreditHistoryService { | |||||
| void clearCreditByYear(); | void clearCreditByYear(); | ||||
| void clearCreditByYear(WxCreditHistory wxCreditHistory); | |||||
| void exportData(HttpServletRequest request, HttpServletResponse response, WxCreditHistory wxCreditHistory); | void exportData(HttpServletRequest request, HttpServletResponse response, WxCreditHistory wxCreditHistory); | ||||
| ResultData getCreditSummary(WxCreditHistory wxCreditHistory); | ResultData getCreditSummary(WxCreditHistory wxCreditHistory); | ||||
| Integer getAddCreditSummary(WxCreditHistory wxCreditHistory); | |||||
| Integer getLesCreditSummary(WxCreditHistory wxCreditHistory); | |||||
| } | } | ||||
| @@ -187,6 +187,7 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService { | |||||
| wxCreditHistory.setCUserId(wxActivityJoin.getUserId()); | wxCreditHistory.setCUserId(wxActivityJoin.getUserId()); | ||||
| wxCreditHistory.setCreditNum(credit); | wxCreditHistory.setCreditNum(credit); | ||||
| wxCreditHistory.setCreditType(EnumScoreType.ACTIVITY_JOIN.getCode()); | wxCreditHistory.setCreditType(EnumScoreType.ACTIVITY_JOIN.getCode()); | ||||
| wxCreditHistory.setChangePurpose(EnumScoreType.ACTIVITY_JOIN.getMessage()+"["+wxActivity.getTitle()+"]"); | |||||
| wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); | wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); | ||||
| wxCreditHistory.setOperatorId(wxActivityJoin.getUserId()); | wxCreditHistory.setOperatorId(wxActivityJoin.getUserId()); | ||||
| wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | ||||
| @@ -0,0 +1,55 @@ | |||||
| package com.iformall.service.impl; | |||||
| import com.github.pagehelper.PageHelper; | |||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.IdWorker; | |||||
| import com.iformall.domain.po.*; | |||||
| import com.iformall.mapper.WxCUserBasicChildMapper; | |||||
| import com.iformall.service.*; | |||||
| import lombok.extern.slf4j.Slf4j; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.stereotype.Service; | |||||
| import java.util.*; | |||||
| @Service | |||||
| @Slf4j | |||||
| public class WxCUserBasicChildServiceImpl implements WxCUserBasicChildService { | |||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||||
| @Autowired | |||||
| WxCUserBasicChildMapper wxCUserBasicChildMapper; | |||||
| @Override | |||||
| public PageInfo<WxCUserBasicChild> listAsPage(WxCUserBasicChild record, Integer pageIndex, Integer pageSize) { | |||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserBasicChildMapper.findList(record)); | |||||
| } | |||||
| @Override | |||||
| public List<WxCUserBasicChild> findList(WxCUserBasicChild record) { | |||||
| return wxCUserBasicChildMapper.findList(record); | |||||
| } | |||||
| @Override | |||||
| public WxCUserBasicChild saveOrUpdate(WxCUserBasicChild record) { | |||||
| Date curr = new Date(); | |||||
| if (record.getId() == null) { | |||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| record.setId(idWorker.nextId()); | |||||
| record.setCreateDate(curr); | |||||
| record.setUpdateDate(curr); | |||||
| wxCUserBasicChildMapper.insert(record); | |||||
| } else { | |||||
| record.setUpdateDate(curr); | |||||
| wxCUserBasicChildMapper.updateById(record); | |||||
| } | |||||
| return record; | |||||
| } | |||||
| @Override | |||||
| public int updDelById(WxCUserBasicChild record) { | |||||
| return wxCUserBasicChildMapper.updDelById(record); | |||||
| } | |||||
| } | |||||
| @@ -1101,6 +1101,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc | |||||
| wxCreditHistory.setOperatorType(EnumUserType.MALLUSER.getCode()); | wxCreditHistory.setOperatorType(EnumUserType.MALLUSER.getCode()); | ||||
| } | } | ||||
| wxCreditHistory.setCreditType(EnumScoreType.MEM_IMPORT.getCode()); | wxCreditHistory.setCreditType(EnumScoreType.MEM_IMPORT.getCode()); | ||||
| wxCreditHistory.setChangePurpose(EnumScoreType.MEM_IMPORT.getMessage()); | |||||
| if (oldUserBase != null) { | if (oldUserBase != null) { | ||||
| wxCreditHistory.setCUserId(oldUserBase.getId()); | wxCreditHistory.setCUserId(oldUserBase.getId()); | ||||
| } else { | } else { | ||||
| @@ -26,7 +26,7 @@ public class WxCUserCarServiceImpl implements WxCUserCarService { | |||||
| @Override | @Override | ||||
| public PageInfo<WxCUserCar> listAsPage(WxCUserCar record, Integer pageIndex, Integer pageSize) { | public PageInfo<WxCUserCar> listAsPage(WxCUserCar record, Integer pageIndex, Integer pageSize) { | ||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserCarMapper.findList(record)); | |||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserCarMapper.findList1(record)); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -346,12 +346,13 @@ public class WxCUserServiceImpl implements WxCUserService { | |||||
| wxCreditHistory.setFinalTenantId(user.getFinalTenantId()); | wxCreditHistory.setFinalTenantId(user.getFinalTenantId()); | ||||
| wxCreditHistory.setCreateDate(new Date()); | wxCreditHistory.setCreateDate(new Date()); | ||||
| wxCreditHistory.setCreditType(enumScoreType.getCode()); | wxCreditHistory.setCreditType(enumScoreType.getCode()); | ||||
| wxCreditHistory.setChangePurpose(enumScoreType.getMessage()); | |||||
| wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); | wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); | ||||
| wxCreditHistory.setOperatorId(user.getUserId()); | wxCreditHistory.setOperatorId(user.getUserId()); | ||||
| wxCreditHistory.setCreditNum(user.getCredit()); | |||||
| wxCreditHistory.setCreditAmount(user.getCredit()); | |||||
| // wxCreditHistory.setCreditNum(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.getCreditAmount(); | return record.getCreditAmount(); | ||||
| } | } | ||||
| @@ -13,6 +13,7 @@ import com.iformall.enums.*; | |||||
| import com.iformall.mapper.*; | import com.iformall.mapper.*; | ||||
| import com.iformall.service.WxCUserTagsService; | import com.iformall.service.WxCUserTagsService; | ||||
| import com.iformall.service.WxTagsService; | import com.iformall.service.WxTagsService; | ||||
| import com.iformall.utils.DateUtils; | |||||
| 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; | ||||
| @@ -32,6 +33,9 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| @Autowired | @Autowired | ||||
| WxCUserBasicInfoMapper wxCUserBasicInfoMapper; | WxCUserBasicInfoMapper wxCUserBasicInfoMapper; | ||||
| @Autowired | |||||
| WxCUserBasicChildMapper wxCUserBasicChildMapper; | |||||
| @Autowired | @Autowired | ||||
| WxCouponOrderMapper wxCouponOrderMapper; | WxCouponOrderMapper wxCouponOrderMapper; | ||||
| @@ -161,6 +165,54 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| return wxTagsMapper.findList(wxTags); | return wxTagsMapper.findList(wxTags); | ||||
| } | } | ||||
| //按type 替换 | |||||
| private List<WxTags> assign(WxCUserBasicInfo user, List<EnumTag> enumTags, EnumTagType type){ | |||||
| if(user == null){ | |||||
| return null; | |||||
| } | |||||
| WxCUserTags record = new WxCUserTags(); | |||||
| record.setUserId(user.getId()); | |||||
| record.setTenantId(user.getFinalTenantId()); | |||||
| List<WxCUserTags> cUserTagsList = wxCUserTagsMapper.findList(record); | |||||
| List<Long> tagIdList; | |||||
| if(cUserTagsList != null && cUserTagsList.size() > 0){ | |||||
| record.setId(cUserTagsList.get(0).getId()); | |||||
| record.setTags(cUserTagsList.get(0).getTags()); | |||||
| } | |||||
| String tags = record.getTags(); | |||||
| if (tags == null){ | |||||
| tagIdList = new ArrayList<Long>(); | |||||
| }else{ | |||||
| tagIdList = JSON.parseArray(tags, Long.class); | |||||
| } | |||||
| Iterator<Long> it = tagIdList.iterator(); | |||||
| while(it.hasNext()){ | |||||
| Long id = it.next(); | |||||
| if(null != id && null != EnumTag.getEnum(id) && EnumTag.getEnum(id).getType().equals(type)){ | |||||
| it.remove(); | |||||
| } | |||||
| } | |||||
| if(enumTags != null && enumTags.size() > 0){ | |||||
| for (EnumTag enumTag:enumTags) { | |||||
| tagIdList.add(enumTag.getCode()); | |||||
| } | |||||
| } | |||||
| record.setTags(JSON.toJSONString(tagIdList)); | |||||
| saveOrUpdate(record); | |||||
| if (user.getTagId() == null || !user.getTagId().equals(record.getId())) { | |||||
| user.setTagId(record.getId()); | |||||
| wxCUserBasicInfoMapper.updateById(user); | |||||
| } | |||||
| WxTags wxTags = new WxTags(); | |||||
| wxTags.setIds(tagIdList); | |||||
| return wxTagsMapper.findList(wxTags); | |||||
| } | |||||
| //去标 | //去标 | ||||
| private List<WxTags> resign(WxCUserBasicInfo user, EnumTag tag){ | private List<WxTags> resign(WxCUserBasicInfo user, EnumTag tag){ | ||||
| if (tag == null || user == null) | if (tag == null || user == null) | ||||
| @@ -593,6 +645,53 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| return resList; | return resList; | ||||
| } | } | ||||
| private List<WxTags> assignTypeId29(WxCUserBasicInfo user) { | |||||
| List<WxTags> resList = null; | |||||
| WxCUserBasicChild uChild = new WxCUserBasicChild(); | |||||
| uChild.setTenantId(user.getFinalTenantId()); | |||||
| uChild.setCUserId(user.getId()); | |||||
| List<WxCUserBasicChild> list = wxCUserBasicChildMapper.findList(uChild); | |||||
| if(list != null && list.size() > 0){ | |||||
| List<EnumTag> tags = new ArrayList<>(); | |||||
| for (WxCUserBasicChild child:list) { | |||||
| if(child.getBirthdate() != null){ | |||||
| if (new Date().after(child.getBirthdate())) { | |||||
| int age = DateUtils.getAge(child.getBirthdate()); | |||||
| if(age < 1){ | |||||
| if(!tags.contains(EnumTag.ID_166)){ | |||||
| tags.add(EnumTag.ID_166); | |||||
| } | |||||
| }else if(age >= 1 && age < 3){ | |||||
| if(!tags.contains(EnumTag.ID_167)){ | |||||
| tags.add(EnumTag.ID_167); | |||||
| } | |||||
| }else if(age >= 3 && age < 6){ | |||||
| if(!tags.contains(EnumTag.ID_168)){ | |||||
| tags.add(EnumTag.ID_168); | |||||
| } | |||||
| }else if(age >= 6 && age < 12){ | |||||
| if(!tags.contains(EnumTag.ID_169)){ | |||||
| tags.add(EnumTag.ID_169); | |||||
| } | |||||
| }else if(age >= 12 && age < 15){ | |||||
| if(!tags.contains(EnumTag.ID_170)){ | |||||
| tags.add(EnumTag.ID_170); | |||||
| } | |||||
| }else if(age >= 15 && age < 18){ | |||||
| if(!tags.contains(EnumTag.ID_171)){ | |||||
| tags.add(EnumTag.ID_171); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| resList = assign(user,tags,EnumTagType.ID_29); | |||||
| }else{ | |||||
| resList = assign(user,null,EnumTagType.ID_29); | |||||
| } | |||||
| return resList; | |||||
| } | |||||
| //打标接口 | //打标接口 | ||||
| @Override | @Override | ||||
| public List<WxTags> assignTags(List<Long> tagIdList, WxCUserBasicInfo user) { | public List<WxTags> assignTags(List<Long> tagIdList, WxCUserBasicInfo user) { | ||||
| @@ -638,6 +737,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| //学历 | //学历 | ||||
| resList = assignTypeId6(user, param.getEducation()); | resList = assignTypeId6(user, param.getEducation()); | ||||
| } | } | ||||
| resList = assignTypeId29(user); | |||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| @@ -730,6 +830,8 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| //学历 | //学历 | ||||
| resList = assignTypeId6(user, user.getEducation()); | resList = assignTypeId6(user, user.getEducation()); | ||||
| } | } | ||||
| resList = assignTypeId29(user); | |||||
| //消费类别 | //消费类别 | ||||
| resList = assignTypeId14(user,tenantEntity); | resList = assignTypeId14(user,tenantEntity); | ||||
| @@ -310,6 +310,8 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { | |||||
| creditHistory.setSpend(real_payment); | creditHistory.setSpend(real_payment); | ||||
| //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | ||||
| creditHistory.setMerchantId(record.getMerchantId()); | creditHistory.setMerchantId(record.getMerchantId()); | ||||
| WxMerchant wxMerchant = wxMerchantMapper.selectById(record.getMerchantId()); | |||||
| creditHistory.setChangePurpose("卡消费:消费商户["+wxMerchant.getName()+"] 金额["+creditHistory.getSpendStr()+"元]"); | |||||
| wxCreditHistoryService.saveOrUpdate(creditHistory); | wxCreditHistoryService.saveOrUpdate(creditHistory); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("积分值:" + e.getMessage()); | logger.error("积分值:" + e.getMessage()); | ||||
| @@ -931,6 +933,8 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { | |||||
| creditHistory.setSpend(record.getRealPayment()); | creditHistory.setSpend(record.getRealPayment()); | ||||
| //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | ||||
| creditHistory.setMerchantId(record.getMerchantId()); | creditHistory.setMerchantId(record.getMerchantId()); | ||||
| // WxMerchant wxMerchant = wxMerchantMapper.selectById(record.getMerchantId()); | |||||
| creditHistory.setChangePurpose("pos卡消费:消费商户["+merchant.getName()+"] 金额["+creditHistory.getSpendStr()+"元]"); | |||||
| creditHistory = wxCreditHistoryService.saveOrUpdate(creditHistory); | creditHistory = wxCreditHistoryService.saveOrUpdate(creditHistory); | ||||
| if (creditHistory != null) { | if (creditHistory != null) { | ||||
| scoreCreditCalc.setCredit(scoreCreditCalc.getCredit() + creditHistory.getCreditNum()); | scoreCreditCalc.setCredit(scoreCreditCalc.getCredit() + creditHistory.getCreditNum()); | ||||
| @@ -56,17 +56,18 @@ public class WxCouponActionLogServiceImpl implements WxCouponActionLogService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public void addOne(TenantEntity tenantEntity, Long couponId, Long coupon_order_id, int channelType, Long channelId) { | |||||
| public void addOne(TenantEntity tenantEntity, Long couponId, Long coupon_order_id, int channelType, Long channelId,Long bUserId) { | |||||
| Date curDate = new Date(); | Date curDate = new Date(); | ||||
| WxCouponActionLog actionLog = new WxCouponActionLog() {{ | |||||
| updateTenantInfo(tenantEntity); | |||||
| setCouponId(couponId); | |||||
| setChannelId(channelId); | |||||
| setCouponOrderId(coupon_order_id); | |||||
| setChannelType(channelType); | |||||
| setCreateTime(curDate); | |||||
| setCreateTimeMd(new SimpleDateFormat("MM/dd").format(curDate)); | |||||
| }}; | |||||
| WxCouponActionLog actionLog = new WxCouponActionLog(); | |||||
| actionLog.updateTenantInfo(tenantEntity); | |||||
| actionLog.setCouponId(couponId); | |||||
| actionLog.setChannelId(channelId); | |||||
| actionLog.setCouponOrderId(coupon_order_id); | |||||
| actionLog.setChannelType(channelType); | |||||
| actionLog.setCreateTime(curDate); | |||||
| actionLog.setCreateTimeMd(new SimpleDateFormat("MM/dd").format(curDate)); | |||||
| actionLog.setOperatorId(bUserId); | |||||
| saveOrUpdate(actionLog); | saveOrUpdate(actionLog); | ||||
| } | } | ||||
| @@ -276,7 +276,7 @@ public class WxCouponInjectServiceImpl implements WxCouponInjectService { | |||||
| try { | try { | ||||
| couponOrder = wxOrderService.sendFreeCouponToUser(tempCUser.getId(),wxCoupon, wxCoupon.getId(),null,EnumPayWay.PAY_WAY_NOT_UNPAY_BATCH_SEND); | couponOrder = wxOrderService.sendFreeCouponToUser(tempCUser.getId(),wxCoupon, wxCoupon.getId(),null,EnumPayWay.PAY_WAY_NOT_UNPAY_BATCH_SEND); | ||||
| if (couponOrder != null) { | if (couponOrder != null) { | ||||
| wxCouponActionLogService.addOne(couponOrder, wxCoupon.getId(), couponOrder.getId(), EnumCouponSendSendType.INJECT.getCode(), couponInjectId); | |||||
| wxCouponActionLogService.addOne(couponOrder, wxCoupon.getId(), couponOrder.getId(), EnumCouponSendSendType.INJECT.getCode(), couponInjectId,0L); | |||||
| } | } | ||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| @@ -465,6 +465,8 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | ||||
| creditHistory.setMerchantId(bUser.getMerchantId()); | creditHistory.setMerchantId(bUser.getMerchantId()); | ||||
| creditHistory.setBuserId(bUser.getBuserId()); | creditHistory.setBuserId(bUser.getBuserId()); | ||||
| WxMerchant wxMerchant = wxMerchantMapper.selectById(bUser.getMerchantId()); | |||||
| creditHistory.setChangePurpose("商户核销增加积分:商户名称["+wxMerchant.getName()+"] 券名称["+wxCoupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] "); | |||||
| wxCreditHistoryService.saveOrUpdate(creditHistory); | wxCreditHistoryService.saveOrUpdate(creditHistory); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("积分值:" + e.getMessage()); | logger.error("积分值:" + e.getMessage()); | ||||
| @@ -495,6 +497,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| creditHistory.setCouponId(wxCoupon.getId()); | creditHistory.setCouponId(wxCoupon.getId()); | ||||
| creditHistory.setBusinessId(wxCoupon.getBusiness()); | creditHistory.setBusinessId(wxCoupon.getBusiness()); | ||||
| creditHistory.setSpend(couponOrder.getCouponPrice()); | creditHistory.setSpend(couponOrder.getCouponPrice()); | ||||
| creditHistory.setChangePurpose("核销停车劵["+wxCoupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] "); | |||||
| wxCreditHistoryService.saveOrUpdate(creditHistory); | wxCreditHistoryService.saveOrUpdate(creditHistory); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("积分值:" + e.getMessage()); | logger.error("积分值:" + e.getMessage()); | ||||
| @@ -72,21 +72,21 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||||
| @Override | @Override | ||||
| public PageInfo<WxCouponSendVo> listAsPage(WxCouponSend record, Integer pageIndex, Integer pageSize) { | public PageInfo<WxCouponSendVo> listAsPage(WxCouponSend record, Integer pageIndex, Integer pageSize) { | ||||
| PageInfo<WxCouponSendVo> pageInfo; | PageInfo<WxCouponSendVo> pageInfo; | ||||
| /** | |||||
| * 设置商户购买券数 | |||||
| * 前端排序:时间、商户总库存、商户已发数、商户剩余 | |||||
| */ | |||||
| /** | |||||
| * 设置商户购买券数 | |||||
| * 前端排序:时间、商户总库存、商户已发数、商户剩余 | |||||
| */ | |||||
| if (Objects.equals(EnumCouponSendSendType.MERCHANT.getCode(), record.getSendType())) { | if (Objects.equals(EnumCouponSendSendType.MERCHANT.getCode(), record.getSendType())) { | ||||
| String sortStr = null; | String sortStr = null; | ||||
| if (Objects.equals(record.getSortColumn(), WxCouponSend.SORT_MERCHANT_LNVENTORY) || | |||||
| Objects.equals(record.getSortColumn(), WxCouponSend.SORT_MERCHANT_SEND) || | |||||
| if (Objects.equals(record.getSortColumn(), WxCouponSend.SORT_MERCHANT_LNVENTORY) || | |||||
| Objects.equals(record.getSortColumn(), WxCouponSend.SORT_MERCHANT_SEND) || | |||||
| Objects.equals(record.getSortColumn(), WxCouponSend.SORT_REMAIN)) { | Objects.equals(record.getSortColumn(), WxCouponSend.SORT_REMAIN)) { | ||||
| sortStr = record.getSortColumn() + " " + record.getSortOrder(); | sortStr = record.getSortColumn() + " " + record.getSortOrder(); | ||||
| } else if (Objects.equals(record.getSortColumn(), "createDate")) { | } else if (Objects.equals(record.getSortColumn(), "createDate")) { | ||||
| sortStr = "create_date" + " " + record.getSortOrder(); | sortStr = "create_date" + " " + record.getSortOrder(); | ||||
| } | } | ||||
| record.setSortColumn(null); | |||||
| record.setSortCol(sortStr); | |||||
| record.setSortColumn(null); | |||||
| record.setSortCol(sortStr); | |||||
| pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponSendMapper.findListVoByValidType(record)); | pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponSendMapper.findListVoByValidType(record)); | ||||
| for (WxCouponSendVo cs : pageInfo.getList()) { | for (WxCouponSendVo cs : pageInfo.getList()) { | ||||
| JSONObject jo = JSONObject.parseObject(cs.getConditions()); | JSONObject jo = JSONObject.parseObject(cs.getConditions()); | ||||
| @@ -375,7 +375,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||||
| if (couponOrder != null) { | if (couponOrder != null) { | ||||
| bRet = true; | bRet = true; | ||||
| wxCouponActionLogService.addOne(couponOrder, send.getCouponId(), couponOrder.getId(), type.getCode(), send.getId()); | |||||
| wxCouponActionLogService.addOne(couponOrder, send.getCouponId(), couponOrder.getId(), type.getCode(), send.getId(),0L); | |||||
| // 发送消息 | // 发送消息 | ||||
| if (couponOrder != null) { | if (couponOrder != null) { | ||||
| @@ -430,8 +430,8 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||||
| List<WxAppinfo> appList = wxAppinfoService.getList(appinfoQ); | List<WxAppinfo> appList = wxAppinfoService.getList(appinfoQ); | ||||
| appName = appList.get(0).getName(); | appName = appList.get(0).getName(); | ||||
| }else { | }else { | ||||
| WxAppinfo appInfo = wxAppinfoService.getCAppInfo(tenantEntity,payw); | |||||
| appName = appInfo.getName(); | |||||
| WxAppinfo appInfo = wxAppinfoService.getCAppInfo(tenantEntity,payw); | |||||
| appName = appInfo.getName(); | |||||
| } | } | ||||
| Map<String, String> msgReplaceMap = new HashMap(); | Map<String, String> msgReplaceMap = new HashMap(); | ||||
| msgReplaceMap.put("title", title); | msgReplaceMap.put("title", title); | ||||
| @@ -628,7 +628,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||||
| @Override | @Override | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| public void handSel(WxCouponSend wxCouponSend, Long cUserId,EnumPayWay payWay) { | |||||
| public void handSel(WxCouponSend wxCouponSend, Long cUserId,EnumPayWay payWay,Long bUserId) { | |||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(cUserId,wxCouponSend.getFinalTenantId()); | WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectById(cUserId,wxCouponSend.getFinalTenantId()); | ||||
| if (Objects.isNull(wxCUserBasicInfo)) { | if (Objects.isNull(wxCUserBasicInfo)) { | ||||
| @@ -643,7 +643,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||||
| // 发放免费券 | // 发放免费券 | ||||
| WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(cUserId,cs, cs.getCouponId(), cs,payWay); | WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(cUserId,cs, cs.getCouponId(), cs,payWay); | ||||
| if (couponOrder != null) { | if (couponOrder != null) { | ||||
| wxCouponActionLogService.addOne(couponOrder, cs.getCouponId(), couponOrder.getId(), cs.getSendType(), cs.getId()); | |||||
| wxCouponActionLogService.addOne(couponOrder, cs.getCouponId(), couponOrder.getId(), cs.getSendType(), cs.getId(),bUserId); | |||||
| sendMsgForSendCoupon(couponOrder, cs, couponOrder, wxCUserBasicInfo); | sendMsgForSendCoupon(couponOrder, cs, couponOrder, wxCUserBasicInfo); | ||||
| } else { | } else { | ||||
| logger.warn("handSel couponOrder is null"); | logger.warn("handSel couponOrder is null"); | ||||
| @@ -17,6 +17,7 @@ import com.iformall.exception.MallinkException; | |||||
| import com.iformall.mapper.*; | import com.iformall.mapper.*; | ||||
| import com.iformall.service.ExcelService; | import com.iformall.service.ExcelService; | ||||
| import com.iformall.service.WxCreditHistoryService; | import com.iformall.service.WxCreditHistoryService; | ||||
| import com.iformall.service.WxMallService; | |||||
| import com.iformall.service.WxScoreRulesService; | import com.iformall.service.WxScoreRulesService; | ||||
| import com.iformall.utils.CreditUtil; | import com.iformall.utils.CreditUtil; | ||||
| import com.iformall.utils.RedisLock; | import com.iformall.utils.RedisLock; | ||||
| @@ -26,6 +27,7 @@ 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; | ||||
| import org.springframework.scheduling.annotation.Async; | |||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import org.springframework.transaction.annotation.Propagation; | import org.springframework.transaction.annotation.Propagation; | ||||
| import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||
| @@ -33,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.text.SimpleDateFormat; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.HashMap; | import java.util.HashMap; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -43,8 +46,11 @@ import java.util.stream.Collectors; | |||||
| @Service | @Service | ||||
| @Slf4j | @Slf4j | ||||
| public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | ||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | private final Logger logger = LoggerFactory.getLogger(this.getClass()); | ||||
| private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |||||
| @Autowired | @Autowired | ||||
| WxCreditHistoryMapper wxCreditHistoryMapper; | WxCreditHistoryMapper wxCreditHistoryMapper; | ||||
| @@ -54,6 +60,9 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| @Autowired | @Autowired | ||||
| WxCUserBasicInfoMapper wxCUserBasicInfoMapper; | WxCUserBasicInfoMapper wxCUserBasicInfoMapper; | ||||
| @Autowired | |||||
| WxProjectConfigMapper wxProjectConfigMapper; | |||||
| @Autowired | @Autowired | ||||
| WxMerchantBUserMapper wxMerchantBUserMapper; | WxMerchantBUserMapper wxMerchantBUserMapper; | ||||
| @@ -78,6 +87,9 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| @Autowired | @Autowired | ||||
| WxLevelConfigMapper wxLevelConfigMapper; | WxLevelConfigMapper wxLevelConfigMapper; | ||||
| @Autowired | |||||
| private WxMallService wxMallService; | |||||
| @Override | @Override | ||||
| public void clearCreditByYear() { | public void clearCreditByYear() { | ||||
| WxScoreRules wxScoreRules = new WxScoreRules(); | WxScoreRules wxScoreRules = new WxScoreRules(); | ||||
| @@ -87,6 +99,20 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| } | } | ||||
| /** | |||||
| * @param | |||||
| */ | |||||
| @Override | |||||
| public void clearCreditByYear(WxCreditHistory wxCreditHistory) { | |||||
| if(wxCreditHistory.getEndTime() == null){ | |||||
| wxCreditHistory.setEndTime(new Date()); | |||||
| } | |||||
| String tableSuffix = "_" + Integer.parseInt(wxCreditHistory.getFinalTenantId())%100; | |||||
| wxCreditHistoryMapper.userCreditClear(dateFormat.format(wxCreditHistory.getEndTime()),tableSuffix); | |||||
| } | |||||
| @Override | @Override | ||||
| public void exportData(HttpServletRequest request, HttpServletResponse response, WxCreditHistory wxCreditHistory) { | public void exportData(HttpServletRequest request, HttpServletResponse response, WxCreditHistory wxCreditHistory) { | ||||
| List<WxCreditHistoryVo> wxCreditHistoryVoList = wxCreditHistoryMapper.findListMore(wxCreditHistory); | List<WxCreditHistoryVo> wxCreditHistoryVoList = wxCreditHistoryMapper.findListMore(wxCreditHistory); | ||||
| @@ -108,6 +134,16 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| return new ResultData(result); | return new ResultData(result); | ||||
| } | } | ||||
| @Override | |||||
| public Integer getAddCreditSummary(WxCreditHistory wxCreditHistory) { | |||||
| return wxCreditHistoryMapper.getAddCreditSummary(wxCreditHistory); | |||||
| } | |||||
| @Override | |||||
| public Integer getLesCreditSummary(WxCreditHistory wxCreditHistory) { | |||||
| return wxCreditHistoryMapper.getLesCreditSummary(wxCreditHistory); | |||||
| } | |||||
| @Override | @Override | ||||
| public PageInfo<WxCreditHistory> listAsPage(WxCreditHistory record, Integer pageIndex, Integer pageSize) { | public PageInfo<WxCreditHistory> listAsPage(WxCreditHistory record, Integer pageIndex, Integer pageSize) { | ||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCreditHistoryMapper.findList(record)); | return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCreditHistoryMapper.findList(record)); | ||||
| @@ -212,13 +248,11 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| record.setSpend(new BigDecimal(record.getSpendStr()).multiply(new BigDecimal(100)).intValue()); | record.setSpend(new BigDecimal(record.getSpendStr()).multiply(new BigDecimal(100)).intValue()); | ||||
| } | } | ||||
| int currentCreditAmount = 0; | int currentCreditAmount = 0; | ||||
| //获取当前用户总积分规则:优先获取wxCUser中数据 若不存在 再获取wxCUserBasicInfo表中数据 | |||||
| //获取当前用户总积分规则: | |||||
| 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) { | |||||
| record.setCreditAmount(currentCreditAmount); | |||||
| } | |||||
| record.setCreditAmount(currentCreditAmount); | |||||
| int creditChangeNumOrigin = creditIncrement(record); | int creditChangeNumOrigin = creditIncrement(record); | ||||
| int creditChangeNum = creditChangeNumOrigin ; | int creditChangeNum = creditChangeNumOrigin ; | ||||
| @@ -350,9 +384,9 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| if (record.getCreditType() == EnumScoreType.BIND_CAR.getCode()) { | if (record.getCreditType() == EnumScoreType.BIND_CAR.getCode()) { | ||||
| return bindCarAddCredit(record); | return bindCarAddCredit(record); | ||||
| } | } | ||||
| if (record.getCreditType() == EnumScoreType.WECHAT_PERSION.getCode()) { | |||||
| return personAddCredit(record); | |||||
| } | |||||
| // if (record.getCreditType() == EnumScoreType.WECHAT_PERSION.getCode()) { | |||||
| // return personAddCredit(record); | |||||
| // } | |||||
| if (record.getCreditType() == EnumScoreType.WECHAT_PHONE.getCode()) { | if (record.getCreditType() == EnumScoreType.WECHAT_PHONE.getCode()) { | ||||
| return phoneAddCredit(record); | return phoneAddCredit(record); | ||||
| } | } | ||||
| @@ -377,6 +411,12 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| if (record.getCreditType() == EnumScoreType.ACTIVITY_JOIN.getCode()) { | if (record.getCreditType() == EnumScoreType.ACTIVITY_JOIN.getCode()) { | ||||
| return reduceCredit(record); | return reduceCredit(record); | ||||
| } | } | ||||
| if (record.getCreditType() == EnumScoreType.GAME_LES_CREDIT.getCode()) { | |||||
| return reduceCredit(record); | |||||
| } | |||||
| if (record.getCreditType() == EnumScoreType.GAME_ADD_CREDIT.getCode()) { | |||||
| return record.getCreditNum(); | |||||
| } | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| @@ -407,12 +447,12 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| return wxScoreRules.getRule(EnumScoreType.BIND_CAR, WxScoreRules.SCORE); | return wxScoreRules.getRule(EnumScoreType.BIND_CAR, WxScoreRules.SCORE); | ||||
| } | } | ||||
| private int personAddCredit(WxCreditHistory record) { | |||||
| // 1. 获取score rules | |||||
| WxScoreRules wxScoreRules = wxScoreRulesService.getCreditRules(record.getTenantId()); | |||||
| // 2. 增长的积分 | |||||
| return wxScoreRules.getRule(EnumScoreType.WECHAT_PERSION, WxScoreRules.SCORE); | |||||
| } | |||||
| // private int personAddCredit(WxCreditHistory record) { | |||||
| // // 1. 获取score rules | |||||
| // WxScoreRules wxScoreRules = wxScoreRulesService.getCreditRules(record.getTenantId()); | |||||
| // // 2. 增长的积分 | |||||
| // return wxScoreRules.getRule(EnumScoreType.WECHAT_PERSION, WxScoreRules.SCORE); | |||||
| // } | |||||
| private int phoneAddCredit(WxCreditHistory record) { | private int phoneAddCredit(WxCreditHistory record) { | ||||
| // 1. 获取score rules | // 1. 获取score rules | ||||
| @@ -155,18 +155,35 @@ public class WxGameServiceImpl implements WxGameService { | |||||
| wxGameActionLog.setGameId(gameId); | wxGameActionLog.setGameId(gameId); | ||||
| int playLimit = wxGame.getPlayLimit(); | int playLimit = wxGame.getPlayLimit(); | ||||
| int playCreditLimit = wxGame.getPlayCreditLimit(); | |||||
| int playCredit = wxGame.getPlayCredit(); | |||||
| int AwardLimit = wxGame.getAwardLimit(); | int AwardLimit = wxGame.getAwardLimit(); | ||||
| int playCount = wxGameActionLogMapper.getPlayCount(wxGameActionLog); | int playCount = wxGameActionLogMapper.getPlayCount(wxGameActionLog); | ||||
| int playCreditCount = wxGameActionLogMapper.getPlayCreditCount(wxGameActionLog); | |||||
| int AwardCount = wxGameActionLogMapper.getAwardCount(wxGameActionLog); | int AwardCount = wxGameActionLogMapper.getAwardCount(wxGameActionLog); | ||||
| boolean playAble = !(( playLimit != 0 && playCount >= playLimit) | |||||
| || (AwardLimit != 0 && AwardCount >= AwardLimit)); | |||||
| // boolean playAble = !(( playLimit != 0 && playCount >= playLimit) | |||||
| // || (AwardLimit != 0 && AwardCount >= AwardLimit)); | |||||
| Map<String,Object> map = new HashMap(); | Map<String,Object> map = new HashMap(); | ||||
| map.put("playLimit",playLimit); | |||||
| map.put("AwardLimit",AwardLimit); | |||||
| map.put("playCount",playCount); | |||||
| map.put("AwardCount",AwardCount); | |||||
| map.put("playLimit",playLimit);//免费次数限制(为0是不限制次数,为-1是不能玩) | |||||
| map.put("playCreditLimit",playCreditLimit);//消耗积分次数限制(为0是不限制次数,为-1是不能玩) | |||||
| map.put("playCredit",playCredit);//消耗积分数量 | |||||
| map.put("AwardLimit",AwardLimit);//中奖次数限制(为0是不限制次数) | |||||
| map.put("playCount",playCount);//当前玩的免费次数 | |||||
| map.put("playCreditCount",playCreditCount);//当前玩的消耗积分次数 | |||||
| map.put("AwardCount",AwardCount);//当前中奖次数 | |||||
| boolean playAble = true; | |||||
| if(AwardLimit != 0 && AwardCount >= AwardLimit){//中奖次数没了,不能完了 | |||||
| playAble = false; | |||||
| } | |||||
| if((playLimit > 0 && playCount >= playLimit) || playLimit < 0){//免费不能玩了 | |||||
| if((playCreditLimit > 0 && playCreditCount >= playCreditLimit) || playCreditLimit < 0){//积分不能玩了 | |||||
| playAble = false; | |||||
| } | |||||
| } | |||||
| map.put("playAble",playAble); | map.put("playAble",playAble); | ||||
| return new ResultData(map); | return new ResultData(map); | ||||
| } | } | ||||
| @@ -280,7 +297,9 @@ public class WxGameServiceImpl implements WxGameService { | |||||
| Long couponId = obj.getLong("couponId"); | Long couponId = obj.getLong("couponId"); | ||||
| int weight = obj.getIntValue("weight"); | int weight = obj.getIntValue("weight"); | ||||
| try { | try { | ||||
| saveOrUpdateCouponChannel(couponId, wxCouponChannelsMap, record); | |||||
| if(couponId != null){ | |||||
| saveOrUpdateCouponChannel(couponId, wxCouponChannelsMap, record); | |||||
| } | |||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| } | } | ||||
| @@ -39,7 +39,7 @@ public class WxMsgValidationcodeModelServiceImpl implements WxMsgValidationcodeM | |||||
| WxMsgConfigMapper wxMsgConfigMapper; | WxMsgConfigMapper wxMsgConfigMapper; | ||||
| @Override | @Override | ||||
| @Transactional | |||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| public void wxMsgValidationcodeModelInit(String tenantId, String signature, String emailBgImg) { | public void wxMsgValidationcodeModelInit(String tenantId, String signature, String emailBgImg) { | ||||
| DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||||
| String nowTimestr = format.format(new Date()); | String nowTimestr = format.format(new Date()); | ||||
| @@ -469,7 +469,6 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_PENDING_REFUND.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_PENDING_REFUND.getCode()); | ||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_REFUND_SUCCESS.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_REFUND_SUCCESS.getCode()); | ||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_REFUND_FAILD.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_REFUND_FAILD.getCode()); | ||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_PRESSING.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_PRESSING.getCode()); | ||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_COMPLETE.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_COMPLETE.getCode()); | ||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_CANCEL.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_CANCEL.getCode()); | ||||
| @@ -479,10 +478,10 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()); | ||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_OVERTIME.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_OVERTIME.getCode()); | ||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_BREAK.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_BREAK.getCode()); | ||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_SCHEDU_REFUND.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_SCHEDU_REFUND.getCode()); | ||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode()); | ||||
| orderQ.setStatusS(statusS); | orderQ.setStatusS(statusS); | ||||
| return wxOrderMapper.countCouponConditionType1(orderQ); | return wxOrderMapper.countCouponConditionType1(orderQ); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| @@ -1566,13 +1565,18 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| creditHistory.setTenantId(wxMerchant.getFinalTenantId()); | creditHistory.setTenantId(wxMerchant.getFinalTenantId()); | ||||
| creditHistory.setFinalTenantId(wxMerchant.getFinalTenantId()); | creditHistory.setFinalTenantId(wxMerchant.getFinalTenantId()); | ||||
| creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode()); | creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode()); | ||||
| creditHistory.setBusinessId(wxMerchant.getBusinessId()); | |||||
| creditHistory.setSpend(updateOrder.getPayment()); | |||||
| creditHistory.setMerchantId(wxMerchant.getId()); | |||||
| if (updateOrder.getCouponChannelId() != null) { | if (updateOrder.getCouponChannelId() != null) { | ||||
| WxCouponChannel wxCouponChannel = wxCouponChannelMapper.selectById(updateOrder.getCouponChannelId(),updateOrder.getTenantId()); | WxCouponChannel wxCouponChannel = wxCouponChannelMapper.selectById(updateOrder.getCouponChannelId(),updateOrder.getTenantId()); | ||||
| creditHistory.setCouponId(wxCouponChannel.getCouponId()); | creditHistory.setCouponId(wxCouponChannel.getCouponId()); | ||||
| } | } | ||||
| creditHistory.setBusinessId(wxMerchant.getBusinessId()); | |||||
| creditHistory.setSpend(updateOrder.getPayment()); | |||||
| creditHistory.setMerchantId(wxMerchant.getId()); | |||||
| creditHistory.setChangePurpose("付款码消费:消费商户["+wxMerchant.getName()+"] 金额["+creditHistory.getSpendStr()+"元]"); | |||||
| wxCreditHistoryService.saveOrUpdate(creditHistory); | wxCreditHistoryService.saveOrUpdate(creditHistory); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("积分值:" + e.getMessage()); | logger.error("积分值:" + e.getMessage()); | ||||
| @@ -2012,7 +2016,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| } | } | ||||
| // couponActionLog | // couponActionLog | ||||
| try { | try { | ||||
| wxCouponActionLogService.addOne(order, order.getProductId(), order.getOrderNumber(), EnumCouponSendSendType.ACTIVE.getCode(), orderSaveDto.getCouponChannelId()); | |||||
| wxCouponActionLogService.addOne(order, order.getProductId(), order.getOrderNumber(), EnumCouponSendSendType.ACTIVE.getCode(), orderSaveDto.getCouponChannelId(),0L); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| // 库存恢复 | // 库存恢复 | ||||
| stockBack(order); | stockBack(order); | ||||
| @@ -2191,23 +2195,27 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| private void creditPay(WxCUserBasicInfo user, WxCoupon coupon) { | private void creditPay(WxCUserBasicInfo user, WxCoupon coupon) { | ||||
| //-------此处为【积分支付】记录增加积分操作------- | //-------此处为【积分支付】记录增加积分操作------- | ||||
| WxCreditHistory creditHistory = new WxCreditHistory(); | WxCreditHistory creditHistory = new WxCreditHistory(); | ||||
| //记录操作人类型 操作人id | |||||
| if (user.getOperatorType() == EnumUserType.MALLUSER.getCode()) { | |||||
| creditHistory.setOperatorType(EnumUserType.MALLUSER.getCode()); | |||||
| creditHistory.setOperatorId(user.getOperatorId()); | |||||
| } else { | |||||
| creditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); | |||||
| creditHistory.setOperatorId(user.getId()); | |||||
| } | |||||
| creditHistory.setCreditNum(coupon.getCreditPrice()); | creditHistory.setCreditNum(coupon.getCreditPrice()); | ||||
| creditHistory.setCUserId(user.getId()); | creditHistory.setCUserId(user.getId()); | ||||
| // creditHistory.updateTenantInfo(coupon); | // creditHistory.updateTenantInfo(coupon); | ||||
| creditHistory.setTenantId(coupon.getFinalTenantId()); | creditHistory.setTenantId(coupon.getFinalTenantId()); | ||||
| creditHistory.setFinalTenantId(coupon.getFinalTenantId()); | creditHistory.setFinalTenantId(coupon.getFinalTenantId()); | ||||
| creditHistory.setCreditType(EnumScoreType.CHANGE_CREDIT.getCode()); | creditHistory.setCreditType(EnumScoreType.CHANGE_CREDIT.getCode()); | ||||
| creditHistory.setCouponId(coupon.getId()); | creditHistory.setCouponId(coupon.getId()); | ||||
| //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | ||||
| setMerchantId(coupon, creditHistory); | setMerchantId(coupon, creditHistory); | ||||
| //记录操作人类型 操作人id | |||||
| if (user.getOperatorType() == EnumUserType.MALLUSER.getCode()) { | |||||
| creditHistory.setOperatorType(EnumUserType.MALLUSER.getCode()); | |||||
| creditHistory.setOperatorId(user.getOperatorId()); | |||||
| creditHistory.setChangePurpose("管理端积分兑换"+"["+coupon.getTitle()+"]"); | |||||
| } else { | |||||
| creditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); | |||||
| creditHistory.setOperatorId(user.getId()); | |||||
| creditHistory.setChangePurpose("积分兑换"+"["+coupon.getTitle()+"]"); | |||||
| } | |||||
| wxCreditHistoryService.saveOrUpdate(creditHistory); | wxCreditHistoryService.saveOrUpdate(creditHistory); | ||||
| } | } | ||||
| @@ -69,7 +69,7 @@ public class WxParkServiceImpl implements WxParkService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| @Transactional | |||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| public void saveOrUpdate(WxPark record) { | public void saveOrUpdate(WxPark record) { | ||||
| Date now = new Date(); | Date now = new Date(); | ||||
| if (record.getId() == null) { | if (record.getId() == null) { | ||||
| @@ -69,7 +69,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { | |||||
| MallUserInfoService userInfoService; | MallUserInfoService userInfoService; | ||||
| @Override | @Override | ||||
| @Transactional | |||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| public void initProjectConfig(Long id) { | public void initProjectConfig(Long id) { | ||||
| // WxProjectConfig wxProjectConfig = wxProjectConfigMapper.selectById(id); | // WxProjectConfig wxProjectConfig = wxProjectConfigMapper.selectById(id); | ||||
| // if(wxProjectConfig!=null && wxProjectConfig.getDelType()<10000){ | // if(wxProjectConfig!=null && wxProjectConfig.getDelType()<10000){ | ||||
| @@ -131,7 +131,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| @Transactional | |||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| public void initMall(WxMall wxMall) { | public void initMall(WxMall wxMall) { | ||||
| if(wxMall.getId() == null){ | if(wxMall.getId() == null){ | ||||
| wxMall.setTenantId("-1"); | wxMall.setTenantId("-1"); | ||||
| @@ -157,7 +157,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| @Transactional | |||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| public void initBuilding(List<WxMallBuilding> wxMallBuildings) { | public void initBuilding(List<WxMallBuilding> wxMallBuildings) { | ||||
| wxMallBuildingService.deleteByTenantId(wxMallBuildings.get(0).getTenantId()); | wxMallBuildingService.deleteByTenantId(wxMallBuildings.get(0).getTenantId()); | ||||
| wxMallFloorService.deleteByTenantId(wxMallBuildings.get(0).getTenantId()); | wxMallFloorService.deleteByTenantId(wxMallBuildings.get(0).getTenantId()); | ||||
| @@ -185,7 +185,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| @Transactional | |||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| public void initPayAccount(WxPayAccount wxPayAccount) { | public void initPayAccount(WxPayAccount wxPayAccount) { | ||||
| wxPayAccountService.saveOrUpdate(wxPayAccount); | wxPayAccountService.saveOrUpdate(wxPayAccount); | ||||
| WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(wxPayAccount.getTenantId()); | WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(wxPayAccount.getTenantId()); | ||||
| @@ -218,7 +218,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { | |||||
| @Override | @Override | ||||
| @Transactional | |||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| public void initUserInfo(MallUserInfo userInfo) { | public void initUserInfo(MallUserInfo userInfo) { | ||||
| userInfoService.saveOrUpdate(userInfo); | userInfoService.saveOrUpdate(userInfo); | ||||
| //创建角色 | //创建角色 | ||||
| @@ -66,10 +66,8 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| " {\"desc\": \"线上交易1元\", \"step\": 1, \"limit\": 0, \"score\": 0, \"title\": \"数码家电\", \"businessId\": 11}," + | " {\"desc\": \"线上交易1元\", \"step\": 1, \"limit\": 0, \"score\": 0, \"title\": \"数码家电\", \"businessId\": 11}," + | ||||
| " {\"desc\": \"线上交易1元\", \"step\": 1, \"limit\": 0, \"score\": 0, \"title\": \"其他\", \"businessId\": 6}]}," + | " {\"desc\": \"线上交易1元\", \"step\": 1, \"limit\": 0, \"score\": 0, \"title\": \"其他\", \"businessId\": 6}]}," + | ||||
| " {\"id\": 3, \"desc\": \"绑定车牌1个\", \"step\": 1, \"limit\": 1, \"score\": 0}," + | " {\"id\": 3, \"desc\": \"绑定车牌1个\", \"step\": 1, \"limit\": 1, \"score\": 0}," + | ||||
| " {\"id\": 5, \"desc\": \"授权个人信息\", \"step\": 1, \"limit\": 1, \"score\": 0}," + | |||||
| " {\"id\": 6, \"desc\": \"授权手机号\", \"step\": 1, \"limit\": 1, \"score\": 0}," + | " {\"id\": 6, \"desc\": \"授权手机号\", \"step\": 1, \"limit\": 1, \"score\": 0}," + | ||||
| " {\"id\": 7, \"desc\": \"编辑个人信息\", \"step\": 1, \"limit\": 1, \"score\": 0}," + | |||||
| " {\"id\": 8, \"desc\": \"编辑个人信息\", \"step\": 1, \"limit\": 1, \"score\": 0}]"); | |||||
| " {\"id\": 7, \"desc\": \"编辑个人信息\", \"step\": 1, \"limit\": 1, \"score\": 0}]"); | |||||
| wxScoreRules.setCreateDate(new Date()); | wxScoreRules.setCreateDate(new Date()); | ||||
| wxScoreRules.setUpdateDate(new Date()); | wxScoreRules.setUpdateDate(new Date()); | ||||
| wxScoreRules.setType(2); | wxScoreRules.setType(2); | ||||
| @@ -93,7 +91,6 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| " {\"desc\": \"线上交易1元\", \"step\": 1, \"limit\": 0, \"score\": 0, \"title\": \"数码家电\", \"businessId\": 11}," + | " {\"desc\": \"线上交易1元\", \"step\": 1, \"limit\": 0, \"score\": 0, \"title\": \"数码家电\", \"businessId\": 11}," + | ||||
| " {\"desc\": \"线上交易1元\", \"step\": 1, \"limit\": 0, \"score\": 0, \"title\": \"其他\", \"businessId\": 6}]}," + | " {\"desc\": \"线上交易1元\", \"step\": 1, \"limit\": 0, \"score\": 0, \"title\": \"其他\", \"businessId\": 6}]}," + | ||||
| " {\"id\": 3, \"desc\": \"绑定车牌1个\", \"step\": 1, \"limit\": 1, \"score\": 0}," + | " {\"id\": 3, \"desc\": \"绑定车牌1个\", \"step\": 1, \"limit\": 1, \"score\": 0}," + | ||||
| " {\"id\": 5, \"desc\": \"授权个人信息\", \"step\": 1, \"limit\": 1, \"score\": 0}," + | |||||
| " {\"id\": 6, \"desc\": \"授权手机号\", \"step\": 1, \"limit\": 1, \"score\": 0}," + | " {\"id\": 6, \"desc\": \"授权手机号\", \"step\": 1, \"limit\": 1, \"score\": 0}," + | ||||
| " {\"id\": 7, \"desc\": \"编辑个人信息\", \"step\": 1, \"limit\": 1, \"score\": 0}]"); | " {\"id\": 7, \"desc\": \"编辑个人信息\", \"step\": 1, \"limit\": 1, \"score\": 0}]"); | ||||
| wxScoreRules.setCreateDate(new Date()); | wxScoreRules.setCreateDate(new Date()); | ||||
| @@ -419,21 +416,21 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| return addScoreNumber; | return addScoreNumber; | ||||
| } | } | ||||
| private int personAddScore(TenantEntity tenantEntity,WxCUserBasicInfo user) { | |||||
| int addScoreNumber = 0; | |||||
| // 1. 获取score rules | |||||
| WxScoreRules scoreRules = getScoreRules(tenantEntity); | |||||
| // 2. 获取成长值 | |||||
| addScoreNumber = scoreRules.getRule(EnumScoreType.WECHAT_PERSION,WxScoreRules.SCORE); | |||||
| // 3. 增长的成长值 | |||||
| updateScore(user.getId(),tenantEntity, addScoreNumber); | |||||
| // 4. 记录历史 | |||||
| recordScoreHistory(addScoreNumber, tenantEntity, user.getId(), EnumScoreType.WECHAT_PERSION); | |||||
| return addScoreNumber; | |||||
| } | |||||
| // private int personAddScore(TenantEntity tenantEntity,WxCUserBasicInfo user) { | |||||
| // int addScoreNumber = 0; | |||||
| // // 1. 获取score rules | |||||
| // WxScoreRules scoreRules = getScoreRules(tenantEntity); | |||||
| // | |||||
| // // 2. 获取成长值 | |||||
| // addScoreNumber = scoreRules.getRule(EnumScoreType.WECHAT_PERSION,WxScoreRules.SCORE); | |||||
| // | |||||
| // // 3. 增长的成长值 | |||||
| // updateScore(user.getId(),tenantEntity, addScoreNumber); | |||||
| // | |||||
| // // 4. 记录历史 | |||||
| // recordScoreHistory(addScoreNumber, tenantEntity, user.getId(), EnumScoreType.WECHAT_PERSION); | |||||
| // return addScoreNumber; | |||||
| // } | |||||
| private int phoneAddScore(TenantEntity tenantEntity,WxCUserBasicInfo user) { | private int phoneAddScore(TenantEntity tenantEntity,WxCUserBasicInfo user) { | ||||
| int addScoreNumber = 0; | int addScoreNumber = 0; | ||||
| @@ -600,9 +597,9 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { | |||||
| case BIND_CAR:{ | case BIND_CAR:{ | ||||
| return bindCarAddScore(tenantEntity,wxCUserBasicInfo); | return bindCarAddScore(tenantEntity,wxCUserBasicInfo); | ||||
| } | } | ||||
| case WECHAT_PERSION:{ | |||||
| return personAddScore(tenantEntity,wxCUserBasicInfo); | |||||
| } | |||||
| // case WECHAT_PERSION:{ | |||||
| // return personAddScore(tenantEntity,wxCUserBasicInfo); | |||||
| // } | |||||
| case WECHAT_PHONE:{ | case WECHAT_PHONE:{ | ||||
| return phoneAddScore(tenantEntity,wxCUserBasicInfo); | return phoneAddScore(tenantEntity,wxCUserBasicInfo); | ||||
| } | } | ||||
| @@ -85,6 +85,7 @@ public class ParkHelper { | |||||
| wxCreditHistory.setFinalTenantId(park.getFinalTenantId()); | wxCreditHistory.setFinalTenantId(park.getFinalTenantId()); | ||||
| // wxCreditHistory.setCreateDate(new Date()); | // wxCreditHistory.setCreateDate(new Date()); | ||||
| wxCreditHistory.setCreditType(EnumScoreType.BIND_CAR.getCode()); | wxCreditHistory.setCreditType(EnumScoreType.BIND_CAR.getCode()); | ||||
| wxCreditHistory.setChangePurpose(EnumScoreType.BIND_CAR.getMessage()); | |||||
| wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); | wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); | ||||
| wxCreditHistory.setOperatorId(cuUserId); | wxCreditHistory.setOperatorId(cuUserId); | ||||
| wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | ||||
| @@ -1258,4 +1258,34 @@ public class DateUtils { | |||||
| System.out.println(next); | System.out.println(next); | ||||
| } | } | ||||
| */ | */ | ||||
| /** | |||||
| * 获取多少岁 | |||||
| * @param birthDay | |||||
| * @return | |||||
| * @throws Exception | |||||
| */ | |||||
| public static int getAge(Date birthDay){ | |||||
| Calendar cal = Calendar.getInstance(); | |||||
| if (cal.before(birthDay)) { //出生日期晚于当前时间,无法计算 | |||||
| throw new IllegalArgumentException( | |||||
| "The birthDay is before Now.It's unbelievable!"); | |||||
| } | |||||
| int yearNow = cal.get(Calendar.YEAR); //当前年份 | |||||
| int monthNow = cal.get(Calendar.MONTH); //当前月份 | |||||
| int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH); //当前日期 | |||||
| cal.setTime(birthDay); | |||||
| int yearBirth = cal.get(Calendar.YEAR); | |||||
| int monthBirth = cal.get(Calendar.MONTH); | |||||
| int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH); | |||||
| int age = yearNow - yearBirth; //计算整岁数 | |||||
| if (monthNow <= monthBirth) { | |||||
| if (monthNow == monthBirth) { | |||||
| if (dayOfMonthNow < dayOfMonthBirth) age--;//当前日期在生日之前,年龄减一 | |||||
| }else{ | |||||
| age--;//当前月份在生日之前,年龄减一 | |||||
| } | |||||
| } return age; | |||||
| } | |||||
| } | } | ||||
| @@ -35,7 +35,7 @@ | |||||
| wcubi.`avatar_url`,wcubi.`credit`,wcubi.`active_time`,wcubi.`login_count`,wcubi.`act_record` | wcubi.`avatar_url`,wcubi.`credit`,wcubi.`active_time`,wcubi.`login_count`,wcubi.`act_record` | ||||
| ,(select level from wx_level_config | ,(select level from wx_level_config | ||||
| where poins >= points and tenant_id=wcubi.final_tenant_id | where poins >= points and tenant_id=wcubi.final_tenant_id | ||||
| order by points desc limit 1 ) level,wcubi.status | |||||
| order by points desc limit 1 ) level,wcubi.score_date,wcubi.status | |||||
| </sql> | </sql> | ||||
| <sql id="allSimpleColumns"> | <sql id="allSimpleColumns"> | ||||
| @@ -116,6 +116,12 @@ | |||||
| <if test=" null != status "> | <if test=" null != status "> | ||||
| and wcubi.`status` = #{status} | and wcubi.`status` = #{status} | ||||
| </if> | </if> | ||||
| <if test=" null != carNumber and '' != carNumber"> | |||||
| and wcubi.id in (select c_user_id from wx_c_user_car | |||||
| where (`tenant_id` = #{finalTenantId} or `parent_tenant_id` = #{finalTenantId}) | |||||
| and car_number like concat('%', #{carNumber},'%')) | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and wcubi.id in | and wcubi.id in | ||||
| @@ -220,6 +226,18 @@ | |||||
| and wcubi.`status` = #{basicInfo.status} | and wcubi.`status` = #{basicInfo.status} | ||||
| </if> | </if> | ||||
| <if test=" null != basicInfo.carNumber and '' != basicInfo.carNumber"> | |||||
| and wcubi.id in (select c_user_id from wx_c_user_car | |||||
| where 1=1 | |||||
| <if test=" null != tenantInfo.tenantId and '' != tenantInfo.tenantId"> | |||||
| and `tenant_id` = #{tenantInfo.tenantId} | |||||
| </if> | |||||
| <if test=" null != tenantInfo.parentTenantId and '' != tenantInfo.parentTenantId"> | |||||
| and `parent_tenant_id` = #{tenantInfo.parentTenantId} | |||||
| </if> | |||||
| and car_number like concat('%', #{basicInfo.carNumber},'%')) | |||||
| </if> | |||||
| <if test=" null != basicInfo.ids "> | <if test=" null != basicInfo.ids "> | ||||
| and wcubi.id in | and wcubi.id in | ||||
| <foreach collection="basicInfo.ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="basicInfo.ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| @@ -617,6 +635,9 @@ | |||||
| <result column="credit" jdbcType="INTEGER" property="credit"/> | <result column="credit" jdbcType="INTEGER" property="credit"/> | ||||
| <result column="tags" jdbcType="VARCHAR" property="tags"/> | <result column="tags" jdbcType="VARCHAR" property="tags"/> | ||||
| <result column="active_time" jdbcType="TIMESTAMP" property="activeTime"/> | <result column="active_time" jdbcType="TIMESTAMP" property="activeTime"/> | ||||
| <result column="addCredit" jdbcType="INTEGER" property="addCredit"/> | |||||
| <result column="lesCredit" jdbcType="INTEGER" property="lesCredit"/> | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="allVoColumns"> | <sql id="allVoColumns"> | ||||
| @@ -801,6 +822,24 @@ | |||||
| <select id="findVoList1" resultMap="VoBaseResultMap"> | <select id="findVoList1" resultMap="VoBaseResultMap"> | ||||
| select | select | ||||
| <include refid="allVoColumns"/> | <include refid="allVoColumns"/> | ||||
| ,(select ifnull(sum(credit.credit_num),0) amount from wx_credit_history credit | |||||
| where credit.`tenant_id` = #{tenantInfo.tenantId} | |||||
| and credit.credit_num > 0 and credit.c_user_id = cu.id | |||||
| <if test=" null != basicInfo.creditStartTime "> | |||||
| and credit.create_date >= #{basicInfo.creditStartTime} | |||||
| </if> | |||||
| <if test=" null != basicInfo.creditEndTime"> | |||||
| and credit.create_date < #{basicInfo.creditEndTime} | |||||
| </if>) as addCredit, | |||||
| (select ifnull(sum(credit.credit_num),0) amount from wx_credit_history credit | |||||
| where credit.`tenant_id` = #{tenantInfo.tenantId} | |||||
| and credit.credit_num < 0 and credit.c_user_id = cu.id | |||||
| <if test=" null != basicInfo.creditStartTime "> | |||||
| and credit.create_date >= #{basicInfo.creditStartTime} | |||||
| </if> | |||||
| <if test=" null != basicInfo.creditEndTime"> | |||||
| and credit.create_date < #{basicInfo.creditEndTime} | |||||
| </if>) as lesCredit | |||||
| from wx_c_user_basic_info cu | from wx_c_user_basic_info cu | ||||
| left join wx_c_user_tags cut on cut.`id` = cu.`tag_id` | left join wx_c_user_tags cut on cut.`id` = cu.`tag_id` | ||||
| <include refid="dynamicVoWhereConditions1"/> | <include refid="dynamicVoWhereConditions1"/> | ||||
| @@ -6,6 +6,9 @@ | |||||
| <result column="tenant_id" jdbcType="VARCHAR" property="tenantId" /> | <result column="tenant_id" jdbcType="VARCHAR" property="tenantId" /> | ||||
| <result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId"/> | <result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId"/> | ||||
| <result column="c_user_id" jdbcType="BIGINT" property="cUserId" /> | <result column="c_user_id" jdbcType="BIGINT" property="cUserId" /> | ||||
| <result column="phone" jdbcType="VARCHAR" property="userPhone" /> | |||||
| <result column="car_number" jdbcType="VARCHAR" property="carNumber" /> | <result column="car_number" jdbcType="VARCHAR" property="carNumber" /> | ||||
| <result column="create_date" jdbcType="TIMESTAMP" property="createDate" /> | <result column="create_date" jdbcType="TIMESTAMP" property="createDate" /> | ||||
| <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" /> | <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" /> | ||||
| @@ -15,80 +18,83 @@ | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| `id`,`tenant_id`,`parent_tenant_id`,`c_user_id`,`car_number`,`create_date`,`update_date`,`vendor_type`,`vendor_params`,`vendor_person_id` | |||||
| wcuc.`id`,wcuc.`tenant_id`,wcuc.`parent_tenant_id`,wcuc.`c_user_id`,wcuc.`car_number`,wcuc.`create_date`,wcuc.`update_date`,wcuc.`vendor_type`,wcuc.`vendor_params`,wcuc.`vendor_person_id` | |||||
| </sql> | </sql> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||
| where 1 = 1 | |||||
| <if test=" null != id "> | <if test=" null != id "> | ||||
| and `id` = #{id} | |||||
| and wcuc.`id` = #{id} | |||||
| </if> | </if> | ||||
| <if test=" null != tenantId and '' != tenantId"> | <if test=" null != tenantId and '' != tenantId"> | ||||
| and `tenant_id` = #{tenantId} | |||||
| and wcuc.`tenant_id` = #{tenantId} | |||||
| </if> | </if> | ||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | <if test=" null != parentTenantId and '' != parentTenantId"> | ||||
| and `parent_tenant_id` = #{parentTenantId} | |||||
| and wcuc.`parent_tenant_id` = #{parentTenantId} | |||||
| </if> | </if> | ||||
| <if test=" null != cUserId "> | <if test=" null != cUserId "> | ||||
| and `c_user_id` = #{cUserId} | |||||
| and wcuc.`c_user_id` = #{cUserId} | |||||
| </if> | </if> | ||||
| <if test=" null != carNumber "> | <if test=" null != carNumber "> | ||||
| and `car_number` = #{carNumber} | |||||
| and wcuc.`car_number` like concat('%', #{carNumber},'%') | |||||
| </if> | </if> | ||||
| <!-- <if test=" null != carNumber "> | <!-- <if test=" null != carNumber "> | ||||
| and `car_number` like concat('%', #{carNumber},'%') | |||||
| and `car_number` like concat('%', #{carNumber},'%') | |||||
| </if> --> | </if> --> | ||||
| <if test=" null != createDate "> | <if test=" null != createDate "> | ||||
| and `create_date` = #{createDate} | |||||
| </if> | |||||
| <if test=" null != updateDate "> | |||||
| and `update_date` = #{updateDate} | |||||
| </if> | |||||
| and wcuc.`create_date` = #{createDate} | |||||
| </if> | |||||
| <if test=" null != vendorType "> | <if test=" null != vendorType "> | ||||
| and `vendor_type` = #{vendorType} | |||||
| and wcuc.`vendor_type` = #{vendorType} | |||||
| </if> | </if> | ||||
| <if test=" null != vendorParams "> | |||||
| and `vendor_params` like concat('%', #{vendorParams},'%') | |||||
| </if> | |||||
| <!--<if test=" null != vendorParams "> | |||||
| and `vendor_params` like concat('%', #{vendorParams},'%') | |||||
| </if>--> | |||||
| <if test=" null != vendorPersonId "> | <if test=" null != vendorPersonId "> | ||||
| and `vendor_person_id` = #{vendorPersonId} | |||||
| and wcuc.`vendor_person_id` = #{vendorPersonId} | |||||
| </if> | </if> | ||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | |||||
| and wcuc.id in | |||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| #{idItem} | #{idItem} | ||||
| </foreach> | </foreach> | ||||
| </if> | </if> | ||||
| <if test=" null != sortColumns"> order by ${sortColumns} </if> | |||||
| <!-- <if test=" null != sortColumns"> order by ${sortColumns} </if>--> | |||||
| order by wcuc.create_date | |||||
| </sql> | </sql> | ||||
| <select id="findList" parameterType="com.iformall.domain.po.WxCUserCar" resultMap="BaseResultMap"> | |||||
| <select id="findList1" parameterType="com.iformall.domain.po.WxCUserCar" resultMap="BaseResultMap"> | |||||
| select | select | ||||
| <include refid="allColumns"/> | |||||
| from wx_c_user_car | |||||
| <include refid="allColumns"/>,wcubi.`phone` | |||||
| from wx_c_user_car wcuc | |||||
| left join wx_c_user_basic_info wcubi on wcubi.id = wcuc.c_user_id | |||||
| where 1 = 1 | |||||
| <if test=" null != userPhone"> | |||||
| and wcubi.`phone` like concat('%', #{userPhone},'%') | |||||
| </if> | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| </select> | |||||
| <select id="findList" parameterType="com.iformall.domain.po.WxCUserCar" resultMap="BaseResultMap"> | |||||
| select | |||||
| <include refid="allColumns"/> | |||||
| from wx_c_user_car wcuc | |||||
| where 1 = 1 | |||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| </select> | </select> | ||||
| <select id="countList" parameterType="com.iformall.domain.po.WxCUserCar" resultType="java.lang.Integer"> | <select id="countList" parameterType="com.iformall.domain.po.WxCUserCar" resultType="java.lang.Integer"> | ||||
| select count(1) from wx_c_user_car | |||||
| select count(1) from wx_c_user_car wcuc | |||||
| where 1 = 1 | |||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| </select> | </select> | ||||
| @@ -346,7 +346,8 @@ | |||||
| LEFT JOIN wx_coupon_order co ON cal.coupon_order_id = co.id | LEFT JOIN wx_coupon_order co ON cal.coupon_order_id = co.id | ||||
| LEFT JOIN wx_coupon c ON cal.coupon_id = c.id | LEFT JOIN wx_coupon c ON cal.coupon_id = c.id | ||||
| LEFT JOIN wx_c_user_basic_info cu ON cu.id = co.c_user_id | LEFT JOIN wx_c_user_basic_info cu ON cu.id = co.c_user_id | ||||
| LEFT JOIN wx_merchant_b_user mbu ON concat(mbu.merchant_id,'') = JSON_EXTRACT(cs.conditions , '$.id') | |||||
| LEFT JOIN wx_merchant_b_user mbu ON mbu.id = cal.operator_id | |||||
| <!-- and concat(mbu.merchant_id,'') = JSON_EXTRACT(cs.conditions , '$.id') --> | |||||
| WHERE cal.channel_type = #{channelType} | WHERE cal.channel_type = #{channelType} | ||||
| AND cs.conditions -> '$.id' = concat(#{merchantId},'') | AND cs.conditions -> '$.id' = concat(#{merchantId},'') | ||||
| <if test=" null != beginDate "> | <if test=" null != beginDate "> | ||||
| @@ -247,6 +247,33 @@ | |||||
| <include refid="customWhereConditions"/> | <include refid="customWhereConditions"/> | ||||
| and credit.credit_num < 0 | and credit.credit_num < 0 | ||||
| </select> | </select> | ||||
| <select id="getAddCreditSummary" parameterType="com.iformall.domain.po.WxCreditHistory" | |||||
| resultType="java.lang.Integer"> | |||||
| select ifnull(sum(credit.credit_num),0) amount from wx_credit_history credit | |||||
| where credit.`tenant_id` = #{tenantId} | |||||
| and credit.credit_num > 0 and credit.c_user_id = #{cUserId} | |||||
| <if test=" null != startTime "> | |||||
| and credit.create_date >= #{startTime} | |||||
| </if> | |||||
| <if test=" null != endTime"> | |||||
| and credit.create_date < #{endTime} | |||||
| </if> | |||||
| </select> | |||||
| <select id="getLesCreditSummary" parameterType="com.iformall.domain.po.WxCreditHistory" | |||||
| resultType="java.lang.Integer"> | |||||
| select ifnull(sum(credit.credit_num),0) amount from wx_credit_history credit | |||||
| where credit.`tenant_id` = #{tenantId} | |||||
| and credit.credit_num < 0 and credit.c_user_id = #{cUserId} | |||||
| <if test=" null != startTime "> | |||||
| and credit.create_date >= #{startTime} | |||||
| </if> | |||||
| <if test=" null != endTime"> | |||||
| and credit.create_date < #{endTime} | |||||
| </if> | |||||
| </select> | |||||
| <select id="getPeopleCount" parameterType="com.iformall.domain.po.WxCreditHistory" resultType="java.lang.Long"> | <select id="getPeopleCount" parameterType="com.iformall.domain.po.WxCreditHistory" resultType="java.lang.Long"> | ||||
| select count(1) people from ( | select count(1) people from ( | ||||
| @@ -262,4 +289,8 @@ | |||||
| delete from wx_credit_history where id = #{id} and tenant_id = #{tenantId} | delete from wx_credit_history where id = #{id} and tenant_id = #{tenantId} | ||||
| </delete> | </delete> | ||||
| <update id="userCreditClear" statementType="CALLABLE" > | |||||
| {call user_credit_clear(#{cutOffDate},#{finalTableIndex})} | |||||
| </update> | |||||
| </mapper> | </mapper> | ||||
| @@ -9,10 +9,12 @@ | |||||
| <result column="user_id" jdbcType="BIGINT" property="userId" /> | <result column="user_id" jdbcType="BIGINT" property="userId" /> | ||||
| <result column="coupon_order_id" jdbcType="BIGINT" property="couponOrderId" /> | <result column="coupon_order_id" jdbcType="BIGINT" property="couponOrderId" /> | ||||
| <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> | <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> | ||||
| <result column="type" jdbcType="INTEGER" property="type" /> | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_order_id`,`channel_type`,`channel_id`,`create_time` | |||||
| `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_order_id`,`channel_type`,`channel_id`,`create_time`,`type` | |||||
| </sql> | </sql> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||
| @@ -60,6 +62,11 @@ | |||||
| </if> | </if> | ||||
| <if test=" null != type "> | |||||
| and `type` = #{type} | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| @@ -121,6 +128,10 @@ | |||||
| and `end_time` <= #{endTime} | and `end_time` <= #{endTime} | ||||
| </if> | </if> | ||||
| <if test=" null != type "> | |||||
| and `type` = #{type} | |||||
| </if> | |||||
| </sql> | </sql> | ||||
| @@ -128,6 +139,13 @@ | |||||
| <select id="getPlayCount" resultType="java.lang.Integer" parameterType="com.iformall.domain.po.WxGameActionLog"> | <select id="getPlayCount" resultType="java.lang.Integer" parameterType="com.iformall.domain.po.WxGameActionLog"> | ||||
| select COUNT(*) FROM wx_game_action_log a | select COUNT(*) FROM wx_game_action_log a | ||||
| <include refid="dynamicCountWhereConditions" /> | <include refid="dynamicCountWhereConditions" /> | ||||
| and `type` = 0 | |||||
| </select> | |||||
| <select id="getPlayCreditCount" resultType="java.lang.Integer" parameterType="com.iformall.domain.po.WxGameActionLog"> | |||||
| select COUNT(*) FROM wx_game_action_log a | |||||
| <include refid="dynamicCountWhereConditions" /> | |||||
| and `type` = 1 | |||||
| </select> | </select> | ||||
| <select id="getAwardCount" resultType="java.lang.Integer" parameterType="com.iformall.domain.po.WxGameActionLog"> | <select id="getAwardCount" resultType="java.lang.Integer" parameterType="com.iformall.domain.po.WxGameActionLog"> | ||||
| @@ -13,10 +13,13 @@ | |||||
| <result column="triggle_action" jdbcType="INTEGER" property="triggleAction" /> | <result column="triggle_action" jdbcType="INTEGER" property="triggleAction" /> | ||||
| <result column="play_limit" jdbcType="INTEGER" property="playLimit" /> | <result column="play_limit" jdbcType="INTEGER" property="playLimit" /> | ||||
| <result column="award_limit" jdbcType="INTEGER" property="awardLimit" /> | <result column="award_limit" jdbcType="INTEGER" property="awardLimit" /> | ||||
| <result column="play_credit_limit" jdbcType="INTEGER" property="playCreditLimit" /> | |||||
| <result column="play_credit" jdbcType="INTEGER" property="playCredit" /> | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| `id`,`tenant_id`,`parent_tenant_id`,`game_id`,`status`,`coupon_ids`,`valid_start_date`,`valid_end_date`,`triggle_action`,`play_limit`,`award_limit` | |||||
| `id`,`tenant_id`,`parent_tenant_id`,`game_id`,`status`,`coupon_ids`,`valid_start_date`,`valid_end_date`,`triggle_action`,`play_limit`,`award_limit`,`play_credit_limit`,`play_credit` | |||||
| </sql> | </sql> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||
| @@ -205,7 +205,7 @@ | |||||
| <select id="getTenantEntitys" parameterType="com.iformall.domain.po.base.TenantEntity" resultType="com.iformall.domain.po.base.TenantEntity"> | <select id="getTenantEntitys" parameterType="com.iformall.domain.po.base.TenantEntity" resultType="com.iformall.domain.po.base.TenantEntity"> | ||||
| select `tenant_id`,`parent_tenant_id` from wx_mall where id > 1 | |||||
| select `tenant_id`,`parent_tenant_id` from wx_mall where 1=1 | |||||
| <if test=" null != tenantId and '' != tenantId"> | <if test=" null != tenantId and '' != tenantId"> | ||||
| and `tenant_id` = #{tenantId} | and `tenant_id` = #{tenantId} | ||||
| </if> | </if> | ||||
| @@ -149,7 +149,7 @@ | |||||
| select count(*) from wx_order o,wx_coupon c | select count(*) from wx_order o,wx_coupon c | ||||
| where o.product_id = c.id | where o.product_id = c.id | ||||
| and c.conditions is not null | and c.conditions is not null | ||||
| and JSON_EXTRACT(c.conditions, '$.type') = 1 | |||||
| /*and JSON_EXTRACT(c.conditions, '$.type') = 1*/ | |||||
| <if test=" null != cUserId "> | <if test=" null != cUserId "> | ||||
| and o.c_user_id = #{cUserId} | and o.c_user_id = #{cUserId} | ||||
| </if> | </if> | ||||
| @@ -0,0 +1,68 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||||
| <mapper namespace="com.iformall.mapper.WxCUserBasicChildMapper"> | |||||
| <resultMap id="BaseResultMap" type="com.iformall.domain.po.WxCUserBasicChild"> | |||||
| <id column="id" jdbcType="BIGINT" property="id" /> | |||||
| <result column="tenant_id" jdbcType="VARCHAR" property="tenantId" /> | |||||
| <result column="c_user_id" jdbcType="BIGINT" property="cUserId" /> | |||||
| <result column="name" jdbcType="VARCHAR" property="name" /> | |||||
| <result column="sex" jdbcType="INTEGER" property="sex" /> | |||||
| <result column="nick_name" jdbcType="VARCHAR" property="nickName" /> | |||||
| <result column="birthdate" jdbcType="TIMESTAMP" property="birthdate"/> | |||||
| <result column="create_date" jdbcType="TIMESTAMP" property="createDate"/> | |||||
| <result column="update_date" jdbcType="TIMESTAMP" property="updateDate"/> | |||||
| <result column="remark" jdbcType="VARCHAR" property="remark" /> | |||||
| </resultMap> | |||||
| <sql id="allColumns"> | |||||
| `id`,`tenant_id`,`c_user_id`,`name`,`nick_name`,`birthdate`,`sex`,`remark`,`create_date`,`update_date` | |||||
| </sql> | |||||
| <sql id="dynamicWhereConditions"> | |||||
| where del_status = 0 | |||||
| <if test=" null != id "> | |||||
| and `id` = #{id} | |||||
| </if> | |||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and `tenant_id` = #{tenantId} | |||||
| </if> | |||||
| <if test=" null != cUserId "> | |||||
| and `c_user_id` = #{cUserId} | |||||
| </if> | |||||
| <if test=" null != name "> | |||||
| and `name` like concat('%', #{name},'%') | |||||
| </if> | |||||
| <if test=" null != nickName "> | |||||
| and `nick_name` like concat('%', #{nickName},'%') | |||||
| </if> | |||||
| <if test=" null != sex "> | |||||
| and `sex` = #{sex} | |||||
| </if> | |||||
| <if test=" null != startTime "> | |||||
| and create_date >= #{startTime} | |||||
| </if> | |||||
| <if test=" null != endTime"> | |||||
| and create_date <= #{endTime} | |||||
| </if> | |||||
| <if test=" null != ids "> | |||||
| and id in | |||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||||
| #{idItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != sortColumns"> order by ${sortColumns} </if> | |||||
| </sql> | |||||
| <select id="findList" parameterType="com.iformall.domain.po.WxCUserBasicChild" resultMap="BaseResultMap"> | |||||
| select <include refid="allColumns" /> from wx_c_user_basic_child | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| </select> | |||||
| <update id="updDelById" parameterType="com.iformall.domain.po.WxCUserBasicChild"> | |||||
| update wx_c_user_basic_child set del_status = 0 where id = #{id} and tenant_id = #{tenantId} | |||||
| </update> | |||||
| </mapper> | |||||
| @@ -58,6 +58,9 @@ public class DataInitController extends BaseController { | |||||
| @Resource | @Resource | ||||
| private WxMerchantBUserMapper merchantBUserMapper; | private WxMerchantBUserMapper merchantBUserMapper; | ||||
| @Resource | |||||
| private WxMerchantService merchantService; | |||||
| @Autowired | @Autowired | ||||
| private WxOrderService wxOrderService; | private WxOrderService wxOrderService; | ||||
| @@ -211,6 +214,8 @@ public class DataInitController extends BaseController { | |||||
| creditHistory.setSpend(co.getCouponPrice()); | creditHistory.setSpend(co.getCouponPrice()); | ||||
| //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | ||||
| creditHistory.setMerchantId(buUser.getMerchantId()); | creditHistory.setMerchantId(buUser.getMerchantId()); | ||||
| WxMerchant wxMerchant = merchantService.getById(buUser.getMerchantId()); | |||||
| creditHistory.setChangePurpose("核销积分数据修复:消费商户["+wxMerchant.getName()+"] 卷名称["+coupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] "); | |||||
| creditHistoryService.saveOrUpdate(creditHistory); | creditHistoryService.saveOrUpdate(creditHistory); | ||||
| }); | }); | ||||
| } | } | ||||
| @@ -14,6 +14,7 @@ import org.apache.ibatis.executor.statement.StatementHandler; | |||||
| import org.apache.ibatis.logging.LogFactory; | import org.apache.ibatis.logging.LogFactory; | ||||
| import org.apache.ibatis.mapping.BoundSql; | import org.apache.ibatis.mapping.BoundSql; | ||||
| import org.apache.ibatis.mapping.MappedStatement; | import org.apache.ibatis.mapping.MappedStatement; | ||||
| import org.apache.ibatis.mapping.StatementType; | |||||
| import org.apache.ibatis.plugin.*; | import org.apache.ibatis.plugin.*; | ||||
| import org.apache.ibatis.reflection.MetaObject; | import org.apache.ibatis.reflection.MetaObject; | ||||
| import org.apache.ibatis.reflection.SystemMetaObject; | import org.apache.ibatis.reflection.SystemMetaObject; | ||||
| @@ -86,7 +87,11 @@ public class ShardingSpherePlugin implements MyBatisPlus { | |||||
| MetaObject metaStatementHandler = SystemMetaObject.forObject(statementHandler); | MetaObject metaStatementHandler = SystemMetaObject.forObject(statementHandler); | ||||
| MappedStatement ms = (MappedStatement) metaStatementHandler.getValue("delegate.mappedStatement"); | MappedStatement ms = (MappedStatement) metaStatementHandler.getValue("delegate.mappedStatement"); | ||||
| //String id = ms.getId(); | |||||
| if(ms.getStatementType().equals(StatementType.CALLABLE)){ | |||||
| return chainMap; | |||||
| } | |||||
| //String id = ms.getId(); | |||||
| //String className = id.substring(0, id.lastIndexOf(".")); | //String className = id.substring(0, id.lastIndexOf(".")); | ||||
| //String methodName = id.substring(id.lastIndexOf(".") + 1); | //String methodName = id.substring(id.lastIndexOf(".") + 1); | ||||
| //Class<?> clazz = Class.forName(className); | //Class<?> clazz = Class.forName(className); | ||||