| @@ -81,10 +81,12 @@ 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()); | |||||
| try { | try { | ||||
| wxCreditHistoryService.creditUsercheck(wxCreditHistory.getCUserId(),getTenantInfo()) ; | wxCreditHistoryService.creditUsercheck(wxCreditHistory.getCUserId(),getTenantInfo()) ; | ||||
| WxCreditHistory credit = wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | WxCreditHistory credit = wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | ||||
| @@ -118,13 +120,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); | ||||
| @@ -135,13 +130,6 @@ 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()); | ||||
| @@ -151,15 +139,16 @@ public class WxCreditHistoryController extends BaseController { | |||||
| @TenantIgnore | @TenantIgnore | ||||
| @ApiOperation("积分清零计划") | @ApiOperation("积分清零计划") | ||||
| @GetMapping("clearCreditByYear") | |||||
| @PostMapping("clearCreditByYear") | |||||
| @SystemControllerLog(description = "积分清零计划") | @SystemControllerLog(description = "积分清零计划") | ||||
| public ResultData clearCreditByYear(@ModelAttribute WxCreditHistory wxCreditHistory) { | |||||
| public ResultData clearCreditByYear(@RequestBody WxCreditHistory wxCreditHistory) { | |||||
| logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::clearCreditByYear"); | logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::clearCreditByYear"); | ||||
| TenantEntity tenantInfo = getTenantInfo(); | |||||
| wxCreditHistory.setTenantId(tenantInfo.getFinalTenantId()); | |||||
| wxCreditHistory.setFinalTenantId(tenantInfo.getFinalTenantId()); | |||||
| wxCreditHistory.setOperatorId(getUserId()); | |||||
| wxCreditHistory.setOperatorType(EnumUserType.MALLUSER.getCode()); | |||||
| 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); | wxCreditHistoryService.clearCreditByYear(wxCreditHistory); | ||||
| return new ResultData(Result.SUCCESS); | return new ResultData(Result.SUCCESS); | ||||
| } | } | ||||
| @@ -34,11 +34,5 @@ public interface WxCreditHistoryMapper extends CommonMapper<WxCreditHistory, Lon | |||||
| int deleteById(@Param("id")Long id,@Param("tenantId")String tenantId); | int deleteById(@Param("id")Long id,@Param("tenantId")String tenantId); | ||||
| void createCreditClearMDTable(@Param("tableSuffix")String tableSuffix); | |||||
| void backUpHandleCreditClearDate(@Param("wxCreditHistory")WxCreditHistory wxCreditHistory, @Param("tableSuffix")String tableSuffix); | |||||
| void updateHistoryCreditClear(@Param("wxCreditHistory")WxCreditHistory wxCreditHistory, @Param("tableSuffix")String tableSuffix); | |||||
| void updateUserCreditClear(@Param("wxCreditHistory")WxCreditHistory wxCreditHistory, @Param("tableSuffix")String tableSuffix); | |||||
| void userCreditClear(@Param("cutOffDate")Date cutOffDate,@Param("finalTableIndex")String finalTableIndex); | |||||
| } | } | ||||
| @@ -48,7 +48,7 @@ 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("yyyyMMddHHmmssSSS"); | |||||
| private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); | |||||
| @Autowired | @Autowired | ||||
| WxCreditHistoryMapper wxCreditHistoryMapper; | WxCreditHistoryMapper wxCreditHistoryMapper; | ||||
| @@ -101,21 +101,12 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| @Override | @Override | ||||
| @Transactional(rollbackFor=Exception.class) | @Transactional(rollbackFor=Exception.class) | ||||
| public void clearCreditByYear(WxCreditHistory wxCreditHistory) { | public void clearCreditByYear(WxCreditHistory wxCreditHistory) { | ||||
| Date now = new Date(); | |||||
| wxCreditHistory.setTenantId(wxCreditHistory.getFinalTenantId()); | |||||
| String tableSuffix = "_" + Integer.parseInt(wxCreditHistory.getTenantId())%100 | |||||
| + "_" + dateFormat.format(now); | |||||
| wxCreditHistoryMapper.createCreditClearMDTable(tableSuffix); | |||||
| wxCreditHistoryMapper.backUpHandleCreditClearDate(wxCreditHistory, tableSuffix); | |||||
| wxCreditHistory.setCreditType(EnumScoreType.CLEAN_CREDIT.getCode()); | |||||
| wxCreditHistory.setCreateDate(now); | |||||
| // wxCreditHistory.setOperatorType(EnumUserType.MALLUSER.getCode()); | |||||
| wxCreditHistoryMapper.updateHistoryCreditClear(wxCreditHistory,tableSuffix); | |||||
| if(wxCreditHistory.getEndTime() == null){ | |||||
| wxCreditHistory.setEndTime(new Date()); | |||||
| } | |||||
| String tableSuffix = "_" + Integer.parseInt(wxCreditHistory.getFinalTenantId())%100; | |||||
| wxCreditHistoryMapper.userCreditClear(wxCreditHistory.getEndTime(),tableSuffix); | |||||
| wxCreditHistoryMapper.updateUserCreditClear(wxCreditHistory,tableSuffix); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -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"> | ||||
| @@ -263,46 +263,8 @@ | |||||
| </delete> | </delete> | ||||
| <update id="createCreditClearMDTable" parameterType="String"> | |||||
| 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; | |||||
| <update id="userCreditClear" statementType="CALLABLE" > | |||||
| {call user_credit_clear(#{cutOffDate},#{finalTableIndex})} | |||||
| </update> | </update> | ||||
| <update id="backUpHandleCreditClearDate"> | |||||
| 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,sum(wch.credit_amount) sum_credit,(sum(wch.credit_amount)-wcubi.credit) credit_amount,#{wxCreditHistory.endTime} cut_off_date | |||||
| from wx_c_user_basic_info wcubi | |||||
| left join wx_credit_history wch on wch.c_user_id = wcubi.id | |||||
| where wcubi.final_tenant_id = #{wxCreditHistory.tenantId} and wch.credit_amount > 0 and wch.create_date >= #{wxCreditHistory.endTime} | |||||
| group by wcubi.id | |||||
| having credit > sum_credit; | |||||
| </update> | |||||
| <update id="updateHistoryCreditClear"> | |||||
| insert into `wx_credit_history` | |||||
| (`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,#{wxCreditHistory.creditType},#{wxCreditHistory.createDate},#{wxCreditHistory.operatorType},#{wxCreditHistory.operatorId} | |||||
| from `wx_credit_clear_md${tableSuffix}`; | |||||
| </update> | |||||
| <update id="updateUserCreditClear"> | |||||
| update wx_c_user_basic_info 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 wcubi.final_tenant_id = #{wxCreditHistory.tenantId} and wccm.id is not null; | |||||
| </update> | |||||
| </mapper> | </mapper> | ||||