Merge remote-tracking branch 'origin/feature/mall_product' into feature/mall_product

pull/2/head
小小张 2023-05-25 18:08:24 +08:00
commit 39d922eb1b
18 changed files with 296 additions and 240 deletions

View File

@ -147,7 +147,7 @@ public class WxPayNotifyController {
//删除提报记录
phoneRecordService.deletePhoneGear(orderDO.getOrderId());
//删除本地提报记录
phoneRecordService.deletePhoneRecord(orderDO.getId());
phoneRecordService.deletePhoneGearByOrderId(orderDO.getId());
// 修改订单状态
// 写入
response.setStatus(HttpServletResponse.SC_OK);

View File

@ -1227,7 +1227,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, StoreOr
log.error("删除提报记录异常{}", e);
}
//删除本地提报记录
phoneRecordService.deletePhoneRecord(orderDO.getId());
phoneRecordService.deletePhoneGearByOrderId(orderDO.getId());
// 表示退款
} else {
// 表示支付

View File

@ -36,6 +36,7 @@ public interface PhoneRecordService {
*/
void deletePhoneRecord(Long id);
/**
*
*
@ -90,6 +91,16 @@ public interface PhoneRecordService {
* </pre>
*/
Boolean deletePhoneGear(String orderId);
/**
* <pre>
* <b>deletePhoneGear</b>
* <b>Description:</b>
* <b>@author:</b> zenghuapei
* <b>@date:</b> 2023/5/24 12:44
* @return
* </pre>
*/
Boolean deletePhoneGearByOrderId(Long orderId);
/**
* <pre>
* <b>insertPhone</b>

View File

@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import java.util.*;
@ -76,12 +77,26 @@ public class PhoneRecordServiceImpl implements PhoneRecordService {
// 校验存在
validatePhoneRecordExists(id);
// 删除
phoneRecordMapper.delete(Wrappers.<PhoneRecordDO>lambdaQuery().eq(PhoneRecordDO::getRechargeOrderId, id));
phoneRecordMapper.deleteById(id);;
}
@Override
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)) {
recordDOS.forEach(e->{
e.setDeleted(Boolean.TRUE);
int i = phoneRecordMapper.updateById(e);
log.info("-------------------------i{}---------------------",i);
});
}
return null;
}
private void validatePhoneRecordExists(Long id) {
PhoneRecordDO phoneRecordDO = phoneRecordMapper.selectOne(Wrappers.<PhoneRecordDO>lambdaQuery().eq(PhoneRecordDO::getRechargeOrderId, id));
if (phoneRecordDO == null) {
if (phoneRecordMapper.selectById(id) == null) {
throw exception(PHONE_RECORD_NOT_EXISTS);
}
}

View File

@ -2,12 +2,15 @@ package cn.iocoder.yudao.module.shop.service.recharge;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
import cn.iocoder.yudao.module.shop.dal.dataobject.recharge.RechargeOrderInfoDO;
import cn.iocoder.yudao.module.shop.dal.mysql.recharge.RechargeOrderInfoMapper;
import cn.iocoder.yudao.module.shop.request.member.RefundRequest;
import cn.iocoder.yudao.module.shop.response.member.MemberHeadResponse;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -44,6 +47,10 @@ public class RechargeOrderServiceImpl implements RechargeOrderService {
private RechargeOrderMapper rechargeOrderMapper;
@Resource
private RechargeOrderInfoMapper infoMapper;
@Resource
private MemberUserApi userService;
@Resource
private PhoneRecordService phoneRecordService;
@Override
public Long createRechargeOrder(RechargeOrderCreateReqVO createReqVO) {
@ -151,7 +158,8 @@ public class RechargeOrderServiceImpl implements RechargeOrderService {
MemberHeadResponse response = new MemberHeadResponse();
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
Assert.notNull(loginUser, "登录失效,请重新登录!");
List<RechargeOrderDO> orderDOS = rechargeOrderMapper.selectList(Wrappers.<RechargeOrderDO>lambdaQuery().eq(RechargeOrderDO::getUid, loginUser.getId()).eq(RechargeOrderDO::getPaid, 1));
MemberUserRespDTO user = userService.getUser(loginUser.getId());
List<RechargeOrderDO> orderDOS = rechargeOrderMapper.selectList(Wrappers.<RechargeOrderDO>lambdaQuery().eq(RechargeOrderDO::getUserPhone, user.getMobile()).eq(RechargeOrderDO::getPaid, 1));
if (!CollectionUtils.isEmpty(orderDOS)) {
BigDecimal amount = new BigDecimal("0");
for (RechargeOrderDO orderDO : orderDOS) {

View File

@ -1,5 +1,7 @@
let domain = process.env.APP_BASE_URL
// let domain = 'http://192.168.1.188:48080'
// let domain = 'http://api.cyywl.top'
module.exports = {
// 请求域名 格式: https://您的域名

View File

@ -31,7 +31,7 @@
{
"path": "pages/member_equity/index",
"style": {
"navigationBarTitleText": "会员申请"
"navigationBarTitleText": "会员权益"
}
},
{
@ -43,7 +43,7 @@
{
"path": "pages/member_others/index",
"style": {
"navigationBarTitleText": "他人续费"
"navigationBarTitleText": "他人续费"
}
},
{
@ -614,7 +614,7 @@
"pagePath": "pages/member_equity/index",
"iconPath": "static/images/tabbar/nav_icon_member.png",
"selectedIconPath": "static/images/tabbar/nav_icon_member_active.png",
"text": "会员申请",
"text": "会员权益",
"visible":false
},
{

View File

@ -15,8 +15,10 @@
</view>
</view>
<view class="right">
<view class="up"></view>
<text>会员等级3级</text>
<view class="up">
<image style="width: ;" src="@/static/images/shop/vip_oneStar.png" mode=""></image>
</view>
<text>会员等级1级</text>
<view class="button">查看权益</view>
</view>
</view>
@ -753,9 +755,12 @@
flex-wrap: wrap;
align-items: center;
.up {
width: 90rpx;
height: 100rpx;
background: #EE5423;
width: 110rpx;
height: 110rpx;
image {
width: 101rpx;
height: 110rpx;
}
}
text {
font-size: 22rpx;

View File

@ -10,11 +10,12 @@
:class="[activeIndex.includes(index) && 'member-active',!!parseInt(item.isExist) && 'member-disbled', 'member-item']"
v-for="(item,index) in memberData" :key="index" @click="handleMember(item,index)">
<view class="member-image">
<image src='../../static/images/f.png'></image>
<image v-show="!!!parseInt(item.isExist)" src='../../static/images/success.png'></image>
<image v-show="!!parseInt(item.isExist)" src='../../static/images/disbled.png'></image>
</view>
<view class="member-text">
<view class="text-title">
<text>{{item.name.split('得')[0]}}<text>{{item.name.split('得')[1]}}</text></text>
<text>{{item.name.split('得')[0]}}<text>{{item.name.split('得')[1]}}</text></text>
<view></view>
</view>
<text class="text-content">{{item.gearRemarks}}</text>
@ -126,7 +127,7 @@
url:'/pages/member_record/index'
})
break;
case "他人充值":
case "他人充值":
uni.navigateTo({
url:'/pages/member_others/index'
})
@ -292,7 +293,7 @@
height: 100rpx;
border-radius: 35rpx;
background: linear-gradient(#FFEBB2, #FDCB3B);
padding: 16rpx;
padding: 6rpx 13rpx;
image {
width: 100%;
@ -340,7 +341,7 @@
background: linear-gradient(#FF995F, #DA0E00);
.member-image {
background: linear-gradient(#FF995F, #FDCB3B);
background: linear-gradient(#FF995F, #DA0E00);
}
.member-text {
@ -369,7 +370,7 @@
background: linear-gradient(#EFEFEF, #BCBCBC);
.member-image {
background: linear-gradient(#AAAAAA, #989898);
background: linear-gradient(#EFEFEF, #AAAAAA);
}
.member-text {

View File

@ -108,7 +108,7 @@
url:'/pages/member_record/index'
})
break;
case "他人充值":
case "他人充值":
uni.navigateTo({
url:'/pages/member_others/index'
})

View File

@ -13,7 +13,7 @@
<text>购买记录</text>
<image src="../../static/images/shopping-right.png" ></image>
</view>
<view class="left-others" @click="handleRouter('他人充值')">
<view class="left-others" @click="handleRouter('他人充值')">
代他人充值
<image src="../../static/images/others-right.png" ></image>
</view>
@ -138,7 +138,7 @@
url:'/pages/member_record/index'
})
break;
case "他人充值":
case "他人充值":
uni.navigateTo({
url:'/pages/member_others/index'
})

View File

@ -19,11 +19,12 @@
:class="[activeIndex.includes(index) && 'member-active',!!parseInt(item.isExist) && 'member-disbled', 'member-item']"
v-for="(item,index) in memberData" :key="index" @click="handleMember(item,index)">
<view class="member-image">
<image src='../../static/images/f.png'></image>
<image v-show="!!!parseInt(item.isExist)" src='../../static/images/success.png'></image>
<image v-show="!!parseInt(item.isExist)" src='../../static/images/disbled.png'></image>
</view>
<view class="member-text">
<view class="text-title">
<text>{{item.name.split('得')[0]}}<text>{{item.name.split('得')[1]}}</text></text>
<text>{{item.name.split('得')[0]}}<text>{{item.name.split('得')[1]}}</text></text>
<view></view>
</view>
<text class="text-content">{{item.gearRemarks}}</text>
@ -37,7 +38,7 @@
<paymentMember :payMode='payMode' :pay_close="pay_close" @onChangeFun='onChangeFun' :payInfo="payInfo">
</paymentMember>
<button class="box-submit" @click="goPay"></button>
<u-navbar autoBack title="他人充值"></u-navbar>
<u-navbar autoBack title="他人充值"></u-navbar>
</view>
</template>
@ -301,131 +302,131 @@
}
.member-list {
margin: 83rpx 30rpx 30rpx 30rpx;
position: relative;
.member-list {
margin: 53rpx 30rpx 20rpx 30rpx;
position: relative;
.member-item {
padding: 30rpx 20rpx 27rpx 20rpx;
display: flex;
justify-content: space-between;
background: #fff;
margin-bottom: 20rpx;
border-radius: 20rpx;
.member-item {
padding: 30rpx 20rpx 27rpx 20rpx;
display: flex;
justify-content: space-between;
background: #fff;
margin-bottom: 20rpx;
border-radius: 20rpx;
.member-image {
width: 104rpx;
height: 104rpx;
border-radius: 35rpx;
background: linear-gradient(#FFEBB2, #FDCB3B);
padding: 20rpx;
.member-image {
width: 100rpx;
height: 100rpx;
border-radius: 35rpx;
background: linear-gradient(#FFEBB2, #FDCB3B);
padding: 6rpx 13rpx;
image {
width: 100%;
height: 100%;
}
}
image {
width: 100%;
height: 100%;
}
}
.member-text {
display: flex;
flex-direction: column;
justify-content: space-between;
flex: .9;
.member-text {
display: flex;
flex-direction: column;
justify-content: space-between;
flex: .9;
.text-title {
margin-top: -14rpx;
font-size: 32rpx;
font-weight: bolder;
transform: skew(-6deg, 0);
display: flex;
justify-content: space-between;
.text-title {
margin-top: -14rpx;
font-size: 32rpx;
font-weight: bolder;
transform: skew(-6deg, 0);
display: flex;
justify-content: space-between;
text {
text {
color: #C80D00;
}
}
text {
text {
color: #C80D00;
}
}
view {
width: 18rpx;
height: 6rpx;
background: #FEAC49;
border-radius: 3rpx;
}
}
view {
width: 18rpx;
height: 6rpx;
background: #FEAC49;
border-radius: 3rpx;
}
}
.text-content {
font-size: 24rpx;
color: #747474;
}
}
}
.text-content {
font-size: 24rpx;
color: #747474;
}
}
}
.member-active {
transition: .3s;
background: linear-gradient(#FF995F, #DA0E00);
.member-active {
transition: .3s;
background: linear-gradient(#FF995F, #DA0E00);
.member-image {
background: linear-gradient(#FF995F, #FDCB3B);
}
.member-image {
background: linear-gradient(#FF995F, #DA0E00);
}
.member-text {
.text-title {
text {
color: #fff;
.member-text {
.text-title {
text {
color: #fff;
text {
color: rgb(223, 208, 42);
}
}
text {
color: rgb(223, 208, 42);
}
}
view {
background: #fff;
}
}
view {
background: #fff;
}
}
.text-content {
color: #fff;
}
}
}
.text-content {
color: #fff;
}
}
}
.member-disbled {
transition: .3s;
background: linear-gradient(#EFEFEF, #BCBCBC);
.member-disbled {
transition: .3s;
background: linear-gradient(#EFEFEF, #BCBCBC);
.member-image {
background: linear-gradient(#AAAAAA, #989898);
}
.member-image {
background: linear-gradient(#EFEFEF, #AAAAAA);
}
.member-text {
.text-title {
text {
color: #868585;
.member-text {
.text-title {
text {
color: #868585;
text {
color: #868585;
}
}
text {
color: #868585;
}
}
view {
background: #fff;
}
}
view {
background: #fff;
}
}
.text-content {
color: #5C5C5C;
}
}
}
.member-prompt {
display: flex;
justify-content: center;
font-size: 24rpx;
color: #fff;
}
}
.text-content {
color: #5C5C5C;
}
}
}
.member-prompt {
display: flex;
justify-content: center;
font-size: 24rpx;
color: #fff;
}
}
}
.box-privilege {

View File

@ -17,6 +17,7 @@
<text>日期{{item.stringCreateTime}}</text>
</view>
</view>
<u-empty v-show="!memberData.length" text="暂无数据" mode="list"></u-empty>
<u-navbar autoBack title="购买纪录"></u-navbar>
</view>
</template>
@ -104,6 +105,16 @@
background-size: cover;
background-repeat: no-repeat;
background-attachment: fixed;
.u-empty{
margin-top: 20% !important;
::v-deep .u-icon__icon{
font-size: 140rpx !important;
}
::v-deep .u-empty__text{
font-size: 30rpx !important;
}
}
.box-seach{
z-index: 999;
padding: 0 40rpx;

View File

@ -15,12 +15,13 @@
<view
:class="[activeIndex.includes(index) && 'member-active',!!parseInt(item.isExist) && 'member-disbled', 'member-item']"
v-for="(item,index) in memberData" :key="index" @click="handleMember(item,index)">
<view class="member-image">
<image src='../../static/images/f.png'></image>
</view>
<view class="member-image">
<image v-show="!!!parseInt(item.isExist)" src='../../static/images/success.png'></image>
<image v-show="!!parseInt(item.isExist)" src='../../static/images/disbled.png'></image>
</view>
<view class="member-text">
<view class="text-title">
<text>{{item.name.split('得')[0]}}<text>{{item.name.split('得')[1]}}</text></text>
<text>{{item.name.split('得')[0]}}<text>{{item.name.split('得')[1]}}</text></text>
<view></view>
</view>
<text class="text-content">{{item.gearRemarks}}</text>
@ -120,6 +121,7 @@ import store from '@/store/index';
*
*/
goPay() {
console.log(this.activeIndex)
if(this.activeIndex.length){
this.$set(this, 'pay_close', true);
const orderInfos = this.activeIndex.map((item) => {
@ -255,132 +257,132 @@ import store from '@/store/index';
}
.member-list {
margin: 83rpx 30rpx 30rpx 30rpx;
position: relative;
.member-list {
margin: 53rpx 30rpx 20rpx 30rpx;
position: relative;
.member-item {
padding: 30rpx 20rpx 27rpx 20rpx;
display: flex;
justify-content: space-between;
background: #fff;
margin-bottom: 20rpx;
border-radius: 20rpx;
.member-item {
padding: 30rpx 20rpx 27rpx 20rpx;
display: flex;
justify-content: space-between;
background: #fff;
margin-bottom: 20rpx;
border-radius: 20rpx;
.member-image {
width: 104rpx;
height: 104rpx;
border-radius: 35rpx;
background: linear-gradient(#FFEBB2, #FDCB3B);
padding: 20rpx;
.member-image {
width: 100rpx;
height: 100rpx;
border-radius: 35rpx;
background: linear-gradient(#FFEBB2, #FDCB3B);
padding: 6rpx 13rpx;
image {
width: 100%;
height: 100%;
}
}
image {
width: 100%;
height: 100%;
}
}
.member-text {
display: flex;
flex-direction: column;
justify-content: space-between;
flex: .9;
.member-text {
display: flex;
flex-direction: column;
justify-content: space-between;
flex: .9;
.text-title {
margin-top: -14rpx;
font-size: 32rpx;
font-weight: bolder;
transform: skew(-6deg, 0);
display: flex;
justify-content: space-between;
.text-title {
margin-top: -14rpx;
font-size: 32rpx;
font-weight: bolder;
transform: skew(-6deg, 0);
display: flex;
justify-content: space-between;
text {
text {
color: #C80D00;
}
}
text {
text {
color: #C80D00;
}
}
view {
width: 18rpx;
height: 6rpx;
background: #FEAC49;
border-radius: 3rpx;
}
}
view {
width: 18rpx;
height: 6rpx;
background: #FEAC49;
border-radius: 3rpx;
}
}
.text-content {
font-size: 24rpx;
color: #747474;
}
}
}
.text-content {
font-size: 24rpx;
color: #747474;
}
}
}
.member-active {
transition: .3s;
background: linear-gradient(#FF995F, #DA0E00);
.member-active {
transition: .3s;
background: linear-gradient(#FF995F, #DA0E00);
.member-image {
background: linear-gradient(#FF995F, #FDCB3B);
}
.member-image {
background: linear-gradient(#FF995F, #DA0E00);
}
.member-text {
.text-title {
text {
color: #fff;
.member-text {
.text-title {
text {
color: #fff;
text {
color: rgb(223, 208, 42);
}
}
text {
color: rgb(223, 208, 42);
}
}
view {
background: #fff;
}
}
view {
background: #fff;
}
}
.text-content {
color: #fff;
}
}
}
.text-content {
color: #fff;
}
}
}
.member-disbled {
transition: .3s;
background: linear-gradient(#EFEFEF, #BCBCBC);
.member-disbled {
transition: .3s;
background: linear-gradient(#EFEFEF, #BCBCBC);
.member-image {
background: linear-gradient(#AAAAAA, #989898);
}
.member-image {
background: linear-gradient(#EFEFEF, #AAAAAA);
}
.member-text {
.text-title {
text {
color: #868585;
.member-text {
.text-title {
text {
color: #868585;
text {
color: #868585;
}
}
text {
color: #868585;
}
}
view {
background: #fff;
}
}
view {
background: #fff;
}
}
.text-content {
color: #5C5C5C;
}
}
}
.text-content {
color: #5C5C5C;
}
}
.member-prompt {
display: flex;
justify-content: center;
font-size: 24rpx;
color: #fff;
}
}
.member-prompt {
display: flex;
justify-content: center;
font-size: 24rpx;
color: #fff;
}
}
}
}
.box-privilege {
box-shadow: 0px 0px 15px -5px #000;

View File

@ -112,7 +112,7 @@
page: 1,
list1: [{
name: '全部',
value: ''
value: '99'
}, {
name: '待付款',
value: '0'

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB