Merge branch 'feature/mall_product_new'

pull/16/head
perry 2023-05-24 22:19:32 +08:00
commit 7569be214a
17 changed files with 157 additions and 226 deletions

View File

@ -32,7 +32,7 @@ public class RechargeOrderBaseVO {
@Schema(description = "用户id", required = true, example = "28969")
@NotNull(message = "用户id不能为空")
private Integer uid;
private Long uid;
@Schema(description = "用户姓名", required = true, example = "张三")
@NotNull(message = "用户姓名不能为空")

View File

@ -22,7 +22,7 @@ public class RechargeOrderExportReqVO {
private Long tenantId;
@Schema(description = "用户id", example = "28969")
private Integer uid;
private Long uid;
@Schema(description = "用户姓名", example = "张三")
private String realName;

View File

@ -24,7 +24,7 @@ public class RechargeOrderPageReqVO extends PageParam {
private Long tenantId;
@Schema(description = "用户id", example = "28969")
private Integer uid;
private Long uid;
@Schema(description = "用户姓名", example = "张三")
private String realName;

View File

@ -37,42 +37,4 @@ import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.E
@Slf4j
public class AppPhoneRecordController {
@Resource
private PhoneRecordService phoneRecordService;
@Value("${phone.query-url}")
private String phoneUrl;
@Value("${phone.token}")
private String token;
@PostMapping("test")
public CommonResult<Boolean> test(@RequestBody List<PhoneRecordAdd> data){
String result = HttpRequest.post(phoneUrl+"query/createReport")
.header("token",token)
.body(JSONObject.toJSONString(data))
.execute()
.body();
JSONObject resultJson = JSONObject.parseObject(result);
log.info("提报新增返回结果{}",JSONObject.toJSONString(resultJson));
if("0000".equals(resultJson.get("code"))){
return success(null);
}
return success(null);
}
@PostMapping("delete")
public CommonResult<Boolean> delete(@RequestBody String data){
String result = HttpRequest.post(phoneUrl+"query/deleteReport?orderNo="+data)
.header("token",token)
.execute()
.body();
JSONObject resultJson = JSONObject.parseObject(result);
log.info("删除返回结果{}",JSONObject.toJSONString(resultJson));
if("0000".equals(resultJson.get("code"))){
return success(null);
}
return success(null);
}
}

View File

@ -43,7 +43,7 @@ public class StoreProductLog implements Serializable {
private Integer productId;
@Schema(description= "用户ID")
private Integer uid;
private Long uid;
@Schema(description= "是否浏览")
private Boolean visitNum;

View File

@ -70,5 +70,5 @@ public interface StoreOrderMapper extends BaseMapperX<StoreOrder> {
* @param uid uid
* @param spreadId 广uid
*/
OrderBrokerageData getBrokerageData(@Param("uid") Integer uid, @Param("spreadId") Integer spreadId);
OrderBrokerageData getBrokerageData(@Param("uid") Long uid, @Param("spreadId") Integer spreadId);
}

View File

@ -66,7 +66,7 @@ public interface StoreOrderService extends IService<StoreOrder> {
* @param pageParamRequest
* @return
*/
List<StoreOrder> getUserOrderList(Integer uid, Integer status, PageParam pageParamRequest);
List<StoreOrder> getUserOrderList(Long uid, Integer status, PageParam pageParamRequest);
/**
*
* @param storeOrder
@ -141,21 +141,21 @@ public interface StoreOrderService extends IService<StoreOrder> {
* @param seckillId id
* @return
*/
List<StoreOrder> getUserCurrentDaySecKillOrders(Integer uid, Integer seckillId);
List<StoreOrder> getUserCurrentDaySecKillOrders(Long uid, Integer seckillId);
/**
*
* @param uid uid
* @return
*/
List<StoreOrder> getUserCurrentBargainOrders(Integer uid, Integer bargainId);
List<StoreOrder> getUserCurrentBargainOrders(Long uid, Integer bargainId);
/**
*
* @param uid uid
* @return
*/
List<StoreOrder> getUserCurrentCombinationOrders(Integer uid, Integer combinationId);
List<StoreOrder> getUserCurrentCombinationOrders(Long uid, Integer combinationId);
StoreOrder getByOderId(String orderId);
@ -206,7 +206,7 @@ public interface StoreOrderService extends IService<StoreOrder> {
* @param uid uid
* @return Integer
*/
Long getOrderCountByUid(Integer uid);
Long getOrderCountByUid(Long uid);
/**
*
@ -220,7 +220,7 @@ public interface StoreOrderService extends IService<StoreOrder> {
* @param uid uid
* @return Integer
*/
Long getOrderCountByUidAndDate(Integer uid, String date);
Long getOrderCountByUidAndDate(Long uid, String date);
/**
* ()
@ -380,7 +380,7 @@ public interface StoreOrderService extends IService<StoreOrder> {
* @param uid uid
* @param spreadId 广uid
*/
OrderBrokerageData getBrokerageData(Integer uid, Integer spreadId);
OrderBrokerageData getBrokerageData(Long uid, Integer spreadId);
/**
*

View File

@ -231,7 +231,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, StoreOr
* @return
*/
@Override
public List<StoreOrder> getUserOrderList(Integer uid, Integer status, PageParam pageParamRequest) {
public List<StoreOrder> getUserOrderList(Long uid, Integer status, PageParam pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPageNo(), pageParamRequest.getPageSize());
LambdaQueryWrapper<StoreOrder> lqw = new LambdaQueryWrapper<>();
orderUtil.statusApiByWhere(lqw, status);
@ -541,7 +541,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, StoreOr
* @return
*/
@Override
public List<StoreOrder> getUserCurrentDaySecKillOrders(Integer uid, Integer seckillId) {
public List<StoreOrder> getUserCurrentDaySecKillOrders(Long uid, Integer seckillId) {
String dayStart = DateUtils.nowDateTime(Constants.DATE_FORMAT_START);
String dayEnd = DateUtils.nowDateTime(Constants.DATE_FORMAT_END);
LambdaQueryWrapper<StoreOrder> lqw = Wrappers.lambdaQuery();
@ -560,7 +560,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, StoreOr
* @return
*/
@Override
public List<StoreOrder> getUserCurrentBargainOrders(Integer uid, Integer bargainId) {
public List<StoreOrder> getUserCurrentBargainOrders(Long uid, Integer bargainId) {
LambdaQueryWrapper<StoreOrder> lqw = Wrappers.lambdaQuery();
lqw.eq(StoreOrder::getUid, uid);
lqw.eq(StoreOrder::getBargainId, bargainId);
@ -576,7 +576,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, StoreOr
* @return
*/
@Override
public List<StoreOrder> getUserCurrentCombinationOrders(Integer uid, Integer combinationId) {
public List<StoreOrder> getUserCurrentCombinationOrders(Long uid, Integer combinationId) {
LambdaQueryWrapper<StoreOrder> lqw = Wrappers.lambdaQuery();
lqw.eq(StoreOrder::getUid, uid);
lqw.eq(StoreOrder::getCombinationId, combinationId);
@ -724,7 +724,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, StoreOr
* @return Integer
*/
@Override
public Long getOrderCountByUid(Integer uid) {
public Long getOrderCountByUid(Long uid) {
LambdaQueryWrapper<StoreOrder> lqw = Wrappers.lambdaQuery();
lqw.eq(StoreOrder::getPaid, true);
lqw.eq(StoreOrder::getIsDel, false);
@ -759,7 +759,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, StoreOr
* @return Integer
*/
@Override
public Long getOrderCountByUidAndDate(Integer uid, String date) {
public Long getOrderCountByUidAndDate(Long uid, String date) {
LambdaQueryWrapper<StoreOrder> lqw = Wrappers.lambdaQuery();
lqw.eq(StoreOrder::getPaid, true);
lqw.eq(StoreOrder::getIsDel, false);
@ -1165,7 +1165,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, StoreOr
* @param spreadId 广uid
*/
@Override
public OrderBrokerageData getBrokerageData(Integer uid, Integer spreadId) {
public OrderBrokerageData getBrokerageData(Long uid, Integer spreadId) {
return null;
}

View File

@ -53,7 +53,7 @@ public interface StoreProductRelationService extends IService<StoreProductRelati
* @param uid uid
* @return
*/
Integer getCollectCountByUid(Integer uid);
Integer getCollectCountByUid(Long uid);
/**
* Id

View File

@ -159,7 +159,7 @@ public class StoreProductRelationServiceImpl extends ServiceImpl<StoreProductRel
* @return
*/
@Override
public Integer getCollectCountByUid(Integer uid) {
public Integer getCollectCountByUid(Long uid) {
LambdaQueryWrapper<StoreProductRelation> lqr = Wrappers.lambdaQuery();
lqr.eq(StoreProductRelation::getUid, uid);
lqr.eq(StoreProductRelation::getType,"collect");

View File

@ -3,6 +3,22 @@
<mapper namespace="cn.iocoder.yudao.module.shop.dal.mysql.express.ShippingTemplatesFreeMapper">
<select id="getListGroup" resultType="cn.iocoder.yudao.module.shop.controller.admin.express.vo.ShippingTemplatesFreeRespVO" parameterType="integer">
SELECT group_concat(`city_id`) AS city_id, province_id, title, `number`, price, uniqid FROM eb_shipping_templates_free where temp_id = #{tempId, jdbcType=INTEGER} GROUP BY `uniqid`,id ORDER BY id ASC
SELECT
city_id, province_id, title, `number`, price, uniqid
FROM
eb_shipping_templates_free es
JOIN
(
SELECT
MAX(id) id
FROM
eb_shipping_templates_free
where
temp_id = #{tempId, jdbcType=INTEGER}
GROUP BY
`uniqid`
ORDER BY id ASC
) a
ON a.id = es.id
</select>
</mapper>

View File

@ -3,6 +3,22 @@
<mapper namespace="cn.iocoder.yudao.module.shop.dal.mysql.express.ShippingTemplatesNoDeliveryMapper">
<select id="getList" resultType="cn.iocoder.yudao.module.shop.controller.admin.express.vo.ShippingTemplatesNoDeliveryRespVO" parameterType="integer">
SELECT group_concat(`city_id`) AS city_id, province_id, title, uniqid FROM eb_shipping_templates_no_delivery WHERE temp_id = #{tempId, jdbcType=INTEGER} GROUP BY `uniqid`,id ORDER BY id ASC
SELECT
city_id, province_id, title, uniqid
FROM
eb_shipping_templates_no_delivery es
JOIN
(
SELECT
MAX(id) id
FROM
eb_shipping_templates_no_delivery
where
temp_id = #{tempId, jdbcType=INTEGER}
GROUP BY
`uniqid`
ORDER BY id ASC
) a
ON a.id = es.id
</select>
</mapper>

View File

@ -3,6 +3,22 @@
<mapper namespace="cn.iocoder.yudao.module.shop.dal.mysql.express.ShippingTemplatesRegionMapper">
<select id="getListGroup" resultType="cn.iocoder.yudao.module.shop.controller.admin.express.vo.ShippingTemplatesRegionRespVO" parameterType="integer">
SELECT group_concat(`city_id`) AS city_id, province_id, `first`, first_price, title, `renewal`, renewal_price, uniqid FROM eb_shipping_templates_region where temp_id = #{tempId, jdbcType=INTEGER} GROUP BY `uniqid`,id ORDER BY id ASC
SELECT
city_id, province_id, `first`, first_price, title, `renewal`, renewal_price, uniqid
FROM
eb_shipping_templates_region es
JOIN
(
SELECT
MAX(id) id
FROM
eb_shipping_templates_region
where
temp_id = #{tempId, jdbcType=INTEGER}
GROUP BY
`uniqid`
ORDER BY id ASC
) a
ON a.id = es.id
</select>
</mapper>

View File

@ -375,7 +375,7 @@ export default {
logistics.shippingRegion({ tempId: this.tempId }).then(res => {
res.data.forEach((item, index) => {
// item.title = JSON.parse(item.title)
item.city_ids = item.title
item.city_ids = JSON.parse(item.title)
})
this.ruleForm.region = res.data
})
@ -385,10 +385,9 @@ export default {
logistics.shippingFree({ tempId: this.tempId }).then(res => {
res.data.forEach((item, index) => {
// item.title = JSON.parse(item.title)
item.city_ids = item.cityId.split(',')
item.city_ids = JSON.parse(item.title)
})
this.ruleForm.free = res.data
console.log(this.ruleForm.free )
})
},
@ -462,9 +461,11 @@ export default {
}
this.ruleForm.region.forEach((el, index) => {
if(el.city_ids.length > 0){
el.cityId = JSON.stringify(el.city_ids)
el.title = JSON.stringify(el.city_ids)
el.cityId = el.city_ids.join(",")
}else{
el.cityId = 'all'
el.title = 0
}
})
param.shippingTemplatesRegionRespVOList = this.ruleForm.region
@ -484,9 +485,11 @@ export default {
if (this.ruleForm.appoint) {
this.ruleForm.free.forEach((el, index) => {
if(el.city_ids.length > 0){
el.cityId = JSON.stringify(el.city_ids)
el.title = JSON.stringify(el.city_ids)
el.cityId = el.city_ids.join(",")
}else{
el.cityId = 'all'
el.title = 0
}
})
param.shippingTemplatesFreeRespVOList = this.ruleForm.free

View File

@ -1,30 +1,16 @@
<template>
<view class="box">
<view class="box-member">
<view class="member-left">
<text class="left-title">{{memberDetail.grade}}</text>
<view class="left-info">
<text>{{userInfo.mobile}}</text>
<text>会员积分{{memberDetail.integral}}</text>
</view>
<text>再升1级即可获得XX等6项权益</text>
<view class="left-button">
<view class="left-shopping" @click="handleRouter('购买记录')">
<text>购买记录</text>
<image src="../../static/images/shopping-right.png" ></image>
</view>
<view class="left-others" @click="handleRouter('为他人充值')">
为他人充值
<image src="../../static/images/others-right.png" ></image>
</view>
<view class="list-item" >
<view class="item-title">
<view class="item-phone">
<view></view>
<text>充值号码{{memberDetail.userPhone}}</text>
</view>
</view>
<view class="member-right">
<image src='../../static/images/vipStar.png'></image>
<text>会员等级{{vipData.findIndex((item) => item == memberDetail.grade) +1}}</text>
<button @click="handleRenew"></button>
</view>
</view>
<view class="item-text">
<text>充值档次{{memberDetail.grade}}</text>
</view>
</view>
<view class="box-equity">
<view class="equity-text">
<view >
@ -61,7 +47,7 @@
</view>
</view>
</view>
<u-navbar leftIcon="" title="会员申请"></u-navbar>
<u-navbar leftIcon="" title="话费返回情况"></u-navbar>
</view>
</template>
@ -81,15 +67,15 @@
list: [
{
img:'../../static/images/member240.png',
name:'360'
name:360
},
{
img:'../../static/images/member400.png',
name:'600'
name:600
},
{
img:'../../static/images/member960.png',
name:'900'
name:900
},
],
vipData:['普通会员','中级会员','高级会员'],
@ -99,24 +85,8 @@
};
},
computed: mapGetters(['userInfo']),
async onLoad() {
const resful = await memberGradeInfo()
if(resful.data.some((item) => !!parseInt(item.isExist))){
uni.setTabBarItem({
index: 0,
pagePath: '/pages/member_equity/index'
})
}else{
uni.setTabBarItem({
index: 0,
pagePath: '/pages/member_application/index'
})
uni.switchTab({
url:'/pages/member_application/index'
})
}
const res = await memberHeadInfo()
this.memberDetail = res.data
async onLoad(options) {
this.memberDetail = options
const equity = await query(this.userInfo.mobile)
this.equityData = equity.data
},
@ -153,7 +123,7 @@
<style lang="scss" scoped>
.box {
margin-bottom: 30%;
padding: 40rpx 20rpx;
margin-top: 10%;
background: #fff;
height: 100vh;
@ -162,116 +132,52 @@
background-repeat: no-repeat;
background-attachment: fixed;
.u-nav-slot{
::v-deep .u-popup__content{
padding-bottom: 20% !important;
}
}
.box-member {
padding: 36rpx 40rpx;
.list-item{
margin-bottom: 10%;
padding: 30rpx 16rpx 25rpx 16rpx;
background: #FDF0F1;
border-radius: 20rpx;
width: 100%;
// padding: 20rpx 20rpx 30rpx 20rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
line-height: 50rpx;
.member-left {
.item-title{
display: flex;
flex-direction: column;
justify-content: space-between;
width: 69%;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #000000;
.left-title {
font-size: 35rpx;
font-family: PingFang SC;
font-weight: 600;
color: #000000;
}
.left-info {
.item-phone{
display: flex;
justify-content: space-between;
align-items: center;
font-size: 30rpx;
color: #E91D51;
view{
border-radius: 3rpx;
margin-right: 10rpx;
width: 5rpx;
height: 12rpx;
background: #E91D51;
}
}
.left-button{
display: flex;
justify-content: space-between;
margin-top: 10rpx;
image{
width: 24rpx;
height: 24rpx;
margin-left: 13rpx;
}
.left-shopping{
display: flex;
align-items: center;
justify-content: center;
width: 204rpx;
height: 61rpx;
background: #F8EFF0;
border: 1px solid #F783B0;
border-radius: 30rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #000000;
}
.left-others{
background-image: url("../../static/images/others-button.png");
background-size: 204rpx 61rpx;
display: flex;
align-items: center;
justify-content: center;
width: 204rpx;
height: 61rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
button{
padding: 6rpx ;
font-size: 26rpx;
background: rgb(22,155,213);
color: #fff;
}
}
.member-right {
.item-text{
padding: 34rpx 12rpx;
background: #fff;
margin-top: 20rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
width: 22%;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #000000;
image {
width: 100rpx;
height: 100rpx;
border-radius: 50%;
margin-bottom: 10rpx;
}
button {
margin-top: 10rpx;
padding: 7rpx 16rpx;
background: #F22E60;
border-image: linear-gradient(0deg, #A8052E, #FFFFFF) 10 10;
border-radius: 18rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
font-size: 30rpx;
}
}
.box-equity {
// border-radius: 20rpx;
width: 100%;
padding: 0 40rpx;
background: url(../../static/images/memberEquity.png);

View File

@ -14,14 +14,14 @@
<image src="../../static/images/shopping-right.png" ></image>
</view>
<view class="left-others" @click="handleRouter('为他人充值')">
他人充值
他人充值
<image src="../../static/images/others-right.png" ></image>
</view>
</view>
</view>
<view class="member-right">
<image src='../../static/images/vipStar.png'></image>
<text>会员等级{{vipData.findIndex((item) => item == memberDetail.grade) +1}}</text>
<text>会员等级{{vipData.findIndex((item) => item == parseInt(memberDetail.grade)) +1}}</text>
<button @click="handleRenew"></button>
</view>
</view>
@ -47,11 +47,11 @@
</view>
</view>
<view class="money-box money-treat">
<text>返还金额 () </text>
<text>返还金额 () </text>
<text class="money-text">{{list[list.findIndex((i) => item.gear == i.name)].name-item.totalMoney}}</text>
</view>
<view class="money-box money-term">
<text>返还期额</text>
<text>返还期额</text>
<text class="money-text">{{item.frequency}}x12</text>
</view>
<view class="money-box money-time">
@ -81,15 +81,15 @@
list: [
{
img:'../../static/images/member240.png',
name:'360'
name:360
},
{
img:'../../static/images/member400.png',
name:'600'
name:600
},
{
img:'../../static/images/member960.png',
name:'900'
name:900
},
],
vipData:['普通会员','中级会员','高级会员'],

View File

@ -3,13 +3,13 @@
<view class="box-seach">
<u-search placeholder="按手机号搜索查询" v-model="keyword" border-color="#F94B78" height="70" margin="0 0 35rpx 0" placeholder-color="#9C9C9C" bg-color="#fff" :show-action="false"></u-search>
</view>
<view class="list-item" v-for="(item,index) in memberData" :key="index">
<view class="list-item" v-for="(item,index) in memberData" :key="index" @click.stop="handleBack(item)">
<view class="item-title">
<view class="item-phone">
<view></view>
<text>充值号码{{item.userPhone}}</text>
</view>
<button v-show="item.bool" @click="handleService(item.orderId)">退</button>
<button v-show="item.bool" @click.stop="handleService(item.orderId)">退</button>
</view>
<view class="item-text">
<text>充值档次{{item.grade}}</text>
@ -34,23 +34,13 @@
};
},
async onLoad() {
let milliseconds = 2 * 3600 * 1000 // 7200000
let timestamp = new Date().getTime()
const res = await memberOrderInfo()
const arr = res.data.map((item) => {
return {
...item,
bool:item.createTime+milliseconds>timestamp
}
})
this.memberData = arr
await this.getList()
},
watch:{
keyword :Debounce (function (){
this.memberData.sort((a,b) =>{
let aIndex = this.keyword.indexOf(a.userPhone)
let bIndex = this.keyword.indexOf(b.userPhone)
console.log(aIndex,bIndex)
if(aIndex > bIndex) return -1
if(aIndex < bIndex) return 1
if(a.userPhone == b.userPhone){
@ -64,8 +54,30 @@
},1000)
},
methods: {
handleBack(item){
console.log(item)
uni.navigateTo({
url:`/pages/member_back/index?userPhone=${item.userPhone}&grade=${item.grade}`
})
},
async getList(){
let milliseconds = 2 * 3600 * 1000 // 7200000
let timestamp = new Date().getTime()
const res = await memberOrderInfo()
const arr = res.data.map((item) => {
return {
...item,
bool:item.createTime+milliseconds>timestamp
}
})
this.memberData = arr
},
async handleService(orderId){
await memberApplyRefund({orderId})
this.$util.Tips({
title: '申请成功'
});
await this.getList()
}
}
};