| @@ -81,10 +81,12 @@ public class WxCreditHistoryController extends BaseController { | |||
| public ResultData add(@RequestBody WxCreditHistory wxCreditHistory) { | |||
| logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::add"); | |||
| MallUserInfo user = getUser(); | |||
| //wxCreditHistory.updateTenantInfo(user); | |||
| wxCreditHistory.setTenantId(user.getFinalTenantId()); | |||
| wxCreditHistory.setFinalTenantId(user.getFinalTenantId()); | |||
| wxCreditHistory.setOperatorId(user.getId()); | |||
| wxCreditHistory.setOperatorType(EnumUserType.MALLUSER.getCode()); | |||
| try { | |||
| wxCreditHistoryService.creditUsercheck(wxCreditHistory.getCUserId(),getTenantInfo()) ; | |||
| WxCreditHistory credit = wxCreditHistoryService.saveOrUpdate(wxCreditHistory); | |||
| @@ -118,13 +120,6 @@ public class WxCreditHistoryController extends BaseController { | |||
| @GetMapping("exportData") | |||
| @SystemControllerLog(description = "积分历史-导出数据") | |||
| 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.setFinalTenantId(getTenantInfo().getFinalTenantId()); | |||
| wxCreditHistoryService.exportData(request, response, wxCreditHistory); | |||
| @@ -135,13 +130,6 @@ public class WxCreditHistoryController extends BaseController { | |||
| @SystemControllerLog(description = "积分历史-积分统计概览") | |||
| public ResultData getCreditSummary(@ModelAttribute WxCreditHistory wxCreditHistory) { | |||
| 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(); | |||
| wxCreditHistory.setTenantId(tenantInfo.getFinalTenantId()); | |||
| wxCreditHistory.setFinalTenantId(tenantInfo.getFinalTenantId()); | |||
| @@ -151,15 +139,16 @@ public class WxCreditHistoryController extends BaseController { | |||
| @TenantIgnore | |||
| @ApiOperation("积分清零计划") | |||
| @GetMapping("clearCreditByYear") | |||
| @PostMapping("clearCreditByYear") | |||
| @SystemControllerLog(description = "积分清零计划") | |||
| public ResultData clearCreditByYear(@ModelAttribute WxCreditHistory wxCreditHistory) { | |||
| public ResultData clearCreditByYear(@RequestBody WxCreditHistory wxCreditHistory) { | |||
| 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); | |||
| 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); | |||
| 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 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS"); | |||
| private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); | |||
| @Autowired | |||
| WxCreditHistoryMapper wxCreditHistoryMapper; | |||
| @@ -101,21 +101,12 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||
| @Override | |||
| @Transactional(rollbackFor=Exception.class) | |||
| 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 | |||
| @@ -35,7 +35,7 @@ | |||
| wcubi.`avatar_url`,wcubi.`credit`,wcubi.`active_time`,wcubi.`login_count`,wcubi.`act_record` | |||
| ,(select level from wx_level_config | |||
| 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 id="allSimpleColumns"> | |||
| @@ -263,46 +263,8 @@ | |||
| </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 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> | |||