Compare commits

..

No commits in common. "8cfba0d8566dafa58a0a094066dabbf15a07d799" and "c3a72e424535647c7e50380759552dd5957d25e0" have entirely different histories.

10 changed files with 299 additions and 401 deletions

View File

@ -37,8 +37,8 @@ public class TenantContextHolder {
public static Long getRequiredTenantId() {
Long tenantId = getTenantId();
if (tenantId == null) {
throw new NullPointerException("商户id不存在"
);
throw new NullPointerException("TenantContextHolder 不存在租户编号!可参考文档:"
+ DocumentEnum.TENANT.getUrl());
}
return tenantId;
}

View File

@ -87,9 +87,12 @@ public class PhoneRecordServiceImpl implements PhoneRecordService {
@TenantIgnore
@Transactional
public Boolean deletePhoneGearByOrderId(Long orderId) {
log.info("-------------------------orderId{}",orderId);
List<PhoneRecordDO> recordDOS = phoneRecordMapper.selectList(Wrappers.<PhoneRecordDO>lambdaQuery().eq(PhoneRecordDO::getRechargeOrderId, orderId));
log.info("-------------------------recordDOS{},{}",recordDOS,recordDOS.size());
if (!CollectionUtils.isEmpty(recordDOS)) {
Set<Long> ids = recordDOS.stream().map(PhoneRecordDO::getId).collect(Collectors.toSet());
log.info("-------------------------ids{}",ids);
phoneRecordMapper.deleteBatchIds(ids);
}
return null;

View File

@ -14,7 +14,7 @@
FROM
eb_shipping_templates_free
where
temp_id = #{tempId, jdbcType=INTEGER} AND `status` = 1
temp_id = #{tempId, jdbcType=INTEGER}
GROUP BY
`uniqid`
ORDER BY id ASC

View File

@ -14,7 +14,7 @@
FROM
eb_shipping_templates_region
where
temp_id = #{tempId, jdbcType=INTEGER} AND `status` = 1
temp_id = #{tempId, jdbcType=INTEGER}
GROUP BY
`uniqid`
ORDER BY id ASC

View File

@ -5,7 +5,6 @@ import cn.hutool.core.util.IdUtil;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
import cn.iocoder.yudao.module.infra.api.file.FileApi;
import cn.iocoder.yudao.module.member.controller.admin.user.dto.AdminUserQueryDTO;
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO;
@ -105,7 +104,6 @@ public class MemberUserServiceImpl implements MemberUserService {
user.setPassword(encodePassword("123456")); // 加密密码
user.setRegisterIp(registerIp);
user.setPromoterId(promoterId);
user.setTenantId(TenantContextHolder.getRequiredTenantId());
memberUserMapper.insert(user);
return user;
}

View File

@ -58,7 +58,7 @@
<el-input v-model="form.title" placeholder="请输入标题"/>
</el-form-item>
<el-form-item label="缩略图" prop="picUrl">
<imageUpload v-model="form.picUrl" :limit="1"/>
<imageUpload v-model="form.picUrl" :limit="5"/>
</el-form-item>
<el-form-item label="跳转链接" prop="url">
<el-input v-model="form.url" placeholder="请输入跳转链接"/>

View File

@ -65,10 +65,10 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
<!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['member:user:update']">查看</el-button>-->
<!-- <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['member:user:delete']">删除</el-button>-->
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['member:user:update']">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['member:user:delete']">删除</el-button>
</template>
</el-table-column>
</el-table>

View File

@ -15,11 +15,6 @@
"style": {
"navigationBarTitleText": "会员"
}
},{
"path": "pages/notice/index",
"style": {
"navigationBarTitleText": "公告详情"
}
},
{
"path": "pages/member_detail/index",

View File

@ -4,24 +4,14 @@
<view class="header_top">
<view class="content">
<view class="left">
<u--image class="image" :src="tenant.logo" width="160rpx" height="160rpx" shape="circle">
</u--image>
<u--image class="image" :src="tenant.logo" width="160rpx" height="160rpx" shape="circle"></u--image>
</view>
<view class="center">
<view class="top">{{tenant.name}}</view>
<view class="text">
<view class="detail">
<u-icon style="display: inline-block;line-height: 28rpx;" name="file-text-fill"
color="#fff" size="28rpx"></u-icon>:{{tenant.introduction}}
</view>
<view class="detail">
<u-icon style="display: inline-block;line-height: 28rpx;" name="phone" color="#fff"
size="28rpx"></u-icon>:{{tenant.serviceMobile}}
</view>
<view class="detail">
<u-icon style="display: inline-block;line-height: 28rpx;" name="clock" color="#fff"
size="28rpx"></u-icon>:{{tenant.serviceTime}}
</view>
<view class="detail"><u-icon style="display: inline-block;line-height: 28rpx;" name="file-text-fill" color="#fff" size="28rpx"></u-icon>:{{tenant.introduction}}</view>
<view class="detail"><u-icon style="display: inline-block;line-height: 28rpx;" name="phone" color="#fff" size="28rpx"></u-icon>:{{tenant.serviceMobile}}</view>
<view class="detail"><u-icon style="display: inline-block;line-height: 28rpx;" name="clock" color="#fff" size="28rpx"></u-icon>:{{tenant.serviceTime}}</view>
</view>
</view>
<view class="right">
@ -39,7 +29,7 @@
</navigator>
</view>
</view>
<view class="notice" @tap="goNoticeDetail">
<view class="notice">
<u-notice-bar :text="text" fontSize="26rpx" color="#000" bgColor="transparent"></u-notice-bar>
</view>
<view class="hot">
@ -55,7 +45,11 @@
</view>
<view class="input">
<u--input placeholder="请输入内容" v-model="value"></u--input>
<u--input
placeholder="请输入内容"
v-model="value"
@change="change"
></u--input>
</view>
<view class="button" @tap="searchSubmitValue">
搜索
@ -79,18 +73,16 @@
</view>
</view>
<view class="container">
<view class="item" v-for="item in productList" @click="goDetail(item)">
<image :src="item.image" mode=""></image>
<view class="name">{{item.storeName}}</view>
<view class="item" v-for="item in productList" @click="goDetail(item)">
<image :src="item.image" mode=""></image>
<view class="name">{{item.storeName}}</view>
<text><u--text color="#E50202" mode="price" :text="item.price"></u--text></text>
</view>
</view>
<view class="" style="margin-top: 110rpx;">
<text>
<u--text color="#E50202" mode="price" :text="item.price"></u--text>
</text>
</view>
</view>
<view class="" style="margin-top: 110rpx;">
</view>
</view>
</template>
@ -212,7 +204,7 @@
bastInfo: '',
fastInfo: '',
fastList: [],
text: '尊敬的业主:接环卫所通知,近期将对小区进行大扫除,请大家做好准备',
text:'尊敬的业主:接环卫所通知,近期将对小区进行大扫除,请大家做好准备',
firstInfo: '',
salesInfo: '',
indicatorDots: false,
@ -327,13 +319,13 @@
// ]);
getUserInfo().then(res => {
this.userInfo = res.data
getTenant(153).then(res => {
getTenant(153).then(res=>{
this.tenant = res.data
this.text = res.data.notice
})
})
getHeader().then(res => {
console.log(res, '会员')
getHeader().then(res=>{
console.log(res,'会员')
})
this.getBanners()
this.getIndexPage()
@ -349,12 +341,8 @@
})
},
methods: {
//
goNoticeDetail() {
console.log('notice哇')
uni.navigateTo({
url: '/pages/notice/index'
})
change(){
console.log(this.value,'value')
},
//
searchSubmitValue: function() {
@ -368,32 +356,32 @@
});
},
//
addCart(id) {
addCart(id){
getSpuDetail(id).then(res => {
console.log(res.data.productValue.默认.id, '1111111111111')
console.log(res.data.productValue.默认.id,'1111111111111')
let unique = res.data.productValue.默认.id
postCartAdd({
productId: id,
productAttrUnique: unique,
cartNum: 1
}).then(res => {
}).then(res=> {
console.log('加入成功')
})
})
},
go() {
console.log(this.productList, '------')
go(){
console.log(this.productList,'------')
},
// banneruserInfo
getBanners() {
getBanners(){
// console.log(this.$store.tenantId,'tenantId')
getBanner().then(res => {
getBanner().then(res=>{
this.bannerList = res.data.list[0]
console.log(this.bannerList, 'banner')
console.log(this.bannerList,'banner')
})
console.log(this.userInfo.userId, 'userInfo111111')
console.log(this.userInfo.userId,'userInfo111111')
},
getCoupon: function(id, index) {
@ -509,12 +497,12 @@
})
},
//
getIndexPage() {
getIndexPage(){
let that = this
productPage().then(res => {
console.log(res.data.list, '商品列表')
productPage().then(res=>{
console.log(res.data.list,'商品列表')
this.productList = this.productList.concat(res.data.list)
console.log(this.productList, '---------')
console.log(this.productList,'---------')
})
},
getcouponList() {
@ -662,9 +650,9 @@
// H5
let appSearchH = uni.createSelectorQuery().select(".serch-wrapper");
appSearchH.boundingClientRect(function(data) {
if (data) {
self.searchH = data.height
}
if(data){
self.searchH = data.height
}
}).exec()
// #endif
},
@ -710,338 +698,302 @@
}
</style>
<style lang="scss">
.box {
.header {
.box {
.header {
position: relative;
width: 100%;
height: 544rpx;
background: url(@/static/images/shop/index_headerbg.png);
background-size: 100% 100%;
.header_top {
position: relative;
width: 100%;
height: 544rpx;
background: url(@/static/images/shop/index_headerbg.png);
background-size: 100% 100%;
height: 457rpx;
.header_top {
position: relative;
.content {
width: 100%;
height: 457rpx;
.content {
width: 100%;
display: flex;
justify-content: space-around;
align-items: center;
position: absolute;
top: 109rpx;
.left {
width: 164rpx;
height: 164rpx;
.image {
border: 3rpx solid #EE5423;
border-radius: 50%;
border: linear-gradient(0deg, #F77C4D, #EE5423);
}
}
.center {
width: 330rpx;
height: 170rpx;
.top {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
.text {
margin-top: 25rpx;
.detail {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
}
}
.right {
width: 150rpx;
height: 170rpx;
display: flex;
justify-content: space-around;
flex-wrap: wrap;
align-items: center;
.up {
width: 110rpx;
height: 110rpx;
image {
width: 101rpx;
height: 110rpx;
}
}
text {
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
.button {
width: 119rpx;
height: 36rpx;
border-radius: 18rpx;
background: #F22E60;
text-align: center;
line-height: 36rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
}
}
}
.header_bottom {
position: absolute;
margin-left: 43rpx;
bottom: 0;
width: 664rpx;
height: 238rpx;
// background: url(@/static/images/shop/index_hbottom.png);
// background-size: 100% 100%;
image {
width: 664rpx;
height: 238rpx;
border-radius: 20rpx;
}
}
}
.notice {
margin-top: 30rpx;
margin-left: 48rpx;
width: 658rpx;
height: 67rpx;
background: #fff;
border-radius: 20rpx;
display: flex;
justify-content: center;
align-items: center;
}
.hot {
width: 663rpx;
height: 322rpx;
margin-top: 27rpx;
margin-left: 44rpx;
background: #fff;
border-radius: 20rpx;
.contain {
width: 100%;
height: 1rpx;
margin-bottom: 26rpx;
}
.top {
width: 100%;
height: 55rpx;
display: flex;
justify-content: space-between;
justify-content: space-around;
align-items: center;
position: absolute;
top: 109rpx;
.left {
height: 100%;
margin-left: 19rpx;
display: flex;
justify-content: space-around;
width: 164rpx;
height: 164rpx;
.icon {
width: 40rpx;
height: 40rpx;
background: url(@/static/images/shop/index_hot.png);
background-size: 100% 100%;
.image {
border: 3rpx solid #EE5423;
border-radius: 50%;
border: linear-gradient(0deg, #F77C4D, #EE5423);
}
text {
margin-left: 11rpx;
font-size: 32rpx;
}
.center {
width: 330rpx;
height: 170rpx;
.top {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 400;
color: #000000;
color: #FFFFFF;
}
}
.right {
width: 387rpx;
height: 100%;
.search {
width: 387rpx;
height: 55rpx;
border: 1rpx solid #FE7596;
display: flex;
justify-content: space-between;
align-items: center;
border-radius: 27rpx;
.icon {
margin-left: 10rpx;
width: 37rpx;
height: 31rpx;
background: url(@/static/images/shop/index_search.png);
background-size: 100% 100%;
}
.button {
margin-right: 3rpx;
width: 82rpx;
height: 46rpx;
line-height: 45rpx;
text-align: center;
background: linear-gradient(0deg, #F02563 0%, #FE7596 100%);
border-radius: 22.5rpx;
font-size: 26rpx;
.text {
margin-top: 25rpx;
.detail {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
}
}
}
.bottom {
margin-top: 27rpx;
height: 200rpx;
overflow: scroll;
white-space: nowrap;
.item {
position: relative;
display: inline-block;
width: 370rpx;
height: 199rpx;
margin-left: 19rpx;
image {
width: 370rpx;
height: 199rpx;
.right {
width: 150rpx;
height: 170rpx;
display: flex;
justify-content: space-around;
flex-wrap: wrap;
align-items: center;
.up {
width: 110rpx;
height: 110rpx;
image {
width: 101rpx;
height: 110rpx;
}
}
.title {
position: absolute;
left: 22rpx;
top: 22rpx;
width: 116rpx;
height: 34rpx;
line-height: 34rpx;
text-align: center;
background: linear-gradient(0deg, #FF4200 0%, #FFB21D 100%);
border-radius: 8rpx;
text {
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
.rank {
width: 90rpx;
height: 34rpx;
line-height: 34rpx;
background: linear-gradient(0deg, #F74A7B 0%, #FFAFAF 100%);
border-radius: 8rpx;
}
.img1 {
position: absolute;
left: 17rpx;
top: 81rpx;
width: 166rpx;
height: 71rpx;
}
.img2 {
position: absolute;
top: 22rpx;
right: 25rpx;
width: 138rpx;
height: 132rpx;
.button {
width: 119rpx;
height: 36rpx;
border-radius: 18rpx;
background: #F22E60;
text-align: center;
line-height: 36rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
}
}
}
.container {
width: 663rpx;
margin-left: 44rpx;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.item {
position: relative;
margin-top: 28rpx;
width: 322rpx;
height: 404rpx;
background: #fff;
overflow: hidden;
.header_bottom {
position: absolute;
margin-left: 43rpx;
bottom: 0;
width: 664rpx;
height: 238rpx;
// background: url(@/static/images/shop/index_hbottom.png);
// background-size: 100% 100%;
image {
width: 664rpx;
height: 238rpx;
border-radius: 20rpx;
}
}
}
.notice {
margin-top: 30rpx;
margin-left: 48rpx;
width: 658rpx;
height: 67rpx;
background: #fff;
border-radius: 20rpx;
display: flex;
justify-content: center;
align-items: center;
image {
width: 100%;
height: 294rpx;
}
.hot {
width: 663rpx;
height: 322rpx;
margin-top: 27rpx;
margin-left: 44rpx;
background: #fff;
border-radius: 20rpx;
.contain {
width: 100%;
height: 1rpx;
margin-bottom: 26rpx;
}
.top {
width: 100%;
height: 55rpx;
display: flex;
justify-content: space-between;
.left {
height: 100%;
margin-left: 19rpx;
display: flex;
justify-content: space-around;
.icon {
width: 40rpx;
height: 40rpx;
background: url(@/static/images/shop/index_hot.png);
background-size: 100% 100%;
}
.name {
margin-left: 15rpx;
margin-bottom: 10rpx;
font-size: 26rpx;
text {
margin-left: 11rpx;
font-size: 32rpx;
font-family: PingFang SC;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-weight: 400;
color: #000000;
}
text {
}
.right {
width: 387rpx;
height: 100%;
.search {
width: 387rpx;
height: 55rpx;
border: 1rpx solid #FE7596;
display: flex;
justify-content: space-between;
align-items: center;
border-radius: 27rpx;
.icon {
margin-left: 10rpx;
width: 37rpx;
height: 31rpx;
background: url(@/static/images/shop/index_search.png);
background-size: 100% 100%;
}
.button {
margin-right: 3rpx;
width: 82rpx;
height: 46rpx;
line-height: 45rpx;
text-align: center;
background: linear-gradient(0deg, #F02563 0%, #FE7596 100%);
border-radius: 22.5rpx;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
}
}
}
.bottom {
margin-top: 27rpx;
height: 200rpx;
overflow: scroll;
white-space: nowrap;
.item {
position: relative;
display: inline-block;
width: 370rpx;
height: 199rpx;
margin-left: 19rpx;
image {
width: 370rpx;
height: 199rpx;
}
.title {
position: absolute;
right: 20rpx;
bottom: 14rpx;
font-size: 28rpx;
white-space: nowrap;
left: 22rpx;
top: 22rpx;
width: 116rpx;
height: 34rpx;
line-height: 34rpx;
text-align: center;
background: linear-gradient(0deg, #FF4200 0%, #FFB21D 100%);
border-radius: 8rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #E50202;
color: #FFFFFF;
}
.car {
.rank {
width: 90rpx;
height: 34rpx;
line-height: 34rpx;
background: linear-gradient(0deg, #F74A7B 0%, #FFAFAF 100%);
border-radius: 8rpx;
}
.img1 {
position: absolute;
width: 60rpx;
height: 60rpx;
background: url(@/static/images/shop/car.png);
background-size: 100% 100%;
left: 17rpx;
top: 81rpx;
width: 166rpx;
height: 71rpx;
}
.img2 {
position: absolute;
top: 22rpx;
right: 25rpx;
width: 138rpx;
height: 132rpx;
}
}
}
}
.container {
width: 663rpx;
margin-left: 44rpx;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.item {
position: relative;
margin-top: 28rpx;
width: 322rpx;
height: 404rpx;
background: #fff;
overflow: hidden;
border-radius: 20rpx;
::v-deep .notice {
.u-icon__icon {
image {
width: 100%;
height: 294rpx;
}
.name {
margin-left: 15rpx;
margin-bottom: 10rpx;
font-size: 26rpx;
font-family: PingFang SC;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-weight: 400;
color: #000000;
}
text {
position: absolute;
right: 20rpx;
bottom: 14rpx;
font-size: 28rpx;
white-space: nowrap;
font-family: PingFang SC;
font-weight: 400;
color: #E50202;
}
.car {
position: absolute;
width: 60rpx;
height: 60rpx;
background: url(@/static/images/shop/car.png);
background-size: 100% 100%;
}
}
}
}
::v-deep .notice{
.u-icon__icon {
color: #FF4802 !important;
span {
font-size: 28rpx;
}
}
}
}
}
</style>

View File

@ -1,50 +0,0 @@
<template>
<view class="notice">
<view class="item">
{{text}}
</view>
</view>
</template>
<script>
import {
getTenant
} from '../../api/product.js'
import {
setVisit,
getUserInfo
} from '@/api/user.js'
export default {
data(){
return {
tanent: {},
text: '',
userInfo: {}
}
},
mounted(){
getUserInfo().then(res => {
this.userInfo = res.data
console.log(res.data)
getTenant(153).then(res => {
this.tenant = res.data
this.text = res.data.notice
})
})
}
}
</script>
<style>
.notice {
width: 100%;
height: 100%;
.item {
width: 800rpx;
height: 1000rpx;
background: #fff;
}
}
</style>