完善推荐人信息绑定,完善推荐人(商户,用户)返利计算,提示跨地区注册用户,完成赠卡流程,完善商户核消统计

master
1020109007@qq.com 2021-10-24 00:59:25 +08:00
parent 69ac550fc0
commit 6557fc5f43
54 changed files with 2180 additions and 742 deletions

View File

@ -0,0 +1,273 @@
package com.ruoyi.web.controller.segchk;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.UnAuth;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.segchk.domain.*;
import com.ruoyi.segchk.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* segController
*
* @author yinzhiying
* @date 2021-08-23
*/
@RestController
@RequestMapping("/segchk/simple_list")
public class SegchkSimpleListController extends BaseController
{
@Autowired
private ISegchkProviderMgtService segchkProviderMgtService;
@Autowired
private ISegchkSalerInfoService segchkSalerInfoService;
@Autowired
private ISegchkStoreBasicInfoService segchkStoreBasicInfoService;
@Autowired
private ISegchkChargeCardService segchkChargeCardService;
@Autowired
private ISegchkKeywordLableService segchkKeywordLableService;
@Autowired
private ISegchkPreferenceLableService segchkPreferenceLableService;
/**
* seg
*/
@UnAuth
// @PreAuthorize("@ss.hasPermi('segchk:segchk_carouse_mgt:list')")
@GetMapping("/salerList")
public TableDataInfo saler_list()
{
logger.debug("salerList is call");
// 获取当前登录用户信息
SysUser sysUser = getLoginUser().getUser();
// sysUser.getNickName();
Long providerId = sysUser.getUserId() == 1 ? null : sysUser.getProviderId();
startPage();
SegchkSalerInfo segchkSalerInfo = new SegchkSalerInfo();
segchkSalerInfo.setProviderId(providerId);
List<SegchkSalerInfo> list = segchkSalerInfoService.selectSegchkSalerInfoList(segchkSalerInfo);
List<SimpleListObj> collect = list.parallelStream().map(v -> {
SimpleListObj simpleListObj1 = new SimpleListObj();
simpleListObj1.setProviderId(String.valueOf(v.getProviderId()));
simpleListObj1.setKey(String.valueOf(v.getSalerId()));
simpleListObj1.setValue(String.valueOf(v.getSalerName()));
return simpleListObj1;
}).collect(Collectors.toList());
return getDataTable(collect);
}
/**
* seg
*/
@UnAuth
// @PreAuthorize("@ss.hasPermi('segchk:segchk_carouse_mgt:list')")
@GetMapping("/providerList")
public TableDataInfo provider_list()
{
logger.debug("providerList is call");
SimpleListObj simpleListObj = new SimpleListObj();
// 获取当前登录用户信息
SysUser sysUser = getLoginUser().getUser();
// sysUser.getNickName();
Long providerId = sysUser.getUserId() == 1 ? null : sysUser.getProviderId();
startPage();
SegchkProviderMgt segchkProviderMgt = new SegchkProviderMgt();
segchkProviderMgt.setProviderId(providerId);
List<SegchkProviderMgt> list = segchkProviderMgtService.selectSegchkProviderMgtList(segchkProviderMgt);
List<SimpleListObj> collect = list.parallelStream().map(v -> {
SimpleListObj simpleListObj1 = new SimpleListObj();
simpleListObj1.setProviderId(String.valueOf(v.getProviderId()));
simpleListObj1.setKey(String.valueOf(v.getProviderId()));
simpleListObj1.setValue(String.valueOf(v.getNickName()));
return simpleListObj1;
}).collect(Collectors.toList());
collect.forEach(v -> logger.debug("providerList ret : {}", v.toString()));
return getDataTable(collect);
}
/**
* seg
*/
@UnAuth
// @PreAuthorize("@ss.hasPermi('segchk:segchk_carouse_mgt:list')")
@GetMapping("/storeList")
public TableDataInfo store_list()
{
logger.debug("storeList is call");
// 获取当前登录用户信息
SysUser sysUser = getLoginUser().getUser();
// sysUser.getNickName();
Long providerId = sysUser.getUserId() == 1 ? null : sysUser.getProviderId();
startPage();
SegchkStoreBasicInfo segchkStoreBasicInfo = new SegchkStoreBasicInfo();
segchkStoreBasicInfo.setProviderId(providerId);
List<SegchkStoreBasicInfo> list = segchkStoreBasicInfoService.selectSegchkStoreBasicInfoList(segchkStoreBasicInfo);
List<SimpleListObj> collect = list.parallelStream().map(v -> {
SimpleListObj simpleListObj1 = new SimpleListObj();
simpleListObj1.setProviderId(String.valueOf(v.getProviderId()));
simpleListObj1.setKey(String.valueOf(v.getStoreId()));
simpleListObj1.setValue(String.valueOf(v.getStoreName()));
return simpleListObj1;
}).collect(Collectors.toList());
collect.forEach(v -> logger.debug("providerList ret : {}", v.toString()));
return getDataTable(collect);
}
/**
* seg
*/
@UnAuth
// @PreAuthorize("@ss.hasPermi('segchk:segchk_carouse_mgt:list')")
@GetMapping("/ChargeCardList")
public TableDataInfo charge_card_list()
{
logger.debug("ChargeCardList is call");
// 获取当前登录用户信息
SysUser sysUser = getLoginUser().getUser();
// sysUser.getNickName();
Long providerId = sysUser.getUserId() == 1 ? null : sysUser.getProviderId();
startPage();
SegchkChargeCard segchkChargeCard = new SegchkChargeCard();
segchkChargeCard.setProviderId(providerId);
List<SegchkChargeCard> list = segchkChargeCardService.selectSegchkChargeCardList(segchkChargeCard);
List<SimpleListObj> collect = list.parallelStream().map(v -> {
SimpleListObj simpleListObj1 = new SimpleListObj();
simpleListObj1.setProviderId(String.valueOf(v.getProviderId()));
simpleListObj1.setKey(String.valueOf(v.getCardTypeId()));
simpleListObj1.setValue(String.valueOf(v.getCardTypeName()));
return simpleListObj1;
}).collect(Collectors.toList());
collect.forEach(v -> logger.debug("ChargeCardList ret : {}", v.toString()));
return getDataTable(collect);
}
/**
* seg
*/
@UnAuth
// @PreAuthorize("@ss.hasPermi('segchk:segchk_carouse_mgt:list')")
@GetMapping("/KerwordList")
public TableDataInfo kerword_list()
{
logger.debug("KerwordList is call");
// 获取当前登录用户信息
SysUser sysUser = getLoginUser().getUser();
// sysUser.getNickName();
Long providerId = sysUser.getUserId() == 1 ? null : sysUser.getProviderId();
startPage();
SegchkKeywordLable segchkKeywordLable = new SegchkKeywordLable();
segchkKeywordLable.setProviderId(providerId);
List<SegchkKeywordLable> list = segchkKeywordLableService.selectSegchkKeywordLableList(segchkKeywordLable);
List<SimpleListObj> collect = list.parallelStream().map(v -> {
SimpleListObj simpleListObj1 = new SimpleListObj();
simpleListObj1.setProviderId(String.valueOf(v.getProviderId()));
simpleListObj1.setKey(String.valueOf(v.getKeywordId()));
simpleListObj1.setValue(String.valueOf(v.getKeywordName()));
simpleListObj1.setImgUrl(String.valueOf(v.getKeywordUrl()));
return simpleListObj1;
}).collect(Collectors.toList());
collect.forEach(v -> logger.debug("KerwordList ret : {}", v.toString()));
return getDataTable(collect);
}
/**
* seg
*/
@UnAuth
// @PreAuthorize("@ss.hasPermi('segchk:segchk_carouse_mgt:list')")
@GetMapping("/PreferenceLableList")
public TableDataInfo preference_lable_list()
{
logger.debug("PreferenceLableList is call");
// 获取当前登录用户信息
SysUser sysUser = getLoginUser().getUser();
// sysUser.getNickName();
Long providerId = sysUser.getUserId() == 1 ? null : sysUser.getProviderId();
startPage();
SegchkPreferenceLable segchkPreferenceLable = new SegchkPreferenceLable();
segchkPreferenceLable.setProviderId(providerId);
List<SegchkPreferenceLable> list = segchkPreferenceLableService.selectSegchkPreferenceLableList(segchkPreferenceLable);
List<SimpleListObj> collect = list.parallelStream().map(v -> {
SimpleListObj simpleListObj1 = new SimpleListObj();
simpleListObj1.setProviderId(String.valueOf(v.getProviderId()));
simpleListObj1.setKey(String.valueOf(v.getPreferenceId()));
simpleListObj1.setValue(String.valueOf(v.getPreferenceName()));
simpleListObj1.setImgUrl(String.valueOf(v.getPreferenceUrl()));
return simpleListObj1;
}).collect(Collectors.toList());
collect.forEach(v -> logger.debug("PreferenceLableList ret : {}", v.toString()));
return getDataTable(collect);
}
private class SimpleListObj extends BaseEntity {
private String providerId;
private String key;
private String value;
private String imgUrl;
public String getProviderId() {
return providerId;
}
public void setProviderId(String providerId) {
this.providerId = providerId;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getImgUrl() {
return imgUrl;
}
public void setImgUrl(String imgUrl) {
this.imgUrl = imgUrl;
}
@Override
public String toString() {
return "SimpleListObj{" +
"providerId='" + providerId + '\'' +
", key='" + key + '\'' +
", value='" + value + '\'' +
", imgUrl='" + imgUrl + '\'' +
'}';
}
}
}

View File

@ -107,7 +107,13 @@ public class SegchkStoreBasicInfoController extends BaseController
else{
segchkStoreBasicInfo.setProviderId(sysUser.getProviderId());
}
return toAjax(segchkStoreBasicInfoService.insertSegchkStoreBasicInfo(segchkStoreBasicInfo));
int i = segchkStoreBasicInfoService.insertSegchkStoreBasicInfo(segchkStoreBasicInfo);
if(i < 0){
return AjaxResult.error(500, "手机号码已绑定商户");
}
else {
return toAjax(i);
}
}
/**
@ -129,7 +135,13 @@ public class SegchkStoreBasicInfoController extends BaseController
segchkStoreBasicInfo.setProviderId(sysUser.getProviderId());
}
logger.debug("edit_info with ---> {}", segchkStoreBasicInfo.toString());
return toAjax(segchkStoreBasicInfoService.updateSegchkStoreBasicInfo(segchkStoreBasicInfo));
int i = segchkStoreBasicInfoService.updateSegchkStoreBasicInfo(segchkStoreBasicInfo);
if(i < 0){
return AjaxResult.error(500, "手机号码已绑定商户");
}
else {
return toAjax(i);
}
}
/**

View File

@ -0,0 +1,118 @@
# 项目相关配置
ruoyi:
# 名称
name: RuoYi
# 版本
version: 3.6.0
# 版权年份
copyrightYear: 2021
# 实例演示开关
demoEnabled: true
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: /home/segchk/data/uploadPath/applet
# 获取ip地址开关
addressEnabled: false
# 验证码类型 math 数组计算 char 字符验证
captchaType: math
# 开发环境配置
server:
# 服务器的HTTP端口默认为8080
port: 7070
servlet:
# 应用的访问路径
context-path: /
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# tomcat最大线程数默认为200
max-threads: 800
# Tomcat启动初始化的线程数默认值25
min-spare-threads: 30
# 日志配置
logging:
level:
com.ruoyi: debug
org.springframework: warn
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://127.0.0.1:8306/segchksaas?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: segchksaas
password: 2wsx@WSX
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: ruoyi
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
# redis 配置
redis:
# 地址
host: 127.0.0.1
# 端口默认为6379
port: 63795
# 数据库索引
database: 3
# 密码
password: 3edc#EDC
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms

View File

@ -0,0 +1,28 @@
package com.ruoyi.quartz.task;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.stereotype.Component;
/**
*
*
* @author ruoyi
*/
@Component("SegchkTask")
public class SegchkTask
{
public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
{
System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
}
public void ryParams(String params)
{
System.out.println("执行有参方法:" + params);
}
public void ryNoParams()
{
System.out.println("执行无参方法");
}
}

View File

@ -67,8 +67,9 @@ public class SegChkLoginController {
@Value("${token.secret}")
private String jwtSecretKey;
// 登录超时时长,单位天,-1永久有效
@Value("${yzytest.login.loginexpire:#{1}}")
private Integer loginexpire;
/**
* service
@ -287,7 +288,12 @@ public class SegChkLoginController {
claims.setUserLevel(Integer.valueOf(bindParams.getUserLevel()));
}
// 将用户的token进行缓存
redisService.setCacheObject(token, claims);
if(loginexpire == -1) {
redisService.setCacheObject(token, claims);
}
else{
redisService.setCacheObject(token, claims, loginexpire, TimeUnit.HOURS);
}
return AjaxResult.success("绑定成功", token);
}

View File

@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
@ -57,6 +58,12 @@ public class SegchkDefaultIndexController extends BaseController
@Value("${segchk.recommendstore.distince:#{null}}")
private BigDecimal recomDist;
@Value("${segchk.startid:#{null}}")
private Integer startid;
@Value("${segchk.default_district:#{110100}}")
private Long defaultDistrict;
/**
* idid
* {
@ -76,9 +83,20 @@ public class SegchkDefaultIndexController extends BaseController
{
logger.debug("get_provider_byadcode with: {}", adcode);
AjaxResult ajax = new AjaxResult();
Long providerId = segchkStoreIndexService.getProvider(adcode);
HashMap<String, Object> paramsMap = new HashMap<>();
paramsMap.put("districtId", adcode);
paramsMap.put("defaultDistrict", defaultDistrict);
HashMap<String, Object> provider = segchkStoreIndexService.getProvider(paramsMap);
ajax.put(CODE_TAG, 200);
ajax.put(DATA_TAG, providerId);
PrvoiderDistrict prvoiderDistrict = new PrvoiderDistrict();
prvoiderDistrict.setProvFlag((Integer) provider.get("provFlag"));
prvoiderDistrict.setProviderId((Long) provider.get("providerId"));
if(prvoiderDistrict.getProvFlag() == 1){
// 说明返回默认地区运营商
prvoiderDistrict.setDistName(String.valueOf(provider.get("provName")));
}
ajax.put(DATA_TAG, prvoiderDistrict);
logger.debug("getProviderByadcode res --- {}", ajax.toString());
return ajax;
}
@ -248,11 +266,11 @@ public class SegchkDefaultIndexController extends BaseController
if(!StringUtils.isEmpty(recommenderId) && !StringUtils.isEmpty(recommenderLevel)){
logger.debug("store_details recommender with: {}---{}", recommenderId, recommenderLevel);
int ret = segchkStoreIndexService.recommenderIsExit(recommenderId, recommenderLevel, segchkStoreWebReq.getProviderId().toString());
if(ret == 1){
if(ret > 1){
ajax.put("recommenderId", recommenderId);
ajax.put("recommenderLevel", recommenderLevel);
}
logger.warn("store_details the recommender: {}{} is {}", recommenderId, recommenderLevel, ret < 1 ? "not exit" : "exit");
logger.warn("store_details the recommender: ({}{}) is {} {} curprov({})", recommenderId, recommenderLevel, ret < 1 ? "not exit" : "exit", ret == 1 ? "with same provider" : "different with provider");
}
return ajax;
}
@ -379,4 +397,44 @@ public class SegchkDefaultIndexController extends BaseController
'}';
}
}
private class PrvoiderDistrict extends BaseEntity {
private Integer provFlag;
private Long providerId;
private String distName;
public Integer getProvFlag() {
return provFlag;
}
public void setProvFlag(Integer provFlag) {
this.provFlag = provFlag;
}
public Long getProviderId() {
return providerId;
}
public void setProviderId(Long providerId) {
this.providerId = providerId;
}
public String getDistName() {
return distName;
}
public void setDistName(String distName) {
this.distName = distName;
}
@Override
public String toString() {
return "PrvoiderDistrict{" +
"provFlag=" + provFlag +
", providerId=" + providerId +
", distName='" + distName + '\'' +
'}';
}
}
}

View File

@ -15,6 +15,7 @@ import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
/**
* segController
@ -45,6 +47,10 @@ public class SegchkDefaultProviderController extends BaseController
@Autowired
private RedisCache redisService;
// 登录超时时长,单位天,-1永久有效
@Value("${yzytest.login.loginexpire:#{1}}")
private Integer loginexpire;
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
/**
* seg
@ -91,22 +97,10 @@ public class SegchkDefaultProviderController extends BaseController
{
if(StringUtils.isEmpty(segchkServiceAndSaleWebReq.getRemark())){
Claims claims = null;
try {
claims = getClaims(getToken(request));
if (ObjectUtils.isEmpty(claims)) {
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
}
}
catch (Exception e){
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkServiceAndSaleWebReq.setProviderId(claims.getUserId());
}
@ -132,22 +126,10 @@ public class SegchkDefaultProviderController extends BaseController
{
if(StringUtils.isEmpty(segchkServiceAndSaleWebReq.getRemark())){
Claims claims = null;
try {
claims = getClaims(getToken(request));
if (ObjectUtils.isEmpty(claims)) {
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
}
}
catch (Exception e){
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkServiceAndSaleWebReq.setProviderId(claims.getUserId());
}
@ -157,6 +139,40 @@ public class SegchkDefaultProviderController extends BaseController
return getDataTable(segchkServiceAndSaleDetailWebRespList);
}
// 返回注册登录提示
private AjaxResult LoginRequireAjax() {
return AjaxResult.error(300, "请先登录注册");
}
private TableDataInfo LoginRequireTableInfo() {
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
}
// 获取登录信息
private Claims getLoing(HttpServletRequest request){
String token = null;
try {
token = getToken(request);
}catch (Exception e){
e.printStackTrace();
return null;
}
Claims claims = getClaims(token);
if(!ObjectUtils.isEmpty(claims)){
if(loginexpire == -1){
redisService.setCacheObject(token, claims);
}
else {
redisService.setCacheObject(token, claims, loginexpire, TimeUnit.DAYS);
}
}
return claims;
}
/**
* token
*

View File

@ -35,6 +35,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import static com.ruoyi.common.core.domain.AjaxResult.*;
@ -82,6 +83,10 @@ public class SegchkDefaultStoreController extends BaseController
@Value("${segchk.sto_weight:#{200}}")
private Integer stoWeight;
// 登录超时时长,单位天,-1永久有效
@Value("${yzytest.login.loginexpire:#{1}}")
private Integer loginexpire;
/**
* seg
* {
@ -131,13 +136,10 @@ public class SegchkDefaultStoreController extends BaseController
{
if(StringUtils.isEmpty(segchkServiceAndSaleWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkServiceAndSaleWebReq.setStoreId(claims.getUserId());
segchkServiceAndSaleWebReq.setProviderId(claims.getProviderId());
@ -165,13 +167,10 @@ public class SegchkDefaultStoreController extends BaseController
{
if(StringUtils.isEmpty(segchkServiceAndSaleWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkServiceAndSaleWebReq.setStoreId(claims.getUserId());
segchkServiceAndSaleWebReq.setProviderId(claims.getProviderId());
@ -199,13 +198,10 @@ public class SegchkDefaultStoreController extends BaseController
{
if(StringUtils.isEmpty(segchkServiceAndSaleWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkServiceAndSaleWebReq.setStoreId(claims.getUserId());
segchkServiceAndSaleWebReq.setProviderId(claims.getProviderId());
@ -233,13 +229,10 @@ public class SegchkDefaultStoreController extends BaseController
{
if(StringUtils.isEmpty(segchkUserWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkUserWebReq.setUserId(claims.getUserId());
segchkUserWebReq.setProviderId(claims.getProviderId());
@ -268,10 +261,10 @@ public class SegchkDefaultStoreController extends BaseController
{
if(StringUtils.isEmpty(remark)){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
if(!storeId.equals(String.valueOf(claims.getUserId()))){
logger.warn("ServiceCheckTest---storeid: {} is not then token: {}", storeId, claims);
@ -281,7 +274,7 @@ public class SegchkDefaultStoreController extends BaseController
AjaxResult ajax = new AjaxResult();
logger.debug("ServiceCheckTest with: {}---{}---{}", likegoId.toString(), storeId, remark);
SegchkServiceOrderChkTestResp segchkServiceOrderChkTestResp = segchkUserIndexService.selectUserOrderPredInfo(likegoId);
logger.debug("ServiceCheckTest check with: {}", segchkServiceOrderChkTestResp.toString());
if(segchkServiceOrderChkTestResp.getStoreId()!= Long.parseLong(storeId)){
ajax.put(CODE_TAG, "500");
ajax.put(MSG_TAG, "预约单商家非本店商家!");
@ -307,6 +300,7 @@ public class SegchkDefaultStoreController extends BaseController
ajax.put(MSG_TAG, "该预约单在本店已无可用权益次数");
}
else if(segchkServiceOrderChkTestResp.getCanFree() == 1){
int ret = segchkUserIndexService.OrderCheckTransaction(segchkServiceOrderChkTestResp, likegoId);
ajax.put(CODE_TAG, "200");
segchkServiceOrderChkTestResp.setSegchkRecommenderStoreLableWebList(null);
ajax.put(DATA_TAG, segchkServiceOrderChkTestResp);
@ -327,7 +321,38 @@ public class SegchkDefaultStoreController extends BaseController
return ajax;
}
@PostMapping("giveFreeCard")
@ResponseBody
@ApiOperation(value = "商家赠卡接口", notes = "需要鉴权")
public AjaxResult giveFreeCard(@RequestBody StoreSelfCard storeSelfCard, HttpServletRequest request)
{
logger.debug("giveFreeCard with --- {}", storeSelfCard.toString());
SegchkStoreSelfMgt segchkStoreSelfMgt = new SegchkStoreSelfMgt();
segchkStoreSelfMgt.setStoreId(storeSelfCard.getStoreId());
if(StringUtils.isEmpty(storeSelfCard.getRemark())){
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return LoginRequireAjax();
}
segchkStoreSelfMgt.setProviderId(claims.getProviderId());
segchkStoreSelfMgt.setStoreId(claims.getUserId());
}
segchkStoreSelfMgt.setCardId(storeSelfCard.getCardId());
segchkStoreSelfMgt.setUserId(storeSelfCard.getUserId());
segchkStoreSelfMgt.setTypeId(storeSelfCard.getTypeId());
segchkStoreSelfMgt.setFreeCount(storeSelfCard.getTotalCount());
segchkStoreSelfMgt.setLableId(storeSelfCard.getTypeId() == 2 ? storeSelfCard.getLableId() : 0L);
segchkStoreSelfMgt.setFreeName(storeSelfCard.getTypeId() == 2 ? null : "赠卡");
segchkStoreSelfMgt.setFreeContent(storeSelfCard.getFreeContent());
segchkStoreSelfMgt.setLeftCount(storeSelfCard.getTotalCount());
logger.debug("giveFreeCard with --- {}", segchkStoreSelfMgt.toString());
Integer ret = segchkStoreIndexService.addStoreSelfCard(segchkStoreSelfMgt);
if(ret == 0){
logger.error("giveFreeCard failed with --- {}", segchkStoreSelfMgt.toString());
}
return ret > 0 ? AjaxResult.success("赠卡成功") : AjaxResult.error(500, "赠卡失败");
}
/**
* , ret 0
* {
@ -337,7 +362,7 @@ public class SegchkDefaultStoreController extends BaseController
* }
*/
// @Log(title = "seg提现结果回调", businessType = BusinessType.UPDATE)
@PostMapping( "/userCashResult")
@PostMapping("/userCashResult")
@ResponseBody
@ApiOperation(value = "提现结果回调接口", notes = "需要鉴权")
public void userCashResult(String chargeId, int userLevel, int ret)
@ -367,15 +392,10 @@ public class SegchkDefaultStoreController extends BaseController
public AjaxResult store_share_qr(String storeId, String providerId, String remark, Integer qrw, Integer qrh, HttpServletRequest request, HttpServletResponse response)
{
if(StringUtils.isEmpty(remark)){
Claims claims = null;
try {
claims = getClaims(getToken(request));
} catch (Exception e){
e.printStackTrace();
}
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
storeId = String.valueOf(claims.getUserId());
providerId = String.valueOf(claims.getProviderId());
@ -400,6 +420,43 @@ public class SegchkDefaultStoreController extends BaseController
logger.debug("storerecommend res: {}", storeRecommend.toString());
return AjaxResult.success("生成成功", storeRecommend);
}
// 返回注册登录提示
private AjaxResult LoginRequireAjax() {
return AjaxResult.error(300, "请先登录注册");
}
private TableDataInfo LoginRequireTableInfo() {
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
}
// 获取登录信息
private Claims getLoing(HttpServletRequest request){
String token = null;
try {
token = getToken(request);
}catch (Exception e){
e.printStackTrace();
return null;
}
Claims claims = getClaims(token);
if(!ObjectUtils.isEmpty(claims)){
if(loginexpire == -1){
redisService.setCacheObject(token, claims);
}
else {
redisService.setCacheObject(token, claims, loginexpire, TimeUnit.HOURS);
}
}
return claims;
}
/**
*
*
@ -497,4 +554,6 @@ public class SegchkDefaultStoreController extends BaseController
'}';
}
}
}

View File

@ -38,6 +38,7 @@ import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import static com.ruoyi.common.core.domain.AjaxResult.*;
import static com.ruoyi.common.utils.ip.IpUtils.getIpAddr;
@ -104,6 +105,10 @@ public class SegchkDefaultUserController extends BaseController
@Value("${segchk.chk_weight:#{200}}")
private Integer chkWeight;
// 登录超时时长,单位天,-1永久有效
@Value("${yzytest.login.loginexpire:#{1}}")
private Integer loginexpire;
/**
* seg
* {
@ -132,10 +137,11 @@ public class SegchkDefaultUserController extends BaseController
logger.debug("add_user_collect with: {}", segchkUserCollect.toString());
return toAjax(segchkUserCollectService.insertSegchkUserCollect(segchkUserCollect));
}
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
if (claims.getUserLevel() != 2){
return AjaxResult.error(400, "非会员用户不可以收藏");
@ -158,10 +164,10 @@ public class SegchkDefaultUserController extends BaseController
@ApiOperation(value = "删除seg用户收藏记录", notes = "需要鉴权")
public AjaxResult removeUserCollect(@RequestBody RemoveIds removeIds, HttpServletRequest request)
{
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
logger.debug("removeUserCollect with: {}", removeIds.toString());
return toAjax(segchkUserCollectService.deleteSegchkUserCollectByIds(removeIds.getIds()));
@ -186,13 +192,10 @@ public class SegchkDefaultUserController extends BaseController
List<SegchkServiceOrderWebReq> segchkServiceOrderWebReqList = segchkUserIndexService.selectUserOrderPredCardListWebInfo(segchkServiceOrderWebReq);
return getDataTable(segchkServiceOrderWebReqList);
}
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkServiceOrderWebReq.setUserId(claims.getUserId());
List<SegchkServiceOrderWebReq> segchkServiceOrderWebReqList = segchkUserIndexService.selectUserOrderPredCardListWebInfo(segchkServiceOrderWebReq);
@ -221,11 +224,10 @@ public class SegchkDefaultUserController extends BaseController
Long userId = 0L;
if(StringUtils.isEmpty(segchkUserLikego.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
userId = getClaims(getToken(request)).getUserId();
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
if(claims.getUserLevel() != 2){
return AjaxResult.error(400, "未会员用户不允许预约!");
@ -237,6 +239,7 @@ public class SegchkDefaultUserController extends BaseController
return toAjax(segchkUserLikegoService.insertSegchkUserLikego(segchkUserLikego));
}
/**
* id
* {
@ -255,14 +258,10 @@ public class SegchkDefaultUserController extends BaseController
SegchkUserLikego segchkUserLikego = new SegchkUserLikego();
segchkUserLikego.setLikegoId(Long.valueOf(likegoId));
if(StringUtils.isEmpty(remark)){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
// TableDataInfo tableDataInfo = new TableDataInfo();
// tableDataInfo.setCode(300);
// tableDataInfo.setMsg("请先登录注册");
// return tableDataInfo;
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
segchkUserLikego.setUserId(claims.getUserId());
segchkUserLikego.setProviderId(claims.getProviderId());
@ -320,15 +319,13 @@ public class SegchkDefaultUserController extends BaseController
public TableDataInfo store_service_check_list(@RequestBody SegchkUserWebReq segchkUserWebReq, HttpServletRequest request)
{
if(StringUtils.isEmpty(segchkUserWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkUserWebReq.setUserId(claims.getUserId());
segchkUserWebReq.setProviderId(claims.getProviderId());
}
startPage();
logger.debug("store_service_check_list with: {}", segchkUserWebReq.toString());
@ -336,6 +333,7 @@ public class SegchkDefaultUserController extends BaseController
return getDataTable(segchkUserWebSCRespList);
}
/**
* ididseg
*/
@ -347,15 +345,13 @@ public class SegchkDefaultUserController extends BaseController
public TableDataInfo user_card_list(@RequestBody SegchkUserWebReq segchkUserWebReq, HttpServletRequest request)
{
if(StringUtils.isEmpty(segchkUserWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkUserWebReq.setUserId(claims.getUserId());
segchkUserWebReq.setProviderId(claims.getProviderId());
}
startPage();
logger.debug("user_card_list with: {}", segchkUserWebReq.toString());
@ -380,15 +376,13 @@ public class SegchkDefaultUserController extends BaseController
{
if(StringUtils.isEmpty(segchkUserWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkUserWebReq.setUserId(claims.getUserId());
segchkUserWebReq.setProviderId(claims.getProviderId());
}
startPage();
logger.debug("user_collect_list with: {}", segchkUserWebReq.toString());
@ -414,15 +408,13 @@ public class SegchkDefaultUserController extends BaseController
{
if(StringUtils.isEmpty(segchkUserWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkUserWebReq.setUserId(claims.getUserId());
segchkUserWebReq.setProviderId(claims.getProviderId());
}
startPage();
logger.debug("userLikeGOList with: {}", segchkUserWebReq.toString());
@ -443,10 +435,10 @@ public class SegchkDefaultUserController extends BaseController
{
if(StringUtils.isEmpty(removeIds.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
removeIds.setUserId(claims.getUserId());
}
@ -468,10 +460,10 @@ public class SegchkDefaultUserController extends BaseController
public AjaxResult get_comment(@RequestBody SegchkServiceCommentUserReq segchkServiceCommentUserReq, HttpServletRequest request)
{
if(StringUtils.isEmpty(segchkServiceCommentUserReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
}
logger.debug("get_comment with: {}", segchkServiceCommentUserReq.toString());
@ -500,10 +492,10 @@ public class SegchkDefaultUserController extends BaseController
public AjaxResult addComment(@RequestBody SegchkServiceCommentUserReq segchkServiceCommentUserReq, HttpServletRequest request)
{
if(StringUtils.isEmpty(segchkServiceCommentUserReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
if (claims.getUserLevel() != 2){
return AjaxResult.error(400, "非会员用户不允许提交评价");
@ -529,15 +521,13 @@ public class SegchkDefaultUserController extends BaseController
{
if(StringUtils.isEmpty(segchkUserWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkUserWebReq.setUserId(claims.getUserId());
segchkUserWebReq.setProviderId(claims.getProviderId());
}
logger.debug("userChargeList with: {}", segchkUserWebReq.toString());
startPage();
@ -557,15 +547,13 @@ public class SegchkDefaultUserController extends BaseController
{
if(StringUtils.isEmpty(segchkUserWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkUserWebReq.setUserId(claims.getUserId());
segchkUserWebReq.setProviderId(claims.getProviderId());
}
logger.debug("userCashList with: {}", segchkUserWebReq.toString());
startPage();
@ -591,15 +579,13 @@ public class SegchkDefaultUserController extends BaseController
{
if(StringUtils.isEmpty(segchkUserWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
return LoginRequireTableInfo();
}
segchkUserWebReq.setUserId(claims.getUserId());
segchkUserWebReq.setProviderId(claims.getProviderId());
}
logger.debug("userMsgList with: {}", segchkUserWebReq.toString());
startPage();
@ -623,10 +609,10 @@ public class SegchkDefaultUserController extends BaseController
{
if(StringUtils.isEmpty(segchkUserWebReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
if(!claims.getProviderId().equals(segchkUserWebReq.getProviderId())){
logger.warn("userChargePre can not charg for user({}), because login prov({}) is not register prov({})", claims.getUserId(), segchkUserWebReq.getProviderId(), claims.getProviderId());
@ -670,10 +656,10 @@ public class SegchkDefaultUserController extends BaseController
{
if(StringUtils.isEmpty(segchkUserCharge.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
segchkUserCharge.setUserId(claims.getUserId());
segchkUserCharge.setProviderId(claims.getProviderId());
@ -705,13 +691,17 @@ public class SegchkDefaultUserController extends BaseController
}
segchkUserCharge.setRetFlag(ret_flag);
int ret = segchkUserChargeService.insertSegchkUserCharge(segchkUserCharge);
// 生成充值订单
int ret = segchkUserIndexService.insertSegchkUserCharge(segchkUserCharge);
if(ret < 1){
// 生成失败。返回提示
ajax.put(CODE_TAG, "500");
ajax.put(MSG_TAG, "充值失败!");
}
else{
if(!StringUtils.isEmpty(segchkUserCharge.getSearchValue())){
// 生成订单成功
if(!StringUtils.isEmpty(segchkUserCharge.getCharge())){
// 如果待生成订单需要用户调起支付时
WechatPaySet wechatAppletPaySet = paySetService.queryPaySet().getWechatAppletPaySet();
WechatSetting wechatSetting = new WechatSetting();
wechatSetting.setAppId(wechatAppletPaySet.getAppId());
@ -745,6 +735,7 @@ public class SegchkDefaultUserController extends BaseController
}
}
if(ret_flag == 1){
return AjaxResult.error(201, "充值成功");
}
CommonResponse<PrepayResult> prepayResultCommonResponse = segchkUserIndexService.wechatAppletPay(
@ -822,10 +813,10 @@ public class SegchkDefaultUserController extends BaseController
public AjaxResult userCashReq(@RequestBody SegchkUserCashOpsReq segchkUserCashOpsReq, HttpServletRequest request)
{
if(StringUtils.isEmpty(segchkUserCashOpsReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
segchkUserCashOpsReq.setUserId(claims.getUserId());
segchkUserCashOpsReq.setProviderId(claims.getProviderId());
@ -875,10 +866,10 @@ public class SegchkDefaultUserController extends BaseController
{
if(StringUtils.isEmpty(segchkUserSetInfoReq.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
segchkUserSetInfoReq.setUserId(claims.getUserId());
segchkUserSetInfoReq.setProviderId(claims.getProviderId());
@ -917,10 +908,10 @@ public class SegchkDefaultUserController extends BaseController
int ret = 0;
if(StringUtils.isEmpty(segchkUserCertificationInfo.getRemark())){
Claims claims = getClaims(getToken(request));
Claims claims = getLoing(request);
if (ObjectUtils.isEmpty(claims)) {
// 如果用户未登录,则要求用户使用手机号登录注册
return AjaxResult.error(300, "请先登录注册");
return LoginRequireAjax();
}
segchkUserCertificationInfo.setUserId(claims.getUserId());
segchkUserCertificationInfo.setProviderId(claims.getProviderId());
@ -954,6 +945,39 @@ public class SegchkDefaultUserController extends BaseController
}
}
// 返回注册登录提示
private AjaxResult LoginRequireAjax() {
return AjaxResult.error(300, "请先登录注册");
}
private TableDataInfo LoginRequireTableInfo() {
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(300);
tableDataInfo.setMsg("请先登录注册");
return tableDataInfo;
}
// 获取登录信息
private Claims getLoing(HttpServletRequest request){
String token = null;
try {
token = getToken(request);
}catch (Exception e){
e.printStackTrace();
return null;
}
Claims claims = getClaims(token);
if(!ObjectUtils.isEmpty(claims)){
if(loginexpire == -1){
redisService.setCacheObject(token, claims);
}
else {
redisService.setCacheObject(token, claims, loginexpire, TimeUnit.HOURS);
}
}
return claims;
}
/**
*
*

View File

@ -127,6 +127,7 @@ yzytest:
smsplatid: 3
segchk:
default_district: 140100
qr_path: C:\Users\Public\Desktop\dome.jpg
poster_path: F:\ideaproj\RuoYi-Vue\ruoyi-segchk\src\main\resources\templates\posters\bg.jpg
# 核消二维码保存路径,测试使用。正常不打开

View File

@ -116,29 +116,32 @@ yzytest:
smssign:
smstest: true
smsplatid: 3
# 登录超时时长,单位天, -1永久有效
loginexpire: 8
segchk:
default_district: 130500
qr_path: /home/segchk/data/resources/check/dome.jpg
poster_path: /home/segchk/data/resources/check/poster/bg.jpg
poster_path: /home/segchk/data/resources/check/poster/bg1.jpg
# 核消二维码保存路径,测试使用。正常不打开
check_qr_path: /home/segchk/data/resources/check/poster/checkqr.jpg
# 核消二维码背景路径,可有,可无
check_poster_path: /home/segchk/data/resources/check/poster/bg.jpg
# check_poster_path: /home/segchk/data/resources/check/poster/bg1.jpg
chkurl: '/default/store/ServiceCheckTest?likegoId=%s&storeId=%s'
sto_height: 350
sto_weight: 350
chk_height: 350
chk_weight: 350
chk_height: 400
chk_weight: 400
# 商户推广二维码
store_qr_path: /home/segchk/data/resources/check/poster/storeqr
# 商户推广二维码背景路径,可有,可无
store_poster_path: /home/segchk/data/resources/check/poster/bg.jpg
store_poster_path: /home/segchk/data/resources/check/poster/bg1.jpg
sto_height: 350
sto_weight: 350
storeurl: 'https://segchksaas.mynatapp.cc/default/store/storerecommend?recC=%s&recV=%s'
wxchecktxt: 1bc40f067f30d2f520200d504238a620

View File

@ -42,7 +42,7 @@ spring:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: dev
active: test
# # 文件上传
# servlet:
# multipart:

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -62,6 +62,24 @@ Content-Type: application/json
###
############### 商家接口测试 ####################
### 商家核消操作
POST {{host}}//default/store/giveFreeCard
Accept: */*
Cache-Control: no-cache
Content-Type: application/json
Authorization: Bearer {{bindtoken}}
{
"userId": 243,
"cardId": 242,
"lableId": 10,
"storeId": 144,
"typeId": 2,
"totalCount": 10,
"freeContent": "demoData",
"remark": "demoData"
}
### 商家核消操作
POST {{host}}//default/store/ServiceCheckTest?likegoId=16877&storeId=128&remark=999999
Accept: */*
@ -146,6 +164,14 @@ Authorization: Bearer {{bindtoken1}}
"userLevel": 2
}
###
POST {{host}}//default/user/userChargeResult?chargeId=45459&ret=0
Accept: */*
Cache-Control: no-cache
Content-Type: application/json
Authorization: Bearer {{bindtoken1}}
### 用户充值操作
#返回结果
#{
@ -183,9 +209,9 @@ Authorization: Bearer {{bindtoken1}}
{
"userId": 503,
"charge": 9.9,
"accountUsed": 0,
"cardTypeId": 0,
"providerId": 2
"providerId": 2,
"remark": 999
}
@ -611,10 +637,11 @@ Content-Type: application/json
Authorization: Bearer {{providertoken}}
{
"userId": 3,
"userId": 9,
"providerId": 2,
"userLevel": 2,
"cardID": "11111"
"userLevel": 1,
"cardID": "11111",
"remark": "999999"
}
### 商家评价列表
@ -853,14 +880,17 @@ Content-Type: application/json
### 根据用户当前所在地市行政id返回运营商id 尹志颖
### 返回值说明 {
# "code": 200,
# "data": 2//该值用于在小程序内部留存,在后续接口请求时都会用到
# data": {
# "provFlag": 1, 0说明用户所选或所在的地区已开放服务1说明用户所在或所选地区未开放服务提供的运营商为默认运营商
# "providerId": 3
# }
#}
GET {{host}}//default/index/getProviderByadcode
GET {{host}}//default/index/getProviderByadcode?adcode=150100
Accept: */*
Cache-Control: no-cache
Content-Type: application/json
130502
###
### 测试微信账号绑定

View File

@ -182,6 +182,7 @@ public class LoginServiceImpl implements LoginService {
case 0: {
segchkUserWebResp = segchkProviderIndexService.selectSegchkProviderWebInfo(segchkUserWebReq);
segchkUserWebResp.setUserLevel(0);
segchkUserWebResp.setUserId(segchkUserWebReq.getProviderId());
ajaxResult = AjaxResult.success(segchkUserWebResp);
break;
}

View File

@ -28,6 +28,7 @@ import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
*
@ -48,6 +49,11 @@ public class RegisterServiceApiImpl implements RegisterServiceApi {
@Value("${token.secret}")
private String jwtSecretKey;
// 登录超时时长,单位天,-1永久有效
@Value("${yzytest.login.loginexpire:#{1}}")
private Integer loginexpire;
/**
*
*/
@ -104,31 +110,12 @@ public class RegisterServiceApiImpl implements RegisterServiceApi {
}
SegchkUserLevelInfo segchkUserLevelInfo = segchkUserIndexService.selectUserLevelByMobile(mobile);
SegchkUserExtInfo segchkUserExtInfo = new SegchkUserExtInfo();
SegchkUserExtInfo segchkUserExtInfo = null;
if(ObjectUtils.isEmpty(segchkUserLevelInfo)){
logger.debug("registerCustomer prov {} mobile: {{}} is a new user with recommender:{}---{}", providerId, mobile, recommondId, recommondLevel);
segchkUserLevelInfo = new SegchkUserLevelInfo();
// 如果用户信息空,则添加新的用户
if(!StringUtils.isEmpty(recommondId) && !StringUtils.isEmpty(recommondLevel)){
// 如果推荐人,推荐人角色都非空。要检查推荐人是否存在。否则推荐人设置为运营商
Map<String, Object> parmMap = new HashMap<>();
parmMap.put("userId", recommondId);
parmMap.put("userLevel", recommondLevel);
parmMap.put("providerId", providerId);
int ret = segchkUserIndexService.recommenderIsExit(parmMap);
if(ret == 0){
// 推荐人异常
logger.error("registerCustomer fail due to recommender is wrong...");
return AjaxResult.error(500, "推荐人不存在或不在同一地区!");
}
// 添加推荐人绑定
segchkUserExtInfo.setProviderId(Long.valueOf(providerId));
segchkUserExtInfo.setRecommendersLevel(recommondLevel);
segchkUserExtInfo.setUserRecommenders(Long.valueOf(recommondId));
}
// 添加新用户信息
SegchkUserBasicInfo segchkUserBasicInfo = new SegchkUserBasicInfo();
segchkUserBasicInfo.setPhoneNo(mobile);
@ -142,15 +129,42 @@ public class RegisterServiceApiImpl implements RegisterServiceApi {
return AjaxResult.error(500, "注册异常,请联系客服!");
}
segchkUserExtInfo.setProviderId(Long.valueOf(providerId));
segchkUserExtInfo.setRecommendersLevel("0");
segchkUserExtInfo.setUserRecommenders(0L);
segchkUserExtInfo.setUserId(segchkUserBasicInfo.getUserId());
ret = segchkUserIndexService.insertUserExtInfo(segchkUserExtInfo);
if(ret < 1){
logger.error("registerCustomer fail due to recommender binding is wrong...");
return AjaxResult.error(500, "推荐人绑定异常,请联系客服!");
if(!StringUtils.isEmpty(recommondId) && !StringUtils.isEmpty(recommondLevel)){
// 如果推荐人,推荐人角色都非空。要检查推荐人是否存在。否则推荐人设置为运营商
Map<String, Object> parmMap = new HashMap<>();
parmMap.put("recommondId", recommondId);
parmMap.put("recommondLevel", recommondLevel);
parmMap.put("providerId", providerId);
ret = segchkUserIndexService.recommenderIsExit(parmMap);
switch (ret){
case 0:{
// 推荐人不存在,归属平台推荐,注册到某一运营商即可
logger.warn("registerCustomer recommender is not exit!!! will be register with platform on provider({})", providerId);
break;
}
case 1: {
logger.debug("registerCustomer recommender is exit!!!");
segchkUserExtInfo = new SegchkUserExtInfo();
segchkUserExtInfo.setProviderId(Long.valueOf(providerId));
segchkUserExtInfo.setRecommendersLevel(recommondLevel);
segchkUserExtInfo.setUserRecommenders(Long.valueOf(recommondId));
segchkUserExtInfo.setUserId(segchkUserBasicInfo.getUserId());
int xxx = segchkUserIndexService.insertUserExtInfo(segchkUserExtInfo);
if(xxx < 1){
logger.error("registerCustomer fail due to recommender binding is wrong...");
// return AjaxResult.error(500, "推荐人绑定异常,请联系客服!");
}
break;
}
case 2: {
logger.warn("registerCustomer user is different from recommender, will be register with platform on provider({})", providerId);
break;
}
}
}
segchkUserLevelInfo.setProviderId(Long.valueOf(providerId));
segchkUserLevelInfo.setUserId(segchkUserBasicInfo.getUserId());
segchkUserLevelInfo.setUserLevel(2L);
@ -174,9 +188,14 @@ public class RegisterServiceApiImpl implements RegisterServiceApi {
claims.setProviderId(segchkUserLevelInfo.getProviderId());
claims.setUserLevel(segchkUserLevelInfo.getUserLevel().intValue());
// 将用户的token进行缓存
redisService.setCacheObject(token, claims);
if(loginexpire == -1) {
redisService.setCacheObject(token, claims);
}
else {
redisService.setCacheObject(token, claims, loginexpire, TimeUnit.DAYS);
}
}
logger.debug("registerCustomer res: ---{}---{}", segchkUserLevelInfo.toString(), segchkUserExtInfo.toString());
logger.debug("registerCustomer res: ---{}---{}", segchkUserLevelInfo.toString(), (ObjectUtils.isEmpty(segchkUserExtInfo) ? null : segchkUserExtInfo.toString()));
return AjaxResult.success("注册成功", segchkUserLevelInfo);
}

View File

@ -0,0 +1,124 @@
package com.ruoyi.segchk.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import java.math.BigDecimal;
public class SegchkChargeReward extends BaseEntity {
private Integer cardTypeId;
private Long userId;
private Long providerId;
private Long chargeId;
private Long rewardId;
private BigDecimal charge;
private BigDecimal accountUsed;
private Long userRecommenders;
private Integer recommendersLevel;
private Integer totalChargeCount;
private BigDecimal reward;
public Integer getCardTypeId() {
return cardTypeId;
}
public void setCardTypeId(Integer cardTypeId) {
this.cardTypeId = cardTypeId;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getProviderId() {
return providerId;
}
public void setProviderId(Long providerId) {
this.providerId = providerId;
}
public BigDecimal getCharge() {
return charge;
}
public void setCharge(BigDecimal charge) {
this.charge = charge;
}
public BigDecimal getAccountUsed() {
return accountUsed;
}
public void setAccountUsed(BigDecimal accountUsed) {
this.accountUsed = accountUsed;
}
public Long getUserRecommenders() {
return userRecommenders;
}
public void setUserRecommenders(Long userRecommenders) {
this.userRecommenders = userRecommenders;
}
public Integer getRecommendersLevel() {
return recommendersLevel;
}
public void setRecommendersLevel(Integer recommendersLevel) {
this.recommendersLevel = recommendersLevel;
}
public Integer getTotalChargeCount() {
return totalChargeCount;
}
public void setTotalChargeCount(Integer totalChargeCount) {
this.totalChargeCount = totalChargeCount;
}
public BigDecimal getReward() {
return reward;
}
public void setReward(BigDecimal reward) {
this.reward = reward;
}
public Long getChargeId() {
return chargeId;
}
public void setChargeId(Long chargeId) {
this.chargeId = chargeId;
}
public Long getRewardId() {
return rewardId;
}
public void setRewardId(Long rewardId) {
this.rewardId = rewardId;
}
@Override
public String toString() {
return "SegchkChargeReward{" +
"cardTypeId=" + cardTypeId +
", userId=" + userId +
", providerId=" + providerId +
", chargeId=" + chargeId +
", rewardId=" + rewardId +
", charge=" + charge +
", accountUsed=" + accountUsed +
", userRecommenders=" + userRecommenders +
", recommendersLevel=" + recommendersLevel +
", totalChargeCount=" + totalChargeCount +
", reward=" + reward +
'}';
}
}

View File

@ -93,6 +93,11 @@ public class SegchkStoreBasicInfoWebResp extends BaseEntity
@Excel(name = "商户平均星评")
private BigDecimal starAvg;
/** 是否被收藏 */
@Excel(name = "是否被收藏")
private Integer isCollect = 0;
/** 商户标签列表 */
@Valid
private List<SegchkRecommenderStoreLableWeb> segchkRecommenderStoreLableWebList;
@ -270,6 +275,14 @@ public class SegchkStoreBasicInfoWebResp extends BaseEntity
this.starAvg = starAvg;
}
public Integer getIsCollect() {
return isCollect;
}
public void setIsCollect(Integer isCollect) {
this.isCollect = isCollect;
}
@Override
public String toString() {
return "SegchkStoreBasicInfoWebResp{" +
@ -292,6 +305,7 @@ public class SegchkStoreBasicInfoWebResp extends BaseEntity
", storeCarousel6='" + storeCarousel6 + '\'' +
", chkCount=" + chkCount +
", starAvg=" + starAvg +
", isCollect=" + isCollect +
", segchkRecommenderStoreLableWebList=" + segchkRecommenderStoreLableWebList +
'}';
}

View File

@ -0,0 +1,83 @@
package com.ruoyi.segchk.domain;
import com.ruoyi.common.core.domain.BaseEntity;
public class StoreSelfCard extends BaseEntity {
private Long userId;
private Long cardId;
private Long lableId;
private Long storeId;
private Integer typeId;
private Integer totalCount;
private String freeContent;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getCardId() {
return cardId;
}
public void setCardId(Long cardId) {
this.cardId = cardId;
}
public Integer getTypeId() {
return typeId;
}
public void setTypeId(Integer typeId) {
this.typeId = typeId;
}
public Integer getTotalCount() {
return totalCount;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
}
public String getFreeContent() {
return freeContent;
}
public void setFreeContent(String freeContent) {
this.freeContent = freeContent;
}
public Long getLableId() {
return lableId;
}
public void setLableId(Long lableId) {
this.lableId = lableId;
}
public Long getStoreId() {
return storeId;
}
public void setStoreId(Long storeId) {
this.storeId = storeId;
}
@Override
public String
toString() {
return "StoreSelfCard{" +
"userId=" + userId +
", cardId=" + cardId +
", lableId=" + lableId +
", storeId=" + storeId +
", typeId=" + typeId +
", totalCount=" + totalCount +
", freeContent='" + freeContent + '\'' +
'}';
}
}

View File

@ -3,6 +3,7 @@ package com.ruoyi.segchk.mapper;
import com.ruoyi.segchk.domain.*;
import com.ruoyi.segchk.domain.WeChatCustomerLink;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -116,10 +117,10 @@ public interface SegchkStoreIndexMapper {
/**
* ididid
*
* @param adcode
* @param params ,
* @return seg
*/
public Long selectSegchkProviderBycode(Long adcode);
public HashMap<String, Object> selectSegchkProviderBycode(Map<String, Object> params);
public List<SegchkCarouseMgt> selectSegchkCarouseStoreList(SegchkCarouseMgt segchkCarouseMgt);
@ -144,4 +145,6 @@ public interface SegchkStoreIndexMapper {
public Integer isCollectByUser(Map<String, Object> params);
public String selectSegchkStoreName(String storeId);
public int addAccountByReward(SegchkChargeReward segchkChargeReward);
}

View File

@ -114,13 +114,19 @@ public interface SegchkUserIndexMapper {
public int providerIsExit(Map<String, Object> parmMap);
public int storeIsExit(Map<String, Object> parmMap);
public int recommenderIsExit(Map<String, Object> parmMap);
int updateSegchkProviderWechat(SegchkUserWechat segchkUserWechat);
int updateSegchkStoreWechat(SegchkUserWechat segchkUserWechat);
public int updateSegchkStoreWechat(SegchkUserWechat segchkUserWechat);
int updateSegchkUserWechat(SegchkUserWechat segchkUserWechat);
public int updateSegchkUserWechat(SegchkUserWechat segchkUserWechat);
WeChatCustomerLink getUserWechatOpenId(Long userId);
public WeChatCustomerLink getUserWechatOpenId(Long userId);
public String selectSegchkUserName(String userId);
public SegchkChargeReward selectSegchkRewardInfo(SegchkUserCharge segchkUserCharge);
int addAccountByReward(SegchkChargeReward segchkChargeReward);
}

View File

@ -3,7 +3,9 @@ package com.ruoyi.segchk.service;
import com.ruoyi.segchk.domain.*;
import com.ruoyi.segchk.domain.WeChatCustomerLink;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* segService
@ -41,7 +43,7 @@ public interface ISegchkStoreIndexService
*
*
* @param segchkStoreWebReq
* @return seg
* @return
*/
public List<SegchkStoreIndexWebResp> selectSegchkStoreSearch(SegchkStoreWebReq segchkStoreWebReq);
@ -110,7 +112,7 @@ public interface ISegchkStoreIndexService
* @param adcode
* @return seg
*/
public Long getProvider(Long adcode);
public HashMap<String, Object> getProvider(Map<String, Object> adcode);
/**
* id
@ -176,4 +178,8 @@ public interface ISegchkStoreIndexService
Integer isCollectByUser(Long providerId, Long storeId, Long userId);
public String selectSegchkStoreName(String storeId);
Integer addStoreSelfCard(SegchkStoreSelfMgt segchkStoreSelfMgt);
public int addAccountByReward(SegchkChargeReward segchkChargeReward);
}

View File

@ -1,62 +0,0 @@
package com.ruoyi.segchk.service;
import com.ruoyi.segchk.domain.SegchkUserCharge;
import java.util.List;
/**
* segService
*
* @author yinzhiying
* @date 2021-08-23
*/
public interface ISegchkUserChargeService
{
/**
* seg
*
* @param chargeId seg
* @return seg
*/
public SegchkUserCharge selectSegchkUserChargeByChargeId(Long chargeId);
/**
* seg
*
* @param segchkUserCharge seg
* @return seg
*/
public List<SegchkUserCharge> selectSegchkUserChargeList(SegchkUserCharge segchkUserCharge);
/**
* seg
*
* @param segchkUserCharge seg
* @return
*/
public int insertSegchkUserCharge(SegchkUserCharge segchkUserCharge);
/**
* seg
*
* @param segchkUserCharge seg
* @return
*/
public int updateSegchkUserCharge(SegchkUserCharge segchkUserCharge);
/**
* seg
*
* @param chargeIds seg
* @return
*/
public int deleteSegchkUserChargeByChargeIds(Long[] chargeIds);
/**
* seg
*
* @param chargeId seg
* @return
*/
public int deleteSegchkUserChargeByChargeId(Long chargeId);
}

View File

@ -276,4 +276,6 @@ public interface ISegchkUserIndexService
* @return SegchkUserLikego
*/
public SegchkUserLikego selectUserLikeGo(SegchkUserLikego segchkUserLikego);
int insertSegchkUserCharge(SegchkUserCharge segchkUserCharge);
}

View File

@ -5,8 +5,10 @@ import com.ruoyi.segchk.mapper.SegchkIndexStoreAccountMapper;
import com.ruoyi.segchk.mapper.SegchkStoreCashMapper;
import com.ruoyi.segchk.mapper.SegchkStoreIndexMapper;
import com.ruoyi.segchk.mapper.SegchkStoreSecurityMapper;
import com.ruoyi.segchk.service.ISegchkPreferenceLableService;
import com.ruoyi.segchk.service.ISegchkStoreIndexService;
import com.ruoyi.segchk.domain.WeChatCustomerLink;
import com.ruoyi.segchk.service.ISegchkStoreSelfMgtService;
import com.ruoyi.segchk.service.ISegchkUserIndexService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -18,7 +20,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
public class ISegchkStoreIndexServiceImpl implements ISegchkStoreIndexService {
@ -39,6 +40,12 @@ public class ISegchkStoreIndexServiceImpl implements ISegchkStoreIndexService {
@Autowired
private ISegchkUserIndexService segchkUserIndexService;
@Autowired
private ISegchkPreferenceLableService segchkPreferenceLableService;
@Autowired
private ISegchkStoreSelfMgtService segchkStoreSelfMgtService;
/**
* id
*
@ -155,7 +162,10 @@ public class ISegchkStoreIndexServiceImpl implements ISegchkStoreIndexService {
@Override
public SegchkUserWebResp selectSegchkStoreWebInfo(SegchkUserWebReq segchkUserWebReq) {
logger.debug("selectSegchkStoreWebInfo with: {}", segchkUserWebReq.toString());
return segchkStoreIndexMapper.selectSegchkStoreWebInfo(segchkUserWebReq);
SegchkUserWebResp segchkUserWebResp = segchkStoreIndexMapper.selectSegchkStoreWebInfo(segchkUserWebReq);
segchkUserWebResp.setProviderId(segchkUserWebReq.getProviderId());
segchkUserWebResp.setUserId(segchkUserWebReq.getUserId());
return segchkUserWebResp;
}
/**
@ -227,7 +237,7 @@ public class ISegchkStoreIndexServiceImpl implements ISegchkStoreIndexService {
* @return seg
*/
@Override
public Long getProvider(Long adcode) {
public HashMap<String, Object> getProvider(Map<String, Object> adcode) {
logger.debug("getProvider with: {}", adcode);
return segchkStoreIndexMapper.selectSegchkProviderBycode(adcode);
}
@ -320,8 +330,8 @@ public class ISegchkStoreIndexServiceImpl implements ISegchkStoreIndexService {
public int recommenderIsExit(String recommenderId, String recommenderLevel, String providerId) {
logger.debug("recommenderIsExit with: {}---{}---{}", recommenderId, recommenderLevel, providerId);
Map<String, Object> parmMap = new HashMap<>();
parmMap.put("userId", recommenderId);
parmMap.put("userLevel", recommenderLevel);
parmMap.put("recommondId", recommenderId);
parmMap.put("recommondLevel", recommenderLevel);
parmMap.put("providerId", providerId);
return segchkUserIndexService.recommenderIsExit(parmMap);
}
@ -348,4 +358,19 @@ public class ISegchkStoreIndexServiceImpl implements ISegchkStoreIndexService {
public String selectSegchkStoreName(String storeId) {
return segchkStoreIndexMapper.selectSegchkStoreName(storeId);
}
@Override
public Integer addStoreSelfCard(SegchkStoreSelfMgt segchkStoreSelfMgt) {
if(segchkStoreSelfMgt.getTypeId() == 2){
// 说明是赠卡
SegchkPreferenceLable segchkPreferenceLable = segchkPreferenceLableService.selectSegchkPreferenceLableByPreferenceId(segchkStoreSelfMgt.getLableId());
segchkStoreSelfMgt.setFreeName(segchkPreferenceLable.getPreferenceName());
}
return segchkStoreSelfMgtService.insertSegchkStoreSelfMgt(segchkStoreSelfMgt);
}
@Override
public int addAccountByReward(SegchkChargeReward segchkChargeReward) {
return segchkStoreIndexMapper.addAccountByReward(segchkChargeReward);
}
}

View File

@ -1,94 +0,0 @@
package com.ruoyi.segchk.service.impl;
import com.ruoyi.segchk.domain.SegchkUserCharge;
import com.ruoyi.segchk.mapper.SegchkUserChargeMapper;
import com.ruoyi.segchk.service.ISegchkUserChargeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* segService
*
* @author yinzhiying
* @date 2021-08-23
*/
@Service
public class SegchkUserChargeServiceImpl implements ISegchkUserChargeService
{
@Autowired
private SegchkUserChargeMapper segchkUserChargeMapper;
/**
* seg
*
* @param chargeId seg
* @return seg
*/
@Override
public SegchkUserCharge selectSegchkUserChargeByChargeId(Long chargeId)
{
return segchkUserChargeMapper.selectSegchkUserChargeByChargeId(chargeId);
}
/**
* seg
*
* @param segchkUserCharge seg
* @return seg
*/
@Override
public List<SegchkUserCharge> selectSegchkUserChargeList(SegchkUserCharge segchkUserCharge)
{
return segchkUserChargeMapper.selectSegchkUserChargeList(segchkUserCharge);
}
/**
* seg
*
* @param segchkUserCharge seg
* @return
*/
@Override
public int insertSegchkUserCharge(SegchkUserCharge segchkUserCharge)
{
return segchkUserChargeMapper.insertSegchkUserCharge(segchkUserCharge);
}
/**
* seg
*
* @param segchkUserCharge seg
* @return
*/
@Override
public int updateSegchkUserCharge(SegchkUserCharge segchkUserCharge)
{
return segchkUserChargeMapper.updateSegchkUserCharge(segchkUserCharge);
}
/**
* seg
*
* @param chargeIds seg
* @return
*/
@Override
public int deleteSegchkUserChargeByChargeIds(Long[] chargeIds)
{
return segchkUserChargeMapper.deleteSegchkUserChargeByChargeIds(chargeIds);
}
/**
* seg
*
* @param chargeId seg
* @return
*/
@Override
public int deleteSegchkUserChargeByChargeId(Long chargeId)
{
return segchkUserChargeMapper.deleteSegchkUserChargeByChargeId(chargeId);
}
}

View File

@ -4,9 +4,7 @@ import com.ruoyi.order.service.impl.PaySupplier;
//import com.ruoyi.order.service.impl.WechatWithdrawSupplier;
import com.ruoyi.segchk.domain.*;
import com.ruoyi.segchk.mapper.*;
import com.ruoyi.segchk.service.ISegchkStoreIndexService;
import com.ruoyi.segchk.service.ISegchkUserCashService;
import com.ruoyi.segchk.service.ISegchkUserIndexService;
import com.ruoyi.segchk.service.*;
import com.ruoyi.setting.bean.BaseInfoSet;
import com.ruoyi.setting.bean.WechatPaySet;
import com.ruoyi.setting.service.BaseInfoSetService;
@ -97,6 +95,9 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
@Autowired
private SegchkUserWechatMapper segchkUserWechatMapper;
@Autowired
private SegchkUserRewardServiceImpl segchkUserRewardService;
@Autowired
private ISegchkStoreIndexService segchkStoreIndexService;
@ -109,6 +110,13 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
@Autowired
private ISegchkUserCashService segchkUserCashService;
@Autowired
private ISegchkStoreRewardService segchkStoreRewardService;
@Autowired
private ISegchkUserAccountService segchkUserAccountService;
/**
*
*/
@ -126,6 +134,15 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
public SegchkUserWebResp selectSegchkUserWebInfo(SegchkUserWebReq segchkUserWebReq) {
logger.debug("selectSegchkUserWebInfo with: {}", segchkUserWebReq.toString());
SegchkUserWebResp segchkUserWebResp = segchkUserIndexMapper.selectSegchkUserWebInfo(segchkUserWebReq);
segchkUserWebResp.setProviderId(segchkUserWebReq.getProviderId());
if(ObjectUtils.isEmpty(segchkUserWebResp.getRecommenderId()) || ObjectUtils.isEmpty(segchkUserWebResp.getRecommenderLevel())){
// 说明是平台用户,无推荐人
segchkUserWebResp.setRecommenderLevel(null);
segchkUserWebResp.setRecommenderId(null);
segchkUserWebResp.setRecommenderName("无");
logger.debug("selectSegchkUserWebInfo res: ({})", segchkUserWebResp.toString());
return segchkUserWebResp;
}
switch (segchkUserWebResp.getRecommenderLevel()){
case "0": segchkUserWebResp.setRecommenderName(segchkProviderIndexService.selectSegchkProviderName(segchkUserWebResp.getRecommenderId()));break;
case "1": segchkUserWebResp.setRecommenderName(segchkStoreIndexService.selectSegchkStoreName(segchkUserWebResp.getRecommenderId()));break;
@ -281,8 +298,9 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
logger.debug("OrderCheckTransaction will check with vip card");
ret += segchkIndexUserVipMapper.updateSegchkUserVipCheck(segchkServiceOrderChkTestResp.getCardId());
System.out.println(ret);
SegchkServiceChk segchkServiceChk = new SegchkServiceChk(); segchkServiceChk.setCardId(segchkServiceOrderChkTestResp.getCardId());
segchkServiceChk.setCardTypeId(0L);
SegchkServiceChk segchkServiceChk = new SegchkServiceChk();
segchkServiceChk.setCardId(segchkServiceOrderChkTestResp.getCardId());
// segchkServiceChk.setCardTypeId(0L);
segchkServiceChk.setProviderId(segchkServiceOrderChkTestResp.getProviderId());
segchkServiceChk.setStoreId(segchkServiceOrderChkTestResp.getStoreId());
segchkServiceChk.setUserId(segchkServiceOrderChkTestResp.getUserId());
@ -323,8 +341,12 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
@Transactional
public void chargeRet(String chargeId, int ret) {
// 根据回调结果。如果成功,则插入生成会员卡,并获取会员卡号,否则不产生新的会员卡号
logger.debug("chargeRet with: {}---{}", chargeId.toString(), ret);
logger.debug("chargeRet with: {}---{}", chargeId, ret);
SegchkUserCharge segchkUserCharge1 = segchkUserChargeMapper.selectSegchkUserChargeByChargeId(Long.valueOf(chargeId));
if(ObjectUtils.isEmpty(segchkUserCharge1) || ObjectUtils.isEmpty(segchkUserCharge1.getRetFlag())) {
logger.debug("chargeRet with: {} is not exit", chargeId);
return;
}
if(segchkUserCharge1.getRetFlag() != 0){
logger.debug("chargeRet charge:{}{} had been updated with: {} on {}", chargeId, ret, segchkUserCharge1.getRetFlag(), segchkUserCharge1.getModTime());
return;
@ -339,6 +361,10 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
}
else{
logger.info("chargeRet生成新的会员卡成功--->{0}:{1}\n", chargeId, segchkChargeRet.getCardId());
SegchkUserBasicInfo segchkUserBasicInfo = new SegchkUserBasicInfo();
segchkUserBasicInfo.setUserId(segchkUserCharge1.getUserId());
segchkUserBasicInfo.setCardTypeId(segchkUserCharge1.getCardTypeId());
segchkUserBasicInfoMapper.updateSegchkUserBasicInfo(segchkUserBasicInfo);
}
// 根据新生成的会员卡号充值id更新相应的充值记录表商家赠卡表等
SegchkUserCharge segchkUserCharge = new SegchkUserCharge();
@ -352,15 +378,83 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
}
segchkUserCharge.setRetFlag(1);
int updaterest = segchkUserChargeMapper.updateSegchkUserChargeByRet(segchkUserCharge);
System.out.println(updaterest);
logger.warn("chargeRet update with {} result: {}", "success", updaterest == 1 ? "successed" : "failed");
// 计算返利.给用户或商户,运营商加余额
SegchkChargeReward segchkChargeReward = segchkUserIndexMapper.selectSegchkRewardInfo(segchkUserCharge1);
if(ObjectUtils.isEmpty(segchkChargeReward.getUserRecommenders()) || ObjectUtils.isEmpty(segchkChargeReward.getRecommendersLevel())){
// 推荐人是平台
logger.warn("chargeRet charge({}) reward is will belong to platform", chargeId);
}
/*else if(segchkChargeReward.getRecommendersLevel() == 0){
}*/
else if(segchkChargeReward.getRecommendersLevel() == 1 && !ObjectUtils.isEmpty(segchkChargeReward.getReward()) && segchkChargeReward.getReward().compareTo(new BigDecimal(0.0)) > 0){
logger.debug("chargeRet make reward with --- \n{}", segchkChargeReward.toString());
// 如果推荐是商户。则给商户累加奖励
SegchkStoreReward segchkStoreReward = new SegchkStoreReward();
segchkStoreReward.setProviderId(segchkUserCharge1.getProviderId());
segchkStoreReward.setReward(segchkChargeReward.getReward());
segchkStoreReward.setRewardCardId(segchkChargeRet.getCardId());
segchkStoreReward.setRewardCardTypeId(segchkUserCharge1.getCardTypeId());
segchkStoreReward.setStoreId(segchkChargeReward.getUserRecommenders());
int i = segchkStoreRewardService.insertSegchkStoreReward(segchkStoreReward);
if(i > 0 ){
logger.debug("chargeRet save reward success with chargeId({})--- {}", chargeId, segchkStoreReward.toString());
}
else{
logger.warn("chargeRet save reward failed with chargeId({}) --- {}", chargeId, segchkStoreReward.toString());
}
segchkChargeReward.setChargeId(Long.valueOf(chargeId));
segchkChargeReward.setRewardId(segchkStoreReward.getRewardId());
// 形成商户余额
i = segchkStoreIndexService.addAccountByReward(segchkChargeReward);
if(i > 0){
logger.debug("chargeRet add account successed for --- {}", segchkChargeReward.toString());
}
else {
logger.warn("chargeRet add account failed for --- {}", segchkChargeReward.toString());
}
}
else if(segchkChargeReward.getRecommendersLevel() == 2 && !ObjectUtils.isEmpty(segchkChargeReward.getReward()) && segchkChargeReward.getReward().compareTo(new BigDecimal(0.0)) > 0){
logger.debug("chargeRet make reward with --- \n{}", segchkChargeReward.toString());
// 如果推荐是用户。则给用户累加奖励
SegchkUserReward segchkUserReward = new SegchkUserReward();
segchkUserReward.setProviderId(segchkUserCharge1.getProviderId());
segchkUserReward.setReward(segchkChargeReward.getReward());
segchkUserReward.setRewardCardId(segchkChargeRet.getCardId());
segchkUserReward.setRewardCardTypeId(segchkUserCharge1.getCardTypeId());
segchkUserReward.setUserId(segchkChargeReward.getUserRecommenders());
int i = segchkUserRewardService.insertSegchkUserReward(segchkUserReward);
if(i > 0 ){
logger.debug("chargeRet save reward success with chargeId({})--- {}", chargeId, segchkUserReward.toString());
}
else{
logger.warn("chargeRet save reward failed with chargeId({}) --- {}", chargeId, segchkUserReward.toString());
}
segchkChargeReward.setChargeId(Long.valueOf(chargeId));
segchkChargeReward.setRewardId(segchkUserReward.getRewardId());
// 形成商户余额
i = segchkUserIndexMapper.addAccountByReward(segchkChargeReward);
if(i > 0){
logger.debug("chargeRet add account successed for --- {}", segchkChargeReward.toString());
}
else {
logger.warn("chargeRet add account failed for --- {}", segchkChargeReward.toString());
}
}
}
else{
logger.warn("chargeRet with: {}---{}, 充值失败!!!", chargeId.toString(), ret);
SegchkUserCharge segchkUserCharge = new SegchkUserCharge();
segchkUserCharge.setChargeId(Long.parseLong(chargeId));
segchkUserCharge.setRetFlag(2);
int updaterest = segchkUserChargeMapper.updateSegchkUserCharge(segchkUserCharge);
int deleterest = segchkIndexUserAccountMapper.deleteSegchkUserAccountByCharge(segchkUserCharge);
System.out.println(updaterest);
logger.warn("chargeRet update with {} result: {}", "failed", deleterest == 1 ? "successed" : "failed");
}
}
@ -569,13 +663,7 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
@Override
public int recommenderIsExit(Map<String, Object> parmMap) {
logger.debug("recommenderIsExit with: {}", parmMap.toString());
String userLevel = parmMap.get("userLevel").toString();
switch (userLevel){
case "0": return segchkUserIndexMapper.providerIsExit(parmMap);
case "1": return segchkUserIndexMapper.storeIsExit(parmMap);
case "2": return segchkUserIndexMapper.userIsExit(parmMap);
default: return -1;
}
return segchkUserIndexMapper.recommenderIsExit(parmMap);
}
/**
@ -608,7 +696,8 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
return segchkUserWechat.getOpenid();
}
else if(segchkUserLevelInfo.getUserLevel() == 1){
return segchkStoreIndexService.selectWeChatInfoByStoreId(segchkUserLevelInfo.getUserId()).getOpenId();
WeChatCustomerLink weChatCustomerLink = segchkStoreIndexService.selectWeChatInfoByStoreId(segchkUserLevelInfo.getUserId());
return ObjectUtils.isEmpty(weChatCustomerLink) ? null : weChatCustomerLink.getOpenId();
}
else if(segchkUserLevelInfo.getUserLevel() == 0){
return segchkProviderIndexService.selectWeChatInfoByProviderId(segchkUserLevelInfo.getUserId());
@ -1009,6 +1098,28 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
return segchkUserLikegos.get(0);
}
@Override
public int insertSegchkUserCharge(SegchkUserCharge segchkUserCharge) {
int i = segchkUserChargeMapper.addSegchkUserChargeWithRecommend(segchkUserCharge);
if(i < 1){
// 生成订单失败
return i;
}
if(segchkUserCharge.getAccountUsed().compareTo(new BigDecimal(0.0)) > 1){
// 只要使用了余额就进行余额更新无论充值是否实际发生支付 ,防止被其他行为如提现,返利打乱造成数据不一致
// 如果全部使用用户余额支付,则更新用户余额信息
SegchkUserAccount segchkUserAccount = new SegchkUserAccount();
segchkUserAccount.setProviderId(segchkUserCharge.getProviderId());
segchkUserAccount.setChargeId(segchkUserCharge.getChargeId());
segchkUserAccount.setUserId(segchkUserCharge.getUserId());
// 把用户使用充值的余额写进余额中
segchkUserAccount.setAccount(segchkUserCharge.getAccountUsed());
i = segchkUserAccountService.insertSegchkUserAccountBuyCharge(segchkUserAccount);
}
return i;
}
/**
*

View File

@ -0,0 +1,110 @@
package com.ruoyi.util;
import com.ruoyi.common.utils.StringUtils;
import java.awt.*;
import java.util.ArrayList;
public class Graphics2DUtils {
/**
*
*
* @param g Graphics2D
* @param color
* @param font
* @param content
* @param x x
* @param y y
*/
public static void drawString(Graphics2D g, Color color, Font font, String content, float x, float y) {
g.setColor(color);
g.setFont(font);
g.drawString(content, x, y);
}
/**
*
*
* @param g Graphics2D
* @param color
* @param font
* @param content
* @param x X
* @param y y
* @param width
* @param lineWordNum
* @param linePadding
* @param center
*/
public static void drawString(Graphics2D g, Color color, Font font, String content, float x, float y, int width, int lineWordNum, int linePadding, boolean center) {
int num = content.length();
ArrayList<String> contents = new ArrayList<>();
if (num <= lineWordNum) {
contents.add(content);
} else {
for (int i = 0; i < num; i += lineWordNum) {
contents.add(StringUtils.substring(content, i, i + lineWordNum));
}
}
for (int i = 0; i < contents.size(); i++) {
String s = contents.get(i);
if (i != 0) {
y += linePadding + font.getSize();
}
if (center) {
drawCenterString(g, color, font, s, width, y);
} else {
drawString(g, color, font, s, x, y);
}
}
}
/**
*
*
* @param g Graphics2D
* @param color
* @param font
* @param content
* @param y y
* @param width
* @param lineWordNum
* @param linePadding
*/
public static void drawCenterString(Graphics2D g, Color color, Font font, String content, float y, int width, int lineWordNum, int linePadding) {
drawString(g, color, font, content, 0, y, width, lineWordNum, linePadding, true);
}
/**
*
*
* @param g Graphics2D
* @param color
* @param font
* @param content
* @param width
* @param y y
*/
public static void drawCenterString(Graphics2D g, Color color, Font font, String content, int width, float y) {
int textWidth = getStringWidth(g, font, content);
drawString(g, color, font, content, (width - textWidth) / 2, y);
}
/**
*
*
* @param g Graphics2D
* @param font
* @param content
* @return
*/
public static int getStringWidth(Graphics2D g, Font font, String content) {
FontMetrics fm = g.getFontMetrics(font);
//获取字符串宽度
return fm.stringWidth(content);
}
}

View File

@ -0,0 +1,358 @@
package com.ruoyi.util;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.setting.bean.PaySetCommon;
import com.ruoyi.setting.service.ILsPaySettingService;
//import com.sun.image.codec.jpeg.JPEGCodec;
//import com.sun.image.codec.jpeg.JPEGImageEncoder;
import net.sf.json.JSONObject;
import org.apache.commons.io.FileUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@Component
public class PosterUtils extends BaseEntity {
private static final String ACCESS_TOKEN = "微信小程序token";
private static final Logger logger = LoggerFactory.getLogger(PosterUtils.class);
/**
* redis
*/
@Autowired
private RedisCache redisService;
/**
*
*/
@Autowired
private ILsPaySettingService paySetService;
private static PosterUtils posterUtils;
@PostConstruct
public void init(){
posterUtils = this;
posterUtils.redisService = this.redisService;
posterUtils.paySetService = this.paySetService;
}
public static String createPoster(String posterTitle, String scene, String moneyReward, String petNameUrl, String qrpath, String bgpath, String sitepage) throws Exception {
// String resourcePath = PosterUtils.class.getResource("/image/").getPath();
long nowTime = System.currentTimeMillis();
/*String qrcodeName = UUID.randomUUID().toString().replace("-", "");
String petUrlName = UUID.randomUUID().toString().replace("-", "");
URL petUnitUrl = new URL(petNameUrl);
HttpURLConnection conn = (HttpURLConnection) petUnitUrl.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
BufferedInputStream biss = new BufferedInputStream(conn.getInputStream());
OutputStream outputStream = new FileOutputStream(new File(resourcePath + petUrlName + ".png"));
int lens;
byte[] arrs = new byte[1024];
while ((lens = biss.read(arrs)) != -1) {
outputStream.write(arrs, 0, lens);
outputStream.flush();
}
outputStream.close();*/
PaySetCommon paySetCommon = posterUtils.paySetService.queryPaySet();
//二维码图片
String urlstr ="https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=";
// String url = "http://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=";
URL getCodeUrl = new URL(urlstr + GetAccessToken(paySetCommon.getWechatAppletPaySet().getAppId(), paySetCommon.getWechatAppletPaySet().getAppSecret()));
HttpURLConnection httpURLConnection = (HttpURLConnection) getCodeUrl.openConnection();
httpURLConnection.setRequestMethod("POST");// 提交模式
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
JSONObject paramJson = new JSONObject();
paramJson.accumulate("scene", scene).accumulate("page", sitepage);
paramJson.put("auto_color", false);
JSONObject lineColor = new JSONObject();
lineColor.put("r", 0);
lineColor.put("g", 0);
lineColor.put("b", 0);
paramJson.put("line_color", lineColor);
printWriter.write(paramJson.toString());
printWriter.flush();
// BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
BufferedImage qrimg = ImageIO.read(httpURLConnection.getInputStream());
ImageIO.write(qrimg, "jpg", new File(qrpath));
/*OutputStream ost = new FileOutputStream(new File(qrpath));
int len;
byte[] arr = new byte[1024];
while ((len = bis.read(arr)) != -1) {
ost.write(arr, 0, len);
ost.flush();
}
ost.close();*/
//合成图片
String title = posterTitle;
if (title.length() > 21) {
title = StringUtils.substring(title, 0, 21) + "...";
}
//宠物图片文件
File petImg = FileUtils.toFile(PosterUtils.class.getResource("/templates/posters/bg.jpg"));
//二维码图片文件 1
File qrCodeImg = new File(qrpath);
//背景地址
//为了方便演示放在resources中可根据实际情况上传后将背景模板放入单独的资源文件夹或远程资源服务器
URL url = PosterUtils.class.getResource("/templates/posters/bg.jpg");
File fileBg = FileUtils.toFile(url);
//1、背景图片输入流
FileInputStream fis = new FileInputStream(fileBg);
//2、背景图片对象
Image srcImg = ImageIO.read(fis);
//3、创建画布根据背景图片的宽高
BufferedImage bufferedImage = new BufferedImage(
//宽度
srcImg.getWidth(null),
//高度
srcImg.getHeight(null),
//图片类型
BufferedImage.TYPE_INT_RGB);
int width = bufferedImage.getWidth();
int height = bufferedImage.getHeight();
//4、得到2d画笔对象
Graphics2D g = bufferedImage.createGraphics();
// 设置对线段的锯齿状边缘处理
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//5、设置画布背景
g.drawImage(srcImg.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null);
//6、```````````开始作画```````````
Font rewardFirstFont = new Font("PingFang SC Bold", Font.PLAIN, 24);
Font rewardLastFont = new Font("PingFang SC Bold", Font.PLAIN, 48);
int rewardFirstWidth = Graphics2DUtils.getStringWidth(g, rewardFirstFont, "赏金¥");
int rewardLastWidth = Graphics2DUtils.getStringWidth(g, rewardLastFont, moneyReward);
//赏金内容
Graphics2DUtils.drawString(g, Color.decode("#ffd434"), rewardFirstFont, "赏金¥", (width - rewardFirstWidth - rewardLastWidth) / 2, 550);
Graphics2DUtils.drawString(g, Color.decode("#ffd434"), rewardLastFont, moneyReward, (width - rewardLastWidth + rewardFirstWidth) / 2, 550);
//标题
Graphics2DUtils.drawString(g, Color.decode("#323232"), new Font("PingFang SC Bold", Font.BOLD, 34), title, 0, 400, width, 12, 5, true);
//把宠物图片和二维码图片划入背景
g.drawImage(ImageIO.read(petImg), 130, 90, 362, 250, null);
g.drawImage(ImageIO.read(qrCodeImg), 100, 700, 175, 175, null);
// ```````````结束作画```````````
//7、处理画作
g.dispose();
//8、得到输出流
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", os);
//9、转成base64编码前端可以直接显示也可转换成其它形式比如文件
String encodeStr = Base64.getEncoder().encodeToString(os.toByteArray());
//保存为图片文件
FileUtils.writeByteArrayToFile(new File(bgpath), os.toByteArray());
//10、关闭输入输出流
fis.close();
os.close();
qrCodeImg.delete();
petImg.delete();
return encodeStr;
}
public static String GetAccessToken(String appId, String secret) throws ClientProtocolException,
IOException {
String access_token1 = posterUtils.redisService.getCacheObject("access_token");
if(!StringUtils.isEmpty(access_token1)){
return access_token1;
}
HttpGet httpGet = new HttpGet(
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
+ appId + "&secret="
+ secret );
HttpClient httpClient = HttpClients.createDefault();
HttpResponse res = httpClient.execute(httpGet);
HttpEntity entity = res.getEntity();
String result = EntityUtils.toString(entity, "UTF-8");
JSONObject jsons = JSONObject.fromObject(result);
String expires_in = jsons.getString("expires_in");
//缓存
if(Integer.parseInt(expires_in)==7200){
//ok
String access_token = jsons.getString("access_token");
posterUtils.redisService.setCacheObject("access_token", access_token, 2, TimeUnit.HOURS);
return access_token;
}else{
System.out.println("出错获取token失败");
return null;
}
}
// 获取二维码 信息图片
public static String GetPostUrl(String access_token,String id) throws Exception {
//String result = HttpRequest.sendPost("http://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+access_token, path);
System.out.println(id);
String url ="https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=";
Map<String, Object> map = new HashMap<String, Object>();
map.put("path", "pages/index/index?###="+id);//你二维码中跳向的地址
map.put("width", "430");//图片大小
JSONObject json = JSONObject.fromObject(map);
System.out.println(json);
// String res= HttpClientConnectionManager.httpPostWithJSON(url
// + access_token, json.toString(),id);
// System.out.println(res);
return null;
}
// 返回图片保存 ,根据 id
public static String httpPostWithJSON(String url, String json,String id)
throws Exception {
String result = null;
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader(HTTP.CONTENT_TYPE, "application/json");
StringEntity se = new StringEntity(json);
se.setContentType("application/json");
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
"UTF-8"));
httpPost.setEntity(se);
// httpClient.execute(httpPost);
HttpResponse response = httpClient.execute(httpPost);
if (response != null) {
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
InputStream instreams = resEntity.getContent();
String uploadSysUrl = "D://erweima/";
File saveFile = new File(uploadSysUrl+id+".png");
// 判断这个文件saveFile是否存在
if (!saveFile.getParentFile().exists()) {
// 如果不存在就创建这个文件夹
saveFile.getParentFile().mkdirs();
}
saveToImgByInputStream(instreams, uploadSysUrl, id+".png");
}
}
httpPost.abort();
return result;
}
/* @param instreams
* @param imgPath
* @param imgName
* @return
* 1
* 0
*/
public static int saveToImgByInputStream(InputStream instreams,String imgPath,String imgName){
int stateInt = 1;
if(instreams != null){
try {
File file=new File(imgPath+imgName);//可以是任何图片格式.jpg,.png等
FileOutputStream fos=new FileOutputStream(file);
byte[] b = new byte[1024];
int nRead = 0;
while ((nRead = instreams.read(b)) != -1) {
fos.write(b, 0, nRead);
}
fos.flush();
fos.close();
} catch (Exception e) {
stateInt = 0;
e.printStackTrace();
} finally {
try {
instreams.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return stateInt;
}
// 然后是图片重合和增加字体
public void changeImage(String imageurl,String i ){
try {
// InputStream imagein = new FileInputStream(
// "D:/systemAvatarNew1.png");
// InputStream imagein2 = new FileInputStream(
// "D:/qqfile/1852230493/FileRecv/4-02.png");
InputStream imagein = new FileInputStream(
"D:/systemAvatarNew1.png");
InputStream imagein2 = new FileInputStream(
imageurl);
BufferedImage image = ImageIO.read(imagein);
BufferedImage image2 = ImageIO.read(imagein2);
//image2.getWidth() - 160, image2.getHeight() - 155,
Graphics g = image.getGraphics();
g.drawImage(image2, 300, 230, 410,422,null);
// g.drawImage(image2, image.getWidth() - image2.getWidth() - 195,
// image.getHeight() - image2.getHeight() - 190,
// 340,349,null);
OutputStream outImage = new FileOutputStream(
imageurl);
// JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(outImage);
// enc.encode(image);
BufferedImage bimg=ImageIO.read(new FileInputStream(imageurl));
//得到Graphics2D 对象
Graphics2D g2d=(Graphics2D)bimg.getGraphics();
//设置颜色和画笔粗细
g2d.setColor(Color.black);
g2d.setStroke(new BasicStroke(5));
//String pathString = "D://qqfile/1852230493/FileRecv/SourceHanSansCN-/SourceHanSansCN-Heavy.otf";
// Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, new File(pathString));
g2d.setFont(new Font("微软雅黑", Font.PLAIN, 36));
//g2d.setFont(Loadfont.loadFont(pathString, 45));
//绘制图案或文字
g2d.drawString("编号: "+i, 320, 700);
// g2d.drawString(i, 450, 700);
ImageIO.write(bimg, "JPG",new FileOutputStream(imageurl));
File fromFile = new File(imageurl);
File toFile = new File(imageurl);
// Image Image1 =new Image();
// Image1.resizePng(fromFile, toFile, 1000, 1000, false);
imagein.close();
imagein2.close();
outImage.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -164,33 +164,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectSegchkStoreSaleDetails" parameterType="SegchkServiceAndSaleWebReq" resultMap="SegchkServiceAndSaleDetailWebRespResult">
select store.store_name
, charge.charge_count as static_count
, cardmgt.card_type_name as card_name
, ifnull(cardmgt.card_type_name, '未知卡') as card_name
from
(select store_id, card_type_id, provider_id, count(1) as charge_count from segchk_user_charge where provider_id = #{providerId} and ret_flag = 1 and date_format(mod_time, '%Y%m') = date_format(#{staticMonth}, '%Y%m') group by provider_id, card_type_id, store_id) charge
left join
(select provider_id, card_type_id, card_type_name from segchk_charge_card where provider_id = #{providerId}) cardmgt on cardmgt.provider_id = charge.provider_id and cardmgt.card_type_id = charge.card_type_id
left join
(select provider_id, store_id, store_name from segchk_store_basic_info where provider_id = #{providerId}) store on charge.provider_id = store.provider_id and charge.store_id = store.store_id
order by store_id
order by charge.store_id
</select>
<select id="selectSegchkStoreServiceDetails" parameterType="SegchkServiceAndSaleWebReq" resultMap="SegchkServiceAndSaleDetailWebRespResult">
select chk.chk_count as static_count
, store.store_name
, cardmgt.card_type_name as card_name
, ifnull(cardmgt.card_type_name, '未知卡') as card_name
from
(select provider_id, store_id, card_type_id, count(1) as chk_count from segchk_service_chk where provider_id = #{providerId} and date_format(mod_time, '%Y%m') = date_format(#{staticMonth}, '%Y%m') group by provider_id, store_id, card_type_id order by store_id, card_type_id) chk
left join
(select provider_id, card_type_id, card_type_name from segchk_charge_card where provider_id = #{providerId}) cardmgt on cardmgt.provider_id = chk.provider_id and chk.card_type_id = cardmgt.card_type_id
left join
(select provider_id, store_id, store_name from segchk_store_basic_info where provider_id = #{providerId}) store on chk.provider_id = store.provider_id and chk.store_id = store.store_id
order by store_id
order by chk.store_id
</select>
<select id="selectProviderOpenIdById" parameterType="long" resultType="string">
select openid from segchk_provider_mgt where provider_id = #{providerId}
</select>
<select id="selectSegchkProviderName" parameterType="string" resultType="java.lang.String">
select nick_name from segchk_provider_mgt where where provider_id = #{providerId}
select nick_name from segchk_provider_mgt where provider_id = #{providerId}
</select>
</mapper>

View File

@ -141,6 +141,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectSegchkCarouseMgtVo1">
select provider_id, store_id, store_carousel, sort_id from segchk_carouse_mgt
</sql>
<insert id="addAccountByReward" parameterType="SegchkChargeReward">
insert into segchk_store_account (store_id, account, reward_id, charge_id, mod_time, provider_id)
select suc.store_id, if(isnull(ssa.account), #{reward}, ssa.account + #{reward}) as account, reward_id, charge_id, now(), provider_id from
(select #{userRecommenders} as store_id
, #{rewardId} as reward_id
, #{chargeId} as charge_id
, #{providerId} as provider_id
) suc
left join
(
<!-- # 上一次的余额-->
select account, store_id from segchk_store_account where store_id = #{userRecommenders} order by account_id desc limit 1
) ssa
on ssa.store_id = suc.store_id
</insert>
<select id="selectSegchkStoreList" parameterType="SegchkStoreWebReq" resultMap="SegchkStoreIndexWebRespResult">
select
@ -603,7 +619,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectSegchkStoreSaleDetails" parameterType="SegchkServiceAndSaleWebReq" resultMap="SegchkServiceAndSaleDetailWebRespResult">
select charge.mod_time, charge.card_id, cardmgt.card_type_name as card_name from
select charge.mod_time, charge.card_id, ifnull(cardmgt.card_type_name, '未知卡') as card_name from
(select store_id, card_id, card_type_id, provider_id, mod_time from segchk_user_charge where provider_id = #{providerId} and store_id = #{storeId} and ret_flag = 1 and date_format(mod_time, '%Y%m') = date_format(#{staticMonth}, '%Y%m') order by mod_time desc) charge
left join
(select provider_id, card_type_id, card_type_name from segchk_charge_card where provider_id = #{providerId}) cardmgt on cardmgt.provider_id = charge.provider_id and cardmgt.card_type_id = charge.card_type_id
@ -613,7 +629,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectSegchkStoreServiceDetails" parameterType="SegchkServiceAndSaleWebReq" resultMap="SegchkServiceAndSaleDetailWebRespResult">
select chk.mod_time
, chk.card_id
, cardmgt.card_type_name as card_name
, ifnull(cardmgt.card_type_name, '未知卡') as card_name
from
(select provider_id, card_id, store_id, card_type_id, mod_time from segchk_service_chk where provider_id = #{providerId} and store_id = #{storeId} and date_format(mod_time, '%Y%m') = date_format(#{staticMonth}, '%Y%m') order by mod_time desc) chk
left join
@ -641,9 +657,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
day order by mod_time desc;
</select>
<select id="selectSegchkProviderBycode" parameterType="long" resultType="java.lang.Long">
select provider_id from
(select provider_id, if(District_id=110000, 1, 0) as aaa from segchk_provider_mgt where District_id = 110000 or District_id = #{district_id} order by aaa limit 1) a
<select id="selectSegchkProviderBycode" parameterType="java.util.Map" resultType="java.util.HashMap">
select provider_id as providerId, aaa as provFlag
, if(aaa = 1, (
select district_name from segchk_district_info where district_id = #{defaultDistrict}
), '') as provName
from
(select provider_id, if(District_id=#{districtId}
, 0, 1) as aaa from segchk_provider_mgt where District_id = #{defaultDistrict} or District_id = #{districtId} order by aaa limit 1) a
</select>
<select id="selectSegchkCarouseStoreList" parameterType="SegchkCarouseMgt" resultMap="SegchkCarouseMgtResult">
@ -720,7 +741,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectStoreOpenIdById" parameterType="long" resultMap="WeChatCustomerLinkResult">
select openid from segchk_store_basic_info where store_id = #{storeId}
select store_id as user_id, openid, provider_id from segchk_store_basic_info where store_id = #{storeId}
</select>
<select id="isCollectByUser" parameterType="java.util.Map" resultType="java.lang.Integer">

View File

@ -176,6 +176,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="providerId" column="provider_id"/>
</resultMap>
<resultMap id="SegchkChargeRewardResult" type="SegchkChargeReward">
<result property="cardTypeId" column="card_type_id"/>
<result property="userId" column="user_id"/>
<result property="providerId" column="provider_id"/>
<result property="charge" column="charge"/>
<result property="accountUsed" column="account_used"/>
<result property="userRecommenders" column="user_recommenders"/>
<result property="recommendersLevel" column="recommenders_level"/>
<result property="totalChargeCount" column="total_charge_count"/>
<result property="reward" column="reward"/>
</resultMap>
<select id="selectSegchkUserWebInfo" parameterType="SegchkUserWebReq" resultMap="SegchkUserWebRespResult">
select basic.user_id
, case when isnull(wechat.nick_name) then basic.phone_no else wechat.nick_name end as user_name
@ -221,7 +233,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
on basic.user_id = card.user_id and basic.provider_id = card.provider_id
left join
(select provider_id, user_id, count(1) as storecardcount from segchk_store_self_mgt where provider_id = #{providerId} and user_id = #{userId} and type_id = 2) storecard
on basic.user_id = storecard.user_id and basic.provider_id = storecard.provider_id;
on basic.user_id = storecard.user_id and basic.provider_id = storecard.provider_id
left join
(select provider_id, District_id from segchk_provider_mgt where provider_id = #{providerId}) spm on basic.provider_id = spm.provider_id
left join
@ -402,7 +414,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select charge.store_id, charge.charge, charge.account_used, charge.mod_time, charge.ret_flag, card.card_type_name
, storeinfo.store_name
from
(select provider_id, user_id, store_id, charge, account_used, card_id, card_type_id, mod_time, case when ret_flag = 0 then '未完成' else case when ret_flag = 1 then '成功' else '失败' end end as ret_flag from segchk_user_charge where provider_id = #{providerId} and user_id = #{userId}) charge
(select provider_id, user_id, store_id, charge, account_used, card_id, card_type_id, mod_time, case when ret_flag = 0 then '未完成' else case when ret_flag <![CDATA[ >= ]]> 1 then '成功' else '失败' end end as ret_flag from segchk_user_charge where provider_id = #{providerId} and user_id = #{userId}) charge
left join
(select provider_id, card_type_id, card_type_name from segchk_charge_card where provider_id = #{providerId}) card
on charge.card_type_id = card.card_type_id and charge.provider_id = card.provider_id
@ -583,14 +595,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="userIsExit" parameterType="java.util.Map" resultType="java.lang.Integer">
select count(1) from segchk_user_basic_info where user_id = #{userId} and provider_id = #{providerId}
select if(count(1) = 0 || isnull(count(1)), -1, 2) as ret from segchk_user_basic_info where user_id = #{userId} and provider_id = #{providerId}
</select>
<select id="storeIsExit" parameterType="java.util.Map" resultType="java.lang.Integer">
select count(1) from segchk_store_basic_info where store_id = #{userId} and provider_id = #{providerId}
select if(count(1) = 0 || isnull(count(1)), -1, 1) as ret from segchk_store_basic_info where store_id = #{userId} and provider_id = #{providerId}
</select>
<select id="providerIsExit" parameterType="java.util.Map" resultType="java.lang.Integer">
select count(1) from segchk_provider_mgt where provider_id = #{userId} and provider_id = #{providerId}
select if(count(1) = 0 || isnull(count(1)), -1, 0) as ret from segchk_provider_mgt where provider_id = #{userId} and provider_id = #{providerId}
</select>
<select id="getUserWechatOpenId" parameterType="Long" resultMap="WeChatCustomerLinkResult">
select a.provider_id, a.user_id, b.openid from
@ -602,6 +614,86 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectSegchkUserName" parameterType="string" resultType="java.lang.String">
select phone_no from segchk_user_basic_info where user_id = #{userId}
</select>
<select id="recommenderIsExit" resultType="java.lang.Integer">
select if(isnull(recomid)
<!-- # 如果空,说明推荐人信息不对或不存在,不在线,平台推荐,当前地区注册-->
, 0
<!-- # 如果推荐人存在,判断推荐人与用户是否同地区,相同1不同2-->
, if(x.curprov = c.provider_id, 1, 2)
) as ret
<!-- , x.curprov, c.provider_id-->
from
(
<!-- # 将参数中的推荐人id当前用户所在的地区运营商代码-->
select #{providerId} as curprov, #{recommondId} as recommender
) x
left join
(
<!-- # 根据推荐人id角色查询三张信息表-->
(select user_id as recomid, 2 as level, provider_id
from segchk_user_basic_info
where user_id = #{recommondId})
union
(select store_id as recomid, 1 as level, provider_id
from segchk_store_basic_info
where store_id = #{recommondId} and service_state = 0)
union
(select provider_id as recomid, 0 as level, provider_id
from segchk_provider_mgt
where provider_id = #{recommondId} and flag_id = 0)
) c
on c.recomid = x.recommender and c.level = #{recommondLevel}
</select>
<select id="selectSegchkRewardInfo" parameterType="SegchkUserCharge" resultMap="SegchkChargeRewardResult">
select card_type_id
, user_id
, provider_id
, charge
, account_used
, user_recommenders
, recommenders_level
, total_charge_count
<!-- # , reward, card_commission-->
, if(recommenders_level = 1,
case when total_charge_count = 0 then card_commission
when total_charge_count = 1 then card_commission / 2
when total_charge_count = 2 then card_commission / 3
else 0.0 end
,if(recommenders_level = 2,
case when total_charge_count = 0 then reward
when total_charge_count = 1 then reward / 2
when total_charge_count = 2 then reward / 3
else 0.0 end
, 0.0)) as reward
from
(select suc.card_type_id, suc.user_id, suc.provider_id, suc.charge, suc.account_used, user_recommenders, recommenders_level
, ifnull(total_charge_count, 0) as total_charge_count, from_type
, if(recommenders_level = 2, (select reward from segchk_user_reward_ctl where suc.provider_id = provider_id and from_id = from_type and to_id = suc.card_type_id), 0.0) as reward
, if(recommenders_level = 1 and !isnull(suei.store_status), (select card_commission from segchk_store_chk_mgt where store_id = user_recommenders and card_type_id = suc.card_type_id), 0.0) as card_commission
from
(select * from segchk_user_charge where charge_id = #{chargeId}) suc
left join
(select user_id
, user_recommenders, recommenders_level, provider_id, mod_time
, if(recommenders_level = 2, (
<!-- # 当推荐人是用户时,获取推荐人卡类型-->
select ifnull(card_type_id, -1) as card_type_id from segchk_user_basic_info where user_id = user_recommenders
), -1) as from_type
, if(recommenders_level = 1,
(select service_state from segchk_store_basic_info where provider_id = segchk_user_ext_info.provider_id and service_state = 0 and store_id = user_recommenders)
, null) as store_status
from segchk_user_ext_info where user_id = #{userId} and provider_id = #{providerId}) suei
on suei.user_id = suc.user_id
left join
(
<!-- # 统计用户累积充值成功次数-->
select count(1) as total_charge_count, user_id from segchk_user_charge where user_id = #{userId} and ret_flag <![CDATA[ > ]]>0 and charge_id != #{chargeId}
) succnt
on succnt.user_id = suc.user_id
) ret
</select>
<insert id="updateSegchkUserWechat" parameterType="SegchkUserWechat">
insert into segchk_user_wechat
@ -633,6 +725,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mod_time = now(),
</trim>
</insert>
<insert id="addAccountByReward">
insert into segchk_user_account (user_id, account, provider_id, reward_id, charge_id, mod_time)
select suc.user_id, if(isnull(ssa.account), #{reward}, ssa.account + #{reward}) as account, provider_id, reward_id, charge_id, now() from
(select
#{userRecommenders} as user_id
, #{rewardId} as reward_id
, #{chargeId} as charge_id
, #{providerId} as provider_id
) suc
left join
(
<!-- # 上一次的余额-->
select account, user_id from segchk_user_account where user_id = #{userRecommenders} order by account_id desc limit 1
) ssa
on ssa.user_id = suc.user_id
</insert>
<update id="updateSegchkStoreWechat" parameterType="SegchkUserWechat">
update segchk_store_basic_info

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -1,312 +0,0 @@
package com.ruoyi.segchk.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.List;
/**
* seg SegchkStoreBasicInfoWebResp
*
* @author yinzhiying
* @date 2021-07-12
*/
public class SegchkStoreBasicInfoWebResp extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 运营商id全局唯一 */
@Excel(name = "运营商id全局唯一")
private Long providerId;
/** 商家id全局唯一 */
@Excel(name = "商家id全局唯一")
private Long storeId;
/** 商家名称 */
@Excel(name = "商家名称")
private String storeName;
/** 商家电话 */
@Excel(name = "商家电话")
private String storePhone;
/** 服务状态0在线1下线 */
@Excel(name = "服务状态0在线1下线")
private String serviceState;
/** 销售id */
@Excel(name = "销售id")
private Integer salerId;
/** 商家地址 */
@Excel(name = "商家地址")
private String storeAddr;
/** 商家经度 */
@Excel(name = "商家经度")
private BigDecimal storeLon;
/** 商家纬度 */
@Excel(name = "商家纬度")
private BigDecimal storeLat;
/** 商家运营时间 */
@Excel(name = "商家运营时间")
private String onService;
/** 商家描述详情 */
@Excel(name = "商家描述详情")
private String detail;
/** 商家轮播图1路径默认用于首页推荐轮播图 */
@Excel(name = "商家轮播图1路径默认用于首页推荐轮播图")
private String storeCarousel1;
/** 商家轮播图2路径 */
@Excel(name = "商家轮播图2路径")
private String storeCarousel2;
/** 商家轮播图3路径 */
@Excel(name = "商家轮播图3路径")
private String storeCarousel3;
/** 商家轮播图4路径 */
@Excel(name = "商家轮播图4路径")
private String storeCarousel4;
/** 商家轮播图5路径 */
@Excel(name = "商家轮播图5路径")
private String storeCarousel5;
/** 商家轮播图6路径 */
@Excel(name = "商家轮播图6路径")
private String storeCarousel6;
/** 商户累积核消次数 */
@Excel(name = "商户累积核消次数")
private Integer chkCount;
/** 商户平均星评 */
@Excel(name = "商户平均星评")
private BigDecimal starAvg;
/** 是否被收藏 */
@Excel(name = "是否被收藏")
private Integer isCollect = 0;
/** 商户标签列表 */
@Valid
private List<SegchkRecommenderStoreLableWeb> segchkRecommenderStoreLableWebList;
public void setProviderId(Long providerId)
{
this.providerId = providerId;
}
public Long getProviderId()
{
return providerId;
}
public void setStoreId(Long storeId)
{
this.storeId = storeId;
}
public Long getStoreId()
{
return storeId;
}
public void setStoreName(String storeName)
{
this.storeName = storeName;
}
public String getStoreName()
{
return storeName;
}
public void setStorePhone(String storePhone)
{
this.storePhone = storePhone;
}
public void setServiceState(String serviceState)
{
this.serviceState = serviceState;
}
public String getServiceState()
{
return serviceState;
}
public void setSalerId(Integer salerId)
{
this.salerId = salerId;
}
public Integer getSalerId()
{
return salerId;
}
public void setStoreAddr(String storeAddr)
{
this.storeAddr = storeAddr;
}
public String getStoreAddr()
{
return storeAddr;
}
public void setStoreLon(BigDecimal storeLon)
{
this.storeLon = storeLon;
}
public BigDecimal getStoreLon()
{
return storeLon;
}
public void setStoreLat(BigDecimal storeLat)
{
this.storeLat = storeLat;
}
public BigDecimal getStoreLat()
{
return storeLat;
}
public void setOnService(String onService)
{
this.onService = onService;
}
public String getOnService()
{
return onService;
}
public void setDetail(String detail)
{
this.detail = detail;
}
public String getDetail()
{
return detail;
}
public String getStorePhone() {
return storePhone;
}
public String getStoreCarousel1() {
return storeCarousel1;
}
public void setStoreCarousel1(String storeCarousel1) {
this.storeCarousel1 = storeCarousel1;
}
public String getStoreCarousel2() {
return storeCarousel2;
}
public void setStoreCarousel2(String storeCarousel2) {
this.storeCarousel2 = storeCarousel2;
}
public String getStoreCarousel3() {
return storeCarousel3;
}
public void setStoreCarousel3(String storeCarousel3) {
this.storeCarousel3 = storeCarousel3;
}
public String getStoreCarousel4() {
return storeCarousel4;
}
public void setStoreCarousel4(String storeCarousel4) {
this.storeCarousel4 = storeCarousel4;
}
public String getStoreCarousel5() {
return storeCarousel5;
}
public void setStoreCarousel5(String storeCarousel5) {
this.storeCarousel5 = storeCarousel5;
}
public String getStoreCarousel6() {
return storeCarousel6;
}
public void setStoreCarousel6(String storeCarousel6) {
this.storeCarousel6 = storeCarousel6;
}
public List<SegchkRecommenderStoreLableWeb> getSegchkRecommenderStoreLableWebList() {
return segchkRecommenderStoreLableWebList;
}
public void setSegchkRecommenderStoreLableWebList(List<SegchkRecommenderStoreLableWeb> segchkRecommenderStoreLableWebList) {
this.segchkRecommenderStoreLableWebList = segchkRecommenderStoreLableWebList;
}
public Integer getChkCount() {
return chkCount;
}
public void setChkCount(Integer chkCount) {
this.chkCount = chkCount;
}
public BigDecimal getStarAvg() {
return starAvg;
}
public void setStarAvg(BigDecimal starAvg) {
this.starAvg = starAvg;
}
public Integer getIsCollect() {
return isCollect;
}
public void setIsCollect(Integer isCollect) {
this.isCollect = isCollect;
}
@Override
public String toString() {
return "SegchkStoreBasicInfoWebResp{" +
"providerId=" + providerId +
", storeId=" + storeId +
", storeName='" + storeName + '\'' +
", storePhone='" + storePhone + '\'' +
", serviceState='" + serviceState + '\'' +
", salerId=" + salerId +
", storeAddr='" + storeAddr + '\'' +
", storeLon=" + storeLon +
", storeLat=" + storeLat +
", onService='" + onService + '\'' +
", detail='" + detail + '\'' +
", storeCarousel1='" + storeCarousel1 + '\'' +
", storeCarousel2='" + storeCarousel2 + '\'' +
", storeCarousel3='" + storeCarousel3 + '\'' +
", storeCarousel4='" + storeCarousel4 + '\'' +
", storeCarousel5='" + storeCarousel5 + '\'' +
", storeCarousel6='" + storeCarousel6 + '\'' +
", chkCount=" + chkCount +
", starAvg=" + starAvg +
", isCollect=" + isCollect +
", segchkRecommenderStoreLableWebList=" + segchkRecommenderStoreLableWebList +
'}';
}
}

View File

@ -161,4 +161,6 @@ public interface SegchkStoreBasicInfoMapper
* @return
*/
public int updateSegchkStoreServiceStatus(SegchkStoreBasicInfo segchkStoreBasicInfo);
public Long selectStoreIdByPhone(String phone);
}

View File

@ -58,4 +58,6 @@ public interface SegchkUserAccountMapper
* @return
*/
public int deleteSegchkUserAccountByAccountIds(Long[] accountIds);
public int insertSegchkUserAccountBuyCharge(SegchkUserAccount segchkUserAccount);
}

View File

@ -66,4 +66,6 @@ public interface SegchkUserChargeMapper
* @return
*/
public int updateSegchkUserChargeByRet(SegchkUserCharge segchkUserCharge);
int addSegchkUserChargeWithRecommend(SegchkUserCharge segchkUserCharge);
}

View File

@ -58,4 +58,6 @@ public interface ISegchkUserAccountService
* @return
*/
public int deleteSegchkUserAccountByAccountId(Long accountId);
public int insertSegchkUserAccountBuyCharge(SegchkUserAccount segchkUserAccount);
}

View File

@ -5,6 +5,8 @@ import java.util.List;
import com.ruoyi.segchk.domain.*;
import com.ruoyi.segchk.service.ISegchkCarouseMgtService;
import com.ruoyi.segchk.service.ISegchkRecommenderStoreService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -14,6 +16,7 @@ import com.ruoyi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.segchk.mapper.SegchkStoreBasicInfoMapper;
import com.ruoyi.segchk.service.ISegchkStoreBasicInfoService;
import org.springframework.util.ObjectUtils;
/**
* segService
@ -32,6 +35,7 @@ public class SegchkStoreBasicInfoServiceImpl implements ISegchkStoreBasicInfoSer
@Autowired
private ISegchkRecommenderStoreService segchkRecommenderStoreService;
private static final Logger logger = LoggerFactory.getLogger(SegchkStoreBasicInfoServiceImpl.class);
/**
* seg
*
@ -63,6 +67,11 @@ public class SegchkStoreBasicInfoServiceImpl implements ISegchkStoreBasicInfoSer
@Transactional
@Override
public int insertSegchkStoreBasicInfo(SegchkStoreBasicInfo segchkStoreBasicInfo) {
Long store_id = segchkStoreBasicInfoMapper.selectStoreIdByPhone(segchkStoreBasicInfo.getStorePhone());
if(!ObjectUtils.isEmpty(store_id)){
logger.warn("insertSegchkStoreBasicInfo error insert for store({}) with phone({}) same to store({})", segchkStoreBasicInfo.getStoreName(), segchkStoreBasicInfo.getStorePhone(), store_id);
return -1;//说明该手机号已注册商户
}
int rows = segchkStoreBasicInfoMapper.insertSegchkStoreBasicInfo(segchkStoreBasicInfo);
insertSegchkStoreImage(segchkStoreBasicInfo);
insertSegchkStoreChkMgt(segchkStoreBasicInfo);
@ -80,6 +89,11 @@ public class SegchkStoreBasicInfoServiceImpl implements ISegchkStoreBasicInfoSer
@Transactional
@Override
public int updateSegchkStoreBasicInfo(SegchkStoreBasicInfo segchkStoreBasicInfo) {
Long store_id = segchkStoreBasicInfoMapper.selectStoreIdByPhone(segchkStoreBasicInfo.getStorePhone());
if(!ObjectUtils.isEmpty(store_id) && !segchkStoreBasicInfo.getStoreId().equals(store_id)){
logger.warn("updateSegchkStoreBasicInfo error update for store({}) with phone({}) same to store({})", segchkStoreBasicInfo.getStoreId(), segchkStoreBasicInfo.getStorePhone(), store_id);
return -1;//说明该手机号已注册其他商户
}
segchkStoreBasicInfoMapper.deleteSegchkStoreImageByStoreId(segchkStoreBasicInfo.getStoreId());
segchkStoreBasicInfoMapper.deleteSegchkStoreChkMgtByStoreId(segchkStoreBasicInfo.getStoreId());
segchkStoreBasicInfoMapper.deleteSegchkStoreLableMgtByStoreId(segchkStoreBasicInfo.getStoreId());

View File

@ -90,4 +90,10 @@ public class SegchkUserAccountServiceImpl implements ISegchkUserAccountService
{
return segchkUserAccountMapper.deleteSegchkUserAccountByAccountId(accountId);
}
@Override
public int insertSegchkUserAccountBuyCharge(SegchkUserAccount segchkUserAccount) {
return segchkUserAccountMapper.insertSegchkUserAccountBuyCharge(segchkUserAccount);
}
}

View File

@ -1,6 +1,9 @@
package com.ruoyi.segchk.service.impl;
import java.math.BigDecimal;
import java.util.List;
import com.ruoyi.segchk.domain.SegchkUserAccount;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.segchk.mapper.SegchkUserChargeMapper;
@ -90,4 +93,5 @@ public class SegchkUserChargeServiceImpl implements ISegchkUserChargeService
{
return segchkUserChargeMapper.deleteSegchkUserChargeByChargeId(chargeId);
}
}

View File

@ -1,6 +1,7 @@
package com.ruoyi.system.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collector;
@ -285,11 +286,15 @@ public class SysUserServiceImpl implements ISysUserService
// 增加用户信息写入运营商管理表
SegchkProviderMgt segchkProviderMgt = new SegchkProviderMgt();
segchkProviderMgt.setNickName(user.getNickName());
segchkProviderMgt.setPhoneNo(user.getPhonenumber());
segchkProviderMgt.setDistrictId(user.getDistictId().intValue());
segchkProviderMgt.setFlagId(0);
int ret = segchkProviderMgtMapper.insertSegchkProviderMgt(segchkProviderMgt);
// Long[] roleIds = user.getRoleIds();
if(ObjectUtils.isNotEmpty(user.getDistictId())) {
// 10以上都是运营商
segchkProviderMgt.setNickName(user.getNickName());
segchkProviderMgt.setPhoneNo(user.getPhonenumber());
segchkProviderMgt.setDistrictId(user.getDistictId().intValue());
segchkProviderMgt.setFlagId(0);
int ret = segchkProviderMgtMapper.insertSegchkProviderMgt(segchkProviderMgt);
}
// 新增用户岗位关联
insertUserPost(user);
// 新增用户与角色管理

View File

@ -53,7 +53,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="providerId != null">#{providerId},</if>
<if test="cardId != null">#{cardId},</if>
<if test="storeId != null">#{storeId},</if>
<if test="cardTypeId != null">#{cardTypeId},</if>
<choose>
<when test="cardTypeId != null">#{cardTypeId},</when>
<otherwise>(select segchk_user_vip.card_type_id from segchk_user_vip where segchk_user_vip.card_id = #{cardId})</otherwise>
</choose>
<if test="userId != null">#{userId},</if>
<if test="modTime != null">#{modTime},</if>
<if test="commentId != null">#{commentId},</if>

View File

@ -153,7 +153,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where a.store_id = #{storeId}
</select>
<select id="selectStoreIdByPhone" resultType="java.lang.Long">
select store_id from segchk_store_basic_info where store_phone = #{storePhone}
</select>
<insert id="insertSegchkStoreBasicInfo" parameterType="SegchkStoreBasicInfo" useGeneratedKeys="true" keyProperty="storeId">
insert into segchk_store_basic_info
<trim prefix="(" suffix=")" suffixOverrides=",">

View File

@ -59,6 +59,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="cashId != null">#{cashId},</if>
</trim>
</insert>
<insert id="insertSegchkUserAccountBuyCharge">
insert into segchk_user_account
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="userId != null">user_id,</if>
<if test="account != null">account,</if>
<if test="accountType != null and accountType != ''">account_type,</if>
<if test="providerId != null">provider_id,</if>
<if test="rewardId != null">reward_id,</if>
<if test="chargeId != null">charge_id,</if>
<if test="cashId != null">cash_id,</if>
</trim>
select
<trim suffixOverrides=",">
uc.user_id,
if(isnull(account), 0.0, (account - uc.account_use)) as account,
, ifnull(sua.account_type, 0) as account_type
, ifnull(sua.provider_id,uc.provider_id) as provider_id
, ifnull(sua.reward_id, 0)
, uc.charge_id
, ifnull(sua.cash_id, 0)
</trim>
from
(select #{account} as account_use, #{userId} as user_id, #{chargeId} as charge_id, #{providerId} as provider_id) uc
left join
(
select user_id, account, account_type, provider_id, account_id, reward_id, charge_id, cash_id from segchk_user_account where user_id = #{userId} order by account_id desc limit 1
) sua
on uc.user_id = sua.user_id;
</insert>
<update id="updateSegchkUserAccount" parameterType="SegchkUserAccount">
update segchk_user_account

View File

@ -43,20 +43,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectSegchkUserChargeVo"/>
where charge_id = #{chargeId}
</select>
<insert id="insertSegchkUserCharge" parameterType="SegchkUserCharge" useGeneratedKeys="true" keyProperty="chargeId">
insert into segchk_user_charge
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="userId != null">user_id,</if>
<if test="storeId != null">store_id,</if>
store_id,
<if test="charge != null">charge,</if>
<if test="accountUsed != null">account_used,</if>
<if test="cardId != null">card_id,</if>
<if test="cardTypeId != null">card_type_id,</if>
<if test="chargeType != null and chargeType != ''">charge_type,</if>
<if test="providerId != null">provider_id,</if>
<if test="modTime != null">mod_time,</if>
<if test="retFlag != null">ret_flag,</if>
mod_time,
ret_flag,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userId != null">#{userId},</if>
@ -67,9 +67,50 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="cardTypeId != null">#{cardTypeId},</if>
<if test="chargeType != null and chargeType != ''">#{chargeType},</if>
<if test="providerId != null">#{providerId},</if>
<if test="modTime != null">#{modTime},</if>
<if test="retFlag != null">#{retFlag},</if>
</trim>
<choose>
<when test="modTime != null and modTime != ''">#{modTime},</when>
<otherwise>now(),</otherwise>
</choose>
<choose>
<when test="retFlag != null and modTime != ''">#{retFlag},</when>
<otherwise>0,</otherwise>
</choose>
</trim>
</insert>
<insert id="addSegchkUserChargeWithRecommend" parameterType="SegchkUserCharge" useGeneratedKeys="true" keyProperty="chargeId">
insert into segchk_user_charge (
user_id
, store_id
, charge
, account_used
, card_type_id
, provider_id
, mod_time
, ret_flag
)
select
uc.user_id
, if(isnull(suei.recommenders_level), null, if(suei.recommenders_level = 1, suei.user_recommenders, null)) as store_id
, uc.charge
, uc.account_used
, uc.card_type_id
, uc.provider_id
, now() as mod_time
, 0 as ret_flag from
(
(select
#{userId} as user_id
, #{charge} as charge
, #{cardTypeId} as card_type_id
, #{accountUsed} as account_used
, #{providerId} as provider_id
) uc
left join
(select user_id, user_recommenders, recommenders_level, provider_id from segchk_user_ext_info where user_id = #{userId}) suei
on suei.provider_id = uc.provider_id and suei.user_id = uc.user_id
)
</insert>
<update id="updateSegchkUserCharge" parameterType="SegchkUserCharge">

View File

@ -41,14 +41,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fromId != null">from_id,</if>
<if test="reward != null">reward,</if>
<if test="toId != null">to_id,</if>
<if test="modTime != null">mod_time,</if>
mod_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="providerId != null">#{providerId},</if>
<if test="fromId != null">#{fromId},</if>
<if test="reward != null">#{reward},</if>
<if test="toId != null">#{toId},</if>
<if test="modTime != null">#{modTime},</if>
<choose>
<when test="modTime != null and modTime != ''">#{modTime},</when>
<otherwise>now()</otherwise>
</choose>
<!-- <if test="modTime != null">#{modTime},</if>-->
</trim>
</insert>
@ -59,7 +63,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fromId != null">from_id = #{fromId},</if>
<if test="reward != null">reward = #{reward},</if>
<if test="toId != null">to_id = #{toId},</if>
<if test="modTime != null">mod_time = #{modTime},</if>
<choose>
<when test="modTime != null">mod_time = #{modTime},</when>
<otherwise>mod_time = now(),</otherwise>
</choose>
</trim>
where reward_ctl_id = #{rewardCtlId}
</update>

View File

@ -46,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="rewardType != null and rewardType != ''">reward_type,</if>
<if test="rewardCardId != null">reward_card_id,</if>
<if test="rewardCardTypeId != null">reward_card_type_id,</if>
<if test="modTime != null">mod_time,</if>
mod_time,
<if test="providerId != null">provider_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
@ -55,7 +55,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="rewardType != null and rewardType != ''">#{rewardType},</if>
<if test="rewardCardId != null">#{rewardCardId},</if>
<if test="rewardCardTypeId != null">#{rewardCardTypeId},</if>
<if test="modTime != null">#{modTime},</if>
now(),
<if test="providerId != null">#{providerId},</if>
</trim>
</insert>

View File

@ -391,10 +391,6 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
if(this.segchk_saler_infoList.length == 0){
this.msgError("请先添加销售人员")
return
}
this.reset();
this.open = true;
this.title = "添加seg销售人员信息";

View File

@ -1270,14 +1270,24 @@ export default {
this.form.segchkStoreChkMgtList = this.segchkStoreChkMgtList;
this.form.segchkStoreLableMgtList = this.segchkStoreLableMgtList;
this.form.segchkStoreSecurityList = this.segchkStoreSecurityList;
// console.log(this.form)
if (this.form.storeId != null) {
updateSegchk_store_basic_info(this.form).then(response => {
if(response.code == 500){
this.msgError(response.msg)
return
}
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSegchk_store_basic_info(this.form).then(response => {
if(response.code == 500){
this.msgError(response.msg)
return
}
this.msgSuccess("新增成功");
this.open = false;
this.getList();

View File

@ -11,22 +11,38 @@
/>
</el-form-item>
<el-form-item label="运营商id" prop="providerId">
<el-input
<el-select v-model="queryParams.providerId" placeholder="运营商id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.segchk_providerList"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
<!--<el-input
v-model="queryParams.providerId"
placeholder="请输入运营商id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
/>-->
</el-form-item>
<el-form-item label="卡类型id-1,普通用户其他会员卡类型id" prop="fromId">
<el-input
<el-form-item label="推荐人卡类型" prop="fromId">
<!--<el-input
v-model="queryParams.fromId"
placeholder="请输入卡类型id-1,普通用户其他会员卡类型id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
/>-->
<el-select v-model="queryParams.fromId" placeholder="推荐人卡类型" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in getLabelComp(0, queryParams.providerId)"
:key="dict.value"
:label="dict.lable"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="奖励额" prop="reward">
<el-input
@ -38,13 +54,21 @@
/>
</el-form-item>
<el-form-item label="卡类型id" prop="toId">
<el-input
<!--<el-input
v-model="queryParams.toId"
placeholder="请输入卡类型id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
/>-->
<el-select v-model="queryParams.toId" placeholder="购买卡类型" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in getLabelComp(0, queryParams.providerId)"
:key="dict.value"
:label="dict.lable"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="修改时间">
<el-date-picker
@ -114,10 +138,10 @@
<el-table v-loading="loading" :data="segchk_user_reward_ctlList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="控制id" align="center" prop="rewardCtlId" />
<el-table-column label="运营商id" align="center" prop="providerId" />
<el-table-column label="卡类型id-1,普通用户其他会员卡类型id" align="center" prop="fromId" />
<el-table-column label="运营商id" align="center" prop="providerId" :formatter="tableProviderName"/>
<el-table-column label="推荐人卡类型" align="center" prop="fromId" :formatter="tableProviderName" :render-header="renderHeader" />
<el-table-column label="奖励额" align="center" prop="reward" />
<el-table-column label="卡类型id" align="center" prop="toId" />
<el-table-column label="购买卡类型" align="center" prop="toId" :formatter="tableProviderName" :render-header="renderHeader" />
<el-table-column label="修改时间" align="center" prop="modTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.modTime, '{y}-{m}-{d}') }}</span>
@ -142,7 +166,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -155,25 +179,55 @@
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="运营商id" prop="providerId">
<el-input v-model="form.providerId" placeholder="请输入运营商id" />
<!-- <el-input v-model="form.providerId" placeholder="请输入运营商id" />-->
<el-select v-model="form.providerId" placeholder="运营商id" >
<el-option
v-for="dict in segchk_providerList"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="卡类型id-1,普通用户其他会员卡类型id" prop="fromId">
<el-input v-model="form.fromId" placeholder="请输入卡类型id-1,普通用户其他会员卡类型id" />
<el-form-item label="推荐人卡类型" prop="fromId">
<!-- <el-input v-model="form.fromId" placeholder="请输入卡类型id-1,普通用户其他会员卡类型id" />-->
<el-tooltip content="推荐人持有的会员充值卡类型" placement="top">
<i class="el-icon-question"></i>
</el-tooltip>
<el-select v-model="form.fromId" placeholder="推荐会员卡" @change="changecardTypeName">
<el-option
v-for="(dict,index) in getLabelComp(0, form.providerId)"
:key="index"
:label="dict.lable"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="奖励额" prop="reward">
<el-input v-model="form.reward" placeholder="请输入奖励额" />
</el-form-item>
<el-form-item label="卡类型id" prop="toId">
<el-input v-model="form.toId" placeholder="请输入卡类型id" />
<el-form-item label="购买卡类型" prop="toId">
<!-- <el-input v-model="form.toId" placeholder="请输入卡类型id" />-->
<el-tooltip content="被推荐人购买的会员充值卡类型" placement="top">
<i class="el-icon-question"></i>
</el-tooltip>
<el-select v-model="form.toId" placeholder="推荐会员卡" @change="changecardTypeName">
<el-option
v-for="(dict,index) in getLabelComp(0, form.providerId)"
:key="index"
:label="dict.lable"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="修改时间" prop="modTime">
<!--<el-form-item label="修改时间" prop="modTime">
<el-date-picker clearable size="small"
v-model="form.modTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择修改时间">
</el-date-picker>
</el-form-item>
</el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -185,6 +239,7 @@
<script>
import { listSegchk_user_reward_ctl, getSegchk_user_reward_ctl, delSegchk_user_reward_ctl, addSegchk_user_reward_ctl, updateSegchk_user_reward_ctl, exportSegchk_user_reward_ctl } from "@/api/segchk/segchk_user_reward_ctl";
import {segchk_get_chargecard_list, segchk_get_provider_list} from "@/api/segchk/segchk_get_simple_list";
export default {
name: "Segchk_user_reward_ctl",
@ -201,11 +256,12 @@ export default {
//
multiple: true,
//
showSearch: true,
showSearch: false,
//
total: 0,
// seg
segchk_user_reward_ctlList: [],
//
title: "",
//
@ -223,6 +279,9 @@ export default {
toId: null,
modTime: null
},
//
segchk_charge_cardList: [],
segchk_providerList: [],
//
form: {},
//
@ -248,7 +307,91 @@ export default {
created() {
this.getList();
},
computed: {
getLabelComp(){
return function (fromLableId, providerId) {
let arr = []
if(fromLableId == 0){
arr = this.segchk_charge_cardList
.filter(value => value.providerId == providerId)
.map(e=> {
return { value: parseInt(e.key), lable: e.value }
}) //
}
arr.push({value: -1, lable: '普通用户'})
// this.formlableList = arr
return arr
}
}
},
methods: {
renderHeader(h, { column }) {
let contentstr = undefined
switch (column.label) {
case '标签来源':
contentstr = '充值会员卡,关键字(行业,范围),优惠券三选一';break;
case '显示顺序':
contentstr = '标签在商家相关页面下的显示顺序';break;
case '卡类型名称':
contentstr = '运营商下的会员卡名称';break;
case '卡面额':
contentstr = '用户购买时应支付的金额';break;
case '有效期时长':
contentstr = '用户购买后该种会员卡的有期天数';break;
case '可购买次数':
contentstr = '用户可购买多少次该种会员卡';break;
case '总核消次数':
contentstr = '用户可通过该种会员卡享受服务的次数';break;
case '推荐人卡类型':
contentstr = '推荐人,已持有的有效会员卡类型';break;
case '购买卡类型':
contentstr = '被推荐人购买的会员卡类型';break;
case '操作':
contentstr = '如果删除优惠时,同时将从首页标签,支持该标签的商家中的相应标签也会删除';break;
}
return [
column.label,
h(
'el-tooltip',
{
props: {
content: `${contentstr}`,
placement: 'top'
}
},
[
h(
'span',{
class: {
'el-icon-question': true
}
})
]
)
]
},
tableProviderName(row, column) {
// console.log("tableProviderName --- " + row.property + "---" + column.property + "---" + column.index)
if (column.property == 'providerId'){
var ret = this.segchk_providerList.find((value) => {return value.key == row.providerId})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'fromId'){
var ret = this.segchk_charge_cardList.find((value) => {return value.key == row.fromId || value.key == -1})
var provName = ret == null ? "普通用户" : ret.value;
return provName
}
if (column.property == 'toId'){
var ret = this.segchk_charge_cardList.find(value => {
return value.typeId == row.toId || value.key == -1
})
var provName = ret == null ? "普通用户" : ret.value;
return provName
}
},
/** 查询seg会员推荐控制列表 */
getList() {
this.loading = true;
@ -257,6 +400,19 @@ export default {
this.queryParams.params["beginModTime"] = this.daterangeModTime[0];
this.queryParams.params["endModTime"] = this.daterangeModTime[1];
}
//
segchk_get_provider_list(this.queryParams.providerId).then(response => {
this.segchk_providerList = response.rows;
// this.cardtotal = response.total;
});
//
segchk_get_chargecard_list(this.queryParams.providerId).then(response => {
this.segchk_charge_cardList = response.rows;
this.segchk_charge_cardList.push({providerId: this.queryParams.providerId, key: -1, value: '普通用户'})
// this.cardtotal = response.total;
});
listSegchk_user_reward_ctl(this.queryParams).then(response => {
this.segchk_user_reward_ctlList = response.rows;
this.total = response.total;
@ -315,6 +471,10 @@ export default {
},
/** 提交按钮 */
submitForm() {
if(this.form.toId == -1){
this.msgError("被推荐人不能设置为普通用户(即非会员)")
return
}
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.rewardCtlId != null) {