Merge remote-tracking branch 'origin/master'

This commit is contained in:
齐天大圣 2024-03-12 11:35:51 +08:00
commit aaf5ac2f90
23 changed files with 131 additions and 57 deletions

View File

@ -840,7 +840,8 @@ export default {
lookDetail(row){
this.opendetails = true
let data = {
id:row.id
id:row.id,
exchangeFrom:"消费有礼"
}
looklook(data).then(res=>{
if(res.data){

View File

@ -840,7 +840,8 @@ export default {
lookDetail(row){
this.opendetails = true
let data = {
id:row.id
id:row.id,
exchangeFrom:"新人有礼"
}
looklook(data).then(res=>{
this.looklist = res.data
@ -854,7 +855,7 @@ export default {
},
Deleteshan(row){
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除消费有礼活动编号为"' + ids + '"的数据项').then(function() {
this.$modal.confirm('是否确认删除此条新人有礼活动的信息').then(function() {
return delActiveNewlyweds(ids);
}).then(() => {
this.getList();

View File

@ -125,11 +125,15 @@
<!-- <span style="font-size: 20px">推荐有礼</span>-->
<!-- </div>-->
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="demo-ruleForm">
<el-form-item label="活动名称" prop="activeName">
<el-input v-model="ruleForm.activeName" placeholder="请输入活动名称" />
</el-form-item>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-position="left" class="demo-ruleForm" label-width="110px">
<el-row :gutter="20">
<el-col :span="20">
<el-form-item label="活动名称" prop="activeName">
<el-input style="width: 90%" v-model="ruleForm.activeName" placeholder="请输入活动名称" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="活动开始时间" prop="activeStartTime">
<el-date-picker clearable
@ -306,7 +310,7 @@
</el-form-item>
<!-- 新用户-->
<div class="xh-box" >
<div class="xh-box" style="margin-bottom: 20px" >
<div class="box-bt"> <div style="font-size: 16px;font-weight: bold" >新用户获得</div> <div><el-button type="primary" icon="el-icon-plus" @click="gethuodonglist()" >选择活动</el-button> </div> </div>
<div class="box-bt" style="margin-top: 15px" v-if="ruleForm.activeNewName">
<div style="font-size: 16px;font-weight: bold">活动名称{{ruleForm.activeNewName}} </div>
@ -619,7 +623,12 @@
import { listActiveRecommend, getActiveRecommend, delActiveRecommend, addActiveRecommend, updateActiveRecommend,listFavorable,listExchange } from "@/api/EventMarketing/activeRecommend";
import ImageUpload from '@/components/ImageUpload'
import {getToken} from "@/utils/auth";
import {getActiveNewlyweds, listActiveNewlyweds, updateActiveNewlyweds} from "@/api/EventMarketing/activeNewlyweds";
import {
delActiveNewlyweds,
getActiveNewlyweds,
listActiveNewlyweds,
updateActiveNewlyweds
} from "@/api/EventMarketing/activeNewlyweds";
import {looklook, looklooklook} from "@/api/EventMarketing/activeConsumption";
export default {
name: "ActiveRecommend",
@ -771,10 +780,10 @@ export default {
{ required: true, message: '必填项不能为空', trigger: 'blur' },
],
activeStartTime: [
{ type: 'date', required: true, message: '必填项不能为空', trigger: 'change' },
{ required: true, message: '必填项不能为空', trigger: 'change' },
],
activeEndTime: [
{ type: 'date', required: true, message: '必填项不能为空', trigger: 'change' },
{ required: true, message: '必填项不能为空', trigger: 'change' },
],
activeRule:[
{ required: true, message: '必填项不能为空', trigger: 'blur' },
@ -1044,7 +1053,8 @@ export default {
lookDetail(row){
this.opendetails = true
let data = {
id:row.id
id:row.id,
exchangeFrom:"推荐有礼"
}
looklook(data).then(res=>{
this.looklist = res.data
@ -1148,18 +1158,26 @@ export default {
});
},
handleDeletexia(row){
getActiveRecommend(row.id).then(response => {
// getActiveRecommend(row.id).then(response => {
//
// let data = response.data
// data.isonline = 1
// data.status = 2
// updateActiveRecommend(data).then(response => {
// this.$modal.msgSuccess("线");
//
// this.getactivelist()
// });
//
// });
let data = response.data
data.isonline = 1
data.status = 2
updateActiveRecommend(data).then(response => {
this.$modal.msgSuccess("下线成功");
this.$modal.confirm('是否确认下线此条推荐有礼活动的信息?').then(function() {
return updateActiveRecommend({id:row.id,isonline : 1,status : 2});
}).then(() => {
this.$modal.msgSuccess("下线成功");
this.getactivelist()
});
});
this.getactivelist()
}).catch(() => {});
},
/** 提交按钮 */
submitForm() {

View File

@ -123,7 +123,7 @@
</el-form-item>
<el-form-item label="不活跃用户" prop="days">
<div style="display: flex;align-items: center">
<el-input-number v-model="form.days" @blur="change(form.gradeIds)" :min="1" :max="999" label="描述文字"></el-input-number>
<el-input-number v-model="form.days" @blur="change(form.gradeIds)" @change="change(form.gradeIds)" :min="1" :max="999" label="描述文字"></el-input-number>
<div style="margin-left: 5px"> <span style="color: red">(查找最近N天未进行消费的用户)</span> </div>
</div>
</el-form-item>
@ -623,12 +623,13 @@ export default {
this.listUserGrade()
},
methods: {
lookDetail(row){
async lookDetail(row){
this.opendetails = true
let data = {
id:row.id
id:row.id,
exchangeFrom:"店铺一键送券!"
}
looklook(data).then(res=>{
await looklook(data).then(res=>{
if(res.data){
this.looklist = res.data
}
@ -636,7 +637,7 @@ export default {
console.log('详情',res)
})
looklooklook(row.id).then(resp=>{
await looklooklook(row.id).then(resp=>{
if( resp.data){
this.statisticsyou = resp.data
}

View File

@ -154,7 +154,7 @@
</el-table-column>
<el-table-column label="操作人" align="center" prop="staffId">
<template slot-scope="scope">
<span>{{ getRealName(staffList,scope.row.staffId) }}</span>
<span>{{ getRealName(staffList,scope.row.staffId) || "--" }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">

View File

@ -3,7 +3,7 @@
<mapper namespace="com.fuint.api.cashier.mapper.OilNumGunConfigMapper">
<sql id="selectOilNumGun">
select ong.*,onm.oil_name,onm.oil_price from oil_num_gun_config ong
inner join oil_number onm on ong.number_id = onm.number_id
left join oil_number onm on ong.number_id = onm.number_id
</sql>
<select id="selectOilNumGunList" resultType="com.fuint.api.cashier.vo.OilNumGunConfigVo">
<include refid="selectOilNumGun"></include>

View File

@ -3,7 +3,7 @@
<mapper namespace="com.fuint.api.fuyou.mapper.OilConfigMapper">
<sql id="selectOilConfig">
select oc.*,mc.mchnt_cd,mc.merchant_name,mc.remark from oil_config oc
inner join merchant_config mc on oc.merch_config_id = mc.id
left join merchant_config mc on oc.merch_config_id = mc.id
</sql>
<select id="selectOilConfigList" resultType="com.fuint.api.fuyou.vo.OilConfigVo">

View File

@ -3,7 +3,7 @@
<mapper namespace="com.fuint.business.convenienceSore.mapper.SaleDetailMapper">
<sql id="selectSaleDetail">
select sd.*,mg.name,mg.buying_price,mg.retail_price,mg.member_price from sale_detail sd
inner join mt_goods mg on sd.goods_id = mg.id
left join mt_goods mg on sd.goods_id = mg.id
</sql>
<select id="selectSaleDetailList" resultType="com.fuint.business.convenienceSore.vo.SaleDetailVo">

View File

@ -5,7 +5,7 @@
select st.id, mg.supplier_id, mg.cvs_good_id, st.goods_id, st.store_id, st.cost_amount, mg.status,
mg.name,mg.goods_no,mg.pinyin_code,mg.shelf_number,
mg.retail_price,mg.unit,mg.stock,mg.buying_price,mg.update_time
from stock_statistic st inner join mt_goods mg on st.goods_id = mg.id
from stock_statistic st left join mt_goods mg on st.goods_id = mg.id
</sql>
<select id="selectStockList" resultType="com.fuint.business.convenienceSore.vo.StockStatisticVo">

View File

@ -3,6 +3,7 @@ package com.fuint.business.marketingActivity.activeConsumption.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
@ -78,5 +79,8 @@ public class ActiveConsumption extends Model<ActiveConsumption> {
//更新时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
private Date updateTime;
//描述信息
@TableField(exist = false)
private String exchangeFrom;
}

View File

@ -46,6 +46,7 @@ public class ActiveConsumptionChildServiceImpl extends ServiceImpl<ActiveConsump
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
LambdaQueryWrapper<CardFavorableRecord> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CardFavorableRecord::getActiveId, activeConsumption.getId());
queryWrapper.eq(CardFavorableRecord::getExchangeFrom, activeConsumption.getExchangeFrom());
queryWrapper.eq(CardFavorableRecord::getStoreId, nowAccountInfo.getStoreId());
if (ObjectUtils.isNotEmpty(activeConsumption.getActiveStartTime()) && ObjectUtils.isNotEmpty(activeConsumption.getActiveEndTime())){
queryWrapper.between(CardFavorableRecord::getCreateTime, activeConsumption.getActiveStartTime(), activeConsumption.getActiveEndTime());

View File

@ -273,7 +273,8 @@ public class ActiveRecommendServiceImpl extends ServiceImpl<ActiveRecommendMappe
TAccount accountInfoById = accountService.getAccountInfoById(TokenUtil.getNowAccountInfo().getId());
if (ObjectUtil.isNotEmpty(accountInfoById)) activeRecommend.setCreateBy(accountInfoById.getRealName());
//柴油会员等级
activeRecommend.setInviterGiftType(arrayToString(activeRecommendDTO.getInviterGiftType()));
if (ObjectUtil.isNotEmpty(activeRecommendDTO.getInviterGiftType()))
activeRecommend.setInviterGiftType(arrayToString(activeRecommendDTO.getInviterGiftType()));
if (activeRecommendDTO.getStatus().equals("0")) activeRecommend.setIsonline("0");
if (activeRecommendDTO.getStatus().equals("2")) activeRecommend.setIsonline("1");

View File

@ -379,6 +379,7 @@ public class CardFavorableRecordServiceImpl extends ServiceImpl<CardFavorableRec
if (CollectionUtils.isNotEmpty(ljUserVosList)){
for (LJUserVo ljUserVo : ljUserVosList) {
LJUser userInfo = userService.queryUserByUserId(ljUserVo.getId());
cardFavorableRecord.setActiveId(activeId);
cardFavorableRecord.setCardFavorableId(cardId);
cardFavorableRecord.setStoreId(nowAccountInfo.getStoreId());
cardFavorableRecord.setChainStorId(nowAccountInfo.getChainStoreId());
@ -409,6 +410,7 @@ public class CardFavorableRecordServiceImpl extends ServiceImpl<CardFavorableRec
if (CollectionUtils.isNotEmpty(ljUserVosList)) {
for (LJUserVo ljUserVo : ljUserVosList) {
CardExchangeRecord cardExchangeRecord = new CardExchangeRecord();
cardExchangeRecord.setActiveId(activeId);
cardExchangeRecord.setCardExchangeId(exchangeCardId);
cardExchangeRecord.setStoreId(nowAccountInfo.getStoreId());
cardExchangeRecord.setMtUserId(ljUserVo.getId());

View File

@ -30,8 +30,8 @@
<select id="selectCashierOrderById" resultType="com.fuint.business.order.vo.CashierOrderVo"
parameterType="int">
select co.*,st.real_name,st.mobile from cashier_order co
inner join mt_staff st on co.staff_id = st.id
where co.id = #{id};
left join mt_staff st on co.staff_id = st.id
where co.id = #{id}
</select>

View File

@ -4,7 +4,7 @@
<sql id="selectOrderGoods">
select mog.id,mog.order_id,mog.goods_id as goods_id,mg.id as goodsId,mg.name,mog.retail_price,
mog.member_price,mog.num,mg.unit,mog.all_amount,mog.pay_amount
from mt_order_goods mog inner join mt_goods mg on mog.goods_id = mg.id
from mt_order_goods mog left join mt_goods mg on mog.goods_id = mg.id
</sql>
<select id="selectOrderGoods" resultType="com.fuint.business.order.vo.OrderGoodsVo">

View File

@ -279,7 +279,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
}
// 付款用户
String payUser = null;
if (map.get("payUser") != null && !map.get("payUser").equals("")){
if (ObjectUtil.isNotEmpty(map.get("payUser")) && !map.get("payUser").equals("[]")){
payUser = map.get("payUser");
}else {
payUser = "散客";

View File

@ -8,8 +8,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
csi.*,sd.leader_name,sd.leader_phone
FROM
chain_store_info csi
inner join sys_dept sd on sd.dept_id = csi.contract_dept_id
inner join mt_store ms on ms.chain_store_id = csi.id
left join sys_dept sd on sd.dept_id = csi.contract_dept_id
left join mt_store ms on ms.chain_store_id = csi.id
where (sd.ancestors like concat(#{ownDeptStr},'%') or csi.contract_dept_id = #{chainStoreInfo.contractDeptId})
and csi.status = 'qy'
and sd.if_delete = 0

View File

@ -5,8 +5,8 @@
select mu.*,mub.grade_id,mub.card_balance,mub.points,mub.consume_num,mub.growth_value,mub.refuel_money,
mub.second_card,mub.fixing_level,
mi.storeId,mi.staffId,mi.inviterId,mub.chain_store_id from mt_user mu
inner join mt_user_balance mub on mu.id = mub.mt_user_id
inner join mt_invitation mi on mu.id = mi.userId
left join mt_user_balance mub on mu.id = mub.mt_user_id
left join mt_invitation mi on mu.id = mi.userId
</sql>
<sql id="selectUserAndBalance">
select mu.*,mub.grade_id,mub.card_balance,mub.points,mub.consume_num,mub.growth_value,mub.refuel_money,
@ -232,7 +232,7 @@
<select id="selectUserByMobileAndChantStoreId" resultType="com.fuint.business.userManager.vo.LJUserVo">
select mu.*,mub.grade_id,mub.card_balance,mub.points,mub.consume_num,mub.growth_value,mub.refuel_money,
mub.second_card,mub.fixing_level,mub.chain_store_id from mt_user mu
inner join mt_user_balance mub on mu.id = mub.mt_user_id
left join mt_user_balance mub on mu.id = mub.mt_user_id
<where>
mu.mobile = #{mobile} and
mub.chain_store_id = #{chainStoreId}

View File

@ -793,7 +793,7 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
user.setOpenId(openId);
user.setMobile(mobile);
user.setName("("+mobile+")微信自动注册用户");
user.setName(""+mobile+")微信自动注册用户");
user.setCreateTime(new Date());
user.setUpdateTime(new Date());
user.setDescription("微信登录自动注册");
@ -806,6 +806,7 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
} else if (gender.equals(GenderEnum.UNKNOWN.getKey().toString())) {
gender = GenderEnum.FEMALE.getKey().toString();
}
BeanUtils.copyProperties(user,mtUser);
ljUserService.updateById(user);
}

View File

@ -2459,6 +2459,19 @@
// this.autofocus = false
this.dialogVisiblej = false
this.seekZero = 0
let mobile = this.member.mobile
getUserInfoMobile({mobile:mobile}).then( response => {
if (response.data){
this.member = response.data
if (response.data.refuelMoney){
this.refuelMoney = JSON.parse(response.data.refuelMoney)
}else {
this.refuelMoney = null
}
this.storeId = response.data.storeId
this.isSure = true
}
})
},
getOilNames(list,id){
let name = ""
@ -3905,6 +3918,7 @@
this.map.cardFavorableId = this.cardFavorableId
this.map.recordId = this.recordId
this.map.userId = this.member.id
this.map.payUser = this.member.mobile
let _this = this;
if (this.payType=="APPLET_CODE"){

View File

@ -165,7 +165,7 @@
</el-table-column>
<el-table-column label="操作人" align="center" prop="staffId">
<template slot-scope="scope">
<span>{{ getRealName(staffList,scope.row.staffId) }}</span>
<span>{{ getRealName(staffList,scope.row.staffId) || '--' }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="240" class-name="small-padding fixed-width">

View File

@ -215,6 +215,9 @@
if (query.userId) {
uni.setStorageSync("y_userId", query.userId)
}
uni.showToast({
title:"storeId"+uni.getStorageSync("storeId")+"y_type:"+uni.getStorageSync("y_type")+"y_userId"+uni.getStorageSync("y_userId")
})
if (uni.getStorageSync("appltType") == "WECHAT") {
const q = decodeURIComponent(query.q) //
if (query.q) {

View File

@ -89,19 +89,26 @@
</view>
<!-- 囤油充值 -->
<view class="boxback" v-if="actinput == 1">
<view class="box-cz">
<view class="box-jg" :class="{ 'actbox' : actindex == index }" v-for="(item,index) in cardFuleList"
<swiper class="swiper" style="width: 100%;height: 70px;" circular
:autoplay="autoplay" :interval="interval" :vertical="true" :duration="duration">
<swiper-item class="conttainer-box" v-for="(item,index) in cardList" :key="index">
<view class="box_s">
{{item.discountActiveDescribe || ''}}
</view>
</swiper-item>
</swiper>
<view class="box-cz" style="margin-top: 20px;">
<view :class="{ 'actbox' : actindex == index }" v-for="(item,index) in cardFuleList"
style="display: flex;justify-content: space-around;width: 98%;border-radius: 8px;border: 1px solid #e2e2e2;
box-sizing: border-box;padding: 10px;margin: 5px;height: 60px;line-height: 18px;"
:key="index" @click="fuleindex(index,item.rechargeBalance,item.points,item.id)">
<view class="s-title" :class="{ 'actsize' : actindex == index }">油品:{{item.type}}
</view>
<view class="s-title" :class="{ 'actsize' : actindex == index }">油号:{{item.oilType}}
</view>
<view class="min-size" :class="{ 'actsize' : actindex == index }">单价<text
style="font-weight: bold;"></text>{{item.incomeLitres}}/</view>
<view class="min-size" :class="{ 'actsize' : actindex == index }">总价{{item.rechargeBalance}}
</view>
<view class="min-size" :class="{ 'actsize' : actindex == index }">升数:{{item.incomeLitres}}L
</view>
<view style="font-size: 16px;font-weight: bold;line-height: 40px;" :class="{ 'actsize' : actindex == index }">{{item.oilType}}</view>
<!-- <view style="font-size: 12px;font-weight: bold;margin: 0 5px;" :class="{ 'actsize' : actindex == index }">:</view> -->
<view class="min-size1" :class="{ 'actsize' : actindex == index }"><view>国标油价</view><view>{{item.gbPrice}}/L</view></view>
<view class="min-size1" :class="{ 'actsize' : actindex == index }"><view>本站油价</view><view>{{item.oilPrice}}/L</view></view>
<view class="min-size1" :class="{ 'actsize' : actindex == index }"><view>锁价</view><view>{{item.lockupPrice}}/L</view></view>
<view class="min-size1" :class="{ 'actsize' : actindex == index }"><view>总升数</view><view>{{item.incomeLitres || 0}}L</view></view>
<view class="min-size1" style="color: red;" :class="{ 'actsize' : actindex == index }"><view>总价</view><view>{{item.rechargeBalance}}</view></view>
</view>
</view>
<view class="box-hui">
@ -230,6 +237,7 @@
shuomingFList: [],
columns: [],
actList: [],
cardList: [],
autoplay: true,
interval: 3000,
duration: 500,
@ -261,16 +269,17 @@
console.log('11111111111111', this.cardRecordId);
if (option.id == 0) {
this.getValueCars();
this.activen()
}
if (option.id == 1) {
console.log("囤油");
this.getFuelCars();
this.getFuelCarList()
}
},
onShow() {
this.getStaffList()
this.activen()
},
methods: {
@ -625,6 +634,18 @@
}
})
},
//
getFuelCarList() {
request({
url: 'business/marketingActivity/cardFuelDiesel/appletList?storeId='+uni.getStorageSync("storeId"),
method: 'get',
}).then(res => {
if (res.code == 200) {
console.log(res,111);
this.cardList = res.data
}
})
},
//
exchangeGift() {
request({
@ -822,6 +843,12 @@
//color: #e2e2e2;
text-align: center;
}
.min-size1 {
font-size: 12px;
//color: #e2e2e2;
text-align: center;
margin: 0 5px;
}
.actbox {
border: 1px solid #1678ff;