This commit is contained in:
wangh 2023-11-30 14:28:18 +08:00
commit ca0c13a07c
19 changed files with 242 additions and 65 deletions

View File

@ -8,7 +8,7 @@ export function ljStoreInfo() {
})
}
// 查询店铺详细
// 查询所有店铺信息
export function ljStoreList() {
return request({
url: '/business/storeInformation/store/list',
@ -16,6 +16,14 @@ export function ljStoreList() {
})
}
// 根据连锁店id查询店铺信息
export function storesList() {
return request({
url: '/business/storeInformation/store/stores',
method: 'get'
})
}
// 修改店铺信息
export function updateStore(data) {
return request({

View File

@ -311,7 +311,7 @@
placeholder="会员等级"
style="width: 300px"
>
<el-option v-for="grade in userGradeList" :key="grade.id+''" :label="grade.name" :value="grade.id+''"/>
<el-option v-for="grade in userGradeList" :key="grade.id+''" :label="grade.name" :value="grade.id"/>
</el-select>
</el-form-item>
</el-col>
@ -334,7 +334,7 @@
<el-row>
<el-col :span="24">
<el-form-item label="会员初始积分" prop="points">
<el-input v-model="form.points" placeholder="请输入会员初始积分" maxlength="30"/>
<el-input :disabled="title == '编辑会员'" v-model="form.points" placeholder="请输入会员初始积分" maxlength="30"/>
</el-form-item>
</el-col>
</el-row>
@ -348,7 +348,7 @@
<el-row>
<el-col :span="24">
<el-form-item label="储值通用余额" prop="cardBalance">
<el-input v-model="form.cardBalance" placeholder="请输入储值卡初始余额" maxlength="30"/>
<el-input :disabled="title == '编辑会员'" v-model="form.cardBalance" placeholder="请输入储值卡初始余额" maxlength="30"/>
</el-form-item>
</el-col>
</el-row>
@ -390,7 +390,7 @@
</el-dialog>
<!-- 批量录入会员信息-->
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="openUpload" append-to-body>
<el-dialog :title="title" :visible.sync="openUpload" append-to-body>
<div style="height: 60px;line-height: 30px">
<div> 第一步: 下载示例模板,按照模板填写会员数据,手机号为必填项 </div>
<a style="margin-left: 50px;color: #00afff"
@ -454,7 +454,7 @@ import {
updateUser
} from "@/api/staff/user/user";
import {allUserGrade, listUserGrade} from "@/api/staff/user/usergrade";
import {ljStoreList} from "@/api/staff/store";
import {ljStoreList, storesList} from "@/api/staff/store";
import {getSysConfig} from "@/api/staff/user/sysconfig";
import { getToken } from "@/utils/auth";
import {paymentApi} from "@/api/payment/fypay";
@ -608,7 +608,7 @@ export default {
listUserGrade({page:1,pageSize:20}).then( response => {
this.userGradeList = response.data.records;
});
ljStoreList().then( response => {
storesList().then( response => {
this.storeList = response.data
});
},

View File

@ -25,14 +25,16 @@
<el-descriptions-item label="手机号">{{form.mobile}}
<el-tag size="mini" @click="replaceMobile">更换</el-tag>
</el-descriptions-item>
<el-descriptions-item label="会员昵称">{{form.name}}</el-descriptions-item>
<el-descriptions-item label="实体卡号">{{form.idcard}}</el-descriptions-item>
<el-descriptions-item label="绑定信息"></el-descriptions-item>
<el-descriptions-item label="会员昵称">
<span style="color: #00afff" @click="changeName">{{form.name ? form.name : "--"}}</span>
</el-descriptions-item>
<el-descriptions-item label="实体卡号">{{form.idcard ? form.idcard : "--"}}</el-descriptions-item>
<el-descriptions-item label="绑定信息">--</el-descriptions-item>
<el-descriptions-item label="会员状态">
<dict-tag :options="dict.type.zhzt" :value="form.status"/>
</el-descriptions-item>
<el-descriptions-item label="加油次数">{{form.consumeNum}}</el-descriptions-item>
<el-descriptions-item label="加油总金额">{{form.refuelMoney}}</el-descriptions-item>
<el-descriptions-item label="加油总金额">{{form.refuelMoney ? form.refuelMoney : "--"}}</el-descriptions-item>
<el-descriptions-item label="所属油站">{{ store.name }}</el-descriptions-item>
<el-descriptions-item label="注册时间">{{form.createTime}}</el-descriptions-item>
<el-descriptions-item label="关联副卡">
@ -41,7 +43,7 @@
<el-descriptions-item label="会员等级">
{{ grade.name }}
</el-descriptions-item>
<el-descriptions-item label="储值优惠"></el-descriptions-item>
<el-descriptions-item label="储值优惠">--</el-descriptions-item>
<el-descriptions-item label="每日笔数">
<span style="color: #00afff" @click="configuration">跟随全局总配置</span>
</el-descriptions-item>
@ -49,7 +51,7 @@
<span style="color: #00afff" @click="level">
<dict-tag :options="dict.type.zcrzdj" :value="form.fixingLevel"/></span>
</el-descriptions-item>
<el-descriptions-item label="备注信息">{{ form.description }}</el-descriptions-item>
<el-descriptions-item label="备注信息">{{ form.description ? form.description : "--" }}</el-descriptions-item>
</el-descriptions>
</div>
</div>
@ -65,7 +67,7 @@
<div class="sta">
<el-statistic
group-separator=","
:value="form.point"
:value="form.points"
title="累计积分"
></el-statistic>
</div>
@ -74,8 +76,8 @@
<div class="sta">
<el-statistic
group-separator=","
:value="form.refuelMoney"
title="加油金">
:value="form.growthValue"
title="成长值">
</el-statistic>
</div>
</el-col>
@ -84,7 +86,7 @@
<el-statistic
group-separator=","
:precision="2"
:value="form.balance"
:value="form.cardBalance"
title="账户余额"
></el-statistic>
</div>
@ -94,9 +96,11 @@
<el-statistic
group-separator=","
:precision="2"
:value="form.literCard"
title="升数卡余额"
></el-statistic>
:value="form.refuelMoney"
title="囤油卡余额"
>
<!-- <span></span>-->
</el-statistic>
</div>
</el-col>
</el-row>
@ -511,12 +515,14 @@
</el-tabs>
</template>
</el-dialog>
<!-- 选择员工-->
<el-dialog :close-on-click-modal="false" width="50%" height="50%" title="选择员工" :visible.sync="openStaff" append-to-body>
<select-staff @send-data="handleDataFromChild">
</select-staff>
</el-dialog>
<!-- 确认充值-->
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="openConfirm" width="500px" append-to-body>
<div v-if="isPay"
@ -589,7 +595,24 @@
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
<el-button @click="openMobile = false"> </el-button>
</div>
</el-dialog>
<!-- 更换用户昵称对话框-->
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="openName" style="margin-top: 200px" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="会员昵称" prop="name" style="width: 420px">
<el-input v-model="form.name" type="textarea" placeholder="请输入会员昵称" maxlength="30" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="openName = false"> </el-button>
</div>
</el-dialog>
@ -656,7 +679,7 @@
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
<el-button @click="openBindIdCard = false"> </el-button>
</div>
</el-dialog>
@ -771,7 +794,7 @@
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
<el-button @click="openConfig = false"> </el-button>
</div>
</el-dialog>
@ -799,7 +822,7 @@
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
<el-button @click="openLevel = false"> </el-button>
</div>
</el-dialog>
@ -873,14 +896,12 @@ export default {
realyPayBills:0,
oilTypeList: {},
isPay:true,
isPaySuccess:false,
isQuery:true,
payList:[],
//
literCard:[
@ -907,6 +928,7 @@ export default {
title:'',
//
openMobile: false,
openName: false,
openRecharge: false,
openSecondCard:false,
openBindIdCard:false,
@ -949,6 +971,7 @@ export default {
//
rules: {
mobile: [{ required: true, message: "请输入手机号", trigger: "blur" }],
name: [{ required: true, message: "请输入会员昵称,内容不可为空", trigger: "blur" }],
type: [{ required: true, message: "请选择操作类型", trigger: "blur" }],
fixingLevel: [{ required: true, message: "请选择认证信息", trigger: "blur" }],
}
@ -974,6 +997,11 @@ export default {
this.openMobile = true;
this.title = '更换手机号'
},
//
changeName(){
this.openName = true;
this.title = '会员昵称'
},
//
secondCard(){
this.openSecondCard = true;
@ -1162,7 +1190,6 @@ export default {
confirm(flag){
this.flag = flag
if (flag ===1) {
if (this.cardValueForm.paymentType == '') {
this.$message.error('请选择支付方式');
@ -1452,6 +1479,7 @@ export default {
updateUser(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.openMobile = false;
this.openName = false;
this.openConfig = false;
this.openLevel = false;
this.openBindIdCard = false;
@ -1468,10 +1496,6 @@ export default {
},
//
cancel() {
this.openMobile = false;
this.openConfig = false;
this.openLevel = false;
this.openBindIdCard = false;
this.openRecharge = false;
this.isPay = true;

View File

@ -0,0 +1,15 @@
<template>
<div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,15 @@
<template>
<div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,15 @@
<template>
<div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,15 @@
<template>
<div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,15 @@
<template>
<div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,15 @@
<template>
<div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,15 @@
<template>
<div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -451,6 +451,9 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
Double beforeBalance = balance.getCardBalance();
Double afterBalance = beforeBalance - amount;
balance.setCardBalance(afterBalance);
// 修改加油次数
Integer consumeNum = balance.getConsumeNum();
balance.setConsumeNum(consumeNum+1);
userBalanceService.updateUserBalance(balance);
// 添加余额记录信息
CardBalanceChange cardBalanceChange = new CardBalanceChange();

View File

@ -38,6 +38,16 @@ public class LJStoreController extends BaseController {
return getSuccessResult(list);
}
/**
* 根据连锁店id查询所有门店信息
* @return
*/
@GetMapping("/stores")
public ResponseObject stores(){
List<LJStore> list = storeService.selectStoreByChainStoreId();
return getSuccessResult(list);
}
/**
* 修改门店信息
* @param store

View File

@ -41,6 +41,12 @@ public interface ILJStoreService extends IService<LJStore> {
*/
public List<LJStore> selectStoreList();
/**
* 根据连锁店id查询店铺信息
* @return
*/
public List<LJStore> selectStoreByChainStoreId();
/**
* 修改店铺信息
* @param store 店铺信息

View File

@ -1,5 +1,6 @@
package com.fuint.business.storeInformation.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuint.business.storeInformation.entity.LJStore;
import com.fuint.business.storeInformation.mapper.LJStoreMapper;
@ -7,6 +8,7 @@ import com.fuint.business.storeInformation.service.ILJStoreService;
import com.fuint.common.dto.AccountInfo;
import com.fuint.common.util.StringUtils;
import com.fuint.common.util.TokenUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@ -123,6 +125,17 @@ public class LJStoreServiceImpl extends ServiceImpl<LJStoreMapper, LJStore> impl
return baseMapper.selectList(null);
}
@Override
public List<LJStore> selectStoreByChainStoreId() {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
LJStore store = this.selectStoreByStoreId(nowAccountInfo.getStoreId());
Integer chainStoreId = store.getChainStoreId();
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("chain_store_id",chainStoreId);
List<LJStore> list = baseMapper.selectList(queryWrapper);
return list;
}
/**
* 修改店铺信息
* @param store 店铺信息

View File

@ -44,11 +44,11 @@ public interface LJUserMapper extends BaseMapper<LJUser> {
/**
* 统计信息
* @param storeId
* @param chainStoreId
* @param sumValue
* @return
*/
public Double selectSumByStore(@Param("storeId") int storeId,@Param("sumValue") String sumValue);
public Double selectSumByStore(@Param("chainStoreId") int chainStoreId,@Param("sumValue") String sumValue);
LJUserVo selectAllInfoById(@Param("userId") Integer userId);

View File

@ -2,20 +2,23 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fuint.business.userManager.mapper.LJUserMapper">
<sql id="selectUser">
select mu.*,mub.card_balance,mub.points,mub.growth_value,mub.refuel_money,mub.grade_id,mub.consume_num,
mub.second_card,mub.fixing_level
from mt_user mu
left join mt_user_balance mub on mu.id = mub.mt_user_id
select mu.*,mub.grade_id,mub.card_balance,mub.points,mub.consume_num,mub.growth_value,mub.second_card,mub.fixing_level,
mi.storeId,mi.staffId,mi.inviterId,mi.chain_store_id from mt_user mu
left join mt_user_balance mub on mu.id = mub.mt_user_id
left join mt_invitation mi on mu.id = mi.userId
</sql>
<select id="selectUserList" resultType="com.fuint.business.userManager.vo.LJUserVo">
<include refid="selectUser"></include>
<where>
<if test="user.chainStoreId != null and user.chainStoreId != ''">
and mi.chain_store_id = #{user.chainStoreId}
</if>
<if test="user.storeId != null and user.storeId != ''">
and mu.store_id = #{user.storeId}
and mi.storeId = #{user.storeId}
</if>
<if test="user.storeId == 0">
and mu.store_id = #{user.storeId}
and mi.storeId = #{user.storeId}
</if>
<if test="user.mobile != null and user.mobile != ''">
and mu.mobile like concat('%', #{user.mobile}, '%')
@ -48,7 +51,7 @@
</select>
<!-- 查询会员统计信息-->
<select id="selectSumByStore" resultType="java.lang.Double" parameterType="int">
select sum(${sumValue}) from mt_user_balance where store_id = #{storeId}
select sum(${sumValue}) from mt_user_balance where chain_store_id = #{chainStoreId}
</select>
<!-- 根据手机号查询会员信息-->
<select id="selectUserByMobile" resultType="com.fuint.business.userManager.vo.LJUserVo"

View File

@ -33,6 +33,8 @@ public class LJUserServiceImpl extends ServiceImpl<LJUserMapper, LJUser> impleme
private CertifiedMemberMapper certifiedMemberMapper;
@Autowired
private UserBalanceService balanceService;
@Autowired
private ILJStoreService storeService;
/**
* 根据条件分页查询会员信息
@ -72,8 +74,10 @@ public class LJUserServiceImpl extends ServiceImpl<LJUserMapper, LJUser> impleme
Map<String ,Object> map = new HashMap<>();
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
Integer storeId = nowAccountInfo.getStoreId();
Double balance = baseMapper.selectSumByStore(storeId, "card_balance");
Double point = baseMapper.selectSumByStore(storeId, "points");
LJStore store = storeService.selectStoreByStoreId(storeId);
Integer chainStoreId = store.getChainStoreId();
Double balance = baseMapper.selectSumByStore(chainStoreId, "card_balance");
Double point = baseMapper.selectSumByStore(chainStoreId, "points");
// Double literCard = baseMapper.selectSumByStore(storeId, "liter_card");
// Double refuelMoney = baseMapper.selectSumByStore(storeId, "refuel_money");
@ -149,8 +153,6 @@ public class LJUserServiceImpl extends ServiceImpl<LJUserMapper, LJUser> impleme
balanceService.deleteUserBalanceByUserId(id);
}
@Autowired
private ILJStoreService storeService;
@Autowired
private MtInvitationMapper invitationMapper;
@Autowired
@ -243,6 +245,7 @@ public class LJUserServiceImpl extends ServiceImpl<LJUserMapper, LJUser> impleme
invitation.setStoreId(storeId);
invitation.setStaffId(nowAccountInfo.getStaffId());
invitation.setChainStoreId(chainStoreId);
invitation.setStatus("qy");
invitationMapper.insert(invitation);
return row;
}
@ -255,9 +258,11 @@ public class LJUserServiceImpl extends ServiceImpl<LJUserMapper, LJUser> impleme
@Override
public int updateUser(LJUserVo userVo) {
LJUser user = new LJUser();
user.setId(userVo.getId());
user.setUserNo(userVo.getUserNo());
user.setAvatar(userVo.getAvatar());
user.setName(userVo.getName());
user.setPhysicalCard(userVo.getPhysicalCard());
user.setOpenId(userVo.getOpenId());
user.setMobile(userVo.getMobile());
user.setIdcard(userVo.getIdcard());

View File

@ -43,27 +43,10 @@ public class LJUserVo extends BaseEntity {
@ExcelProperty(value = "证件号码")
private String idcard;
// 等级ID
private Integer gradeId;
// 性别 1男,0女
@ExcelProperty(value = "性别",converter = GenderConverter.class)
private Integer sex;
// 储值卡
@ExcelProperty(value = "储值卡余额")
private Double cardBalance;
// 积分
@ExcelProperty(value = "积分余额")
private Integer points;
// 成长值
private Integer growthValue;
// 油量
private String refuelMoney;
// 出生日期
private String birthday;
@ -84,6 +67,23 @@ public class LJUserVo extends BaseEntity {
// 公众号
private String official;
// 等级ID
private Integer gradeId;
// 储值卡
@ExcelProperty(value = "储值卡余额")
private Double cardBalance;
// 积分
@ExcelProperty(value = "积分余额")
private Integer points;
// 成长值
private Integer growthValue;
// 油量
private String refuelMoney;
// 加油次数
private Integer consumeNum;
@ -95,17 +95,17 @@ public class LJUserVo extends BaseEntity {
private String fixingLevel;
/**
* 店铺id
* 店铺Id
*/
private Integer storeId;
/**
* 员工id
*/
private Integer staffid;
private Integer staffId;
/**
* 邀请人id
*/
private Integer inviterid;
private Integer inviterId;
/**
* 连锁店id
*/

View File

@ -153,7 +153,7 @@
<!-- &lt;!&ndash;关联会员对话框 end&ndash;&gt;-->
<!-- &lt;!&ndash;结算对话框 start&ndash;&gt;-->
<!-- <settlementDialog :show-dialog="openSettlementDialog" :memberInfo="memberInfo" :totalPrice="cartTotalPrice" :remarks="cartRemark" :orderInfo="orderInfo" :couponList="couponList" @submit="submitSettlement" @switchMember="switchMember" @closeDialog="closeDialog"/>-->
<!-- <settlementDialog :show-dialog="openSettlementDialog" :memberInfo="memberInfo" :totalPrice="cartTotalPrice" :remarks="cartRemark" :orderInfo="orderInfo" :couponList.vue="couponList.vue" @submit="submitSettlement" @switchMember="switchMember" @closeDialog="closeDialog"/>-->
<!-- &lt;!&ndash;结算对话框 end&ndash;&gt;-->
<!-- &lt;!&ndash;扫码付款对话框 start&ndash;&gt;-->