mirror of
https://gitee.com/ZhongBangKeJi/crmeb_java.git
synced 2026-05-05 08:01:24 +08:00
1、修复了部分bug
2、优化了数据库sql文件 3、优化了部分文件
This commit is contained in:
@@ -14,18 +14,7 @@ export function configApi() {
|
|||||||
/**
|
/**
|
||||||
* @description 分销设置 -- 表单提交
|
* @description 分销设置 -- 表单提交
|
||||||
*/
|
*/
|
||||||
export function configUpdateApi(params) {
|
export function configUpdateApi(data) {
|
||||||
return request({
|
|
||||||
url: '/admin/marketing/coupon/list',
|
|
||||||
method: 'get',
|
|
||||||
params
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @description 分销设置 -- 表单提交
|
|
||||||
*/
|
|
||||||
export function productCheckApi(data) {
|
|
||||||
return request({
|
return request({
|
||||||
url: '/admin/store/retail/spread/manage/set',
|
url: '/admin/store/retail/spread/manage/set',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
|
|||||||
@@ -59,9 +59,9 @@ service.interceptors.response.use(
|
|||||||
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
|
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
|
||||||
if (res.code === 401) {
|
if (res.code === 401) {
|
||||||
// to re-login
|
// to re-login
|
||||||
MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or integralLog in again', 'Confirm logout', {
|
MessageBox.confirm('您已经登出,您可以取消停留在这个页面,或重新登录', '退出', {
|
||||||
confirmButtonText: 'Re-Login',
|
confirmButtonText: '或重新登录',
|
||||||
cancelButtonText: 'Cancel',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
store.dispatch('user/resetToken').then(() => {
|
store.dispatch('user/resetToken').then(() => {
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
<i class="el-icon-warning-outline" />
|
<i class="el-icon-warning-outline" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</span>
|
</span>
|
||||||
<el-input-number v-model="promoterForm.storeBrokerageRatio" :precision="2" :step="0.1" class="selWidth" placeholder="订单交易成功后给上级返佣的比例0 - 100,例:5 = 反订单金额的5%"></el-input-number>
|
<el-input-number v-model="promoterForm.storeBrokerageRatio" class="selWidth" placeholder="订单交易成功后给上级返佣的比例0 - 100,例:5 = 反订单金额的5%"></el-input-number>
|
||||||
<span>%</span>
|
<span>%</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="storeBrokerageTwo">
|
<el-form-item prop="storeBrokerageTwo">
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
<i class="el-icon-warning-outline" />
|
<i class="el-icon-warning-outline" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</span>
|
</span>
|
||||||
<el-input-number v-model="promoterForm.storeBrokerageTwo" :precision="2" :step="0.1" class="selWidth" placeholder="订单交易成功后给上级返佣的比例0 ~ 100,例:5 = 反订单金额的5%"></el-input-number>
|
<el-input-number v-model="promoterForm.storeBrokerageTwo" class="selWidth" placeholder="订单交易成功后给上级返佣的比例0 ~ 100,例:5 = 反订单金额的5%"></el-input-number>
|
||||||
<span>%</span>
|
<span>%</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="userExtractMinPrice">
|
<el-form-item prop="userExtractMinPrice">
|
||||||
@@ -91,14 +91,14 @@
|
|||||||
</span>
|
</span>
|
||||||
<el-input-number v-model="promoterForm.extractTime" :precision="2" :step="0.1" class="selWidth" placeholder="佣金冻结时间(天)"></el-input-number>
|
<el-input-number v-model="promoterForm.extractTime" :precision="2" :step="0.1" class="selWidth" placeholder="佣金冻结时间(天)"></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="extension_two_rate">
|
<el-form-item prop="storeBrokeragePrice">
|
||||||
<span slot="label">
|
<span slot="label">
|
||||||
<span>满额分销最低金额:</span>
|
<span>满额分销最低金额:</span>
|
||||||
<el-tooltip class="item" effect="dark" content="满额分销满足金额开通分销权限" placement="top-start">
|
<el-tooltip class="item" effect="dark" content="满额分销满足金额开通分销权限" placement="top-start">
|
||||||
<i class="el-icon-warning-outline" />
|
<i class="el-icon-warning-outline" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</span>
|
</span>
|
||||||
<el-input-number v-model="promoterForm.extension_two_rate" placeholder="满额分销满足金额开通分销权限" :precision="2" :step="0.1" class="selWidth"></el-input-number>
|
<el-input-number v-model="promoterForm.storeBrokeragePrice" placeholder="满额分销满足金额开通分销权限" :precision="2" :step="0.1" class="selWidth"></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button size="mini" type="primary" :loading="loading" @click="submitForm('promoterForm')">立即创建</el-button>
|
<el-button size="mini" type="primary" :loading="loading" @click="submitForm('promoterForm')">立即创建</el-button>
|
||||||
@@ -146,13 +146,14 @@
|
|||||||
this.loading = true
|
this.loading = true
|
||||||
configUpdateApi(this.promoterForm).then(res => {
|
configUpdateApi(this.promoterForm).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.$modalSure('提交成功,是否自动下架商户低于此佣金比例的商品').then(() => {
|
this.$message.success('提交成功')
|
||||||
productCheckApi().then(({ message }) => {
|
// this.$modalSure('提交成功,是否自动下架商户低于此佣金比例的商品').then(() => {
|
||||||
this.$message.success(message)
|
// productCheckApi().then(({ message }) => {
|
||||||
}).catch(({ message }) => {
|
// this.$message.success(message)
|
||||||
this.$message.error(message)
|
// }).catch(({ message }) => {
|
||||||
})
|
// this.$message.error(message)
|
||||||
})
|
// })
|
||||||
|
// })
|
||||||
}).catch((res) => {
|
}).catch((res) => {
|
||||||
this.$message.error(res.message)
|
this.$message.error(res.message)
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
:is-create="isCreate"
|
:is-create="isCreate"
|
||||||
:edit-data="editData"
|
:edit-data="editData"
|
||||||
@submit="handlerSubmit"
|
@submit="handlerSubmit"
|
||||||
|
v-if="isShow"
|
||||||
/>
|
/>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
@@ -19,6 +20,7 @@
|
|||||||
components: { zbParser },
|
components: { zbParser },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
isShow: false,
|
||||||
isCreate: 0,
|
isCreate: 0,
|
||||||
editData: {},
|
editData: {},
|
||||||
formId: 109
|
formId: 109
|
||||||
@@ -43,7 +45,6 @@
|
|||||||
'sort': 0,
|
'sort': 0,
|
||||||
'status': true
|
'status': true
|
||||||
}
|
}
|
||||||
console.log(_pram)
|
|
||||||
configSaveForm(_pram).then(res => {
|
configSaveForm(_pram).then(res => {
|
||||||
this.getFormInfo()
|
this.getFormInfo()
|
||||||
this.$message.success('操作成功')
|
this.$message.success('操作成功')
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
handlerGetTreeList() {
|
handlerGetTreeList() {
|
||||||
const _pram = { type: constants.categoryType[5].value, status: -1 }
|
const _pram = { type: constants.categoryType[5].value, status: 1 }
|
||||||
this.loading = true
|
this.loading = true
|
||||||
categoryApi.treeCategroy(_pram).then(data => {
|
categoryApi.treeCategroy(_pram).then(data => {
|
||||||
this.treeList = this.handleAddArrt(data)
|
this.treeList = this.handleAddArrt(data)
|
||||||
|
|||||||
@@ -51,12 +51,12 @@
|
|||||||
<el-form-item label="国家:">
|
<el-form-item label="国家:">
|
||||||
<el-select v-model="userFrom.country" placeholder="请选择" class="selWidth" clearable @on-change="changeCountry">
|
<el-select v-model="userFrom.country" placeholder="请选择" class="selWidth" clearable @on-change="changeCountry">
|
||||||
<el-option value="" label="全部"></el-option>
|
<el-option value="" label="全部"></el-option>
|
||||||
<el-option value="domestic" label="中国"></el-option>
|
<el-option value="CN" label="中国"></el-option>
|
||||||
<el-option value="abroad" label="外国"></el-option>
|
<el-option value="OTHER" label="其他"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-bind="grid" v-if="userFrom.country ==='domestic'">
|
<el-col v-bind="grid" v-if="userFrom.country ==='CN'">
|
||||||
<el-form-item label="省份:">
|
<el-form-item label="省份:">
|
||||||
<el-cascader :options="addresData" :props="propsCity" v-model="address" @change="handleChange" class="selWidth"></el-cascader>
|
<el-cascader :options="addresData" :props="propsCity" v-model="address" @change="handleChange" class="selWidth"></el-cascader>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -69,13 +69,16 @@
|
|||||||
<el-radio-button label="">
|
<el-radio-button label="">
|
||||||
<span>全部</span>
|
<span>全部</span>
|
||||||
</el-radio-button>
|
</el-radio-button>
|
||||||
|
<el-radio-button label="0">
|
||||||
|
<span>未知</span>
|
||||||
|
</el-radio-button>
|
||||||
<el-radio-button label="1">
|
<el-radio-button label="1">
|
||||||
<span>男</span>
|
<span>男</span>
|
||||||
</el-radio-button>
|
</el-radio-button>
|
||||||
<el-radio-button label="2">
|
<el-radio-button label="2">
|
||||||
<span>女</span>
|
<span>女</span>
|
||||||
</el-radio-button>
|
</el-radio-button>
|
||||||
<el-radio-button label="0">
|
<el-radio-button label="3">
|
||||||
<span>保密</span>
|
<span>保密</span>
|
||||||
</el-radio-button>
|
</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
@@ -101,10 +104,10 @@
|
|||||||
<el-col v-bind="grid">
|
<el-col v-bind="grid">
|
||||||
<el-form-item label="访问情况:">
|
<el-form-item label="访问情况:">
|
||||||
<el-select v-model="userFrom.accessType" placeholder="请选择" class="selWidth" clearable>
|
<el-select v-model="userFrom.accessType" placeholder="请选择" class="selWidth" clearable>
|
||||||
<el-option value="" label="全部"></el-option>
|
<el-option :value="0" label="全部"></el-option>
|
||||||
<el-option value="visitno" label="时间段未访问"></el-option>
|
<el-option :value="1" label="首次访问"></el-option>
|
||||||
<el-option value="visit" label="时间段访问过"></el-option>
|
<el-option :value="2" label="时间段访问过"></el-option>
|
||||||
<el-option value="add_time" label="首次访问"></el-option>
|
<el-option :value="3" label="时间段未访问"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -180,7 +183,7 @@
|
|||||||
<span>{{ props.row.createTime | filterEmpty }}</span>
|
<span>{{ props.row.createTime | filterEmpty }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="近次访问:">
|
<el-form-item label="近次访问:">
|
||||||
<span>{{ props.row.lastLoginTime | filterEmpty }}</span>
|
<span>{{ props.row.updateTime | filterEmpty }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="身份证号:">
|
<el-form-item label="身份证号:">
|
||||||
<span>{{ props.row.cardId | filterEmpty }}</span>
|
<span>{{ props.row.cardId | filterEmpty }}</span>
|
||||||
@@ -232,8 +235,14 @@
|
|||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{scope.row.nickname | filterEmpty}}</span>
|
<span>{{scope.row.nickname | filterEmpty}}</span>
|
||||||
<span></span>
|
</template>
|
||||||
<span></span>
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="性别"
|
||||||
|
min-width="60"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{scope.row.sex | sexFilter}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
@@ -397,16 +406,17 @@
|
|||||||
export default {
|
export default {
|
||||||
name: 'UserIndex',
|
name: 'UserIndex',
|
||||||
components:{ editFrom, userDetails },
|
components:{ editFrom, userDetails },
|
||||||
// filters: {
|
filters: {
|
||||||
// typeFilter(status) {
|
sexFilter(status) {
|
||||||
// const statusMap = {
|
const statusMap = {
|
||||||
// 'wechat': '微信用户',
|
0: '未知',
|
||||||
// 'routine': '小程序用户',
|
1: '男',
|
||||||
// 'h5': 'H5用户'
|
2: '女',
|
||||||
// }
|
3: '保密'
|
||||||
// return statusMap[status]
|
}
|
||||||
// }
|
return statusMap[status]
|
||||||
// },
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pickerOptions: {
|
pickerOptions: {
|
||||||
@@ -517,7 +527,7 @@
|
|||||||
isPromoter: '',
|
isPromoter: '',
|
||||||
country: '',
|
country: '',
|
||||||
payCount: '',
|
payCount: '',
|
||||||
accessType: '',
|
accessType: 0,
|
||||||
dateLimit: '',
|
dateLimit: '',
|
||||||
keywords: '',
|
keywords: '',
|
||||||
province: '',
|
province: '',
|
||||||
@@ -583,7 +593,7 @@
|
|||||||
isPromoter: '',
|
isPromoter: '',
|
||||||
country: '',
|
country: '',
|
||||||
payCount: '',
|
payCount: '',
|
||||||
accessType: '',
|
accessType: 0,
|
||||||
dateLimit: '',
|
dateLimit: '',
|
||||||
keywords: '',
|
keywords: '',
|
||||||
province: '',
|
province: '',
|
||||||
@@ -731,7 +741,7 @@
|
|||||||
},
|
},
|
||||||
// 选择国家
|
// 选择国家
|
||||||
changeCountry () {
|
changeCountry () {
|
||||||
if (this.userFrom.country === 'abroad' || !this.userFrom.country) {
|
if (this.userFrom.country === 'OTHER' || !this.userFrom.country) {
|
||||||
this.selectedData = [];
|
this.selectedData = [];
|
||||||
this.userFrom.province = '';
|
this.userFrom.province = '';
|
||||||
this.userFrom.city = '';
|
this.userFrom.city = '';
|
||||||
|
|||||||
@@ -177,6 +177,9 @@ public class Constants {
|
|||||||
public static final String CONFIG_KEY_ADMIN_LOGIN_LOGO = "login_logo"; //登录页LOGO
|
public static final String CONFIG_KEY_ADMIN_LOGIN_LOGO = "login_logo"; //登录页LOGO
|
||||||
public static final String CONFIG_KEY_ADMIN_LOGIN_BACKGROUND_IMAGE = "admin_login_bg_pic"; //登录页背景图
|
public static final String CONFIG_KEY_ADMIN_LOGIN_BACKGROUND_IMAGE = "admin_login_bg_pic"; //登录页背景图
|
||||||
|
|
||||||
|
//分销
|
||||||
|
public static final String CONFIG_KEY_DISTRIBUTION_TYPE = "brokerageBindind";
|
||||||
|
|
||||||
|
|
||||||
//config配置的formId
|
//config配置的formId
|
||||||
public static final int CONFIG_FORM_ID_INDEX = 69; //首页配置
|
public static final int CONFIG_FORM_ID_INDEX = 69; //首页配置
|
||||||
@@ -254,9 +257,14 @@ public class Constants {
|
|||||||
public static final int INDEX_HOT_BANNER = 2; //热门榜单推荐Banner图片
|
public static final int INDEX_HOT_BANNER = 2; //热门榜单推荐Banner图片
|
||||||
public static final int INDEX_NEW_BANNER = 3; //首页首发新品推荐Banner图片
|
public static final int INDEX_NEW_BANNER = 3; //首页首发新品推荐Banner图片
|
||||||
public static final int INDEX_BENEFIT_BANNER = 4; //首页促销单品推荐Banner图片
|
public static final int INDEX_BENEFIT_BANNER = 4; //首页促销单品推荐Banner图片
|
||||||
|
|
||||||
public static final int INDEX_LIMIT_DEFAULT = 3; //首页默认list分页条数
|
public static final int INDEX_LIMIT_DEFAULT = 3; //首页默认list分页条数
|
||||||
|
|
||||||
|
public static final String INDEX_BAST_LIMIT = "bastNumber"; //精品推荐个数
|
||||||
|
public static final String INDEX_FIRST_LIMIT = "firstNumber"; //首发新品个数
|
||||||
|
public static final String INDEX_SALES_LIMIT = "promotionNumber"; //促销单品个数
|
||||||
|
public static final String INDEX_HOT_LIMIT = "hotNumber"; //热门推荐个数
|
||||||
|
|
||||||
|
|
||||||
//用户资金
|
//用户资金
|
||||||
public static final String USER_BILL_CATEGORY_MONEY = "now_money"; //用户余额
|
public static final String USER_BILL_CATEGORY_MONEY = "now_money"; //用户余额
|
||||||
public static final String USER_BILL_CATEGORY_INTEGRAL = "integral"; //积分
|
public static final String USER_BILL_CATEGORY_INTEGRAL = "integral"; //积分
|
||||||
@@ -275,9 +283,11 @@ public class Constants {
|
|||||||
public static final String USER_BILL_TYPE_PAY_PRODUCT_INTEGRAL_BACK = "pay_product_integral_back"; //商品退积分
|
public static final String USER_BILL_TYPE_PAY_PRODUCT_INTEGRAL_BACK = "pay_product_integral_back"; //商品退积分
|
||||||
public static final String USER_BILL_TYPE_PAY_PRODUCT_REFUND = "pay_product_refund"; //商品退款
|
public static final String USER_BILL_TYPE_PAY_PRODUCT_REFUND = "pay_product_refund"; //商品退款
|
||||||
public static final String USER_BILL_TYPE_RECHARGE = "recharge"; //佣金转入
|
public static final String USER_BILL_TYPE_RECHARGE = "recharge"; //佣金转入
|
||||||
|
public static final String USER_BILL_TYPE_PAY_RECHARGE = "pay_recharge"; //充值
|
||||||
public static final String USER_BILL_TYPE_SHARE = "share"; //用户分享记录
|
public static final String USER_BILL_TYPE_SHARE = "share"; //用户分享记录
|
||||||
public static final String USER_BILL_TYPE_SIGN = "sign"; //签到
|
public static final String USER_BILL_TYPE_SIGN = "sign"; //签到
|
||||||
public static final String USER_BILL_TYPE_ORDER = "order"; //订单
|
public static final String USER_BILL_TYPE_ORDER = "order"; //订单
|
||||||
|
public static final String USER_BILL_TYPE_PAY_ORDER = "pay_order"; //订单支付
|
||||||
public static final String USER_BILL_TYPE_SYSTEM_ADD = "system_add"; //系统增加
|
public static final String USER_BILL_TYPE_SYSTEM_ADD = "system_add"; //系统增加
|
||||||
public static final String USER_BILL_TYPE_SYSTEM_SUB = "system_sub"; //系统减少
|
public static final String USER_BILL_TYPE_SYSTEM_SUB = "system_sub"; //系统减少
|
||||||
|
|
||||||
|
|||||||
@@ -750,4 +750,16 @@ public class CrmebUtil {
|
|||||||
Matcher matcher = pattern.matcher(str);
|
Matcher matcher = pattern.matcher(str);
|
||||||
return matcher.matches();
|
return matcher.matches();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//数组去重
|
||||||
|
public static List<Integer> arrayUnique(Integer[] arr){
|
||||||
|
List<Integer> list = new ArrayList<>();
|
||||||
|
for (Integer integer : arr) {
|
||||||
|
if (!list.contains(integer)) {
|
||||||
|
list.add(integer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,14 @@
|
|||||||
package com.zbkj.crmeb.article.request;
|
package com.zbkj.crmeb.article.request;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
import org.hibernate.validator.constraints.Length;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -35,10 +32,12 @@ public class ArticleRequest implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty(value = "文章标题", required = true)
|
@ApiModelProperty(value = "文章标题", required = true)
|
||||||
@NotBlank(message = "请填写文章标题")
|
@NotBlank(message = "请填写文章标题")
|
||||||
|
@Length(max = 200, message = "文章标题最多200个字符")
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
@ApiModelProperty(value = "文章作者", required = true)
|
@ApiModelProperty(value = "文章作者", required = true)
|
||||||
@NotBlank(message = "请填写文章标题")
|
@NotBlank(message = "请填写文章作者")
|
||||||
|
@Length(max = 50, message = "文章作者最多50个字符")
|
||||||
private String author;
|
private String author;
|
||||||
|
|
||||||
@ApiModelProperty(value = "文章图片", required = true)
|
@ApiModelProperty(value = "文章图片", required = true)
|
||||||
@@ -46,15 +45,18 @@ public class ArticleRequest implements Serializable {
|
|||||||
private String imageInput;
|
private String imageInput;
|
||||||
|
|
||||||
@ApiModelProperty(value = "文章简介", required = true)
|
@ApiModelProperty(value = "文章简介", required = true)
|
||||||
|
@Length(max = 200, message = "文章简介最多200个字符")
|
||||||
@NotBlank(message = "请填写文章简介")
|
@NotBlank(message = "请填写文章简介")
|
||||||
private String synopsis;
|
private String synopsis;
|
||||||
|
|
||||||
@ApiModelProperty(value = "文章分享标题", required = true)
|
@ApiModelProperty(value = "文章分享标题", required = true)
|
||||||
@NotBlank(message = "请填写文章分享标题")
|
@NotBlank(message = "请填写文章分享标题")
|
||||||
|
@Length(max = 200, message = "文章分享标题最多200个字符")
|
||||||
private String shareTitle;
|
private String shareTitle;
|
||||||
|
|
||||||
@ApiModelProperty(value = "文章分享简介", required = true)
|
@ApiModelProperty(value = "文章分享简介", required = true)
|
||||||
@NotBlank(message = "请填写文章分享简介")
|
@NotBlank(message = "请填写文章分享简介")
|
||||||
|
@Length(max = 200, message = "文章分享简介最多200个字符")
|
||||||
private String shareSynopsis;
|
private String shareSynopsis;
|
||||||
|
|
||||||
@ApiModelProperty(value = "排序", example = "0", required = true)
|
@ApiModelProperty(value = "排序", example = "0", required = true)
|
||||||
|
|||||||
@@ -64,6 +64,12 @@ import java.util.List;
|
|||||||
@RequestMapping(value = "/save", method = RequestMethod.POST)
|
@RequestMapping(value = "/save", method = RequestMethod.POST)
|
||||||
public CommonResult<String> save(@Validated CategoryRequest categoryRequest){
|
public CommonResult<String> save(@Validated CategoryRequest categoryRequest){
|
||||||
Category category = new Category();
|
Category category = new Category();
|
||||||
|
|
||||||
|
//检测标题是否存在
|
||||||
|
if(categoryService.checkName(categoryRequest.getName(), category.getType()) > 0){
|
||||||
|
throw new CrmebException("此分类已存在");
|
||||||
|
}
|
||||||
|
|
||||||
BeanUtils.copyProperties(categoryRequest, category);
|
BeanUtils.copyProperties(categoryRequest, category);
|
||||||
category.setPath(categoryService.getPathByPId(category.getPid()));
|
category.setPath(categoryService.getPathByPId(category.getPid()));
|
||||||
category.setExtra(systemAttachmentService.clearPrefix(category.getExtra()));
|
category.setExtra(systemAttachmentService.clearPrefix(category.getExtra()));
|
||||||
|
|||||||
@@ -36,4 +36,6 @@ public interface CategoryService extends IService<Category> {
|
|||||||
boolean update(CategoryRequest request, Integer id);
|
boolean update(CategoryRequest request, Integer id);
|
||||||
|
|
||||||
List<Category> getChildVoListByPid(Integer pid);
|
List<Category> getChildVoListByPid(Integer pid);
|
||||||
|
|
||||||
|
int checkName(String name, Integer type);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -341,5 +341,21 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryDao, Category> impl
|
|||||||
objectQueryWrapper.like("path", "/"+pid+"/");
|
objectQueryWrapper.like("path", "/"+pid+"/");
|
||||||
return dao.selectList(objectQueryWrapper);
|
return dao.selectList(objectQueryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检测分类码是否存在
|
||||||
|
* @param name String 分类名
|
||||||
|
* @param type int 类型
|
||||||
|
* @author Mr.Zhang
|
||||||
|
* @since 2020-04-16
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int checkName(String name, Integer type) {
|
||||||
|
LambdaQueryWrapper<Category> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.eq(Category::getName, name)
|
||||||
|
.eq(Category::getType, type);
|
||||||
|
return dao.selectCount(lambdaQueryWrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.zbkj.crmeb.front.controller;
|
package com.zbkj.crmeb.front.controller;
|
||||||
|
|
||||||
import com.common.CommonPage;
|
|
||||||
import com.common.CommonResult;
|
import com.common.CommonResult;
|
||||||
import com.common.PageParamRequest;
|
import com.common.PageParamRequest;
|
||||||
import com.utils.CrmebUtil;
|
import com.utils.CrmebUtil;
|
||||||
@@ -9,7 +8,6 @@ import com.zbkj.crmeb.front.response.ConfirmOrderResponse;
|
|||||||
import com.zbkj.crmeb.front.service.OrderService;
|
import com.zbkj.crmeb.front.service.OrderService;
|
||||||
import com.zbkj.crmeb.front.vo.OrderAgainVo;
|
import com.zbkj.crmeb.front.vo.OrderAgainVo;
|
||||||
import com.zbkj.crmeb.store.request.StoreProductReplyAddRequest;
|
import com.zbkj.crmeb.store.request.StoreProductReplyAddRequest;
|
||||||
import com.zbkj.crmeb.store.response.StoreOrderListResponse;
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
@@ -21,8 +19,6 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Classname StoreOrderController
|
* @Classname StoreOrderController
|
||||||
@@ -205,7 +201,6 @@ public class StoreOrderController {
|
|||||||
@ApiOperation(value = "退款订单验证")
|
@ApiOperation(value = "退款订单验证")
|
||||||
@RequestMapping(value = "/refund/verify", method = RequestMethod.POST)
|
@RequestMapping(value = "/refund/verify", method = RequestMethod.POST)
|
||||||
public CommonResult<Object> refundVerify(@RequestBody @Validated OrderRefundVerifyRequest request){
|
public CommonResult<Object> refundVerify(@RequestBody @Validated OrderRefundVerifyRequest request){
|
||||||
|
|
||||||
return CommonResult.success(orderService.refundVerify(request));
|
return CommonResult.success(orderService.refundVerify(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package com.zbkj.crmeb.front.controller;
|
|||||||
import com.common.CommonResult;
|
import com.common.CommonResult;
|
||||||
import com.zbkj.crmeb.front.response.LoginResponse;
|
import com.zbkj.crmeb.front.response.LoginResponse;
|
||||||
import com.zbkj.crmeb.front.service.UserCenterService;
|
import com.zbkj.crmeb.front.service.UserCenterService;
|
||||||
|
import com.zbkj.crmeb.user.request.RegisterThirdUserRequest;
|
||||||
import com.zbkj.crmeb.wechat.model.TemplateMessage;
|
import com.zbkj.crmeb.wechat.model.TemplateMessage;
|
||||||
import com.zbkj.crmeb.wechat.response.RegisterThirdUserRequest;
|
|
||||||
import com.zbkj.crmeb.wechat.service.TemplateMessageService;
|
import com.zbkj.crmeb.wechat.service.TemplateMessageService;
|
||||||
import com.zbkj.crmeb.wechat.service.WeChatService;
|
import com.zbkj.crmeb.wechat.service.WeChatService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -55,8 +55,9 @@ public class WeChatController {
|
|||||||
*/
|
*/
|
||||||
@ApiOperation(value = "微信登录公共号授权登录")
|
@ApiOperation(value = "微信登录公共号授权登录")
|
||||||
@RequestMapping(value = "/authorize/login", method = RequestMethod.GET)
|
@RequestMapping(value = "/authorize/login", method = RequestMethod.GET)
|
||||||
public CommonResult<LoginResponse> login(@RequestParam String code){
|
public CommonResult<LoginResponse> login(@RequestParam(value = "spread_spid", defaultValue = "0", required = false) Integer spreadUid,
|
||||||
return CommonResult.success(userCenterService.weChatAuthorizeLogin(code));
|
@RequestParam(value = "code") String code){
|
||||||
|
return CommonResult.success(userCenterService.weChatAuthorizeLogin(code, spreadUid));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -44,7 +44,8 @@ public class RegisterRequest implements Serializable {
|
|||||||
private String validateCode;
|
private String validateCode;
|
||||||
|
|
||||||
@ApiModelProperty(value = "推广人id")
|
@ApiModelProperty(value = "推广人id")
|
||||||
private Integer spread;
|
@JsonProperty(value = "spread_spid")
|
||||||
|
private Integer spread = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import com.zbkj.crmeb.front.response.*;
|
|||||||
import com.zbkj.crmeb.system.model.SystemUserLevel;
|
import com.zbkj.crmeb.system.model.SystemUserLevel;
|
||||||
import com.zbkj.crmeb.user.model.User;
|
import com.zbkj.crmeb.user.model.User;
|
||||||
import com.zbkj.crmeb.user.model.UserBill;
|
import com.zbkj.crmeb.user.model.UserBill;
|
||||||
import com.zbkj.crmeb.wechat.response.RegisterThirdUserRequest;
|
import com.zbkj.crmeb.user.request.RegisterThirdUserRequest;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -48,7 +48,7 @@ public interface UserCenterService extends IService<User> {
|
|||||||
|
|
||||||
UserRechargePaymentResponse recharge(UserRechargeRequest request);
|
UserRechargePaymentResponse recharge(UserRechargeRequest request);
|
||||||
|
|
||||||
LoginResponse weChatAuthorizeLogin(String code);
|
LoginResponse weChatAuthorizeLogin(String code, Integer spreadUid);
|
||||||
|
|
||||||
String getLogo();
|
String getLogo();
|
||||||
|
|
||||||
|
|||||||
@@ -54,28 +54,41 @@ public class IndexServiceImpl implements IndexService {
|
|||||||
|
|
||||||
IndexProductBannerResponse indexProductBannerResponse = new IndexProductBannerResponse();
|
IndexProductBannerResponse indexProductBannerResponse = new IndexProductBannerResponse();
|
||||||
IndexStoreProductSearchRequest request = new IndexStoreProductSearchRequest();
|
IndexStoreProductSearchRequest request = new IndexStoreProductSearchRequest();
|
||||||
int gid = 0;
|
int gid;
|
||||||
|
String key;
|
||||||
switch (type){
|
switch (type){
|
||||||
case Constants.INDEX_RECOMMEND_BANNER: //精品推荐
|
case Constants.INDEX_RECOMMEND_BANNER: //精品推荐
|
||||||
gid = Constants.GROUP_DATA_ID_INDEX_RECOMMEND_BANNER;
|
gid = Constants.GROUP_DATA_ID_INDEX_RECOMMEND_BANNER;
|
||||||
|
key = Constants.INDEX_BAST_LIMIT;
|
||||||
request.setIsBest(true);
|
request.setIsBest(true);
|
||||||
break;
|
break;
|
||||||
case Constants.INDEX_HOT_BANNER: //热门榜单
|
case Constants.INDEX_HOT_BANNER: //热门榜单
|
||||||
gid = Constants.GROUP_DATA_ID_INDEX_HOT_BANNER;
|
gid = Constants.GROUP_DATA_ID_INDEX_HOT_BANNER;
|
||||||
|
key = Constants.INDEX_HOT_LIMIT;
|
||||||
request.setIsHot(true);
|
request.setIsHot(true);
|
||||||
break;
|
break;
|
||||||
case Constants.INDEX_NEW_BANNER: //首发新品
|
case Constants.INDEX_NEW_BANNER: //首发新品
|
||||||
gid = Constants.GROUP_DATA_ID_INDEX_NEW_BANNER;
|
gid = Constants.GROUP_DATA_ID_INDEX_NEW_BANNER;
|
||||||
|
key = Constants.INDEX_FIRST_LIMIT;
|
||||||
request.setIsNew(true);
|
request.setIsNew(true);
|
||||||
break;
|
break;
|
||||||
case Constants.INDEX_BENEFIT_BANNER: //促销单品
|
case Constants.INDEX_BENEFIT_BANNER: //促销单品
|
||||||
gid = Constants.GROUP_DATA_ID_INDEX_BENEFIT_BANNER;
|
gid = Constants.GROUP_DATA_ID_INDEX_BENEFIT_BANNER;
|
||||||
|
key = Constants.INDEX_SALES_LIMIT;
|
||||||
request.setIsBenefit(true);
|
request.setIsBenefit(true);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(StringUtils.isNotBlank(key)){
|
||||||
|
String num = systemConfigService.getValueByKey(Constants.INDEX_BAST_LIMIT);
|
||||||
|
if(pageParamRequest.getLimit() == 0){
|
||||||
|
//首页limit传0,则读取默认数据, 否则后台设置的首页配置不起作用
|
||||||
|
pageParamRequest.setLimit(Integer.parseInt(num));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
indexProductBannerResponse.setBanner(systemGroupDataService.getListMapByGid(gid));
|
indexProductBannerResponse.setBanner(systemGroupDataService.getListMapByGid(gid));
|
||||||
indexProductBannerResponse.setList(productService.getIndexProduct(request, pageParamRequest).getList());
|
indexProductBannerResponse.setList(productService.getIndexProduct(request, pageParamRequest).getList());
|
||||||
return indexProductBannerResponse;
|
return indexProductBannerResponse;
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ import com.zbkj.crmeb.user.model.UserAddress;
|
|||||||
import com.zbkj.crmeb.user.service.UserAddressService;
|
import com.zbkj.crmeb.user.service.UserAddressService;
|
||||||
import com.zbkj.crmeb.user.service.UserService;
|
import com.zbkj.crmeb.user.service.UserService;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STPageOrder;
|
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -139,7 +138,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
// other
|
// other
|
||||||
HashMap<String, Object> otherMap = new HashMap<>();
|
HashMap<String, Object> otherMap = new HashMap<>();
|
||||||
otherMap.put("offlinePostage",systemConfigService.getValueByKey("offline_postage"));
|
otherMap.put("offlinePostage",systemConfigService.getValueByKey("offline_postage"));
|
||||||
otherMap.put("integralRatio",systemConfigService.getValueByKey("integralRatio"));
|
otherMap.put("integralRatio",systemConfigService.getValueByKey("integral_ratio"));
|
||||||
|
|
||||||
// 获取有效优惠券
|
// 获取有效优惠券
|
||||||
List<StoreCouponUserResponse> canUseUseCouponList = orderUtils.getCanUseCouponList(storeCartResponse);
|
List<StoreCouponUserResponse> canUseUseCouponList = orderUtils.getCanUseCouponList(storeCartResponse);
|
||||||
@@ -358,8 +357,8 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
existStoreOrder.setRefundReasonTime(DateUtil.nowDateTime());
|
existStoreOrder.setRefundReasonTime(DateUtil.nowDateTime());
|
||||||
existStoreOrder.setRefundReasonWap(request.getText());
|
existStoreOrder.setRefundReasonWap(request.getText());
|
||||||
existStoreOrder.setRefundReasonWapExplain(request.getRefund_reason_wap_explain());
|
existStoreOrder.setRefundReasonWapExplain(request.getRefund_reason_wap_explain());
|
||||||
existStoreOrder.setRefundReasonWapImg(request.getRefund_reason_wap_img());
|
existStoreOrder.setRefundReasonWapImg(systemAttachmentService.clearPrefix(request.getRefund_reason_wap_img()));
|
||||||
boolean updateOrderResult = storeOrderService.updateByEntity(existStoreOrder);
|
boolean updateOrderResult = storeOrderService.updateById(existStoreOrder);
|
||||||
if(!updateOrderResult) throw new CrmebException("申请退款失败");
|
if(!updateOrderResult) throw new CrmebException("申请退款失败");
|
||||||
|
|
||||||
HashMap<String, Object> smsInfo = new HashMap<>();
|
HashMap<String, Object> smsInfo = new HashMap<>();
|
||||||
@@ -455,21 +454,21 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
}
|
}
|
||||||
// todo 营销活动 二期
|
// todo 营销活动 二期
|
||||||
// if(existStoreOrder.getPinkId()>0)
|
// if(existStoreOrder.getPinkId()>0)
|
||||||
if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT)){
|
// if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT)){
|
||||||
if(existStoreOrder.getIsChannel() == 1 || existStoreOrder.getIsChannel() == 2){
|
// if(existStoreOrder.getIsChannel() == 1 || existStoreOrder.getIsChannel() == 2){
|
||||||
existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId());
|
// existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT_FROM_H5)){
|
// if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT_FROM_H5)){
|
||||||
if(existStoreOrder.getIsChannel() == 0 || existStoreOrder.getIsChannel() == 1){
|
// if(existStoreOrder.getIsChannel() == 0 || existStoreOrder.getIsChannel() == 1){
|
||||||
existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId());
|
// existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT_FROM_PROGRAM)){
|
// if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT_FROM_PROGRAM)){
|
||||||
if(existStoreOrder.getIsChannel() == 0 || existStoreOrder.getIsChannel() == 2){
|
// if(existStoreOrder.getIsChannel() == 0 || existStoreOrder.getIsChannel() == 2){
|
||||||
existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId());
|
// existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
// 支付
|
// 支付
|
||||||
if (doPayOrder(request, ip, resultMap, existStoreOrder)) return resultMap;
|
if (doPayOrder(request, ip, resultMap, existStoreOrder)) return resultMap;
|
||||||
throw new CrmebException("支付方式错误");
|
throw new CrmebException("支付方式错误");
|
||||||
@@ -616,12 +615,10 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<String> getRefundReason(){
|
public List<String> getRefundReason(){
|
||||||
List<String> result = new ArrayList<>();
|
|
||||||
String reasonString = systemConfigService.getValueByKey("stor_reason");
|
String reasonString = systemConfigService.getValueByKey("stor_reason");
|
||||||
reasonString = CrmebUtil.UnicodeToCN(reasonString);
|
reasonString = CrmebUtil.UnicodeToCN(reasonString);
|
||||||
reasonString = reasonString.replace("rn", "n");
|
reasonString = reasonString.replace("rn", "n");
|
||||||
result.addAll(Arrays.asList(reasonString.split("n")));
|
return Arrays.asList(reasonString.split("\\n"));
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -744,7 +741,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
StoreOrder existOrder = storeOrderService.getByEntityOne(storeOrderPram);
|
StoreOrder existOrder = storeOrderService.getByEntityOne(storeOrderPram);
|
||||||
if(null == existOrder) throw new CrmebException("未找到订单信息");
|
if(null == existOrder) throw new CrmebException("未找到订单信息");
|
||||||
existOrder.setPayType(payType);
|
existOrder.setPayType(payType);
|
||||||
return storeOrderService.updateByEntity(existOrder);
|
return storeOrderService.updateById(existOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////// 自定义方法
|
///////////////////////////////////////////////////////////////////// 自定义方法
|
||||||
|
|||||||
@@ -31,12 +31,12 @@ import com.zbkj.crmeb.user.dao.UserDao;
|
|||||||
import com.zbkj.crmeb.user.model.User;
|
import com.zbkj.crmeb.user.model.User;
|
||||||
import com.zbkj.crmeb.user.model.UserBill;
|
import com.zbkj.crmeb.user.model.UserBill;
|
||||||
import com.zbkj.crmeb.user.model.UserToken;
|
import com.zbkj.crmeb.user.model.UserToken;
|
||||||
|
import com.zbkj.crmeb.user.request.RegisterThirdUserRequest;
|
||||||
import com.zbkj.crmeb.user.request.UserOperateFundsRequest;
|
import com.zbkj.crmeb.user.request.UserOperateFundsRequest;
|
||||||
import com.zbkj.crmeb.user.service.UserAddressService;
|
import com.zbkj.crmeb.user.service.UserAddressService;
|
||||||
import com.zbkj.crmeb.user.service.UserBillService;
|
import com.zbkj.crmeb.user.service.UserBillService;
|
||||||
import com.zbkj.crmeb.user.service.UserService;
|
import com.zbkj.crmeb.user.service.UserService;
|
||||||
import com.zbkj.crmeb.user.service.UserTokenService;
|
import com.zbkj.crmeb.user.service.UserTokenService;
|
||||||
import com.zbkj.crmeb.wechat.response.RegisterThirdUserRequest;
|
|
||||||
import com.zbkj.crmeb.wechat.response.WeChatAuthorizeLoginGetOpenIdResponse;
|
import com.zbkj.crmeb.wechat.response.WeChatAuthorizeLoginGetOpenIdResponse;
|
||||||
import com.zbkj.crmeb.wechat.response.WeChatAuthorizeLoginUserInfoResponse;
|
import com.zbkj.crmeb.wechat.response.WeChatAuthorizeLoginUserInfoResponse;
|
||||||
import com.zbkj.crmeb.wechat.response.WeChatProgramAuthorizeLoginGetOpenIdResponse;
|
import com.zbkj.crmeb.wechat.response.WeChatProgramAuthorizeLoginGetOpenIdResponse;
|
||||||
@@ -434,7 +434,7 @@ public class UserCenterServiceImpl extends ServiceImpl<UserDao, User> implements
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = {RuntimeException.class, Error.class, CrmebException.class})
|
@Transactional(rollbackFor = {RuntimeException.class, Error.class, CrmebException.class})
|
||||||
public LoginResponse weChatAuthorizeLogin(String code) {
|
public LoginResponse weChatAuthorizeLogin(String code, Integer spreadUid) {
|
||||||
try{
|
try{
|
||||||
WeChatAuthorizeLoginGetOpenIdResponse response = weChatService.authorizeLogin(code);
|
WeChatAuthorizeLoginGetOpenIdResponse response = weChatService.authorizeLogin(code);
|
||||||
User user = publicLogin(response.getOpenId(), response.getAccessToken());
|
User user = publicLogin(response.getOpenId(), response.getAccessToken());
|
||||||
@@ -442,6 +442,8 @@ public class UserCenterServiceImpl extends ServiceImpl<UserDao, User> implements
|
|||||||
LoginResponse loginResponse = new LoginResponse();
|
LoginResponse loginResponse = new LoginResponse();
|
||||||
loginResponse.setToken(userService.token(user));
|
loginResponse.setToken(userService.token(user));
|
||||||
user.setPwd(null);
|
user.setPwd(null);
|
||||||
|
//绑定推广关系
|
||||||
|
userService.bindSpread(user, spreadUid);
|
||||||
loginResponse.setUser(user);
|
loginResponse.setUser(user);
|
||||||
|
|
||||||
return loginResponse;
|
return loginResponse;
|
||||||
@@ -482,6 +484,7 @@ public class UserCenterServiceImpl extends ServiceImpl<UserDao, User> implements
|
|||||||
|
|
||||||
//TODO 是否需要强制注册用户,1 强制注册,2 需要返回数据给前端,让其输入手机号和验证码
|
//TODO 是否需要强制注册用户,1 强制注册,2 需要返回数据给前端,让其输入手机号和验证码
|
||||||
User user = userService.registerByThird(registerThirdUserRequest, Constants.USER_LOGIN_TYPE_PUBLIC);
|
User user = userService.registerByThird(registerThirdUserRequest, Constants.USER_LOGIN_TYPE_PUBLIC);
|
||||||
|
|
||||||
userTokenService.bind(openId, Constants.THIRD_LOGIN_TOKEN_TYPE_PUBLIC, user.getUid());
|
userTokenService.bind(openId, Constants.THIRD_LOGIN_TOKEN_TYPE_PUBLIC, user.getUid());
|
||||||
if(StringUtils.isNotBlank(unionId)) {
|
if(StringUtils.isNotBlank(unionId)) {
|
||||||
//有就绑定
|
//有就绑定
|
||||||
@@ -526,6 +529,8 @@ public class UserCenterServiceImpl extends ServiceImpl<UserDao, User> implements
|
|||||||
LoginResponse loginResponse = new LoginResponse();
|
LoginResponse loginResponse = new LoginResponse();
|
||||||
loginResponse.setToken(userService.token(user));
|
loginResponse.setToken(userService.token(user));
|
||||||
user.setPwd(null);
|
user.setPwd(null);
|
||||||
|
//绑定推广关系
|
||||||
|
userService.bindSpread(user, request.getSpreadPid());
|
||||||
loginResponse.setUser(user);
|
loginResponse.setUser(user);
|
||||||
|
|
||||||
return loginResponse;
|
return loginResponse;
|
||||||
@@ -705,6 +710,7 @@ public class UserCenterServiceImpl extends ServiceImpl<UserDao, User> implements
|
|||||||
|
|
||||||
//TODO 是否需要强制注册用户,1 强制注册,2 需要返回数据给前端,让其输入手机号和验证码
|
//TODO 是否需要强制注册用户,1 强制注册,2 需要返回数据给前端,让其输入手机号和验证码
|
||||||
User user = userService.registerByThird(request, Constants.USER_LOGIN_TYPE_PROGRAM);
|
User user = userService.registerByThird(request, Constants.USER_LOGIN_TYPE_PROGRAM);
|
||||||
|
|
||||||
userTokenService.bind(openId, Constants.THIRD_LOGIN_TOKEN_TYPE_PROGRAM, user.getUid());
|
userTokenService.bind(openId, Constants.THIRD_LOGIN_TOKEN_TYPE_PROGRAM, user.getUid());
|
||||||
if(StringUtils.isNotBlank(unionId)) {
|
if(StringUtils.isNotBlank(unionId)) {
|
||||||
//有就绑定
|
//有就绑定
|
||||||
|
|||||||
@@ -218,6 +218,17 @@ public class OrderPayServiceImpl extends PayService implements OrderPayService {
|
|||||||
|
|
||||||
// 更新用户下单数量
|
// 更新用户下单数量
|
||||||
updateUserPayCount();
|
updateUserPayCount();
|
||||||
|
|
||||||
|
//增加经验、积分
|
||||||
|
updateFounds();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新用户积分经验
|
||||||
|
*/
|
||||||
|
private void updateFounds() {
|
||||||
|
userService.consumeAfterUpdateUserFounds(getOrder().getUid(), getOrder().getPayPrice(), Constants.USER_BILL_TYPE_PAY_ORDER);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -167,6 +167,9 @@ public class RechargePayServiceImpl extends PayService implements RechargePaySer
|
|||||||
getUserRecharge().setPayTime(DateUtil.nowDateTime());
|
getUserRecharge().setPayTime(DateUtil.nowDateTime());
|
||||||
userRechargeService.updateById(getUserRecharge());
|
userRechargeService.updateById(getUserRecharge());
|
||||||
|
|
||||||
|
//增加经验、积分
|
||||||
|
userService.consumeAfterUpdateUserFounds(getUserRecharge().getUid(), getUserRecharge().getPrice(), Constants.USER_BILL_TYPE_PAY_RECHARGE);
|
||||||
|
|
||||||
//下发模板通知
|
//下发模板通知
|
||||||
pushTempMessage();
|
pushTempMessage();
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package com.zbkj.crmeb.store.service;
|
package com.zbkj.crmeb.store.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.common.PageParamRequest;
|
|
||||||
import com.zbkj.crmeb.store.model.StoreProductCoupon;
|
import com.zbkj.crmeb.store.model.StoreProductCoupon;
|
||||||
import com.zbkj.crmeb.store.request.StoreProductCouponSearchRequest;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -13,9 +11,6 @@ import java.util.List;
|
|||||||
* @date 2020-08-07
|
* @date 2020-08-07
|
||||||
*/
|
*/
|
||||||
public interface StoreProductCouponService extends IService<StoreProductCoupon> {
|
public interface StoreProductCouponService extends IService<StoreProductCoupon> {
|
||||||
|
|
||||||
List<StoreProductCoupon> getList(StoreProductCouponSearchRequest request, PageParamRequest pageParamRequest);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据产品id删除 优惠券关联信息
|
* 根据产品id删除 优惠券关联信息
|
||||||
* @param productId 产品id
|
* @param productId 产品id
|
||||||
|
|||||||
@@ -1157,7 +1157,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
|||||||
storeOrderUpdate.setPaid(true);
|
storeOrderUpdate.setPaid(true);
|
||||||
storeOrderUpdate.setPayType(storeOrder.getPayType());
|
storeOrderUpdate.setPayType(storeOrder.getPayType());
|
||||||
storeOrderUpdate.setPayTime(new Date());
|
storeOrderUpdate.setPayTime(new Date());
|
||||||
boolean orderUpdate2PayResult = updateByEntity(storeOrderUpdate);
|
boolean orderUpdate2PayResult = updateById(storeOrderUpdate);
|
||||||
StoreOrderStatus storeOrderStatus = new StoreOrderStatus();
|
StoreOrderStatus storeOrderStatus = new StoreOrderStatus();
|
||||||
storeOrderStatus.setOid(storeOrderUpdate.getId());
|
storeOrderStatus.setOid(storeOrderUpdate.getId());
|
||||||
storeOrderStatus.setChangeType(Constants.ORDER_LOG_PAY_SUCCESS);
|
storeOrderStatus.setChangeType(Constants.ORDER_LOG_PAY_SUCCESS);
|
||||||
@@ -1166,13 +1166,13 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
|||||||
UserBill userBill = new UserBill();
|
UserBill userBill = new UserBill();
|
||||||
userBill.setTitle("购买商品");
|
userBill.setTitle("购买商品");
|
||||||
userBill.setUid(currentUser.getUid());
|
userBill.setUid(currentUser.getUid());
|
||||||
userBill.setCategory("nowMoney");
|
userBill.setCategory(Constants.USER_BILL_CATEGORY_MONEY);
|
||||||
userBill.setType(Constants.USER_BILL_TYPE_PAY_MONEY);
|
userBill.setType(Constants.USER_BILL_TYPE_PAY_MONEY);
|
||||||
userBill.setNumber(storeOrder.getPayPrice());
|
userBill.setNumber(storeOrder.getPayPrice());
|
||||||
userBill.setLinkId(storeOrder.getId()+"");
|
userBill.setLinkId(storeOrder.getId()+"");
|
||||||
userBill.setBalance(currentUser.getNowMoney());
|
userBill.setBalance(currentUser.getNowMoney());
|
||||||
userBill.setMark("支付" + storeOrder.getPayPrice() + "元购买商品");
|
userBill.setMark("支付" + storeOrder.getPayPrice() + "元购买商品");
|
||||||
boolean saveUserbillResult = userBillService.save(userBill);
|
userBillService.save(userBill);
|
||||||
userService.userPayCountPlus(currentUser);
|
userService.userPayCountPlus(currentUser);
|
||||||
return orderUpdate2PayResult;
|
return orderUpdate2PayResult;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,9 @@ package com.zbkj.crmeb.store.service.impl;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.common.PageParamRequest;
|
|
||||||
import com.github.pagehelper.PageHelper;
|
|
||||||
import com.zbkj.crmeb.store.dao.StoreProductCouponDao;
|
import com.zbkj.crmeb.store.dao.StoreProductCouponDao;
|
||||||
import com.zbkj.crmeb.store.model.StoreProductCoupon;
|
import com.zbkj.crmeb.store.model.StoreProductCoupon;
|
||||||
import com.zbkj.crmeb.store.request.StoreProductCouponSearchRequest;
|
|
||||||
import com.zbkj.crmeb.store.service.StoreProductCouponService;
|
import com.zbkj.crmeb.store.service.StoreProductCouponService;
|
||||||
import org.springframework.beans.BeanUtils;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -24,28 +20,6 @@ public class StoreProductCouponServiceImpl extends ServiceImpl<StoreProductCoupo
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private StoreProductCouponDao dao;
|
private StoreProductCouponDao dao;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 列表
|
|
||||||
* @param request 请求参数
|
|
||||||
* @param pageParamRequest 分页类参数
|
|
||||||
* @author Mr.Zhang
|
|
||||||
* @since 2020-08-07
|
|
||||||
* @return List<StoreProductCoupon>
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<StoreProductCoupon> getList(StoreProductCouponSearchRequest request, PageParamRequest pageParamRequest) {
|
|
||||||
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
|
|
||||||
|
|
||||||
//带 StoreProductCoupon 类的多条件查询
|
|
||||||
LambdaQueryWrapper<StoreProductCoupon> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
||||||
StoreProductCoupon model = new StoreProductCoupon();
|
|
||||||
BeanUtils.copyProperties(request, model);
|
|
||||||
lambdaQueryWrapper.setEntity(model);
|
|
||||||
return dao.selectList(lambdaQueryWrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param productId 产品id
|
* @param productId 产品id
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.common.PageParamRequest;
|
import com.common.PageParamRequest;
|
||||||
import com.exception.CrmebException;
|
import com.exception.CrmebException;
|
||||||
|
import com.utils.CrmebUtil;
|
||||||
import com.zbkj.crmeb.front.request.UserCollectAllRequest;
|
import com.zbkj.crmeb.front.request.UserCollectAllRequest;
|
||||||
import com.zbkj.crmeb.front.request.UserCollectRequest;
|
import com.zbkj.crmeb.front.request.UserCollectRequest;
|
||||||
import com.zbkj.crmeb.store.dao.StoreProductRelationDao;
|
import com.zbkj.crmeb.store.dao.StoreProductRelationDao;
|
||||||
@@ -20,6 +21,7 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -118,15 +120,18 @@ public class StoreProductRelationServiceImpl extends ServiceImpl<StoreProductRel
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean all(UserCollectAllRequest request) {
|
public boolean all(UserCollectAllRequest request) {
|
||||||
if(request.getProductId().length < 1){
|
Integer[] arr = request.getProductId();
|
||||||
|
if(arr.length < 1){
|
||||||
throw new CrmebException("请选择产品");
|
throw new CrmebException("请选择产品");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<Integer> list = CrmebUtil.arrayUnique(arr);
|
||||||
|
|
||||||
Integer uid = userService.getUserIdException();
|
Integer uid = userService.getUserIdException();
|
||||||
deleteAll(request); //先删除所有已存在的
|
deleteAll(request, uid, "collect"); //先删除所有已存在的
|
||||||
|
|
||||||
ArrayList<StoreProductRelation> storeProductRelationList = new ArrayList<>();
|
ArrayList<StoreProductRelation> storeProductRelationList = new ArrayList<>();
|
||||||
for (Integer productId: request.getProductId()) {
|
for (Integer productId: list) {
|
||||||
StoreProductRelation storeProductRelation = new StoreProductRelation();
|
StoreProductRelation storeProductRelation = new StoreProductRelation();
|
||||||
storeProductRelation.setUid(uid);
|
storeProductRelation.setUid(uid);
|
||||||
storeProductRelation.setType("collect");
|
storeProductRelation.setType("collect");
|
||||||
@@ -158,10 +163,12 @@ public class StoreProductRelationServiceImpl extends ServiceImpl<StoreProductRel
|
|||||||
* @author Mr.Zhang
|
* @author Mr.Zhang
|
||||||
* @since 2020-05-06
|
* @since 2020-05-06
|
||||||
*/
|
*/
|
||||||
private void deleteAll(UserCollectAllRequest request) {
|
private void deleteAll(UserCollectAllRequest request, Integer uid, String type) {
|
||||||
LambdaQueryWrapper<StoreProductRelation> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<StoreProductRelation> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.in(StoreProductRelation::getProductId, (Object) request.getProductId()).
|
lambdaQueryWrapper.in(StoreProductRelation::getProductId, Arrays.asList(request.getProductId()))
|
||||||
eq(StoreProductRelation::getCategory, request.getCategory());
|
.eq(StoreProductRelation::getCategory, request.getCategory())
|
||||||
|
.eq(StoreProductRelation::getUid, uid)
|
||||||
|
.eq(StoreProductRelation::getType, type);
|
||||||
dao.delete(lambdaQueryWrapper);
|
dao.delete(lambdaQueryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -185,13 +185,14 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
|
|||||||
//关键字搜索
|
//关键字搜索
|
||||||
if(!StringUtils.isBlank(request.getKeywords())){
|
if(!StringUtils.isBlank(request.getKeywords())){
|
||||||
lambdaQueryWrapper.and(i -> i
|
lambdaQueryWrapper.and(i -> i
|
||||||
|
.or().eq(StoreProduct::getId, request.getKeywords())
|
||||||
.or().like(StoreProduct::getStoreName, request.getKeywords())
|
.or().like(StoreProduct::getStoreName, request.getKeywords())
|
||||||
.or().like(StoreProduct::getStoreInfo, request.getKeywords())
|
.or().like(StoreProduct::getStoreInfo, request.getKeywords())
|
||||||
.or().like(StoreProduct::getKeyword, request.getKeywords())
|
.or().like(StoreProduct::getKeyword, request.getKeywords())
|
||||||
.or().like(StoreProduct::getBarCode, request.getKeywords()));
|
.or().like(StoreProduct::getBarCode, request.getKeywords()));
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotBlank(request.getCateId())){
|
if(StringUtils.isNotBlank(request.getCateId())){
|
||||||
lambdaQueryWrapper.eq(StoreProduct::getCateId, request.getCateId());
|
lambdaQueryWrapper.apply(CrmebUtil.getFindInSetSql("cate_id", request.getCateId()));
|
||||||
}
|
}
|
||||||
lambdaQueryWrapper.orderByDesc(StoreProduct::getSort).orderByDesc(StoreProduct::getId);
|
lambdaQueryWrapper.orderByDesc(StoreProduct::getSort).orderByDesc(StoreProduct::getId);
|
||||||
List<StoreProduct> storeProducts = dao.selectList(lambdaQueryWrapper);
|
List<StoreProduct> storeProducts = dao.selectList(lambdaQueryWrapper);
|
||||||
|
|||||||
@@ -254,6 +254,9 @@ public class OrderUtils {
|
|||||||
User currentUser = userService.getInfo();
|
User currentUser = userService.getInfo();
|
||||||
|
|
||||||
Integer offliePayStatus = Integer.valueOf(systemConfigService.getValueByKey("offline_pay_status"));
|
Integer offliePayStatus = Integer.valueOf(systemConfigService.getValueByKey("offline_pay_status"));
|
||||||
|
|
||||||
|
PriceGroupResponse currentOrderPriceGroup = getOrderPriceGroup(cor.getCartInfo(), null);
|
||||||
|
|
||||||
List<String> exsitPayType = getPayType().stream().filter(e->{
|
List<String> exsitPayType = getPayType().stream().filter(e->{
|
||||||
if(offliePayStatus == 2 && e == Constants.PAY_TYPE_OFFLINE){
|
if(offliePayStatus == 2 && e == Constants.PAY_TYPE_OFFLINE){
|
||||||
return false;
|
return false;
|
||||||
@@ -276,7 +279,7 @@ public class OrderUtils {
|
|||||||
ua.setUid(currentUser.getUid());
|
ua.setUid(currentUser.getUid());
|
||||||
ua.setId(request.getAddressId());
|
ua.setId(request.getAddressId());
|
||||||
UserAddress currentUserAddress = userAddressService.getUserAddress(ua);
|
UserAddress currentUserAddress = userAddressService.getUserAddress(ua);
|
||||||
PriceGroupResponse currentOrderPriceGroup = getOrderPriceGroup(cor.getCartInfo(), currentUserAddress);
|
currentOrderPriceGroup = getOrderPriceGroup(cor.getCartInfo(), currentUserAddress);
|
||||||
payPostage = currentOrderPriceGroup.getStorePostage();
|
payPostage = currentOrderPriceGroup.getStorePostage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -319,6 +322,7 @@ public class OrderUtils {
|
|||||||
// 积分
|
// 积分
|
||||||
if(null != request.getUseIntegral() && currentUser.getIntegral().compareTo(BigDecimal.ZERO) > 0){
|
if(null != request.getUseIntegral() && currentUser.getIntegral().compareTo(BigDecimal.ZERO) > 0){
|
||||||
deductionPrice = currentUser.getIntegral().multiply(BigDecimal.valueOf(Double.valueOf(cor.getOther().get("integralRatio").toString())));
|
deductionPrice = currentUser.getIntegral().multiply(BigDecimal.valueOf(Double.valueOf(cor.getOther().get("integralRatio").toString())));
|
||||||
|
if(request.getUseIntegral()){
|
||||||
if(deductionPrice.compareTo(payPrice) < 0){
|
if(deductionPrice.compareTo(payPrice) < 0){
|
||||||
payPrice = payPrice.subtract(deductionPrice);
|
payPrice = payPrice.subtract(deductionPrice);
|
||||||
usedIntegral = currentUser.getIntegral();
|
usedIntegral = currentUser.getIntegral();
|
||||||
@@ -330,6 +334,10 @@ public class OrderUtils {
|
|||||||
}
|
}
|
||||||
payPrice = BigDecimal.ZERO;
|
payPrice = BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
payPrice = currentOrderPriceGroup.getPayPrice();
|
||||||
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
deductionPrice = BigDecimal.ZERO;
|
deductionPrice = BigDecimal.ZERO;
|
||||||
usedIntegral = BigDecimal.ZERO;
|
usedIntegral = BigDecimal.ZERO;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.zbkj.crmeb.system.request;
|
package com.zbkj.crmeb.system.request;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -11,12 +10,11 @@ import java.io.Serializable;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 微信用户表
|
* 核销
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author Mr.Zhang
|
* @author Mr.Zhang
|
||||||
* @since 2020-04-11
|
* @since 2020-*/
|
||||||
*/
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
|
|||||||
@@ -36,7 +36,9 @@ public interface SystemConfigService extends IService<SystemConfig> {
|
|||||||
|
|
||||||
boolean updateOrSaveValueByName(String name, String value);
|
boolean updateOrSaveValueByName(String name, String value);
|
||||||
|
|
||||||
String getValueByKeyException(String uploadUrl);
|
String getValueByKeyException(String key);
|
||||||
|
|
||||||
|
String getValueByKeyNotStatus(String key);
|
||||||
|
|
||||||
boolean saveForm(SystemFormCheckRequest systemFormCheckRequest);
|
boolean saveForm(SystemFormCheckRequest systemFormCheckRequest);
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -91,15 +90,14 @@ public class SystemAdminServiceImpl extends ServiceImpl<SystemAdminDao, SystemAd
|
|||||||
PageParamRequest pageRole = new PageParamRequest();
|
PageParamRequest pageRole = new PageParamRequest();
|
||||||
pageRole.setLimit(999);
|
pageRole.setLimit(999);
|
||||||
List<SystemRole> roleList = systemRoleService.getList(new SystemRoleSearchRequest(), pageRole);
|
List<SystemRole> roleList = systemRoleService.getList(new SystemRoleSearchRequest(), pageRole);
|
||||||
// for (SystemRole systemRole : roleList) {
|
|
||||||
for (SystemAdmin admin : systemAdmins) {
|
for (SystemAdmin admin : systemAdmins) {
|
||||||
SystemAdminResponse sar = new SystemAdminResponse();
|
SystemAdminResponse sar = new SystemAdminResponse();
|
||||||
BeanUtils.copyProperties(admin, sar);
|
BeanUtils.copyProperties(admin, sar);
|
||||||
if(StringUtils.isBlank(admin.getRoles())) break;
|
if(StringUtils.isBlank(admin.getRoles())) continue;
|
||||||
List<Integer> roleIds = CrmebUtil.stringToArrayInt(admin.getRoles());
|
List<Integer> roleIds = CrmebUtil.stringToArrayInt(admin.getRoles());
|
||||||
List<String> roleNames = new ArrayList<>();
|
List<String> roleNames = new ArrayList<>();
|
||||||
for (Integer roleId : roleIds) {
|
for (Integer roleId : roleIds) {
|
||||||
List<SystemRole> hasRoles = roleList.stream().filter(e -> e.getId() == roleId).collect(Collectors.toList());
|
List<SystemRole> hasRoles = roleList.stream().filter(e -> e.getId().equals(roleId)).collect(Collectors.toList());
|
||||||
if(hasRoles.size()> 0){
|
if(hasRoles.size()> 0){
|
||||||
roleNames.add(hasRoles.stream().map(SystemRole::getRoleName).collect(Collectors.joining(",")));
|
roleNames.add(hasRoles.stream().map(SystemRole::getRoleName).collect(Collectors.joining(",")));
|
||||||
}
|
}
|
||||||
@@ -107,7 +105,6 @@ public class SystemAdminServiceImpl extends ServiceImpl<SystemAdminDao, SystemAd
|
|||||||
sar.setRoleNames(StringUtils.join(roleNames,","));
|
sar.setRoleNames(StringUtils.join(roleNames,","));
|
||||||
systemAdminResponses.add(sar);
|
systemAdminResponses.add(sar);
|
||||||
}
|
}
|
||||||
// }
|
|
||||||
return systemAdminResponses;
|
return systemAdminResponses;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class SystemAttachmentServiceImpl extends ServiceImpl<SystemAttachmentDao
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void async() {
|
public void async() {
|
||||||
String uploadType = systemConfigService.getValueByKeyException("upload_type");
|
String uploadType = systemConfigService.getValueByKeyException("uploadType");
|
||||||
if(Integer.parseInt(uploadType) <= 1){
|
if(Integer.parseInt(uploadType) <= 1){
|
||||||
//本地存储
|
//本地存储
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -2,17 +2,16 @@ package com.zbkj.crmeb.system.service.impl;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.common.PageParamRequest;
|
import com.common.PageParamRequest;
|
||||||
import com.constants.Constants;
|
|
||||||
import com.exception.CrmebException;
|
import com.exception.CrmebException;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.zbkj.crmeb.system.model.SystemConfig;
|
|
||||||
import com.zbkj.crmeb.system.dao.SystemConfigDao;
|
import com.zbkj.crmeb.system.dao.SystemConfigDao;
|
||||||
|
import com.zbkj.crmeb.system.model.SystemConfig;
|
||||||
import com.zbkj.crmeb.system.request.SystemFormCheckRequest;
|
import com.zbkj.crmeb.system.request.SystemFormCheckRequest;
|
||||||
import com.zbkj.crmeb.system.request.SystemFormItemCheckRequest;
|
import com.zbkj.crmeb.system.request.SystemFormItemCheckRequest;
|
||||||
import com.zbkj.crmeb.system.service.SystemAttachmentService;
|
import com.zbkj.crmeb.system.service.SystemAttachmentService;
|
||||||
import com.zbkj.crmeb.system.service.SystemConfigService;
|
import com.zbkj.crmeb.system.service.SystemConfigService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import com.zbkj.crmeb.system.service.SystemFormTempService;
|
import com.zbkj.crmeb.system.service.SystemFormTempService;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -130,12 +129,28 @@ public class SystemConfigServiceImpl extends ServiceImpl<SystemConfigDao, System
|
|||||||
eq(SystemConfig::getName, name);
|
eq(SystemConfig::getName, name);
|
||||||
|
|
||||||
SystemConfig systemConfig = dao.selectOne(lambdaQueryWrapper);
|
SystemConfig systemConfig = dao.selectOne(lambdaQueryWrapper);
|
||||||
|
if(null == systemConfig){
|
||||||
|
throw new CrmebException("没有找到"+ name +"数据");
|
||||||
|
}
|
||||||
|
|
||||||
if(StringUtils.isBlank(systemConfig.getValue())){
|
if(StringUtils.isBlank(systemConfig.getValue())){
|
||||||
throw new CrmebException("配置项 " + systemConfig.getTitle() + " 没有配置, 请配置!");
|
throw new CrmebException("配置项 " + systemConfig.getTitle() + " 没有配置, 请配置!");
|
||||||
}
|
}
|
||||||
return systemConfig.getValue();
|
return systemConfig.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getValueByKeyNotStatus(String key) {
|
||||||
|
LambdaQueryWrapper<SystemConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.select(SystemConfig::getValue).eq(SystemConfig::getName, key);
|
||||||
|
|
||||||
|
SystemConfig systemConfig = dao.selectOne(lambdaQueryWrapper);
|
||||||
|
if(StringUtils.isBlank(systemConfig.getValue())){
|
||||||
|
systemConfig.setValue(null);
|
||||||
|
}
|
||||||
|
return systemConfig.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 整体保存表单数据
|
* 整体保存表单数据
|
||||||
* @param systemFormCheckRequest SystemFormCheckRequest 数据保存
|
* @param systemFormCheckRequest SystemFormCheckRequest 数据保存
|
||||||
@@ -151,11 +166,18 @@ public class SystemConfigServiceImpl extends ServiceImpl<SystemConfigDao, System
|
|||||||
//修改之前的数据
|
//修改之前的数据
|
||||||
updateStatusByFormId(systemFormCheckRequest.getId());
|
updateStatusByFormId(systemFormCheckRequest.getId());
|
||||||
List<SystemConfig> systemConfigList = new ArrayList<>();
|
List<SystemConfig> systemConfigList = new ArrayList<>();
|
||||||
|
|
||||||
//批量添加
|
//批量添加
|
||||||
for (SystemFormItemCheckRequest systemFormItemCheckRequest : systemFormCheckRequest.getFields()) {
|
for (SystemFormItemCheckRequest systemFormItemCheckRequest : systemFormCheckRequest.getFields()) {
|
||||||
SystemConfig systemConfig = new SystemConfig();
|
SystemConfig systemConfig = new SystemConfig();
|
||||||
systemConfig.setName(systemFormItemCheckRequest.getName());
|
systemConfig.setName(systemFormItemCheckRequest.getName());
|
||||||
systemConfig.setValue(systemAttachmentService.clearPrefix(systemFormItemCheckRequest.getValue()));
|
|
||||||
|
String value = systemAttachmentService.clearPrefix(systemFormItemCheckRequest.getValue());
|
||||||
|
if(StringUtils.isBlank(value)){
|
||||||
|
//去掉图片域名之后没有数据则说明当前数据就是图片域名
|
||||||
|
value = systemFormItemCheckRequest.getValue();
|
||||||
|
}
|
||||||
|
systemConfig.setValue(value);
|
||||||
systemConfig.setFormId(systemFormCheckRequest.getId());
|
systemConfig.setFormId(systemFormCheckRequest.getId());
|
||||||
systemConfig.setTitle(systemFormItemCheckRequest.getTitle());
|
systemConfig.setTitle(systemFormItemCheckRequest.getTitle());
|
||||||
systemConfigList.add(systemConfig);
|
systemConfigList.add(systemConfig);
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package com.zbkj.crmeb.task;
|
||||||
|
|
||||||
|
import com.utils.DateUtil;
|
||||||
|
import com.zbkj.crmeb.sms.model.SmsRecord;
|
||||||
|
import com.zbkj.crmeb.sms.service.SmsRecordService;
|
||||||
|
import com.zbkj.crmeb.sms.service.SmsService;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Classname AsyncSmsSendResult
|
||||||
|
* @Description 发送短信
|
||||||
|
* @Date 2020/8/18
|
||||||
|
* @Created by stivepeim
|
||||||
|
*/
|
||||||
|
//@Component
|
||||||
|
//@Configuration //读取配置
|
||||||
|
//@EnableScheduling // 2.开启定时任务
|
||||||
|
public class AsyncSmsSendResult {
|
||||||
|
// //日志
|
||||||
|
// private static final Logger logger = LoggerFactory.getLogger(AsyncSmsSendResult.class);
|
||||||
|
//
|
||||||
|
// @Autowired
|
||||||
|
// private SmsRecordService smsRecordsService;
|
||||||
|
//
|
||||||
|
// @Scheduled(fixedDelay = 1000 * 10L) // todo 后面更改为 一分钟同步一次数据
|
||||||
|
// public void init(){
|
||||||
|
// logger.info("---AsyncSmsResult task------produce Data with fixed rate task: Execution Time - {}", DateUtil.nowDate());
|
||||||
|
// try {
|
||||||
|
// smsRecordsService.consumeSmsStatus();
|
||||||
|
//
|
||||||
|
// }catch (Exception e){
|
||||||
|
// e.printStackTrace();
|
||||||
|
// logger.error("AsyncSmsSend.task" + " | msg : " + e.getMessage());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
}
|
||||||
@@ -89,6 +89,7 @@ public class AsyncServiceImpl implements AsyncService {
|
|||||||
setConf(type);
|
setConf(type);
|
||||||
cos(systemAttachmentList);
|
cos(systemAttachmentList);
|
||||||
default:
|
default:
|
||||||
|
pre = "local";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
@@ -97,14 +98,13 @@ public class AsyncServiceImpl implements AsyncService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setConf(Integer uploadType) {
|
private void setConf(Integer uploadType) {
|
||||||
|
|
||||||
// if(uploadType > 1){
|
|
||||||
cloudVo.setDomain(systemConfigService.getValueByKeyException(pre+"UploadUrl"));
|
cloudVo.setDomain(systemConfigService.getValueByKeyException(pre+"UploadUrl"));
|
||||||
|
if(uploadType > 1){
|
||||||
cloudVo.setAccessKey(systemConfigService.getValueByKeyException(pre+"AccessKey"));
|
cloudVo.setAccessKey(systemConfigService.getValueByKeyException(pre+"AccessKey"));
|
||||||
cloudVo.setSecretKey(systemConfigService.getValueByKeyException(pre+"SecretKey"));
|
cloudVo.setSecretKey(systemConfigService.getValueByKeyException(pre+"SecretKey"));
|
||||||
cloudVo.setBucketName(systemConfigService.getValueByKeyException(pre+"StorageName"));
|
cloudVo.setBucketName(systemConfigService.getValueByKeyException(pre+"StorageName"));
|
||||||
cloudVo.setRegion(systemConfigService.getValueByKeyException(pre+"StorageRegion"));
|
cloudVo.setRegion(systemConfigService.getValueByKeyException(pre+"StorageRegion"));
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -231,7 +231,7 @@ public class AsyncServiceImpl implements AsyncService {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return systemConfigService.getValueByKeyException(pre+"UploadUrl");
|
return systemConfigService.getValueByKeyNotStatus(pre+"UploadUrl");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,12 @@ public class User implements Serializable {
|
|||||||
@ApiModelProperty(value = "手机号码")
|
@ApiModelProperty(value = "手机号码")
|
||||||
private String phone;
|
private String phone;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "性别")
|
||||||
|
private int sex;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "国家")
|
||||||
|
private String country;
|
||||||
|
|
||||||
@ApiModelProperty(value = "添加ip")
|
@ApiModelProperty(value = "添加ip")
|
||||||
private String addIp;
|
private String addIp;
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class UserBill implements Serializable {
|
|||||||
private String mark;
|
private String mark;
|
||||||
|
|
||||||
@ApiModelProperty(value = "0 = 带确定 1 = 有效 -1 = 无效")
|
@ApiModelProperty(value = "0 = 带确定 1 = 有效 -1 = 无效")
|
||||||
private int status;
|
private Integer status;
|
||||||
|
|
||||||
@ApiModelProperty(value = "创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.zbkj.crmeb.wechat.response;
|
package com.zbkj.crmeb.user.request;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
|||||||
@@ -62,15 +62,9 @@ public class UserSearchRequest implements Serializable {
|
|||||||
@NotNull(message = "访问情况不能为空")
|
@NotNull(message = "访问情况不能为空")
|
||||||
private Integer accessType = 0;
|
private Integer accessType = 0;
|
||||||
|
|
||||||
@ApiModelProperty(value = "国家")
|
@ApiModelProperty(value = "国家,中国CN,其他OTHER")
|
||||||
private String country;
|
private String country;
|
||||||
|
|
||||||
@ApiModelProperty(value = "省份")
|
@ApiModelProperty(value = "性别,0未知,1男,2女,3保密")
|
||||||
private String province;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "城市")
|
|
||||||
private String city;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "性别")
|
|
||||||
private String sex;
|
private String sex;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,6 +52,12 @@ public class UserResponse {
|
|||||||
@ApiModelProperty(value = "用户头像")
|
@ApiModelProperty(value = "用户头像")
|
||||||
private String avatar;
|
private String avatar;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "性别")
|
||||||
|
private int sex;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "国家")
|
||||||
|
private String country;
|
||||||
|
|
||||||
@ApiModelProperty(value = "手机号码")
|
@ApiModelProperty(value = "手机号码")
|
||||||
private String phone;
|
private String phone;
|
||||||
|
|
||||||
@@ -112,7 +118,7 @@ public class UserResponse {
|
|||||||
@ApiModelProperty(value = "用户登陆类型,h5,wechat,routine")
|
@ApiModelProperty(value = "用户登陆类型,h5,wechat,routine")
|
||||||
private String loginType;
|
private String loginType;
|
||||||
|
|
||||||
@ApiModelProperty(value = "创建时间")
|
@ApiModelProperty(value = "更新时间")
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
|||||||
@@ -14,12 +14,12 @@ import com.zbkj.crmeb.front.response.UserSpreadPeopleItemResponse;
|
|||||||
import com.zbkj.crmeb.store.model.StoreOrder;
|
import com.zbkj.crmeb.store.model.StoreOrder;
|
||||||
import com.zbkj.crmeb.store.request.RetailShopStairUserRequest;
|
import com.zbkj.crmeb.store.request.RetailShopStairUserRequest;
|
||||||
import com.zbkj.crmeb.user.model.User;
|
import com.zbkj.crmeb.user.model.User;
|
||||||
|
import com.zbkj.crmeb.user.request.RegisterThirdUserRequest;
|
||||||
import com.zbkj.crmeb.user.request.UserOperateFundsRequest;
|
import com.zbkj.crmeb.user.request.UserOperateFundsRequest;
|
||||||
import com.zbkj.crmeb.user.request.UserOperateIntegralMoneyRequest;
|
import com.zbkj.crmeb.user.request.UserOperateIntegralMoneyRequest;
|
||||||
import com.zbkj.crmeb.user.request.UserSearchRequest;
|
import com.zbkj.crmeb.user.request.UserSearchRequest;
|
||||||
import com.zbkj.crmeb.user.response.TopDetail;
|
import com.zbkj.crmeb.user.response.TopDetail;
|
||||||
import com.zbkj.crmeb.user.response.UserResponse;
|
import com.zbkj.crmeb.user.response.UserResponse;
|
||||||
import com.zbkj.crmeb.wechat.response.RegisterThirdUserRequest;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -133,4 +133,8 @@ public interface UserService extends IService<User> {
|
|||||||
Integer getCountByPayCount(int minPayCount, int maxPayCount);
|
Integer getCountByPayCount(int minPayCount, int maxPayCount);
|
||||||
|
|
||||||
List<User> getUserByEntity(User user);
|
List<User> getUserByEntity(User user);
|
||||||
|
|
||||||
|
void consumeAfterUpdateUserFounds(Integer uid, BigDecimal price, String type);
|
||||||
|
|
||||||
|
void bindSpread(User user, Integer spreadPid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ import com.zbkj.crmeb.user.model.User;
|
|||||||
import com.zbkj.crmeb.user.model.UserBill;
|
import com.zbkj.crmeb.user.model.UserBill;
|
||||||
import com.zbkj.crmeb.user.model.UserLevel;
|
import com.zbkj.crmeb.user.model.UserLevel;
|
||||||
import com.zbkj.crmeb.user.model.UserSign;
|
import com.zbkj.crmeb.user.model.UserSign;
|
||||||
|
import com.zbkj.crmeb.user.request.RegisterThirdUserRequest;
|
||||||
import com.zbkj.crmeb.user.request.UserOperateFundsRequest;
|
import com.zbkj.crmeb.user.request.UserOperateFundsRequest;
|
||||||
import com.zbkj.crmeb.user.request.UserOperateIntegralMoneyRequest;
|
import com.zbkj.crmeb.user.request.UserOperateIntegralMoneyRequest;
|
||||||
import com.zbkj.crmeb.user.request.UserSearchRequest;
|
import com.zbkj.crmeb.user.request.UserSearchRequest;
|
||||||
@@ -48,7 +49,6 @@ import com.zbkj.crmeb.user.response.TopDetail;
|
|||||||
import com.zbkj.crmeb.user.response.UserResponse;
|
import com.zbkj.crmeb.user.response.UserResponse;
|
||||||
import com.zbkj.crmeb.user.service.*;
|
import com.zbkj.crmeb.user.service.*;
|
||||||
import com.zbkj.crmeb.user.vo.UserOperateFundsVo;
|
import com.zbkj.crmeb.user.vo.UserOperateFundsVo;
|
||||||
import com.zbkj.crmeb.wechat.response.RegisterThirdUserRequest;
|
|
||||||
import org.apache.commons.codec.digest.DigestUtils;
|
import org.apache.commons.codec.digest.DigestUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
@@ -143,11 +143,18 @@ public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserS
|
|||||||
lambdaQueryWrapper.eq(User::getUserType, request.getUserType());
|
lambdaQueryWrapper.eq(User::getUserType, request.getUserType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(StringUtils.isNotBlank(request.getSex())){
|
||||||
|
lambdaQueryWrapper.eq(User::getSex, request.getSex());
|
||||||
|
}
|
||||||
|
|
||||||
|
if(StringUtils.isNotBlank(request.getCountry())){
|
||||||
|
lambdaQueryWrapper.eq(User::getCountry, request.getCountry());
|
||||||
|
}
|
||||||
|
|
||||||
if(request.getStatus() != null){
|
if(request.getStatus() != null){
|
||||||
lambdaQueryWrapper.eq(User::getStatus, request.getStatus());
|
lambdaQueryWrapper.eq(User::getStatus, request.getStatus());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
dateLimitUtilVo dateLimit = DateUtil.getDateLimit(request.getData());
|
dateLimitUtilVo dateLimit = DateUtil.getDateLimit(request.getData());
|
||||||
|
|
||||||
if(!StringUtils.isBlank(dateLimit.getStartTime())){
|
if(!StringUtils.isBlank(dateLimit.getStartTime())){
|
||||||
@@ -427,6 +434,10 @@ public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserS
|
|||||||
//生成token
|
//生成token
|
||||||
LoginResponse loginResponse = new LoginResponse();
|
LoginResponse loginResponse = new LoginResponse();
|
||||||
loginResponse.setToken(token(user));
|
loginResponse.setToken(token(user));
|
||||||
|
|
||||||
|
//绑定推广关系
|
||||||
|
bindSpread(user, request.getSpread());
|
||||||
|
|
||||||
loginResponse.setUser(user);
|
loginResponse.setUser(user);
|
||||||
long time = Constants.TOKEN_EXPRESS_MINUTES * 60;
|
long time = Constants.TOKEN_EXPRESS_MINUTES * 60;
|
||||||
|
|
||||||
@@ -460,8 +471,8 @@ public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserS
|
|||||||
loginResponse.setToken(token(user));
|
loginResponse.setToken(token(user));
|
||||||
user.setPwd(null);
|
user.setPwd(null);
|
||||||
|
|
||||||
//TODO 看分销类型
|
//绑定推广关系
|
||||||
|
bindSpread(user, request.getSpreadPid());
|
||||||
|
|
||||||
loginResponse.setUser(user);
|
loginResponse.setUser(user);
|
||||||
|
|
||||||
@@ -801,7 +812,7 @@ public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserS
|
|||||||
tagIdValue = user.getTagId() + tagIdValue;
|
tagIdValue = user.getTagId() + tagIdValue;
|
||||||
}
|
}
|
||||||
//清除已经删除或者去掉的id
|
//清除已经删除或者去掉的id
|
||||||
tagIdValue = userGroupService.clean(tagIdValue);
|
tagIdValue = userTagService.clean(tagIdValue);
|
||||||
if(StringUtils.isBlank(tagIdValue)){
|
if(StringUtils.isBlank(tagIdValue)){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -980,7 +991,7 @@ public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserS
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Constants.USER_BILL_OPERATE_LOG_TITLE.replace("{title}", request.getTitle()).replace("{$operate}", operate).replace("{$founds}", founds);
|
return Constants.USER_BILL_OPERATE_LOG_TITLE.replace("{$title}", request.getTitle()).replace("{$operate}", operate).replace("{$founds}", founds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1162,6 +1173,8 @@ public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserS
|
|||||||
user.setNickname(thirdUserRequest.getNickName());
|
user.setNickname(thirdUserRequest.getNickName());
|
||||||
user.setAvatar(thirdUserRequest.getAvatar());
|
user.setAvatar(thirdUserRequest.getAvatar());
|
||||||
user.setSpreadUid(thirdUserRequest.getSpreadPid());
|
user.setSpreadUid(thirdUserRequest.getSpreadPid());
|
||||||
|
user.setSpreadTime(DateUtil.nowDateTime());
|
||||||
|
user.setSex(Integer.parseInt(thirdUserRequest.getSex()));
|
||||||
user.setAddres(thirdUserRequest.getCountry() + "," + thirdUserRequest.getProvince() + "," + thirdUserRequest.getCity());
|
user.setAddres(thirdUserRequest.getCountry() + "," + thirdUserRequest.getProvince() + "," + thirdUserRequest.getCity());
|
||||||
save(user);
|
save(user);
|
||||||
return user;
|
return user;
|
||||||
@@ -1394,4 +1407,64 @@ public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserS
|
|||||||
lambdaUpdateWrapper.setEntity(user);
|
lambdaUpdateWrapper.setEntity(user);
|
||||||
return userDao.selectList(lambdaUpdateWrapper);
|
return userDao.selectList(lambdaUpdateWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 消费金钱之后增加经验和积分
|
||||||
|
* @param uid Integer 用户id
|
||||||
|
* @param price BigDecimal 实际支付金额
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void consumeAfterUpdateUserFounds(Integer uid, BigDecimal price, String type) {
|
||||||
|
//赠送积分比例
|
||||||
|
String integralStr = systemConfigService.getValueByKey(Constants.CONFIG_KEY_INTEGRAL_RATE);
|
||||||
|
BigDecimal integral = new BigDecimal(integralStr);
|
||||||
|
|
||||||
|
//更新用户积分信息
|
||||||
|
UserOperateFundsRequest founds = new UserOperateFundsRequest();
|
||||||
|
founds.setFoundsType(type);
|
||||||
|
founds.setTitle(Constants.ORDER_LOG_MESSAGE_PAY_SUCCESS);
|
||||||
|
|
||||||
|
founds.setUid(uid);
|
||||||
|
founds.setFoundsCategory(Constants.USER_BILL_CATEGORY_INTEGRAL);
|
||||||
|
founds.setType(1);
|
||||||
|
|
||||||
|
//参考 CrmebUtil getRate说明
|
||||||
|
founds.setValue(integral.multiply(price).setScale(0, BigDecimal.ROUND_DOWN));
|
||||||
|
updateFounds(founds, true);
|
||||||
|
|
||||||
|
//更新用户经验信息
|
||||||
|
founds.setUid(uid);
|
||||||
|
founds.setFoundsCategory(Constants.USER_BILL_CATEGORY_EXPERIENCE);
|
||||||
|
founds.setType(1);
|
||||||
|
founds.setValue(price.setScale(0, BigDecimal.ROUND_DOWN));
|
||||||
|
updateFounds(founds, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定分销关系
|
||||||
|
* @param user User 用户user类
|
||||||
|
* @param spreadUid Integer 推广人id
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void bindSpread(User user, Integer spreadUid) {
|
||||||
|
//新用户会在注册的时候单独绑定,此处只处理登录用户
|
||||||
|
if(spreadUid == 0){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//如果当前用户没有绑定,并且后台配置人人分销,那么需要邦迪
|
||||||
|
if(user.getSpreadUid() > 0){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String distribution = systemConfigService.getValueByKey(Constants.CONFIG_KEY_DISTRIBUTION_TYPE);
|
||||||
|
|
||||||
|
//人人分销 + 当前已绑定的id和推广人id不一样
|
||||||
|
if(distribution.equals("0") && !user.getSpreadUid().equals(spreadUid)){
|
||||||
|
user.setSpreadUid(spreadUid);
|
||||||
|
user.setSpreadTime(DateUtil.nowDateTime());
|
||||||
|
}
|
||||||
|
updateById(user);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -384,6 +384,7 @@ public class UserSignServiceImpl extends ServiceImpl<UserSignDao, UserSign> impl
|
|||||||
public List<UserSign> getListByCondition(UserSign sign, PageParamRequest pageParamRequest) {
|
public List<UserSign> getListByCondition(UserSign sign, PageParamRequest pageParamRequest) {
|
||||||
LambdaQueryWrapper<UserSign> lqw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<UserSign> lqw = new LambdaQueryWrapper<>();
|
||||||
lqw.setEntity(sign);
|
lqw.setEntity(sign);
|
||||||
|
lqw.orderByDesc(UserSign::getCreateTime);
|
||||||
return dao.selectList(lqw);
|
return dao.selectList(lqw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
startTime=`date +'%Y-%m-%d %H:%M:%S'`
|
startTime=`date +'%Y-%m-%d %H:%M:%S'`
|
||||||
|
|
||||||
#接口项目站点路径(目录按照各自配置)
|
#接口项目站点路径(目录按照各自配置)
|
||||||
#APP_PATH=/www/wwwroot/api.java.crmeb.net/
|
APP_PATH=/www/wwwroot/api.java.crmeb.net/ #线上地址
|
||||||
APP_PATH=/Library/WebServer/Documents/zhongbang/java/crmeb
|
#APP_PATH=/Library/WebServer/Documents/zhongbang/java/crmeb #本地地址
|
||||||
|
|
||||||
#jar包文件名称
|
#jar包文件名称
|
||||||
APP_NAME=$APP_PATH/target/Crmeb.jar
|
APP_NAME=$APP_PATH/target/Crmeb.jar
|
||||||
|
|||||||
7835
crmeb_java_v1.0.sql
7835
crmeb_java_v1.0.sql
File diff suppressed because one or more lines are too long
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"domain":"https://api.java.crmeb.net"
|
"domain":"https://localhost:8080"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user