diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java index b8a9a9e29..37d7924ed 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java @@ -62,6 +62,7 @@ public class BaseController { /** * 返回租户信息 + * 集团版帐号tenantId为空,parentTenantId为集团tenantId * @return */ public TenantEntity getTenantInfo(){ @@ -76,6 +77,7 @@ public class BaseController { /** * 处理集团新增修改所需租户信息(广场独立修改,集团修改全部) + * 处理集团版 tenantId为空,parentTenantId为集团tenantId * ifParentUpdateTenantInfo */ public TenantEntity ifParentUpdateTenantInfo() { diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java index 177fcc784..aa40ebe74 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java @@ -2,6 +2,7 @@ package com.iformall.controller.mem; import com.github.pagehelper.PageInfo; import com.iformall.annotation.SystemControllerLog; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; @@ -10,6 +11,7 @@ import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxCreditHistory; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCreditHistoryVo; +import com.iformall.enums.EnumUserType; import com.iformall.exception.MallinkException; import com.iformall.service.WxCreditHistoryService; import io.swagger.annotations.ApiImplicitParam; @@ -146,4 +148,20 @@ public class WxCreditHistoryController extends BaseController { return wxCreditHistoryService.getCreditSummary(wxCreditHistory); } + + @TenantIgnore + @ApiOperation("积分清零计划") + @GetMapping("clearCreditByYear") + @SystemControllerLog(description = "积分清零计划") + public ResultData clearCreditByYear(@ModelAttribute 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()); + wxCreditHistoryService.clearCreditByYear(wxCreditHistory); + return new ResultData(Result.SUCCESS); + } + } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java index 2274a6b1e..9cf63bf74 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java @@ -68,7 +68,7 @@ public class WxPressOrderController extends BaseController { @ApiOperation(value = "参与砍价", notes = "{\"orderId\":\"String\"}") @PostMapping("pressOrderJoin") - @Transactional + @Transactional(rollbackFor = {Exception.class}) public ResultData pressOrderJoin(@RequestBody Map paramMap) { Date curDate = new Date(); String orderIdStr = paramMap.get("orderId"); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java index 0f34a83e3..65212b0e8 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java @@ -32,4 +32,13 @@ public interface WxCreditHistoryMapper extends CommonMapper wxCreditHistoryVoList = wxCreditHistoryMapper.findListMore(wxCreditHistory); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgValidationcodeModelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgValidationcodeModelServiceImpl.java index 66b01240e..c8fd705a8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgValidationcodeModelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgValidationcodeModelServiceImpl.java @@ -39,7 +39,7 @@ public class WxMsgValidationcodeModelServiceImpl implements WxMsgValidationcodeM WxMsgConfigMapper wxMsgConfigMapper; @Override - @Transactional + @Transactional(rollbackFor = {Exception.class}) public void wxMsgValidationcodeModelInit(String tenantId, String signature, String emailBgImg) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowTimestr = format.format(new Date()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxParkServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxParkServiceImpl.java index 8d4560d0c..b10aaefc1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxParkServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxParkServiceImpl.java @@ -69,7 +69,7 @@ public class WxParkServiceImpl implements WxParkService { } @Override - @Transactional + @Transactional(rollbackFor = {Exception.class}) public void saveOrUpdate(WxPark record) { Date now = new Date(); if (record.getId() == null) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java index 7a873b924..3a5880555 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java @@ -69,7 +69,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { MallUserInfoService userInfoService; @Override - @Transactional + @Transactional(rollbackFor = {Exception.class}) public void initProjectConfig(Long id) { // WxProjectConfig wxProjectConfig = wxProjectConfigMapper.selectById(id); // if(wxProjectConfig!=null && wxProjectConfig.getDelType()<10000){ @@ -131,7 +131,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { } @Override - @Transactional + @Transactional(rollbackFor = {Exception.class}) public void initMall(WxMall wxMall) { if(wxMall.getId() == null){ wxMall.setTenantId("-1"); @@ -157,7 +157,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { } @Override - @Transactional + @Transactional(rollbackFor = {Exception.class}) public void initBuilding(List wxMallBuildings) { wxMallBuildingService.deleteByTenantId(wxMallBuildings.get(0).getTenantId()); wxMallFloorService.deleteByTenantId(wxMallBuildings.get(0).getTenantId()); @@ -185,7 +185,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { } @Override - @Transactional + @Transactional(rollbackFor = {Exception.class}) public void initPayAccount(WxPayAccount wxPayAccount) { wxPayAccountService.saveOrUpdate(wxPayAccount); WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(wxPayAccount.getTenantId()); @@ -218,7 +218,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { @Override - @Transactional + @Transactional(rollbackFor = {Exception.class}) public void initUserInfo(MallUserInfo userInfo) { userInfoService.saveOrUpdate(userInfo); //创建角色 diff --git a/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml b/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml index 0d1ac2a46..de15576d3 100644 --- a/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml @@ -262,4 +262,47 @@ delete from wx_credit_history where id = #{id} and tenant_id = #{tenantId} + + + + + 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; + + + + 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; + + + + 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 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; + + +