记得上下班打卡 | git大法好,push需谨慎

Commit e8d899ad authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/new_member' into new_member

parents fb9f5279 ce9834af
...@@ -58,7 +58,7 @@ alter table adam_member_price add price_special decimal(8, 2) null comment '特 ...@@ -58,7 +58,7 @@ alter table adam_member_price add price_special decimal(8, 2) null comment '特
# 会员码表调整 # 会员码表调整
alter table adam_member_code modify state tinyint null comment '状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]'; alter table adam_member_code modify state tinyint null comment '状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]';
create index idx_amember_code_id on adam_member_code (code); create index idx_amember_code_id on adam_member_code (code);
alter table adam_member_code add validity tinyint null comment '有效期(单位天)' after state; alter table adam_member_code add validity int null comment '有效期(单位天)' after state;
alter table adam_member_code add effect_at datetime(3) null comment '生效时间' after validity; alter table adam_member_code add effect_at datetime(3) null comment '生效时间' after validity;
alter table adam_member_code add expire_at datetime(3) null comment '过期时间' after effect_at; alter table adam_member_code add expire_at datetime(3) null comment '过期时间' after effect_at;
alter table adam_member_code add operator varchar(64) null comment 'type=2时记录创建人' after expire_at; alter table adam_member_code add operator varchar(64) null comment 'type=2时记录创建人' after expire_at;
...@@ -111,6 +111,11 @@ create table adam_member_rights ...@@ -111,6 +111,11 @@ create table adam_member_rights
label varchar(50) comment '标注', label varchar(50) comment '标注',
cover varchar(255) comment '图片标识', cover varchar(255) comment '图片标识',
detail text comment '详情内容', detail text comment '详情内容',
operator varchar(64) comment '操作人',
created_at datetime(3) not null,
updated_at datetime(3),
comment varchar(255) comment varchar(255)
) engine = InnoDB comment '会员权益配置'; ) engine = InnoDB comment '会员权益配置';
create unique index uidx_adam_member_rights_id on adam_member_rights (mrights_id); create unique index uidx_adam_member_rights_id on adam_member_rights (mrights_id);
...@@ -126,11 +131,36 @@ create table adam_user_busi_acct ...@@ -126,11 +131,36 @@ create table adam_user_busi_acct
work varchar(64) comment '业务服务模块', work varchar(64) comment '业务服务模块',
ppwd varchar(64) comment '业务服务密码', ppwd varchar(64) comment '业务服务密码',
state tinyint comment '1-NORMAL,2-INVALID', state tinyint comment '1-NORMAL,2-INVALID',
created_at datetime not null, created_at datetime(3) not null,
updated_at datetime, updated_at datetime(3),
comment text comment text
) engine = InnoDB comment '用户业务服务账号表'; ) engine = InnoDB comment '用户业务服务账号表';
create index idx_adam_user_busi_acct_uid on adam_user_busi_acct (uid); create index idx_adam_user_busi_acct_uid on adam_user_busi_acct (uid);
-- >>------------------------------------------------------------------------------------|20210924会员码管理
drop table if exists adam_member_code_batch;
create table adam_member_code_batch
(
mid bigint unsigned auto_increment primary key,
batch_no varchar(64) not null comment '会员码批次号',
member_id varchar(64) not null comment '~`adam_member.member_id`',
member_price_id varchar(64) not null comment '~`adam_member_price.member_price_id`',
member_name varchar(80) comment '会员卡名称~`adam_member.name`',
member_combo varchar(80) comment '套餐包名称',
gen_num int comment '生成数量',
use_num int comment '使用数量',
`describe` varchar(64) comment '描述',
validity int comment '有效期(单位天)',
effect_at datetime(3) null comment '生效时间',
expire_at datetime(3) null comment '失效时间',
state tinyint comment '状态[0-INIT|1-NORMAL|2-INVALID]',
operator varchar(64) comment '操作人',
created_at datetime(3) not null,
updated_at datetime(3),
comment varchar(255)
) engine = InnoDB comment '会员码批次记录';
create index idx_adam_member_code_batch_no on adam_member_code_batch (batch_no);
# -- >>------------------------------------------------------------------------------------ |20210817会员与券改版 # -- >>------------------------------------------------------------------------------------ |20210817会员与券改版
# 券发放管理 # 券发放管理
drop table if exists candy_mgt_coupon; drop table if exists candy_mgt_coupon;
......
package com.liquidnet.service.kylin.service;
import com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: IReportPerformanceService
* @Package com.liquidnet.service.kylin.service
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 11:27
*/
public interface IReportPerformanceService {
/**
* 获取按省统计数据
* @param performanceId
* @return
*/
List<PerformanceProvinceDataDto> getProvinceDataList(String performanceId);
/**
* 获取按城市统计数据
* @param performanceId
* @return
*/
List<PerformanceCityDataDto> getCityDataList(String performanceId);
/**
* 获取按年龄统计数据
* @param performanceId
* @return
*/
List<PerformanceAgeDataDto> getAgeDataList(String performanceId);
/**
* 获取按性别统计数据
* @param performanceId
* @return
*/
List<PerformanceSexDataDto> getSexDataList(String performanceId);
}
package com.liquidnet.client.admin.web.controller.zhengzai.adam; package com.liquidnet.client.admin.web.controller.zhengzai.adam;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.annotation.Log; import com.liquidnet.client.admin.common.annotation.Log;
import com.liquidnet.client.admin.common.core.controller.BaseController; import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult; import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo; import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BusinessType; import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.adam.dto.AdamMemberCodeExcelDto;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberAdminService; import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberAdminService;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminService; import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminService;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberRightsAdminService; import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberRightsAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService; import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService; import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.service.adam.dto.admin.AdamMemberBuildParam;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.service.adam.dto.admin.AdamMemberPriceBuildParam;
import com.liquidnet.service.adam.constant.AdamRedisConst; import com.liquidnet.service.adam.dto.admin.AdamMemberRightsBuildParam;
import com.liquidnet.service.adam.dto.admin.*;
import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo;
import com.liquidnet.service.adam.entity.AdamMember; import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.entity.AdamMemberPrice; import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.adam.entity.AdamMemberRights; import com.liquidnet.service.adam.entity.AdamMemberRights;
import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam; import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam;
...@@ -41,8 +32,6 @@ import org.springframework.validation.annotation.Validated; ...@@ -41,8 +32,6 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -60,27 +49,15 @@ public class AdamMemberAdminController extends BaseController { ...@@ -60,27 +49,15 @@ public class AdamMemberAdminController extends BaseController {
@Autowired @Autowired
IAdamMemberRightsAdminService adamMemberRightsAdminService; IAdamMemberRightsAdminService adamMemberRightsAdminService;
@Autowired @Autowired
IAdamMemberCodeAdminService adamMemberCodeAdminService;
@Autowired
ICandyMgtCouponAdminService candyMgtCouponAdminService; ICandyMgtCouponAdminService candyMgtCouponAdminService;
@Autowired @Autowired
ICandyCouponAdminService candyCouponAdminService; ICandyCouponAdminService candyCouponAdminService;
@Autowired
private RedisUtil redisUtil;
@GetMapping() @GetMapping()
public String view() { public String view() {
return prefix + "/member"; return prefix + "/member";
} }
@RequiresPermissions("adam:member:view:code")
@GetMapping("code/{memberId}")
public String viewCode(@PathVariable("memberId") String memberId, ModelMap mmap) {
mmap.put("memberId", memberId);
return prefix + "/code";
}
@RequiresPermissions("adam:member:view:list") @RequiresPermissions("adam:member:view:list")
@Log(title = "会员管理:会员卡:列表", businessType = BusinessType.LIST) @Log(title = "会员管理:会员卡:列表", businessType = BusinessType.LIST)
@PostMapping("list") @PostMapping("list")
...@@ -249,128 +226,4 @@ public class AdamMemberAdminController extends BaseController { ...@@ -249,128 +226,4 @@ public class AdamMemberAdminController extends BaseController {
return this.toAjax(candyMgtCouponAdminService.editMgtCouponForMemberRights(parameter)); return this.toAjax(candyMgtCouponAdminService.editMgtCouponForMemberRights(parameter));
} }
} }
@ApiOperation(value = "会员码:列表")
@RequiresPermissions("adam:member:list:code")
@Log(title = "会员管理:会员码:列表", businessType = BusinessType.LIST)
@PostMapping("list_code")
@ResponseBody
public TableDataInfo listCode(AdamMemberCodeListParam parameter) {
return getDataTable(codeListQuery(parameter));
}
private List<AdamMemberCode> codeListQuery(AdamMemberCodeListParam parameter) {
LambdaQueryWrapper<AdamMemberCode> queryWrapper = Wrappers.lambdaQuery(AdamMemberCode.class).orderByDesc(AdamMemberCode::getCreatedAt);
queryWrapper.eq(AdamMemberCode::getMemberId, parameter.getMemberId());
queryWrapper.eq(AdamMemberCode::getType, 2);
queryWrapper.ne(AdamMemberCode::getState, 2);
if (null != parameter.getState()) {
queryWrapper.eq(AdamMemberCode::getState, parameter.getState());
}
queryWrapper.select(
AdamMemberCode::getCode,
AdamMemberCode::getState,
AdamMemberCode::getOperator,
AdamMemberCode::getCreatedAt,
AdamMemberCode::getValidity,
AdamMemberCode::getEffectAt,
AdamMemberCode::getExpireAt,
AdamMemberCode::getUseOrderNo,
AdamMemberCode::getUseUid,
AdamMemberCode::getUseAt
);
queryWrapper.orderByDesc(AdamMemberCode::getMemberNo);
return adamMemberCodeAdminService.list(queryWrapper);
}
@ApiOperation(value = "会员码:导出")
@RequiresPermissions("adam:member:export:code")
@Log(title = "会员管理:会员码:导出", businessType = BusinessType.EXPORT)
@PostMapping("export_code")
@ResponseBody
public AjaxResult exportCode(AdamMemberCodeListParam parameter) {
List<AdamMemberCode> list = codeListQuery(parameter);
ExcelUtil<AdamMemberCodeExcelDto> excelUtil = new ExcelUtil<>(AdamMemberCodeExcelDto.class);
List<AdamMemberCodeExcelDto> excelList = new ArrayList<>();
list.forEach(r -> {
excelList.add(AdamMemberCodeExcelDto.getNew().copy(r));
});
return excelUtil.exportExcel(excelList, "会员码数据");
}
@ApiOperation(value = "会员码:生成")
@RequiresPermissions("adam:member:gen:code")
@Log(title = "会员管理:会员码:生成", businessType = BusinessType.INSERT)
@PostMapping("gen_code")
@ResponseBody
public AjaxResult genCode(@Validated AdamMemberCodeGenParam parameter) {
int count = adamMemberPriceAdminService.count(
Wrappers.lambdaQuery(AdamMemberPrice.class)
.eq(AdamMemberPrice::getMemberPriceId, parameter.getMemberPriceId())
.eq(AdamMemberPrice::getMemberId, parameter.getMemberId())
.eq(AdamMemberPrice::getState, 1)
);
if (count <= 0) {
logger.warn("会员卡ID/价格ID无效[{}]", parameter);
return this.error("会员卡ID/价格ID无效");
}
return this.toAjax(adamMemberCodeAdminService.createGiftCode(parameter));
}
@RequiresPermissions("adam:member:invalid:code")
@Log(title = "会员管理:会员码:失效", businessType = BusinessType.UPDATE)
@PostMapping("invalid_code")
@ResponseBody
public AjaxResult invalid(AdamMemberCodeOptParam optParam) {
return toAjax(this.invalidRecoverCode(optParam, 4));
}
/**
* 失效|退回会员兑换码
*
* @param optParam AdamMemberCodeOptParam
* @param state 状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]
* @return boolean
*/
private boolean invalidRecoverCode(AdamMemberCodeOptParam optParam, int state) {
String loginName = ShiroUtils.getLoginName();
LocalDateTime now = LocalDateTime.now();
logger.info("by:{},optParam:{},state:{}", loginName, optParam, state);
int beforeState = state == 4 ? 0 : (state == 5 ? 1 : -1);
ArrayList<String> updateCodeList = CollectionUtil.arrayListString();
optParam.getCodes().forEach(r -> {
String key = AdamRedisConst.INFO_MEMBER_CODE.concat(r);
AdamMemberCodeVo vo = (AdamMemberCodeVo) redisUtil.get(key);
if (null != vo && vo.getState() == beforeState) {
redisUtil.del(key);
updateCodeList.add(vo.getCode());
}
});
if (!CollectionUtils.isEmpty(updateCodeList)) {
LambdaUpdateWrapper<AdamMemberCode> memberCodeUpdateWrapper = Wrappers.lambdaUpdate(AdamMemberCode.class);
memberCodeUpdateWrapper.eq(AdamMemberCode::getMemberId, optParam.getMemberId());
memberCodeUpdateWrapper.eq(AdamMemberCode::getState, beforeState);
memberCodeUpdateWrapper.in(AdamMemberCode::getCode, updateCodeList);
memberCodeUpdateWrapper.set(AdamMemberCode::getState, state);
memberCodeUpdateWrapper.set(AdamMemberCode::getOperator, loginName);
memberCodeUpdateWrapper.set(AdamMemberCode::getUpdatedAt, now);
return adamMemberCodeAdminService.update(memberCodeUpdateWrapper);
}
return false;
}
@RequiresPermissions("adam:member:recover:code")
@Log(title = "会员管理:会员码:退回", businessType = BusinessType.UPDATE)
@PostMapping("recover_code")
@ResponseBody
public AjaxResult recover(AdamMemberCodeOptParam optParam) {
return toAjax(this.invalidRecoverCode(optParam, 5));
}
} }
package com.liquidnet.client.admin.web.controller.zhengzai.adam;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.annotation.Log;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.adam.dto.AdamMemberCodeExcelDto;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminService;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.admin.AdamMemberCodeGenParam;
import com.liquidnet.service.adam.dto.admin.AdamMemberCodeListParam;
import com.liquidnet.service.adam.dto.admin.AdamMemberCodeOptParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Api(tags = "会员码管理")
@Controller
@RequestMapping("adam/mcode")
public class AdamMemberCodeAdminController extends BaseController {
private final String prefix = "zhengzai/adam/member/code";
@Autowired
IAdamMemberCodeAdminService adamMemberCodeAdminService;
@Autowired
IAdamMemberPriceAdminService adamMemberPriceAdminService;
@Autowired
RedisUtil redisUtil;
@GetMapping("code/mgt")
public String viewCodeMgt(@RequestParam String memberId, ModelMap mmap) {
mmap.put("memberId", memberId);
return prefix + "/code_mgt";
}
@ApiOperation(value = "会员码:管理")
@RequiresPermissions("adam:member:code:mgt:list")
@Log(title = "会员管理:会员码:管理", businessType = BusinessType.LIST)
@PostMapping("code/mgt/list")
@ResponseBody
public TableDataInfo listCodeMgt(@RequestParam String memberId) {
// TODO: 2021/9/23 码生成记录
return getDataTable(null);
}
@GetMapping("code/view")
public String viewCode(@RequestParam String memberId, @RequestParam String batchNo, ModelMap mmap) {
mmap.put("memberId", memberId);
mmap.put("batchNo", batchNo);
return prefix + "/code";
}
@ApiOperation(value = "会员码:列表")
@RequiresPermissions("adam:member:code:list")
@Log(title = "会员管理:会员码:列表", businessType = BusinessType.LIST)
@PostMapping("code/list")
@ResponseBody
public TableDataInfo listCode(AdamMemberCodeListParam parameter) {
return getDataTable(codeListQuery(parameter));
}
private List<AdamMemberCode> codeListQuery(AdamMemberCodeListParam parameter) {
LambdaQueryWrapper<AdamMemberCode> queryWrapper = Wrappers.lambdaQuery(AdamMemberCode.class).orderByDesc(AdamMemberCode::getCreatedAt);
queryWrapper.eq(AdamMemberCode::getMemberId, parameter.getMemberId());
queryWrapper.eq(AdamMemberCode::getType, 2);
queryWrapper.ne(AdamMemberCode::getState, 2);
if (null != parameter.getState()) {
queryWrapper.eq(AdamMemberCode::getState, parameter.getState());
}
queryWrapper.select(
AdamMemberCode::getCode,
AdamMemberCode::getState,
AdamMemberCode::getOperator,
AdamMemberCode::getCreatedAt,
AdamMemberCode::getValidity,
AdamMemberCode::getEffectAt,
AdamMemberCode::getExpireAt,
AdamMemberCode::getUseOrderNo,
AdamMemberCode::getUseUid,
AdamMemberCode::getUseAt
);
queryWrapper.orderByDesc(AdamMemberCode::getMemberNo);
return adamMemberCodeAdminService.list(queryWrapper);
}
@ApiOperation(value = "会员码:导出")
@RequiresPermissions("adam:member:code:export")
@Log(title = "会员管理:会员码:导出", businessType = BusinessType.EXPORT)
@PostMapping("code/export")
@ResponseBody
public AjaxResult exportCode(AdamMemberCodeListParam parameter) {
List<AdamMemberCode> list = codeListQuery(parameter);
ExcelUtil<AdamMemberCodeExcelDto> excelUtil = new ExcelUtil<>(AdamMemberCodeExcelDto.class);
List<AdamMemberCodeExcelDto> excelList = new ArrayList<>();
list.forEach(r -> {
excelList.add(AdamMemberCodeExcelDto.getNew().copy(r));
});
return excelUtil.exportExcel(excelList, "会员码数据");
}
@ApiOperation(value = "会员码:生成")
@RequiresPermissions("adam:member:code:gen")
@Log(title = "会员管理:会员码:生成", businessType = BusinessType.INSERT)
@PostMapping("code/gen")
@ResponseBody
public AjaxResult genCode(@Validated AdamMemberCodeGenParam parameter) {
int count = adamMemberPriceAdminService.count(
Wrappers.lambdaQuery(AdamMemberPrice.class)
.eq(AdamMemberPrice::getMemberPriceId, parameter.getMemberPriceId())
.eq(AdamMemberPrice::getMemberId, parameter.getMemberId())
.eq(AdamMemberPrice::getState, 1)
);
if (count <= 0) {
logger.warn("会员卡ID/价格ID无效[{}]", parameter);
return this.error("会员卡ID/价格ID无效");
}
return this.toAjax(adamMemberCodeAdminService.createGiftCode(parameter));
}
@RequiresPermissions("adam:member:code:invalid")
@Log(title = "会员管理:会员码:失效", businessType = BusinessType.UPDATE)
@PostMapping("invalid_code")
@ResponseBody
public AjaxResult invalid(AdamMemberCodeOptParam optParam) {
return toAjax(this.invalidRecoverCode(optParam, 4));
}
/**
* 失效|退回会员兑换码
*
* @param optParam AdamMemberCodeOptParam
* @param state 状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]
* @return boolean
*/
private boolean invalidRecoverCode(AdamMemberCodeOptParam optParam, int state) {
String loginName = ShiroUtils.getLoginName();
LocalDateTime now = LocalDateTime.now();
logger.info("by:{},optParam:{},state:{}", loginName, optParam, state);
int beforeState = state == 4 ? 0 : (state == 5 ? 1 : -1);
ArrayList<String> updateCodeList = CollectionUtil.arrayListString();
optParam.getCodes().forEach(r -> {
String key = AdamRedisConst.INFO_MEMBER_CODE.concat(r);
AdamMemberCodeVo vo = (AdamMemberCodeVo) redisUtil.get(key);
if (null != vo && vo.getState() == beforeState) {
redisUtil.del(key);
updateCodeList.add(vo.getCode());
}
});
if (!CollectionUtils.isEmpty(updateCodeList)) {
LambdaUpdateWrapper<AdamMemberCode> memberCodeUpdateWrapper = Wrappers.lambdaUpdate(AdamMemberCode.class);
memberCodeUpdateWrapper.eq(AdamMemberCode::getMemberId, optParam.getMemberId());
memberCodeUpdateWrapper.eq(AdamMemberCode::getState, beforeState);
memberCodeUpdateWrapper.in(AdamMemberCode::getCode, updateCodeList);
memberCodeUpdateWrapper.set(AdamMemberCode::getState, state);
memberCodeUpdateWrapper.set(AdamMemberCode::getOperator, loginName);
memberCodeUpdateWrapper.set(AdamMemberCode::getUpdatedAt, now);
return adamMemberCodeAdminService.update(memberCodeUpdateWrapper);
}
return false;
}
@RequiresPermissions("adam:member:code:recover")
@Log(title = "会员管理:会员码:退回", businessType = BusinessType.UPDATE)
@PostMapping("recover_code")
@ResponseBody
public AjaxResult recover(AdamMemberCodeOptParam optParam) {
return toAjax(this.invalidRecoverCode(optParam, 5));
}
}
package com.liquidnet.client.admin.web.controller.zhengzai.kylin;
import com.liquidnet.client.admin.common.annotation.Log;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.service.IReportPerformanceService;
import com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ReportPerformanceController
* @Package com.liquidnet.client.admin.web.controller.zhengzai.kylin
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 11:33
*/
@Slf4j
@Controller
@RequestMapping("/kylin/report")
public class ReportPerformanceController extends BaseController {
private String prefix = "zhengzai/kylin/report";
@Autowired
private IReportPerformanceService reportPerformanceService;
@Autowired
private IKylinPerformancesAdminService kylinPerformancesAdminService;
@Autowired
private MongoTemplate mongoTemplate;
// @RequiresPermissions("kylin:report:getPerformanceData:view")
@GetMapping("/getPerformanceData")
public String getPerformanceDataView(String performanceId, ModelMap mmap)
{
mmap.put("currentDate", LocalDate.now());
mmap.put("performanceId", "");
return prefix + "/performanceData";
}
/**
* 查询演出列表
*/
@Log(title = "演出报表", businessType = BusinessType.LIST)
@RequiresPermissions("kylin:report:getPerformanceData:list")
@PostMapping("/getPerformanceData/list")
@ResponseBody
public AjaxResult provincelist(@RequestParam(value = "performanceId") @Validated String performanceId, ModelMap mmap)
{
//获取演出详情
// KylinPerformanceMisVo kylinPerformanceMisVo = kylinPerformancesAdminService.performanceDetails(performanceId);
PerformancePartnerVo performanceData = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)), PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
if(StringUtil.isNull(performanceData)||StringUtil.isNull(performanceData.getPerformancesId())){
return AjaxResult.error("演出Id:"+performanceId+"对应演出不存在!",performanceId);
}
HashMap<String,Object> hashMap = new HashMap();
log.info("ReportPerformanceController.getPerformanceData performanceId:{}",performanceId);
//获取按省统计数据
List<PerformanceProvinceDataDto> provinceDataList= reportPerformanceService.getProvinceDataList(performanceId);
List<PerformanceCityDataDto> cityDataList= reportPerformanceService.getCityDataList(performanceId);
List<PerformanceAgeDataDto> ageDataList= reportPerformanceService.getAgeDataList(performanceId);
List<PerformanceSexDataDto> sexDataList= reportPerformanceService.getSexDataList(performanceId);
//按年龄
// PerformanceAgeDataDto ageDataDto = PerformanceAgeDataDto.getNew();
// ageDataDto.setAge("19");
// ageDataDto.setTotalNumber(34555);
// ageDataList.add(ageDataDto);
// ageDataDto = PerformanceAgeDataDto.getNew();
// ageDataDto.setAge("20");
// ageDataDto.setTotalNumber(33444);
// ageDataList.add(ageDataDto);
//
// //按性别
// PerformanceSexDataDto sexDataDto = PerformanceSexDataDto.getNew();
// sexDataDto.setSex("男");
// sexDataDto.setTotalNumber(12345);
// sexDataList.add(sexDataDto);
// sexDataDto = PerformanceSexDataDto.getNew();
// sexDataDto.setSex("女");
// sexDataDto.setTotalNumber(99885);
// sexDataList.add(sexDataDto);
String perTitle = performanceData.getTitle();
hashMap.put("currentDate", LocalDate.now());
hashMap.put("performanceId", performanceId);
hashMap.put("perTitle", perTitle);
hashMap.put("provinceDataList",provinceDataList);
hashMap.put("cityDataList",cityDataList);
hashMap.put("ageDataList",ageDataList);
hashMap.put("sexDataList",sexDataList);
return AjaxResult.success(hashMap);
}
// /**
// * 查询演出列表
// */
//// @Log(title = "演出报表", businessType = BusinessType.LIST)
//// @RequiresPermissions("kylin:report:getPerformanceData:list")
// @PostMapping("/getPerformanceData/list")
// public String getPerformanceData(@RequestParam(value = "performanceId") @Validated String performanceId, ModelMap mmap)
// {
// log.info("ReportPerformanceController.getPerformanceData performanceId:{}",performanceId);
// //获取按省统计数据
// List<PerformanceProvinceDataDto> provinceDataList= reportPerformanceService.getProvinceDataList(performanceId);
// //
// List<PerformanceCityDataDto> cityDataList= reportPerformanceService.getCityDataList(performanceId);
// List<PerformanceAgeDataDto> ageDataList= reportPerformanceService.getAgeDataList(performanceId);
// List<PerformanceSexDataDto> sexDataDtos= reportPerformanceService.getSexDataList(performanceId);
//
// mmap.put("currentDate", LocalDate.now());
// mmap.put("performanceId", performanceId);
// mmap.put("provinceDataList",provinceDataList);
// mmap.put("cityDataList",cityDataList);
// mmap.put("ageDataList",ageDataList);
// mmap.put("sexDataDtos",sexDataDtos);
// return prefix + "/performanceData";
// }
}
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('会员码管理')" />
<th:block th:include="include :: select2-css" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="data-form">
<div class="select-list">
<ul>
<input type="text" name="memberId" hidden="hidden" th:value="${memberId}" readonly/>
<li>
状态:<select name="state" th:with="type=${@dict.getType('zhengzai_coupon_code_state')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="adam:member:export:code">
<i class="fa fa-download"></i> 导出
</a>
<a class="btn btn-primary multiple disabled" onclick="invalidHandler()" shiro:hasPermission="adam:member:invalid:code">
<i class="fa fa-edit"></i> 批量失效
</a>
<!-- <a class="btn btn-danger multiple disabled" onclick="recoverHandler()" shiro:hasPermission="adam:member:recover:code">-->
<!-- <i class="fa fa-remove"></i> 批量退回-->
<!-- </a>-->
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: select2-js" />
<script th:inline="javascript">
var invalidFlag = [[${@permission.hasPermi('adam:member:invalid:code')}]];
var recoverFlag = [[${@permission.hasPermi('adam:member:recover:code')}]];
var datas = [[${@dict.getType('zhengzai_coupon_code_state')}]];// 样例:[{"dictLabel":"未支付","dictValue":"0"},{"dictLabel":"已支付","dictValue":"1"},{"dictLabel":"已关闭","dictValue":"2"}]
var memberId = [[${memberId}]];
var prefix = ctx + "adam/member";
$(function() {
var options = {
url: prefix + "/list_code",
exportUrl: prefix + "/export_code",
detailUrl: ctx + "adam/order/orderList/detail/{id}",
sortName: "code",
sortOrder: "asc",
modalName: "会员码",
columns: [{
checkbox: true
},
{
field: 'code',
title: '会员码'
},
{
field: 'expireAt',
title: '到期时间'
},
{
field: 'useAt',
title: '使用时间'
},
{
field: 'useOrderNo',
title: '兑换订单号',
formatter: function(value, row, index) {
var actions = [];
if ($.common.isEmpty(value)) {
actions.push('<a href="javascript:void(0)">-</a>');
} else {
actions.push('<a href="javascript:void(0)" onclick="$.operate.detailTab(\'' + value + '\')">' + value + '</a>');
}
return actions.join('');
}
},
{
field: 'state',
title: '状态',
align: 'center',
formatter: function(value, row, index) {
return $.table.selectDictLabel(datas, value);
}
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
if (row.state === 0) {
actions.push('<a class="btn btn-primary btn-xs ' + (invalidFlag && row.state===0) + '" href="javascript:void(0)" onclick="invalidHandler(\'' + row.code + '\')"><i class="fa fa-edit"></i>失效</a> ');
} else if (row.state === 1) {
// actions.push('<a class="btn btn-danger btn-xs ' + (recoverFlag && row.state==0) + '" href="javascript:void(0)" onclick="recoverHandler(\'' + row.code + '\')"><i class="fa fa-remove"></i>退回</a>');
}
return actions.join('');
}
}]
};
$.table.init(options);
});
function resetPre() {
$.form.reset();
}
function invalidHandler(code) {
let invalidCodeUrl = prefix + '/invalid_code';
if (code !== null && code !== undefined) {
var data = {"memberId": memberId,"codes": code};
$.operate.submit(invalidCodeUrl, "post", "json", data);
} else {
var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
var data = {"memberId": memberId, "codes": rows.join()};
$.operate.batchProcessing(invalidCodeUrl, '失效', data);
}
}
function recoverHandler(code) {
let recoverCodeUrl = prefix + '/recover_code';
if (code !== null && code !== undefined) {
var data = {"memberId": memberId,"codes": code};
$.operate.submit(recoverCodeUrl, "post", "json", data);
} else {
var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
var data = {"memberId": memberId, "codes": rows.join()};
$.operate.batchProcessing(recoverCodeUrl, '失效', data);
}
}
</script>
</body>
</html>
\ No newline at end of file
package com.liquidnet.client.admin.zhengzai.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.entity.AdamMemberCodeBatch;
public interface IAdamMemberCodeBatchAdminService extends IService<AdamMemberCodeBatch> {
}
package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeBatchAdminService;
import com.liquidnet.service.adam.entity.AdamMemberCodeBatch;
import com.liquidnet.service.adam.mapper.AdamMemberCodeBatchMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class AdamMemberCodeBatchAdminServiceImpl extends ServiceImpl<AdamMemberCodeBatchMapper, AdamMemberCodeBatch> implements IAdamMemberCodeBatchAdminService {
}
...@@ -3,6 +3,7 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl; ...@@ -3,6 +3,7 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberRightsAdminService; import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberRightsAdminService;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
...@@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.IntStream; import java.util.stream.IntStream;
...@@ -29,6 +31,8 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh ...@@ -29,6 +31,8 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
@Override @Override
public boolean edit(AdamMemberRightsBuildParam param) { public boolean edit(AdamMemberRightsBuildParam param) {
String loginName = ShiroUtils.getLoginName();
LocalDateTime now = LocalDateTime.now();
String mrightsId = param.getMrightsId(); String mrightsId = param.getMrightsId();
boolean saveOrUpadateRst, isAddFlag = StringUtils.isEmpty(mrightsId); boolean saveOrUpadateRst, isAddFlag = StringUtils.isEmpty(mrightsId);
...@@ -44,6 +48,8 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh ...@@ -44,6 +48,8 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
saveOrUpdateInfo.setLabel(param.getLabel()); saveOrUpdateInfo.setLabel(param.getLabel());
saveOrUpdateInfo.setCover(param.getCover()); saveOrUpdateInfo.setCover(param.getCover());
saveOrUpdateInfo.setDetail(param.getDetail()); saveOrUpdateInfo.setDetail(param.getDetail());
saveOrUpdateInfo.setOperator(loginName);
saveOrUpdateInfo.setCreatedAt(now);
saveOrUpadateRst = adamMemberRightsMapper.insert(saveOrUpdateInfo) > 0; saveOrUpadateRst = adamMemberRightsMapper.insert(saveOrUpdateInfo) > 0;
} else { } else {
...@@ -52,12 +58,16 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh ...@@ -52,12 +58,16 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
.eq(AdamMemberRights::getMrightsId, param.getMrightsId()); .eq(AdamMemberRights::getMrightsId, param.getMrightsId());
saveOrUpdateInfo.setState(param.getState()); saveOrUpdateInfo.setState(param.getState());
saveOrUpdateInfo.setOperator(loginName);
saveOrUpdateInfo.setUpdatedAt(now);
if (param.getState() != 2) {
saveOrUpdateInfo.setSeqNo(param.getSeqNo()); saveOrUpdateInfo.setSeqNo(param.getSeqNo());
saveOrUpdateInfo.setTitle(param.getTitle()); saveOrUpdateInfo.setTitle(param.getTitle());
saveOrUpdateInfo.setSubTitle(param.getSubTitle()); saveOrUpdateInfo.setSubTitle(param.getSubTitle());
saveOrUpdateInfo.setLabel(param.getLabel()); saveOrUpdateInfo.setLabel(param.getLabel());
saveOrUpdateInfo.setCover(param.getCover()); saveOrUpdateInfo.setCover(param.getCover());
saveOrUpdateInfo.setDetail(param.getDetail()); saveOrUpdateInfo.setDetail(param.getDetail());
}
saveOrUpadateRst = adamMemberRightsMapper.update(saveOrUpdateInfo, updateWrapper) > 0; saveOrUpadateRst = adamMemberRightsMapper.update(saveOrUpdateInfo, updateWrapper) > 0;
} }
...@@ -98,7 +108,6 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh ...@@ -98,7 +108,6 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(param.getMemberId()), vos); redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(param.getMemberId()), vos);
} }
return saveOrUpadateRst; return saveOrUpadateRst;
} }
} }
...@@ -171,7 +171,7 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa ...@@ -171,7 +171,7 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
// CandyMgtCoupon updateMgtCoupon = new CandyMgtCoupon(); // CandyMgtCoupon updateMgtCoupon = new CandyMgtCoupon();
updateMgtCoupon.setMcouponId(parameter.getMrightsId()); updateMgtCoupon.setMcouponId(parameter.getMrightsId());
updateMgtCoupon.setCouponId(couponId);
updateMgtCoupon.setEventAmt(parameter.getEventAmt()); updateMgtCoupon.setEventAmt(parameter.getEventAmt());
updateMgtCoupon.setOperator(operator); updateMgtCoupon.setOperator(operator);
updateMgtCoupon.setUpdatedAt(nowTime); updateMgtCoupon.setUpdatedAt(nowTime);
...@@ -184,6 +184,7 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa ...@@ -184,6 +184,7 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
updateCoupon.setExclusive(1); updateCoupon.setExclusive(1);
updateMgtCoupon.setMcouponId(parameter.getMrightsId()); updateMgtCoupon.setMcouponId(parameter.getMrightsId());
updateMgtCoupon.setCouponId(couponId);
updateMgtCoupon.setOperator(operator); updateMgtCoupon.setOperator(operator);
updateMgtCoupon.setUpdatedAt(nowTime); updateMgtCoupon.setUpdatedAt(nowTime);
updateMgtCoupon.setState(2); updateMgtCoupon.setState(2);
...@@ -302,9 +303,10 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa ...@@ -302,9 +303,10 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
.eq(CandyCoupon::getExclusive, updateCoupon.getExclusive()); .eq(CandyCoupon::getExclusive, updateCoupon.getExclusive());
int updateCt = candyCouponMapper.update(updateCoupon, couponLambdaUpdateWrapper); int updateCt = candyCouponMapper.update(updateCoupon, couponLambdaUpdateWrapper);
LambdaUpdateWrapper<CandyMgtCoupon> mgtCouponLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyMgtCoupon.class) LambdaUpdateWrapper<CandyMgtCoupon> mgtCouponLambdaUpdateWrapper = Wrappers.lambdaUpdate(CandyMgtCoupon.class);
.eq(CandyMgtCoupon::getMcouponId, updateMgtCoupon.getMcouponId()) mgtCouponLambdaUpdateWrapper.eq(CandyMgtCoupon::getMcouponId, updateMgtCoupon.getMcouponId());
.eq(CandyMgtCoupon::getState, updateCoupon.getExclusive() == 1 ? 10 : 0); mgtCouponLambdaUpdateWrapper.eq(CandyMgtCoupon::getCouponId, updateMgtCoupon.getCouponId());
mgtCouponLambdaUpdateWrapper.eq(CandyMgtCoupon::getState, updateCoupon.getExclusive() == 1 ? 10 : 0);
updateCt += candyMgtCouponMapper.update(updateMgtCoupon, mgtCouponLambdaUpdateWrapper); updateCt += candyMgtCouponMapper.update(updateMgtCoupon, mgtCouponLambdaUpdateWrapper);
......
package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto;
import com.liquidnet.service.kylin.mapper.ReportPerformanceMapper;
import com.liquidnet.service.kylin.service.IReportPerformanceService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ReportPerformanceServiceImpl
* @Package com.liquidnet.client.admin.zhengzai.kylin.service.impl
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 11:30
*/
@Slf4j
@Service
public class ReportPerformanceServiceImpl implements IReportPerformanceService {
@Autowired
private ReportPerformanceMapper reportPerformanceMapper;
@Override
public List<PerformanceProvinceDataDto> getProvinceDataList(String performanceId) {
return reportPerformanceMapper.getProvinceDataList(performanceId);
}
@Override
public List<PerformanceCityDataDto> getCityDataList(String performanceId) {
return reportPerformanceMapper.getCityDataList(performanceId);
}
@Override
public List<PerformanceAgeDataDto> getAgeDataList(String performanceId) {
return reportPerformanceMapper.getAgeDataList(performanceId);
}
@Override
public List<PerformanceSexDataDto> getSexDataList(String performanceId) {
return reportPerformanceMapper.getSexDataList(performanceId);
}
}
package com.liquidnet.service.adam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 会员码批次记录
* </p>
*
* @author liquidnet
* @since 2021-09-24
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class AdamMemberCodeBatch implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* 会员码批次号
*/
private String batchNo;
/**
* ~`adam_member.member_id`
*/
private String memberId;
/**
* ~`adam_member_price.member_price_id`
*/
private String memberPriceId;
/**
* 会员卡名称~`adam_member.name`
*/
private String memberName;
/**
* 套餐包名称
*/
private String memberCombo;
/**
* 生成数量
*/
private Integer genNum;
/**
* 使用数量
*/
private Integer useNum;
/**
* 描述
*/
private String describe;
/**
* 有效期(单位天)
*/
private Integer validity;
/**
* 生效时间
*/
private LocalDateTime effectAt;
/**
* 失效时间
*/
private LocalDateTime expireAt;
/**
* 状态:0-INIT,1-NORMAL,2-INVALID
*/
private Integer state;
/**
* 操作人
*/
private String operator;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
private String comment;
}
...@@ -3,6 +3,8 @@ package com.liquidnet.service.adam.entity; ...@@ -3,6 +3,8 @@ package com.liquidnet.service.adam.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
...@@ -65,6 +67,15 @@ public class AdamMemberRights implements Serializable { ...@@ -65,6 +67,15 @@ public class AdamMemberRights implements Serializable {
*/ */
private String detail; private String detail;
/**
* 操作人
*/
private String operator;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
private String comment; private String comment;
......
package com.liquidnet.service.adam.mapper;
import com.liquidnet.service.adam.entity.AdamMemberCodeBatch;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 会员码批次记录 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-09-24
*/
public interface AdamMemberCodeBatchMapper extends BaseMapper<AdamMemberCodeBatch> {
}
<?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.liquidnet.service.adam.mapper.AdamMemberCodeBatchMapper">
</mapper>
package com.liquidnet.service.kylin.dao.report;
import lombok.Data;
import java.io.Serializable;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceAgeDataDto
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:58
*/
@Data
public class PerformanceAgeDataDto implements Serializable {
private String performanceId;
private String age;
private long totalNumber;
private static final PerformanceAgeDataDto obj = new PerformanceAgeDataDto();
public static PerformanceAgeDataDto getNew() {
try {
return (PerformanceAgeDataDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new PerformanceAgeDataDto();
}
}
}
package com.liquidnet.service.kylin.dao.report;
import lombok.Data;
import java.io.Serializable;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceCityDataDto
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:58
*/
@Data
public class PerformanceCityDataDto implements Serializable {
private String performanceId;
private String cityName;
private long totalNumber;
private static final PerformanceCityDataDto obj = new PerformanceCityDataDto();
public static PerformanceCityDataDto getNew() {
try {
return (PerformanceCityDataDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new PerformanceCityDataDto();
}
}
}
package com.liquidnet.service.kylin.dao.report;
import lombok.Data;
import java.io.Serializable;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceProvinceData
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:57
*/
@Data
public class PerformanceProvinceDataDto implements Serializable {
private String performanceId;
private String province;
private long totalNumber;
private static final PerformanceProvinceDataDto obj = new PerformanceProvinceDataDto();
public static PerformanceProvinceDataDto getNew() {
try {
return (PerformanceProvinceDataDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new PerformanceProvinceDataDto();
}
}
}
package com.liquidnet.service.kylin.dao.report;
import lombok.Data;
import java.io.Serializable;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceSexDataDto
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:58
*/
@Data
public class PerformanceSexDataDto implements Serializable {
private String sex;
private long totalNumber;
private static final PerformanceSexDataDto obj = new PerformanceSexDataDto();
public static PerformanceSexDataDto getNew() {
try {
return (PerformanceSexDataDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new PerformanceSexDataDto();
}
}
}
package com.liquidnet.service.kylin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto;
import com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto;
import com.liquidnet.service.kylin.entity.KylinPerformances;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ReportPerformanceMapper
* @Package com.liquidnet.service.kylin.mapper
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:54
*/
public interface ReportPerformanceMapper extends BaseMapper<KylinPerformances> {
/**
* 获取按省统计数据
* @param performanceId
* @return
*/
List<PerformanceProvinceDataDto> getProvinceDataList(String performanceId);
/**
* 获取按城市统计数据
* @param performanceId
* @return
*/
List<PerformanceCityDataDto> getCityDataList(String performanceId);
/**
* 获取按年龄统计数据
* @param performanceId
* @return
*/
List<PerformanceAgeDataDto> getAgeDataList(String performanceId);
/**
* 获取按性别统计数据
* @param performanceId
* @return
*/
List<PerformanceSexDataDto> getSexDataList(String performanceId);
}
<?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.liquidnet.service.kylin.mapper.ReportPerformanceMapper">
<resultMap id="getProvinceDataListResult" type="com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto">
<result column="performance_id" property="performanceId"/>
<result column="province" property="province"/>
<result column="total_number" property="totalNumber"/>
</resultMap>
<resultMap id="getCityDataListResult" type="com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto">
<result column="performance_id" property="performanceId"/>
<result column="city_name" property="cityName"/>
<result column="total_number" property="totalNumber"/>
</resultMap>
<resultMap id="getAgeDataListResult" type="com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto">
<result column="performance_id" property="performanceId"/>
<result column="age" property="age"/>
<result column="total_number" property="totalNumber"/>
</resultMap>
<resultMap id="getSexDataListResult" type="com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto">
<result column="sex" property="sex"/>
<result column="total_number" property="totalNumber"/>
</resultMap>
<!-- 演出按省统计-->
<select id="getProvinceDataList" parameterType="java.lang.String" resultMap="getProvinceDataListResult">
select x.* from (
SELECT kotr.performance_id AS 'performance_id',
ifnull(ca.province, '未知') province,
count(1) total_number
FROM kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
left join sys_dict_id_card_area ca
on substr(kote.enter_id_code, 1, 6)= ca.code
WHERE 1 > 0
and kotr.performance_id = ${performanceId}
and kots.`status` in (1, 3, 6)
and kot.coupon_type = 'no'
group by kotr.performance_id,ca.province
) x order by x.total_number desc
</select>
<!-- 演出按城市统计-->
<select id="getCityDataList" parameterType="java.lang.String" resultMap="getCityDataListResult">
select x.* from (
SELECT
kotr.performance_id AS 'performance_id',
ifnull(ca.pre_city,'未知') city_name,
count(1) total_number
FROM
kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
left join sys_dict_id_card_area ca on substr(kote.enter_id_code,1,6) = ca.code
WHERE 1>0 and kotr.performance_id = #{performanceId}
and kots.`status` in(1,3,6)
and kot.coupon_type ='no'
group by kotr.performance_id,ca.pre_city
) x order by x.total_number desc
</select>
<!-- 演出按年龄统计-->
<select id="getAgeDataList" parameterType="java.lang.String" resultMap="getAgeDataListResult">
select * from (
SELECT kotr.performance_id AS 'performance_id',
substr(curdate(), 1, 4) - substr(kote.enter_id_code, 7, 4) age,
count(1) total_number
FROM kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
WHERE 1 > 0
and kotr.performance_id = #{performanceId}
and kots.`status` in (1, 3, 6)
and kot.coupon_type = 'no'
and length(kote.enter_id_code)=18
group by kotr.performance_id, substr(curdate(), 1, 4) - substr(kote.enter_id_code, 7, 4)
)x order by x.age
</select>
<!-- 演出按性别统计-->
<select id="getSexDataList" parameterType="java.lang.String" resultMap="getSexDataListResult">
select x.sex,count(1) total_number from (
SELECT kotr.performance_id AS 'performance_id',
case when substr(kote.enter_id_code,17,1)%2=0 then '女' else '男' end sex
FROM kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
WHERE 1 > 0
and kotr.performance_id = ${performanceId}
and kots.`status` in (1, 3, 6)
and kot.coupon_type = 'no'
and length(kote.enter_id_code)=18
)x group by x.sex
</select>
</mapper>
...@@ -356,7 +356,7 @@ alter table adam_member_price add price_special decimal(8, 2) null comment '特 ...@@ -356,7 +356,7 @@ alter table adam_member_price add price_special decimal(8, 2) null comment '特
# 会员码表调整 # 会员码表调整
alter table adam_member_code modify state tinyint null comment '状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]'; alter table adam_member_code modify state tinyint null comment '状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]';
create index idx_amember_code_id on adam_member_code (code); create index idx_amember_code_id on adam_member_code (code);
alter table adam_member_code add validity tinyint null comment '有效期(单位天)' after state; alter table adam_member_code add validity int null comment '有效期(单位天)' after state;
alter table adam_member_code add effect_at datetime(3) null comment '生效时间' after validity; alter table adam_member_code add effect_at datetime(3) null comment '生效时间' after validity;
alter table adam_member_code add expire_at datetime(3) null comment '过期时间' after effect_at; alter table adam_member_code add expire_at datetime(3) null comment '过期时间' after effect_at;
alter table adam_member_code add operator varchar(64) null comment 'type=2时记录创建人' after expire_at; alter table adam_member_code add operator varchar(64) null comment 'type=2时记录创建人' after expire_at;
...@@ -409,6 +409,11 @@ create table adam_member_rights ...@@ -409,6 +409,11 @@ create table adam_member_rights
label varchar(50) comment '标注', label varchar(50) comment '标注',
cover varchar(255) comment '图片标识', cover varchar(255) comment '图片标识',
detail text comment '详情内容', detail text comment '详情内容',
operator varchar(64) comment '操作人',
created_at datetime(3) not null,
updated_at datetime(3),
comment varchar(255) comment varchar(255)
) engine = InnoDB comment '会员权益配置'; ) engine = InnoDB comment '会员权益配置';
create unique index uidx_adam_member_rights_id on adam_member_rights (mrights_id); create unique index uidx_adam_member_rights_id on adam_member_rights (mrights_id);
...@@ -424,11 +429,35 @@ create table adam_user_busi_acct ...@@ -424,11 +429,35 @@ create table adam_user_busi_acct
work varchar(64) comment '业务服务模块', work varchar(64) comment '业务服务模块',
ppwd varchar(64) comment '业务服务密码', ppwd varchar(64) comment '业务服务密码',
state tinyint comment '1-NORMAL,2-INVALID', state tinyint comment '1-NORMAL,2-INVALID',
created_at datetime not null, created_at datetime(3) not null,
updated_at datetime, updated_at datetime(3),
comment text comment text
) engine = InnoDB comment '用户业务服务账号表'; ) engine = InnoDB comment '用户业务服务账号表';
create index idx_adam_user_busi_acct_uid on adam_user_busi_acct (uid); create index idx_adam_user_busi_acct_uid on adam_user_busi_acct (uid);
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------|20210924会员码管理
drop table if exists adam_member_code_batch;
create table adam_member_code_batch
(
mid bigint unsigned auto_increment primary key,
batch_no varchar(64) not null comment '会员码批次号',
member_id varchar(64) not null comment '~`adam_member.member_id`',
member_price_id varchar(64) not null comment '~`adam_member_price.member_price_id`',
member_name varchar(80) comment '会员卡名称~`adam_member.name`',
member_combo varchar(80) comment '套餐包名称',
gen_num int comment '生成数量',
use_num int comment '使用数量',
`describe` varchar(64) comment '描述',
validity int comment '有效期(单位天)',
effect_at datetime(3) null comment '生效时间',
expire_at datetime(3) null comment '失效时间',
state tinyint comment '状态[0-INIT|1-NORMAL|2-INVALID]',
operator varchar(64) comment '操作人',
created_at datetime(3) not null,
updated_at datetime(3),
comment varchar(255)
) engine = InnoDB comment '会员码批次记录';
create index idx_adam_member_code_batch_no on adam_member_code_batch (batch_no);
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
...@@ -129,6 +129,11 @@ public class AdamLoginController { ...@@ -129,6 +129,11 @@ public class AdamLoginController {
} }
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid); AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
if (null == userInfoVo) {
log.warn("Cancelled mobile:{}", mobile);
return ResponseDto.failure(ErrorMapping.get("10024"));
}
String passwdMd5 = DigestUtils.md5DigestAsHex(password.toLowerCase().concat(passwdSalt).getBytes(StandardCharsets.UTF_8)); String passwdMd5 = DigestUtils.md5DigestAsHex(password.toLowerCase().concat(passwdSalt).getBytes(StandardCharsets.UTF_8));
if (!passwdMd5.equals(userInfoVo.getPasswd())) {// 密码校验 if (!passwdMd5.equals(userInfoVo.getPasswd())) {// 密码校验
return ResponseDto.failure(ErrorMapping.get("10013")); return ResponseDto.failure(ErrorMapping.get("10013"));
...@@ -164,6 +169,11 @@ public class AdamLoginController { ...@@ -164,6 +169,11 @@ public class AdamLoginController {
AdamUserInfoVo userInfoVo = toRegister ? adamUserService.register(mobile) : adamRdmService.getUserInfoVoByUid(uid); AdamUserInfoVo userInfoVo = toRegister ? adamUserService.register(mobile) : adamRdmService.getUserInfoVoByUid(uid);
if (!toRegister && null == userInfoVo) {
log.warn("Cancelled mobile:{}", mobile);
return ResponseDto.failure(ErrorMapping.get("10024"));
}
if (0 == userInfoVo.getIsComplete() && null != skip && 1 == skip) { if (0 == userInfoVo.getIsComplete() && null != skip && 1 == skip) {
// 根据skip值,设置IsComplete(考虑到已存在用户未完善信息的情况,这里只对返回数据单独设置IsComplete) // 根据skip值,设置IsComplete(考虑到已存在用户未完善信息的情况,这里只对返回数据单独设置IsComplete)
userInfoVo.setIsComplete(1); userInfoVo.setIsComplete(1);
...@@ -196,6 +206,11 @@ public class AdamLoginController { ...@@ -196,6 +206,11 @@ public class AdamLoginController {
AdamUserInfoVo userInfoVo = toRegister ? adamUserService.register(mobile) : adamRdmService.getUserInfoVoByUid(uid); AdamUserInfoVo userInfoVo = toRegister ? adamUserService.register(mobile) : adamRdmService.getUserInfoVoByUid(uid);
if (!toRegister && null == userInfoVo) {
log.warn("Cancelled mobile:{}", mobile);
return ResponseDto.failure(ErrorMapping.get("10024"));
}
AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew(); AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew();
loginInfoVo.setToken(this.ssoProcess(userInfoVo)); loginInfoVo.setToken(this.ssoProcess(userInfoVo));
loginInfoVo.setUserInfo(userInfoVo); loginInfoVo.setUserInfo(userInfoVo);
...@@ -269,7 +284,13 @@ public class AdamLoginController { ...@@ -269,7 +284,13 @@ public class AdamLoginController {
String uid = adamRdmService.getUidByPlatformOpenId(parameter.getPlatform(), parameter.getOpenId()); String uid = adamRdmService.getUidByPlatformOpenId(parameter.getPlatform(), parameter.getOpenId());
if (StringUtils.isEmpty(uid)) return ResponseDto.failure(ErrorMapping.get("10006")); if (StringUtils.isEmpty(uid)) return ResponseDto.failure(ErrorMapping.get("10006"));
loginInfoVo.setUserInfo(adamRdmService.getUserInfoVoByUid(uid)); AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
if (null == userInfoVo) {
log.warn("Cancelled openId:{}", parameter.getOpenId());
return ResponseDto.failure(ErrorMapping.get("10024"));
}
loginInfoVo.setUserInfo(userInfoVo);
loginInfoVo.setUserMemberVo(adamRdmService.getUserMemberVoByUid(uid)); loginInfoVo.setUserMemberVo(adamRdmService.getUserMemberVoByUid(uid));
} else {// 新账号注册 } else {// 新账号注册
ResponseDto<AdamLoginInfoVo> checkSmsCodeDto = this.checkSmsCode(parameter.getMobile(), parameter.getCode()); ResponseDto<AdamLoginInfoVo> checkSmsCodeDto = this.checkSmsCode(parameter.getMobile(), parameter.getCode());
......
...@@ -114,7 +114,7 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -114,7 +114,7 @@ public class AdamUserServiceImpl implements IAdamUserService {
LinkedList<Object[]> initUserObjs = CollectionUtil.linkedListObjectArr(), LinkedList<Object[]> initUserObjs = CollectionUtil.linkedListObjectArr(),
initUserInfoObjs = CollectionUtil.linkedListObjectArr(), initUserInfoObjs = CollectionUtil.linkedListObjectArr(),
initThirdPartObjs = CollectionUtil.linkedListObjectArr(); initThirdPartObjs = CollectionUtil.linkedListObjectArr();
if (StringUtils.isEmpty(uid)) {// 手机号未注册 if (StringUtils.isEmpty(uid)) {// 不存在UID,手机号未注册
userInfoVo = AdamUserInfoVo.getNew(); userInfoVo = AdamUserInfoVo.getNew();
userInfoVo.setUid(IDGenerator.nextSnowId() + ""); userInfoVo.setUid(IDGenerator.nextSnowId() + "");
...@@ -154,12 +154,16 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -154,12 +154,16 @@ public class AdamUserServiceImpl implements IAdamUserService {
); );
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s); log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
} else {// 手机号已注册 } else {// 存在UID,手机号已注册
// 判断已注册用户是否绑定同平台的第三方账号 // 判断已注册用户是否绑定同平台的第三方账号
AdamThirdPartInfoVo thirdPartVo = adamRdmService.getThirdPartVoByUidPlatform(uid, param.getPlatform()); AdamThirdPartInfoVo thirdPartVo = adamRdmService.getThirdPartVoByUidPlatform(uid, param.getPlatform());
if (null == thirdPartVo) {// 未绑定 if (null == thirdPartVo) {// 未绑定
this.bindTpa(uid, param);
userInfoVo = adamRdmService.getUserInfoVoByUid(uid); userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
if (null == userInfoVo) {
log.warn("Cancelled mobile:{}", param.getMobile());
return ResponseDto.failure(ErrorMapping.get("10024"));
}
this.bindTpa(uid, param);
} else if (thirdPartVo.getOpenId().equals(param.getOpenId())) { } else if (thirdPartVo.getOpenId().equals(param.getOpenId())) {
userInfoVo = adamRdmService.getUserInfoVoByUid(uid); userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
} else { } else {
...@@ -273,9 +277,9 @@ public class AdamUserServiceImpl implements IAdamUserService { ...@@ -273,9 +277,9 @@ public class AdamUserServiceImpl implements IAdamUserService {
objsAddresses = CollectionUtil.linkedListObjectArr(); objsAddresses = CollectionUtil.linkedListObjectArr();
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid); // AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
//
adamRdmService.delUidByMobile(userInfoVo.getMobile()); // adamRdmService.delUidByMobile(userInfoVo.getMobile());
List<AdamThirdPartInfoVo> thirdPartInfoVos = adamRdmService.getThirdPartVoListByUid(uid); List<AdamThirdPartInfoVo> thirdPartInfoVos = adamRdmService.getThirdPartVoListByUid(uid);
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) { if (!CollectionUtils.isEmpty(thirdPartInfoVos)) {
thirdPartInfoVos.forEach(r -> { thirdPartInfoVos.forEach(r -> {
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
10021=签名不合规 10021=签名不合规
10022=头像不合规 10022=头像不合规
10023=背景图不合规 10023=背景图不合规
10024=该账号已被主动注销
10101=姓名或身份证件号无效 10101=姓名或身份证件号无效
......
adam_user.add=INSERT INTO adam_user (`uid`, mobile, `state`, is_complete, created_at) VALUES (?,?,?,?,?) adam_user.add=INSERT INTO adam_user (`uid`, mobile, `state`, is_complete, created_at) VALUES (?,?,?,?,?)
adam_user.complete=UPDATE adam_user SET is_complete=?, updated_at=? WHERE `uid`=? adam_user.complete=UPDATE adam_user SET is_complete=?, updated_at=? WHERE `uid`=?
adam_user.edit.mobile=UPDATE adam_user SET mobile=?, updated_at=? WHERE `uid`=? adam_user.edit.mobile=UPDATE adam_user SET mobile=?, updated_at=? WHERE `uid`=?
adam_user.close=UPDATE adam_user SET `state`=2, mobile=concat(mobile,'_',curtime()), updated_at=?, closed_at=? WHERE `uid`=? #adam_user.close=UPDATE adam_user SET `state`=2, mobile=concat(mobile,'_',curtime()), updated_at=?, closed_at=? WHERE `uid`=?
adam_user.close=UPDATE adam_user SET `state`=2, updated_at=?, closed_at=? WHERE `uid`=?
# ---------------------------------------------------- # ----------------------------------------------------
adam_user_info.add=INSERT INTO adam_user_info (`uid`, nickname, avatar, qr_code) VALUES (?,?,?,?) adam_user_info.add=INSERT INTO adam_user_info (`uid`, nickname, avatar, qr_code) VALUES (?,?,?,?)
......
...@@ -172,8 +172,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -172,8 +172,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
if (!isMember) { if (!isMember) {
return ResponseDto.failure(ErrorMapping.get("20009"));//没有会员权限 return ResponseDto.failure(ErrorMapping.get("20009"));//没有会员权限
} }
} } else {
else {
if (DateUtil.compareStrDay(DateUtil.getNowTime(), memberTimeStart) == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1 && ticketData.getIsMember() == 1) { if (DateUtil.compareStrDay(DateUtil.getNowTime(), memberTimeStart) == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1 && ticketData.getIsMember() == 1) {
// 会员购买逻辑 // 会员购买逻辑
memberType = 1; memberType = 1;
...@@ -266,6 +265,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -266,6 +265,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
if (isTrueName == 1) { if (isTrueName == 1) {
for (String enterId : payOrderParam.getEnterIdList()) { for (String enterId : payOrderParam.getEnterIdList()) {
AdamEntersVo adamEnters = orderUtils.getEnters(uid, enterId);//feignAdamBaseClient.queryEnters(enterId, uid).getData(); AdamEntersVo adamEnters = orderUtils.getEnters(uid, enterId);//feignAdamBaseClient.queryEnters(enterId, uid).getData();
if (adamEnters == null) {
return ResponseDto.failure("入场人数据错误");
}
entersVoList.add(adamEnters); entersVoList.add(adamEnters);
if (isStudent == 1) { if (isStudent == 1) {
int age = IDCard.getAgeByIdCard(adamEnters.getIdCard()); int age = IDCard.getAgeByIdCard(adamEnters.getIdCard());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment