xhxu 5 лет назад
Родитель
Сommit
bebe741a94
5 измененных файлов: 21 добавлений и 85 удалений
  1. +11
    -22
      mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java
  2. +1
    -7
      mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java
  3. +6
    -15
      mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java
  4. +1
    -1
      mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml
  5. +2
    -40
      mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml

+ 11
- 22
mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java Просмотреть файл

@@ -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);
}


+ 1
- 7
mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java Просмотреть файл

@@ -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);
}

+ 6
- 15
mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java Просмотреть файл

@@ -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


+ 1
- 1
mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml Просмотреть файл

@@ -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">


+ 2
- 40
mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml Просмотреть файл

@@ -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 &gt; 0 and wch.create_date &gt;= #{wxCreditHistory.endTime}
group by wcubi.id
having credit &gt; 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>

Загрузка…
Отмена
Сохранить