逆向完成所有微服务基本curd代码

develop
ddyd 4 weeks ago
parent eb38377dfb
commit 05054cef87

@ -0,0 +1,14 @@
spring:
datasource:
username: root
password: 7536981
url: jdbc:mysql://192.168.88.131:3306/mall_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
config-locations: classpath*:/mapper/**/*.xml #classpath*中的*指的是不止引用自己路径的mapper依赖的jar包也扫描
global-config:
db-config:
id-type: auto #主键自增
server:
port: 7000

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.CouponDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.CouponEntity" id="couponMap">
<result property="id" column="id"/>
<result property="couponType" column="coupon_type"/>
<result property="couponImg" column="coupon_img"/>
<result property="couponName" column="coupon_name"/>
<result property="num" column="num"/>
<result property="amount" column="amount"/>
<result property="perLimit" column="per_limit"/>
<result property="minPoint" column="min_point"/>
<result property="startTime" column="start_time"/>
<result property="endTime" column="end_time"/>
<result property="useType" column="use_type"/>
<result property="note" column="note"/>
<result property="publishCount" column="publish_count"/>
<result property="useCount" column="use_count"/>
<result property="receiveCount" column="receive_count"/>
<result property="enableStartTime" column="enable_start_time"/>
<result property="enableEndTime" column="enable_end_time"/>
<result property="code" column="code"/>
<result property="memberLevel" column="member_level"/>
<result property="publish" column="publish"/>
</resultMap>
</mapper>

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.CouponHistoryDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.CouponHistoryEntity" id="couponHistoryMap">
<result property="id" column="id"/>
<result property="couponId" column="coupon_id"/>
<result property="memberId" column="member_id"/>
<result property="memberNickName" column="member_nick_name"/>
<result property="getType" column="get_type"/>
<result property="createTime" column="create_time"/>
<result property="useType" column="use_type"/>
<result property="useTime" column="use_time"/>
<result property="orderId" column="order_id"/>
<result property="orderSn" column="order_sn"/>
</resultMap>
</mapper>

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.CouponSpuCategoryRelationDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.CouponSpuCategoryRelationEntity" id="couponSpuCategoryRelationMap">
<result property="id" column="id"/>
<result property="couponId" column="coupon_id"/>
<result property="categoryId" column="category_id"/>
<result property="categoryName" column="category_name"/>
</resultMap>
</mapper>

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.HomeAdvDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.HomeAdvEntity" id="homeAdvMap">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="pic" column="pic"/>
<result property="startTime" column="start_time"/>
<result property="endTime" column="end_time"/>
<result property="status" column="status"/>
<result property="clickCount" column="click_count"/>
<result property="url" column="url"/>
<result property="note" column="note"/>
<result property="sort" column="sort"/>
<result property="publisherId" column="publisher_id"/>
<result property="authId" column="auth_id"/>
</resultMap>
</mapper>

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.HomeSubjectDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.HomeSubjectEntity" id="homeSubjectMap">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="title" column="title"/>
<result property="subTitle" column="sub_title"/>
<result property="status" column="status"/>
<result property="url" column="url"/>
<result property="sort" column="sort"/>
<result property="img" column="img"/>
</resultMap>
</mapper>

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.HomeSubjectSpuDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.HomeSubjectSpuEntity" id="homeSubjectSpuMap">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="subjectId" column="subject_id"/>
<result property="spuId" column="spu_id"/>
<result property="sort" column="sort"/>
</resultMap>
</mapper>

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.MemberPriceDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.MemberPriceEntity" id="memberPriceMap">
<result property="id" column="id"/>
<result property="skuId" column="sku_id"/>
<result property="memberLevelId" column="member_level_id"/>
<result property="memberLevelName" column="member_level_name"/>
<result property="memberPrice" column="member_price"/>
<result property="addOther" column="add_other"/>
</resultMap>
</mapper>

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.SeckillPromotionDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.SeckillPromotionEntity" id="seckillPromotionMap">
<result property="id" column="id"/>
<result property="title" column="title"/>
<result property="startTime" column="start_time"/>
<result property="endTime" column="end_time"/>
<result property="status" column="status"/>
<result property="createTime" column="create_time"/>
<result property="userId" column="user_id"/>
</resultMap>
</mapper>

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.SeckillSkuNoticeDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.SeckillSkuNoticeEntity" id="seckillSkuNoticeMap">
<result property="id" column="id"/>
<result property="memberId" column="member_id"/>
<result property="skuId" column="sku_id"/>
<result property="sessionId" column="session_id"/>
<result property="subcribeTime" column="subcribe_time"/>
<result property="sendTime" column="send_time"/>
<result property="noticeType" column="notice_type"/>
</resultMap>
</mapper>

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.SeckillSkuRelationDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.SeckillSkuRelationEntity" id="seckillSkuRelationMap">
<result property="id" column="id"/>
<result property="promotionId" column="promotion_id"/>
<result property="promotionSessionId" column="promotion_session_id"/>
<result property="skuId" column="sku_id"/>
<result property="seckillPrice" column="seckill_price"/>
<result property="seckillCount" column="seckill_count"/>
<result property="seckillLimit" column="seckill_limit"/>
<result property="seckillSort" column="seckill_sort"/>
</resultMap>
</mapper>

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.SkuFullReductionDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.SkuFullReductionEntity" id="skuFullReductionMap">
<result property="id" column="id"/>
<result property="skuId" column="sku_id"/>
<result property="fullPrice" column="full_price"/>
<result property="reducePrice" column="reduce_price"/>
<result property="addOther" column="add_other"/>
</resultMap>
</mapper>

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.SkuLadderDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.SkuLadderEntity" id="skuLadderMap">
<result property="id" column="id"/>
<result property="skuId" column="sku_id"/>
<result property="fullCount" column="full_count"/>
<result property="discount" column="discount"/>
<result property="price" column="price"/>
<result property="addOther" column="add_other"/>
</resultMap>
</mapper>

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.SpuBoundsDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.SpuBoundsEntity" id="spuBoundsMap">
<result property="id" column="id"/>
<result property="spuId" column="spu_id"/>
<result property="growBounds" column="grow_bounds"/>
<result property="buyBounds" column="buy_bounds"/>
<result property="work" column="work"/>
</resultMap>
</mapper>

@ -1,246 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="优惠卷类型[0->全场赠券1->会员赠券2->购物赠券3->注册赠券]" prop="couponType">
<el-input v-model="dataForm.couponType" placeholder="优惠卷类型[0->全场赠券1->会员赠券2->购物赠券3->注册赠券]"></el-input>
</el-form-item>
<el-form-item label="优惠券图片" prop="couponImg">
<el-input v-model="dataForm.couponImg" placeholder="优惠券图片"></el-input>
</el-form-item>
<el-form-item label="优惠卷名字" prop="couponName">
<el-input v-model="dataForm.couponName" placeholder="优惠卷名字"></el-input>
</el-form-item>
<el-form-item label="数量" prop="num">
<el-input v-model="dataForm.num" placeholder="数量"></el-input>
</el-form-item>
<el-form-item label="金额" prop="amount">
<el-input v-model="dataForm.amount" placeholder="金额"></el-input>
</el-form-item>
<el-form-item label="每人限领张数" prop="perLimit">
<el-input v-model="dataForm.perLimit" placeholder="每人限领张数"></el-input>
</el-form-item>
<el-form-item label="使用门槛" prop="minPoint">
<el-input v-model="dataForm.minPoint" placeholder="使用门槛"></el-input>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-input v-model="dataForm.startTime" placeholder="开始时间"></el-input>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-input v-model="dataForm.endTime" placeholder="结束时间"></el-input>
</el-form-item>
<el-form-item label="使用类型[0->全场通用1->指定分类2->指定商品]" prop="useType">
<el-input v-model="dataForm.useType" placeholder="使用类型[0->全场通用1->指定分类2->指定商品]"></el-input>
</el-form-item>
<el-form-item label="备注" prop="note">
<el-input v-model="dataForm.note" placeholder="备注"></el-input>
</el-form-item>
<el-form-item label="发行数量" prop="publishCount">
<el-input v-model="dataForm.publishCount" placeholder="发行数量"></el-input>
</el-form-item>
<el-form-item label="已使用数量" prop="useCount">
<el-input v-model="dataForm.useCount" placeholder="已使用数量"></el-input>
</el-form-item>
<el-form-item label="领取数量" prop="receiveCount">
<el-input v-model="dataForm.receiveCount" placeholder="领取数量"></el-input>
</el-form-item>
<el-form-item label="可以领取的开始日期" prop="enableStartTime">
<el-input v-model="dataForm.enableStartTime" placeholder="可以领取的开始日期"></el-input>
</el-form-item>
<el-form-item label="可以领取的结束日期" prop="enableEndTime">
<el-input v-model="dataForm.enableEndTime" placeholder="可以领取的结束日期"></el-input>
</el-form-item>
<el-form-item label="优惠码" prop="code">
<el-input v-model="dataForm.code" placeholder="优惠码"></el-input>
</el-form-item>
<el-form-item label="可以领取的会员等级[0->不限等级,其他-对应等级]" prop="memberLevel">
<el-input v-model="dataForm.memberLevel" placeholder="可以领取的会员等级[0->不限等级,其他-对应等级]"></el-input>
</el-form-item>
<el-form-item label="发布状态[0-未发布1-已发布]" prop="publish">
<el-input v-model="dataForm.publish" placeholder="发布状态[0-未发布1-已发布]"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
couponType: '',
couponImg: '',
couponName: '',
num: '',
amount: '',
perLimit: '',
minPoint: '',
startTime: '',
endTime: '',
useType: '',
note: '',
publishCount: '',
useCount: '',
receiveCount: '',
enableStartTime: '',
enableEndTime: '',
code: '',
memberLevel: '',
publish: ''
},
dataRule: {
couponType: [
{ required: true, message: '优惠卷类型[0->全场赠券1->会员赠券2->购物赠券3->注册赠券]不能为空', trigger: 'blur' }
],
couponImg: [
{ required: true, message: '优惠券图片不能为空', trigger: 'blur' }
],
couponName: [
{ required: true, message: '优惠卷名字不能为空', trigger: 'blur' }
],
num: [
{ required: true, message: '数量不能为空', trigger: 'blur' }
],
amount: [
{ required: true, message: '金额不能为空', trigger: 'blur' }
],
perLimit: [
{ required: true, message: '每人限领张数不能为空', trigger: 'blur' }
],
minPoint: [
{ required: true, message: '使用门槛不能为空', trigger: 'blur' }
],
startTime: [
{ required: true, message: '开始时间不能为空', trigger: 'blur' }
],
endTime: [
{ required: true, message: '结束时间不能为空', trigger: 'blur' }
],
useType: [
{ required: true, message: '使用类型[0->全场通用1->指定分类2->指定商品]不能为空', trigger: 'blur' }
],
note: [
{ required: true, message: '备注不能为空', trigger: 'blur' }
],
publishCount: [
{ required: true, message: '发行数量不能为空', trigger: 'blur' }
],
useCount: [
{ required: true, message: '已使用数量不能为空', trigger: 'blur' }
],
receiveCount: [
{ required: true, message: '领取数量不能为空', trigger: 'blur' }
],
enableStartTime: [
{ required: true, message: '可以领取的开始日期不能为空', trigger: 'blur' }
],
enableEndTime: [
{ required: true, message: '可以领取的结束日期不能为空', trigger: 'blur' }
],
code: [
{ required: true, message: '优惠码不能为空', trigger: 'blur' }
],
memberLevel: [
{ required: true, message: '可以领取的会员等级[0->不限等级,其他-对应等级]不能为空', trigger: 'blur' }
],
publish: [
{ required: true, message: '发布状态[0-未发布1-已发布]不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/coupon/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.couponType = data.coupon.couponType
this.dataForm.couponImg = data.coupon.couponImg
this.dataForm.couponName = data.coupon.couponName
this.dataForm.num = data.coupon.num
this.dataForm.amount = data.coupon.amount
this.dataForm.perLimit = data.coupon.perLimit
this.dataForm.minPoint = data.coupon.minPoint
this.dataForm.startTime = data.coupon.startTime
this.dataForm.endTime = data.coupon.endTime
this.dataForm.useType = data.coupon.useType
this.dataForm.note = data.coupon.note
this.dataForm.publishCount = data.coupon.publishCount
this.dataForm.useCount = data.coupon.useCount
this.dataForm.receiveCount = data.coupon.receiveCount
this.dataForm.enableStartTime = data.coupon.enableStartTime
this.dataForm.enableEndTime = data.coupon.enableEndTime
this.dataForm.code = data.coupon.code
this.dataForm.memberLevel = data.coupon.memberLevel
this.dataForm.publish = data.coupon.publish
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/coupon/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'couponType': this.dataForm.couponType,
'couponImg': this.dataForm.couponImg,
'couponName': this.dataForm.couponName,
'num': this.dataForm.num,
'amount': this.dataForm.amount,
'perLimit': this.dataForm.perLimit,
'minPoint': this.dataForm.minPoint,
'startTime': this.dataForm.startTime,
'endTime': this.dataForm.endTime,
'useType': this.dataForm.useType,
'note': this.dataForm.note,
'publishCount': this.dataForm.publishCount,
'useCount': this.dataForm.useCount,
'receiveCount': this.dataForm.receiveCount,
'enableStartTime': this.dataForm.enableStartTime,
'enableEndTime': this.dataForm.enableEndTime,
'code': this.dataForm.code,
'memberLevel': this.dataForm.memberLevel,
'publish': this.dataForm.publish
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,156 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="优惠券id" prop="couponId">
<el-input v-model="dataForm.couponId" placeholder="优惠券id"></el-input>
</el-form-item>
<el-form-item label="会员id" prop="memberId">
<el-input v-model="dataForm.memberId" placeholder="会员id"></el-input>
</el-form-item>
<el-form-item label="会员名字" prop="memberNickName">
<el-input v-model="dataForm.memberNickName" placeholder="会员名字"></el-input>
</el-form-item>
<el-form-item label="获取方式[0->后台赠送1->主动领取]" prop="getType">
<el-input v-model="dataForm.getType" placeholder="获取方式[0->后台赠送1->主动领取]"></el-input>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-input v-model="dataForm.createTime" placeholder="创建时间"></el-input>
</el-form-item>
<el-form-item label="使用状态[0->未使用1->已使用2->已过期]" prop="useType">
<el-input v-model="dataForm.useType" placeholder="使用状态[0->未使用1->已使用2->已过期]"></el-input>
</el-form-item>
<el-form-item label="使用时间" prop="useTime">
<el-input v-model="dataForm.useTime" placeholder="使用时间"></el-input>
</el-form-item>
<el-form-item label="订单id" prop="orderId">
<el-input v-model="dataForm.orderId" placeholder="订单id"></el-input>
</el-form-item>
<el-form-item label="订单号" prop="orderSn">
<el-input v-model="dataForm.orderSn" placeholder="订单号"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
couponId: '',
memberId: '',
memberNickName: '',
getType: '',
createTime: '',
useType: '',
useTime: '',
orderId: '',
orderSn: ''
},
dataRule: {
couponId: [
{ required: true, message: '优惠券id不能为空', trigger: 'blur' }
],
memberId: [
{ required: true, message: '会员id不能为空', trigger: 'blur' }
],
memberNickName: [
{ required: true, message: '会员名字不能为空', trigger: 'blur' }
],
getType: [
{ required: true, message: '获取方式[0->后台赠送1->主动领取]不能为空', trigger: 'blur' }
],
createTime: [
{ required: true, message: '创建时间不能为空', trigger: 'blur' }
],
useType: [
{ required: true, message: '使用状态[0->未使用1->已使用2->已过期]不能为空', trigger: 'blur' }
],
useTime: [
{ required: true, message: '使用时间不能为空', trigger: 'blur' }
],
orderId: [
{ required: true, message: '订单id不能为空', trigger: 'blur' }
],
orderSn: [
{ required: true, message: '订单号不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/couponhistory/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.couponId = data.couponHistory.couponId
this.dataForm.memberId = data.couponHistory.memberId
this.dataForm.memberNickName = data.couponHistory.memberNickName
this.dataForm.getType = data.couponHistory.getType
this.dataForm.createTime = data.couponHistory.createTime
this.dataForm.useType = data.couponHistory.useType
this.dataForm.useTime = data.couponHistory.useTime
this.dataForm.orderId = data.couponHistory.orderId
this.dataForm.orderSn = data.couponHistory.orderSn
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/couponhistory/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'couponId': this.dataForm.couponId,
'memberId': this.dataForm.memberId,
'memberNickName': this.dataForm.memberNickName,
'getType': this.dataForm.getType,
'createTime': this.dataForm.createTime,
'useType': this.dataForm.useType,
'useTime': this.dataForm.useTime,
'orderId': this.dataForm.orderId,
'orderSn': this.dataForm.orderSn
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,102 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="优惠券id" prop="couponId">
<el-input v-model="dataForm.couponId" placeholder="优惠券id"></el-input>
</el-form-item>
<el-form-item label="产品分类id" prop="categoryId">
<el-input v-model="dataForm.categoryId" placeholder="产品分类id"></el-input>
</el-form-item>
<el-form-item label="产品分类名称" prop="categoryName">
<el-input v-model="dataForm.categoryName" placeholder="产品分类名称"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
couponId: '',
categoryId: '',
categoryName: ''
},
dataRule: {
couponId: [
{ required: true, message: '优惠券id不能为空', trigger: 'blur' }
],
categoryId: [
{ required: true, message: '产品分类id不能为空', trigger: 'blur' }
],
categoryName: [
{ required: true, message: '产品分类名称不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/couponspucategoryrelation/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.couponId = data.couponSpuCategoryRelation.couponId
this.dataForm.categoryId = data.couponSpuCategoryRelation.categoryId
this.dataForm.categoryName = data.couponSpuCategoryRelation.categoryName
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/couponspucategoryrelation/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'couponId': this.dataForm.couponId,
'categoryId': this.dataForm.categoryId,
'categoryName': this.dataForm.categoryName
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,175 +0,0 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.key" placeholder="参数名" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()"></el-button>
<el-button v-if="isAuth('coupon:couponspucategoryrelation:save')" type="primary" @click="addOrUpdateHandle()"></el-button>
<el-button v-if="isAuth('coupon:couponspucategoryrelation:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0"></el-button>
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="id"
header-align="center"
align="center"
label="id">
</el-table-column>
<el-table-column
prop="couponId"
header-align="center"
align="center"
label="优惠券id">
</el-table-column>
<el-table-column
prop="categoryId"
header-align="center"
align="center"
label="产品分类id">
</el-table-column>
<el-table-column
prop="categoryName"
header-align="center"
align="center"
label="产品分类名称">
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)"></el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)"></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './couponspucategoryrelation-add-or-update'
export default {
data () {
return {
dataForm: {
key: ''
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate
},
activated () {
this.getDataList()
},
methods: {
//
getDataList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/coupon/couponspucategoryrelation/list'),
method: 'get',
params: this.$http.adornParams({
'page': this.pageIndex,
'limit': this.pageSize,
'key': this.dataForm.key
})
}).then(({data}) => {
if (data && data.code === 0) {
this.dataList = data.page.list
this.totalPage = data.page.totalCount
} else {
this.dataList = []
this.totalPage = 0
}
this.dataListLoading = false
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
selectionChangeHandle (val) {
this.dataListSelections = val
},
// /
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
//
deleteHandle (id) {
var ids = id ? [id] : this.dataListSelections.map(item => {
return item.id
})
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/coupon/couponspucategoryrelation/delete'),
method: 'post',
data: this.$http.adornData(ids, false)
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
})
}
}
}
</script>

@ -1,174 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="名字" prop="name">
<el-input v-model="dataForm.name" placeholder="名字"></el-input>
</el-form-item>
<el-form-item label="图片地址" prop="pic">
<el-input v-model="dataForm.pic" placeholder="图片地址"></el-input>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-input v-model="dataForm.startTime" placeholder="开始时间"></el-input>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-input v-model="dataForm.endTime" placeholder="结束时间"></el-input>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-input v-model="dataForm.status" placeholder="状态"></el-input>
</el-form-item>
<el-form-item label="点击数" prop="clickCount">
<el-input v-model="dataForm.clickCount" placeholder="点击数"></el-input>
</el-form-item>
<el-form-item label="广告详情连接地址" prop="url">
<el-input v-model="dataForm.url" placeholder="广告详情连接地址"></el-input>
</el-form-item>
<el-form-item label="备注" prop="note">
<el-input v-model="dataForm.note" placeholder="备注"></el-input>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="dataForm.sort" placeholder="排序"></el-input>
</el-form-item>
<el-form-item label="发布者" prop="publisherId">
<el-input v-model="dataForm.publisherId" placeholder="发布者"></el-input>
</el-form-item>
<el-form-item label="审核者" prop="authId">
<el-input v-model="dataForm.authId" placeholder="审核者"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
name: '',
pic: '',
startTime: '',
endTime: '',
status: '',
clickCount: '',
url: '',
note: '',
sort: '',
publisherId: '',
authId: ''
},
dataRule: {
name: [
{ required: true, message: '名字不能为空', trigger: 'blur' }
],
pic: [
{ required: true, message: '图片地址不能为空', trigger: 'blur' }
],
startTime: [
{ required: true, message: '开始时间不能为空', trigger: 'blur' }
],
endTime: [
{ required: true, message: '结束时间不能为空', trigger: 'blur' }
],
status: [
{ required: true, message: '状态不能为空', trigger: 'blur' }
],
clickCount: [
{ required: true, message: '点击数不能为空', trigger: 'blur' }
],
url: [
{ required: true, message: '广告详情连接地址不能为空', trigger: 'blur' }
],
note: [
{ required: true, message: '备注不能为空', trigger: 'blur' }
],
sort: [
{ required: true, message: '排序不能为空', trigger: 'blur' }
],
publisherId: [
{ required: true, message: '发布者不能为空', trigger: 'blur' }
],
authId: [
{ required: true, message: '审核者不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/homeadv/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.name = data.homeAdv.name
this.dataForm.pic = data.homeAdv.pic
this.dataForm.startTime = data.homeAdv.startTime
this.dataForm.endTime = data.homeAdv.endTime
this.dataForm.status = data.homeAdv.status
this.dataForm.clickCount = data.homeAdv.clickCount
this.dataForm.url = data.homeAdv.url
this.dataForm.note = data.homeAdv.note
this.dataForm.sort = data.homeAdv.sort
this.dataForm.publisherId = data.homeAdv.publisherId
this.dataForm.authId = data.homeAdv.authId
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/homeadv/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'name': this.dataForm.name,
'pic': this.dataForm.pic,
'startTime': this.dataForm.startTime,
'endTime': this.dataForm.endTime,
'status': this.dataForm.status,
'clickCount': this.dataForm.clickCount,
'url': this.dataForm.url,
'note': this.dataForm.note,
'sort': this.dataForm.sort,
'publisherId': this.dataForm.publisherId,
'authId': this.dataForm.authId
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,138 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="专题名字" prop="name">
<el-input v-model="dataForm.name" placeholder="专题名字"></el-input>
</el-form-item>
<el-form-item label="专题标题" prop="title">
<el-input v-model="dataForm.title" placeholder="专题标题"></el-input>
</el-form-item>
<el-form-item label="专题副标题" prop="subTitle">
<el-input v-model="dataForm.subTitle" placeholder="专题副标题"></el-input>
</el-form-item>
<el-form-item label="显示状态" prop="status">
<el-input v-model="dataForm.status" placeholder="显示状态"></el-input>
</el-form-item>
<el-form-item label="详情连接" prop="url">
<el-input v-model="dataForm.url" placeholder="详情连接"></el-input>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="dataForm.sort" placeholder="排序"></el-input>
</el-form-item>
<el-form-item label="专题图片地址" prop="img">
<el-input v-model="dataForm.img" placeholder="专题图片地址"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
name: '',
title: '',
subTitle: '',
status: '',
url: '',
sort: '',
img: ''
},
dataRule: {
name: [
{ required: true, message: '专题名字不能为空', trigger: 'blur' }
],
title: [
{ required: true, message: '专题标题不能为空', trigger: 'blur' }
],
subTitle: [
{ required: true, message: '专题副标题不能为空', trigger: 'blur' }
],
status: [
{ required: true, message: '显示状态不能为空', trigger: 'blur' }
],
url: [
{ required: true, message: '详情连接不能为空', trigger: 'blur' }
],
sort: [
{ required: true, message: '排序不能为空', trigger: 'blur' }
],
img: [
{ required: true, message: '专题图片地址不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/homesubject/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.name = data.homeSubject.name
this.dataForm.title = data.homeSubject.title
this.dataForm.subTitle = data.homeSubject.subTitle
this.dataForm.status = data.homeSubject.status
this.dataForm.url = data.homeSubject.url
this.dataForm.sort = data.homeSubject.sort
this.dataForm.img = data.homeSubject.img
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/homesubject/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'name': this.dataForm.name,
'title': this.dataForm.title,
'subTitle': this.dataForm.subTitle,
'status': this.dataForm.status,
'url': this.dataForm.url,
'sort': this.dataForm.sort,
'img': this.dataForm.img
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,181 +0,0 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.key" placeholder="参数名" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()"></el-button>
<el-button v-if="isAuth('coupon:homesubjectspu:save')" type="primary" @click="addOrUpdateHandle()"></el-button>
<el-button v-if="isAuth('coupon:homesubjectspu:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0"></el-button>
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="id"
header-align="center"
align="center"
label="id">
</el-table-column>
<el-table-column
prop="name"
header-align="center"
align="center"
label="专题名字">
</el-table-column>
<el-table-column
prop="subjectId"
header-align="center"
align="center"
label="专题id">
</el-table-column>
<el-table-column
prop="spuId"
header-align="center"
align="center"
label="spu_id">
</el-table-column>
<el-table-column
prop="sort"
header-align="center"
align="center"
label="排序">
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)"></el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)"></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './homesubjectspu-add-or-update'
export default {
data () {
return {
dataForm: {
key: ''
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate
},
activated () {
this.getDataList()
},
methods: {
//
getDataList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/coupon/homesubjectspu/list'),
method: 'get',
params: this.$http.adornParams({
'page': this.pageIndex,
'limit': this.pageSize,
'key': this.dataForm.key
})
}).then(({data}) => {
if (data && data.code === 0) {
this.dataList = data.page.list
this.totalPage = data.page.totalCount
} else {
this.dataList = []
this.totalPage = 0
}
this.dataListLoading = false
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
selectionChangeHandle (val) {
this.dataListSelections = val
},
// /
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
//
deleteHandle (id) {
var ids = id ? [id] : this.dataListSelections.map(item => {
return item.id
})
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/coupon/homesubjectspu/delete'),
method: 'post',
data: this.$http.adornData(ids, false)
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
})
}
}
}
</script>

@ -1,120 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="sku_id" prop="skuId">
<el-input v-model="dataForm.skuId" placeholder="sku_id"></el-input>
</el-form-item>
<el-form-item label="会员等级id" prop="memberLevelId">
<el-input v-model="dataForm.memberLevelId" placeholder="会员等级id"></el-input>
</el-form-item>
<el-form-item label="会员等级名" prop="memberLevelName">
<el-input v-model="dataForm.memberLevelName" placeholder="会员等级名"></el-input>
</el-form-item>
<el-form-item label="会员对应价格" prop="memberPrice">
<el-input v-model="dataForm.memberPrice" placeholder="会员对应价格"></el-input>
</el-form-item>
<el-form-item label="可否叠加其他优惠[0-不可叠加优惠1-可叠加]" prop="addOther">
<el-input v-model="dataForm.addOther" placeholder="可否叠加其他优惠[0-不可叠加优惠1-可叠加]"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
skuId: '',
memberLevelId: '',
memberLevelName: '',
memberPrice: '',
addOther: ''
},
dataRule: {
skuId: [
{ required: true, message: 'sku_id不能为空', trigger: 'blur' }
],
memberLevelId: [
{ required: true, message: '会员等级id不能为空', trigger: 'blur' }
],
memberLevelName: [
{ required: true, message: '会员等级名不能为空', trigger: 'blur' }
],
memberPrice: [
{ required: true, message: '会员对应价格不能为空', trigger: 'blur' }
],
addOther: [
{ required: true, message: '可否叠加其他优惠[0-不可叠加优惠1-可叠加]不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/memberprice/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.skuId = data.memberPrice.skuId
this.dataForm.memberLevelId = data.memberPrice.memberLevelId
this.dataForm.memberLevelName = data.memberPrice.memberLevelName
this.dataForm.memberPrice = data.memberPrice.memberPrice
this.dataForm.addOther = data.memberPrice.addOther
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/memberprice/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'skuId': this.dataForm.skuId,
'memberLevelId': this.dataForm.memberLevelId,
'memberLevelName': this.dataForm.memberLevelName,
'memberPrice': this.dataForm.memberPrice,
'addOther': this.dataForm.addOther
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,187 +0,0 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.key" placeholder="参数名" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()"></el-button>
<el-button v-if="isAuth('coupon:memberprice:save')" type="primary" @click="addOrUpdateHandle()"></el-button>
<el-button v-if="isAuth('coupon:memberprice:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0"></el-button>
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="id"
header-align="center"
align="center"
label="id">
</el-table-column>
<el-table-column
prop="skuId"
header-align="center"
align="center"
label="sku_id">
</el-table-column>
<el-table-column
prop="memberLevelId"
header-align="center"
align="center"
label="会员等级id">
</el-table-column>
<el-table-column
prop="memberLevelName"
header-align="center"
align="center"
label="会员等级名">
</el-table-column>
<el-table-column
prop="memberPrice"
header-align="center"
align="center"
label="会员对应价格">
</el-table-column>
<el-table-column
prop="addOther"
header-align="center"
align="center"
label="可否叠加其他优惠[0-不可叠加优惠1-可叠加]">
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)"></el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)"></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './memberprice-add-or-update'
export default {
data () {
return {
dataForm: {
key: ''
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate
},
activated () {
this.getDataList()
},
methods: {
//
getDataList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/coupon/memberprice/list'),
method: 'get',
params: this.$http.adornParams({
'page': this.pageIndex,
'limit': this.pageSize,
'key': this.dataForm.key
})
}).then(({data}) => {
if (data && data.code === 0) {
this.dataList = data.page.list
this.totalPage = data.page.totalCount
} else {
this.dataList = []
this.totalPage = 0
}
this.dataListLoading = false
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
selectionChangeHandle (val) {
this.dataListSelections = val
},
// /
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
//
deleteHandle (id) {
var ids = id ? [id] : this.dataListSelections.map(item => {
return item.id
})
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/coupon/memberprice/delete'),
method: 'post',
data: this.$http.adornData(ids, false)
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
})
}
}
}
</script>

@ -1,129 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="活动标题" prop="title">
<el-input v-model="dataForm.title" placeholder="活动标题"></el-input>
</el-form-item>
<el-form-item label="开始日期" prop="startTime">
<el-input v-model="dataForm.startTime" placeholder="开始日期"></el-input>
</el-form-item>
<el-form-item label="结束日期" prop="endTime">
<el-input v-model="dataForm.endTime" placeholder="结束日期"></el-input>
</el-form-item>
<el-form-item label="上下线状态" prop="status">
<el-input v-model="dataForm.status" placeholder="上下线状态"></el-input>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-input v-model="dataForm.createTime" placeholder="创建时间"></el-input>
</el-form-item>
<el-form-item label="创建人" prop="userId">
<el-input v-model="dataForm.userId" placeholder="创建人"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
title: '',
startTime: '',
endTime: '',
status: '',
createTime: '',
userId: ''
},
dataRule: {
title: [
{ required: true, message: '活动标题不能为空', trigger: 'blur' }
],
startTime: [
{ required: true, message: '开始日期不能为空', trigger: 'blur' }
],
endTime: [
{ required: true, message: '结束日期不能为空', trigger: 'blur' }
],
status: [
{ required: true, message: '上下线状态不能为空', trigger: 'blur' }
],
createTime: [
{ required: true, message: '创建时间不能为空', trigger: 'blur' }
],
userId: [
{ required: true, message: '创建人不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/seckillpromotion/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.title = data.seckillPromotion.title
this.dataForm.startTime = data.seckillPromotion.startTime
this.dataForm.endTime = data.seckillPromotion.endTime
this.dataForm.status = data.seckillPromotion.status
this.dataForm.createTime = data.seckillPromotion.createTime
this.dataForm.userId = data.seckillPromotion.userId
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/seckillpromotion/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'title': this.dataForm.title,
'startTime': this.dataForm.startTime,
'endTime': this.dataForm.endTime,
'status': this.dataForm.status,
'createTime': this.dataForm.createTime,
'userId': this.dataForm.userId
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,120 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="场次名称" prop="name">
<el-input v-model="dataForm.name" placeholder="场次名称"></el-input>
</el-form-item>
<el-form-item label="每日开始时间" prop="startTime">
<el-input v-model="dataForm.startTime" placeholder="每日开始时间"></el-input>
</el-form-item>
<el-form-item label="每日结束时间" prop="endTime">
<el-input v-model="dataForm.endTime" placeholder="每日结束时间"></el-input>
</el-form-item>
<el-form-item label="启用状态" prop="status">
<el-input v-model="dataForm.status" placeholder="启用状态"></el-input>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-input v-model="dataForm.createTime" placeholder="创建时间"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
name: '',
startTime: '',
endTime: '',
status: '',
createTime: ''
},
dataRule: {
name: [
{ required: true, message: '场次名称不能为空', trigger: 'blur' }
],
startTime: [
{ required: true, message: '每日开始时间不能为空', trigger: 'blur' }
],
endTime: [
{ required: true, message: '每日结束时间不能为空', trigger: 'blur' }
],
status: [
{ required: true, message: '启用状态不能为空', trigger: 'blur' }
],
createTime: [
{ required: true, message: '创建时间不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/seckillsession/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.name = data.seckillSession.name
this.dataForm.startTime = data.seckillSession.startTime
this.dataForm.endTime = data.seckillSession.endTime
this.dataForm.status = data.seckillSession.status
this.dataForm.createTime = data.seckillSession.createTime
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/seckillsession/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'name': this.dataForm.name,
'startTime': this.dataForm.startTime,
'endTime': this.dataForm.endTime,
'status': this.dataForm.status,
'createTime': this.dataForm.createTime
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,129 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="member_id" prop="memberId">
<el-input v-model="dataForm.memberId" placeholder="member_id"></el-input>
</el-form-item>
<el-form-item label="sku_id" prop="skuId">
<el-input v-model="dataForm.skuId" placeholder="sku_id"></el-input>
</el-form-item>
<el-form-item label="活动场次id" prop="sessionId">
<el-input v-model="dataForm.sessionId" placeholder="活动场次id"></el-input>
</el-form-item>
<el-form-item label="订阅时间" prop="subcribeTime">
<el-input v-model="dataForm.subcribeTime" placeholder="订阅时间"></el-input>
</el-form-item>
<el-form-item label="发送时间" prop="sendTime">
<el-input v-model="dataForm.sendTime" placeholder="发送时间"></el-input>
</el-form-item>
<el-form-item label="通知方式[0-短信1-邮件]" prop="noticeType">
<el-input v-model="dataForm.noticeType" placeholder="通知方式[0-短信1-邮件]"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
memberId: '',
skuId: '',
sessionId: '',
subcribeTime: '',
sendTime: '',
noticeType: ''
},
dataRule: {
memberId: [
{ required: true, message: 'member_id不能为空', trigger: 'blur' }
],
skuId: [
{ required: true, message: 'sku_id不能为空', trigger: 'blur' }
],
sessionId: [
{ required: true, message: '活动场次id不能为空', trigger: 'blur' }
],
subcribeTime: [
{ required: true, message: '订阅时间不能为空', trigger: 'blur' }
],
sendTime: [
{ required: true, message: '发送时间不能为空', trigger: 'blur' }
],
noticeType: [
{ required: true, message: '通知方式[0-短信1-邮件]不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/seckillskunotice/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.memberId = data.seckillSkuNotice.memberId
this.dataForm.skuId = data.seckillSkuNotice.skuId
this.dataForm.sessionId = data.seckillSkuNotice.sessionId
this.dataForm.subcribeTime = data.seckillSkuNotice.subcribeTime
this.dataForm.sendTime = data.seckillSkuNotice.sendTime
this.dataForm.noticeType = data.seckillSkuNotice.noticeType
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/seckillskunotice/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'memberId': this.dataForm.memberId,
'skuId': this.dataForm.skuId,
'sessionId': this.dataForm.sessionId,
'subcribeTime': this.dataForm.subcribeTime,
'sendTime': this.dataForm.sendTime,
'noticeType': this.dataForm.noticeType
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,193 +0,0 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.key" placeholder="参数名" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()"></el-button>
<el-button v-if="isAuth('coupon:seckillskunotice:save')" type="primary" @click="addOrUpdateHandle()"></el-button>
<el-button v-if="isAuth('coupon:seckillskunotice:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0"></el-button>
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="id"
header-align="center"
align="center"
label="id">
</el-table-column>
<el-table-column
prop="memberId"
header-align="center"
align="center"
label="member_id">
</el-table-column>
<el-table-column
prop="skuId"
header-align="center"
align="center"
label="sku_id">
</el-table-column>
<el-table-column
prop="sessionId"
header-align="center"
align="center"
label="活动场次id">
</el-table-column>
<el-table-column
prop="subcribeTime"
header-align="center"
align="center"
label="订阅时间">
</el-table-column>
<el-table-column
prop="sendTime"
header-align="center"
align="center"
label="发送时间">
</el-table-column>
<el-table-column
prop="noticeType"
header-align="center"
align="center"
label="通知方式[0-短信1-邮件]">
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)"></el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)"></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './seckillskunotice-add-or-update'
export default {
data () {
return {
dataForm: {
key: ''
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate
},
activated () {
this.getDataList()
},
methods: {
//
getDataList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/coupon/seckillskunotice/list'),
method: 'get',
params: this.$http.adornParams({
'page': this.pageIndex,
'limit': this.pageSize,
'key': this.dataForm.key
})
}).then(({data}) => {
if (data && data.code === 0) {
this.dataList = data.page.list
this.totalPage = data.page.totalCount
} else {
this.dataList = []
this.totalPage = 0
}
this.dataListLoading = false
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
selectionChangeHandle (val) {
this.dataListSelections = val
},
// /
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
//
deleteHandle (id) {
var ids = id ? [id] : this.dataListSelections.map(item => {
return item.id
})
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/coupon/seckillskunotice/delete'),
method: 'post',
data: this.$http.adornData(ids, false)
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
})
}
}
}
</script>

@ -1,138 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="活动id" prop="promotionId">
<el-input v-model="dataForm.promotionId" placeholder="活动id"></el-input>
</el-form-item>
<el-form-item label="活动场次id" prop="promotionSessionId">
<el-input v-model="dataForm.promotionSessionId" placeholder="活动场次id"></el-input>
</el-form-item>
<el-form-item label="商品id" prop="skuId">
<el-input v-model="dataForm.skuId" placeholder="商品id"></el-input>
</el-form-item>
<el-form-item label="秒杀价格" prop="seckillPrice">
<el-input v-model="dataForm.seckillPrice" placeholder="秒杀价格"></el-input>
</el-form-item>
<el-form-item label="秒杀总量" prop="seckillCount">
<el-input v-model="dataForm.seckillCount" placeholder="秒杀总量"></el-input>
</el-form-item>
<el-form-item label="每人限购数量" prop="seckillLimit">
<el-input v-model="dataForm.seckillLimit" placeholder="每人限购数量"></el-input>
</el-form-item>
<el-form-item label="排序" prop="seckillSort">
<el-input v-model="dataForm.seckillSort" placeholder="排序"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
promotionId: '',
promotionSessionId: '',
skuId: '',
seckillPrice: '',
seckillCount: '',
seckillLimit: '',
seckillSort: ''
},
dataRule: {
promotionId: [
{ required: true, message: '活动id不能为空', trigger: 'blur' }
],
promotionSessionId: [
{ required: true, message: '活动场次id不能为空', trigger: 'blur' }
],
skuId: [
{ required: true, message: '商品id不能为空', trigger: 'blur' }
],
seckillPrice: [
{ required: true, message: '秒杀价格不能为空', trigger: 'blur' }
],
seckillCount: [
{ required: true, message: '秒杀总量不能为空', trigger: 'blur' }
],
seckillLimit: [
{ required: true, message: '每人限购数量不能为空', trigger: 'blur' }
],
seckillSort: [
{ required: true, message: '排序不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/seckillskurelation/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.promotionId = data.seckillSkuRelation.promotionId
this.dataForm.promotionSessionId = data.seckillSkuRelation.promotionSessionId
this.dataForm.skuId = data.seckillSkuRelation.skuId
this.dataForm.seckillPrice = data.seckillSkuRelation.seckillPrice
this.dataForm.seckillCount = data.seckillSkuRelation.seckillCount
this.dataForm.seckillLimit = data.seckillSkuRelation.seckillLimit
this.dataForm.seckillSort = data.seckillSkuRelation.seckillSort
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/seckillskurelation/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'promotionId': this.dataForm.promotionId,
'promotionSessionId': this.dataForm.promotionSessionId,
'skuId': this.dataForm.skuId,
'seckillPrice': this.dataForm.seckillPrice,
'seckillCount': this.dataForm.seckillCount,
'seckillLimit': this.dataForm.seckillLimit,
'seckillSort': this.dataForm.seckillSort
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,199 +0,0 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.key" placeholder="参数名" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()"></el-button>
<el-button v-if="isAuth('coupon:seckillskurelation:save')" type="primary" @click="addOrUpdateHandle()"></el-button>
<el-button v-if="isAuth('coupon:seckillskurelation:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0"></el-button>
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="id"
header-align="center"
align="center"
label="id">
</el-table-column>
<el-table-column
prop="promotionId"
header-align="center"
align="center"
label="活动id">
</el-table-column>
<el-table-column
prop="promotionSessionId"
header-align="center"
align="center"
label="活动场次id">
</el-table-column>
<el-table-column
prop="skuId"
header-align="center"
align="center"
label="商品id">
</el-table-column>
<el-table-column
prop="seckillPrice"
header-align="center"
align="center"
label="秒杀价格">
</el-table-column>
<el-table-column
prop="seckillCount"
header-align="center"
align="center"
label="秒杀总量">
</el-table-column>
<el-table-column
prop="seckillLimit"
header-align="center"
align="center"
label="每人限购数量">
</el-table-column>
<el-table-column
prop="seckillSort"
header-align="center"
align="center"
label="排序">
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)"></el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)"></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './seckillskurelation-add-or-update'
export default {
data () {
return {
dataForm: {
key: ''
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate
},
activated () {
this.getDataList()
},
methods: {
//
getDataList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/coupon/seckillskurelation/list'),
method: 'get',
params: this.$http.adornParams({
'page': this.pageIndex,
'limit': this.pageSize,
'key': this.dataForm.key
})
}).then(({data}) => {
if (data && data.code === 0) {
this.dataList = data.page.list
this.totalPage = data.page.totalCount
} else {
this.dataList = []
this.totalPage = 0
}
this.dataListLoading = false
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
selectionChangeHandle (val) {
this.dataListSelections = val
},
// /
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
//
deleteHandle (id) {
var ids = id ? [id] : this.dataListSelections.map(item => {
return item.id
})
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/coupon/seckillskurelation/delete'),
method: 'post',
data: this.$http.adornData(ids, false)
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
})
}
}
}
</script>

@ -1,111 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="spu_id" prop="skuId">
<el-input v-model="dataForm.skuId" placeholder="spu_id"></el-input>
</el-form-item>
<el-form-item label="满多少" prop="fullPrice">
<el-input v-model="dataForm.fullPrice" placeholder="满多少"></el-input>
</el-form-item>
<el-form-item label="减多少" prop="reducePrice">
<el-input v-model="dataForm.reducePrice" placeholder="减多少"></el-input>
</el-form-item>
<el-form-item label="是否参与其他优惠" prop="addOther">
<el-input v-model="dataForm.addOther" placeholder="是否参与其他优惠"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
skuId: '',
fullPrice: '',
reducePrice: '',
addOther: ''
},
dataRule: {
skuId: [
{ required: true, message: 'spu_id不能为空', trigger: 'blur' }
],
fullPrice: [
{ required: true, message: '满多少不能为空', trigger: 'blur' }
],
reducePrice: [
{ required: true, message: '减多少不能为空', trigger: 'blur' }
],
addOther: [
{ required: true, message: '是否参与其他优惠不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/skufullreduction/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.skuId = data.skuFullReduction.skuId
this.dataForm.fullPrice = data.skuFullReduction.fullPrice
this.dataForm.reducePrice = data.skuFullReduction.reducePrice
this.dataForm.addOther = data.skuFullReduction.addOther
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/skufullreduction/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'skuId': this.dataForm.skuId,
'fullPrice': this.dataForm.fullPrice,
'reducePrice': this.dataForm.reducePrice,
'addOther': this.dataForm.addOther
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,120 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="spu_id" prop="skuId">
<el-input v-model="dataForm.skuId" placeholder="spu_id"></el-input>
</el-form-item>
<el-form-item label="满几件" prop="fullCount">
<el-input v-model="dataForm.fullCount" placeholder="满几件"></el-input>
</el-form-item>
<el-form-item label="打几折" prop="discount">
<el-input v-model="dataForm.discount" placeholder="打几折"></el-input>
</el-form-item>
<el-form-item label="折后价" prop="price">
<el-input v-model="dataForm.price" placeholder="折后价"></el-input>
</el-form-item>
<el-form-item label="是否叠加其他优惠[0-不可叠加1-可叠加]" prop="addOther">
<el-input v-model="dataForm.addOther" placeholder="是否叠加其他优惠[0-不可叠加1-可叠加]"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
skuId: '',
fullCount: '',
discount: '',
price: '',
addOther: ''
},
dataRule: {
skuId: [
{ required: true, message: 'spu_id不能为空', trigger: 'blur' }
],
fullCount: [
{ required: true, message: '满几件不能为空', trigger: 'blur' }
],
discount: [
{ required: true, message: '打几折不能为空', trigger: 'blur' }
],
price: [
{ required: true, message: '折后价不能为空', trigger: 'blur' }
],
addOther: [
{ required: true, message: '是否叠加其他优惠[0-不可叠加1-可叠加]不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/skuladder/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.skuId = data.skuLadder.skuId
this.dataForm.fullCount = data.skuLadder.fullCount
this.dataForm.discount = data.skuLadder.discount
this.dataForm.price = data.skuLadder.price
this.dataForm.addOther = data.skuLadder.addOther
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/skuladder/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'skuId': this.dataForm.skuId,
'fullCount': this.dataForm.fullCount,
'discount': this.dataForm.discount,
'price': this.dataForm.price,
'addOther': this.dataForm.addOther
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,111 +0,0 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="" prop="spuId">
<el-input v-model="dataForm.spuId" placeholder=""></el-input>
</el-form-item>
<el-form-item label="成长积分" prop="growBounds">
<el-input v-model="dataForm.growBounds" placeholder="成长积分"></el-input>
</el-form-item>
<el-form-item label="购物积分" prop="buyBounds">
<el-input v-model="dataForm.buyBounds" placeholder="购物积分"></el-input>
</el-form-item>
<el-form-item label="优惠生效情况[1111四个状态位从右到左;0 - 无优惠,成长积分是否赠送;1 - 无优惠,购物积分是否赠送;2 - 有优惠,成长积分是否赠送;3 - 有优惠购物积分是否赠送【状态位0不赠送1赠送】]" prop="work">
<el-input v-model="dataForm.work" placeholder="优惠生效情况[1111四个状态位从右到左;0 - 无优惠,成长积分是否赠送;1 - 无优惠,购物积分是否赠送;2 - 有优惠,成长积分是否赠送;3 - 有优惠购物积分是否赠送【状态位0不赠送1赠送】]"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
spuId: '',
growBounds: '',
buyBounds: '',
work: ''
},
dataRule: {
spuId: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
growBounds: [
{ required: true, message: '成长积分不能为空', trigger: 'blur' }
],
buyBounds: [
{ required: true, message: '购物积分不能为空', trigger: 'blur' }
],
work: [
{ required: true, message: '优惠生效情况[1111四个状态位从右到左;0 - 无优惠,成长积分是否赠送;1 - 无优惠,购物积分是否赠送;2 - 有优惠,成长积分是否赠送;3 - 有优惠购物积分是否赠送【状态位0不赠送1赠送】]不能为空', trigger: 'blur' }
]
}
}
},
methods: {
init (id) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/coupon/spubounds/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.spuId = data.spuBounds.spuId
this.dataForm.growBounds = data.spuBounds.growBounds
this.dataForm.buyBounds = data.spuBounds.buyBounds
this.dataForm.work = data.spuBounds.work
}
})
}
})
},
//
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/coupon/spubounds/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'spuId': this.dataForm.spuId,
'growBounds': this.dataForm.growBounds,
'buyBounds': this.dataForm.buyBounds,
'work': this.dataForm.work
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

@ -1,181 +0,0 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.key" placeholder="参数名" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()"></el-button>
<el-button v-if="isAuth('coupon:spubounds:save')" type="primary" @click="addOrUpdateHandle()"></el-button>
<el-button v-if="isAuth('coupon:spubounds:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0"></el-button>
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="id"
header-align="center"
align="center"
label="id">
</el-table-column>
<el-table-column
prop="spuId"
header-align="center"
align="center"
label="">
</el-table-column>
<el-table-column
prop="growBounds"
header-align="center"
align="center"
label="成长积分">
</el-table-column>
<el-table-column
prop="buyBounds"
header-align="center"
align="center"
label="购物积分">
</el-table-column>
<el-table-column
prop="work"
header-align="center"
align="center"
label="优惠生效情况[1111四个状态位从右到左;0 - 无优惠,成长积分是否赠送;1 - 无优惠,购物积分是否赠送;2 - 有优惠,成长积分是否赠送;3 - 有优惠购物积分是否赠送【状态位0不赠送1赠送】]">
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)"></el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)"></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './spubounds-add-or-update'
export default {
data () {
return {
dataForm: {
key: ''
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate
},
activated () {
this.getDataList()
},
methods: {
//
getDataList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/coupon/spubounds/list'),
method: 'get',
params: this.$http.adornParams({
'page': this.pageIndex,
'limit': this.pageSize,
'key': this.dataForm.key
})
}).then(({data}) => {
if (data && data.code === 0) {
this.dataList = data.page.list
this.totalPage = data.page.totalCount
} else {
this.dataList = []
this.totalPage = 0
}
this.dataListLoading = false
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
selectionChangeHandle (val) {
this.dataListSelections = val
},
// /
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
//
deleteHandle (id) {
var ids = id ? [id] : this.dataListSelections.map(item => {
return item.id
})
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/coupon/spubounds/delete'),
method: 'post',
data: this.$http.adornData(ids, false)
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
})
}
}
}
</script>

@ -32,6 +32,11 @@
<spring-cloud.version>2021.0.8</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>com.bookstore.bookmall</groupId>
<artifactId>mall-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>

@ -1,13 +1,13 @@
package com.bookstore.bookmall.bookmember;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class BookMemberApplication {
public static void main(String[] args) {
SpringApplication.run(BookMemberApplication.class, args);
}
}
package com.bookstore.bookmall.member;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class BookMemberApplication {
public static void main(String[] args) {
SpringApplication.run(BookMemberApplication.class, args);
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.member.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.member.entity.GrowthChangeHistoryEntity;
import com.bookstore.bookmall.member.service.GrowthChangeHistoryService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@RestController
@RequestMapping("member/growthchangehistory")
public class GrowthChangeHistoryController {
@Autowired
private GrowthChangeHistoryService growthChangeHistoryService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("member:growthchangehistory:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = growthChangeHistoryService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("member:growthchangehistory:info")
public R info(@PathVariable("id") Long id){
GrowthChangeHistoryEntity growthChangeHistory = growthChangeHistoryService.getById(id);
return R.ok().put("growthChangeHistory", growthChangeHistory);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("member:growthchangehistory:save")
public R save(@RequestBody GrowthChangeHistoryEntity growthChangeHistory){
growthChangeHistoryService.save(growthChangeHistory);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("member:growthchangehistory:update")
public R update(@RequestBody GrowthChangeHistoryEntity growthChangeHistory){
growthChangeHistoryService.updateById(growthChangeHistory);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("member:growthchangehistory:delete")
public R delete(@RequestBody Long[] ids){
growthChangeHistoryService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.member.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.member.entity.IntegrationChangeHistoryEntity;
import com.bookstore.bookmall.member.service.IntegrationChangeHistoryService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@RestController
@RequestMapping("member/integrationchangehistory")
public class IntegrationChangeHistoryController {
@Autowired
private IntegrationChangeHistoryService integrationChangeHistoryService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("member:integrationchangehistory:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = integrationChangeHistoryService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("member:integrationchangehistory:info")
public R info(@PathVariable("id") Long id){
IntegrationChangeHistoryEntity integrationChangeHistory = integrationChangeHistoryService.getById(id);
return R.ok().put("integrationChangeHistory", integrationChangeHistory);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("member:integrationchangehistory:save")
public R save(@RequestBody IntegrationChangeHistoryEntity integrationChangeHistory){
integrationChangeHistoryService.save(integrationChangeHistory);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("member:integrationchangehistory:update")
public R update(@RequestBody IntegrationChangeHistoryEntity integrationChangeHistory){
integrationChangeHistoryService.updateById(integrationChangeHistory);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("member:integrationchangehistory:delete")
public R delete(@RequestBody Long[] ids){
integrationChangeHistoryService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.member.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.member.entity.MemberCollectSpuEntity;
import com.bookstore.bookmall.member.service.MemberCollectSpuService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@RestController
@RequestMapping("member/membercollectspu")
public class MemberCollectSpuController {
@Autowired
private MemberCollectSpuService memberCollectSpuService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("member:membercollectspu:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = memberCollectSpuService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("member:membercollectspu:info")
public R info(@PathVariable("id") Long id){
MemberCollectSpuEntity memberCollectSpu = memberCollectSpuService.getById(id);
return R.ok().put("memberCollectSpu", memberCollectSpu);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("member:membercollectspu:save")
public R save(@RequestBody MemberCollectSpuEntity memberCollectSpu){
memberCollectSpuService.save(memberCollectSpu);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("member:membercollectspu:update")
public R update(@RequestBody MemberCollectSpuEntity memberCollectSpu){
memberCollectSpuService.updateById(memberCollectSpu);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("member:membercollectspu:delete")
public R delete(@RequestBody Long[] ids){
memberCollectSpuService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.member.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.member.entity.MemberCollectSubjectEntity;
import com.bookstore.bookmall.member.service.MemberCollectSubjectService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@RestController
@RequestMapping("member/membercollectsubject")
public class MemberCollectSubjectController {
@Autowired
private MemberCollectSubjectService memberCollectSubjectService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("member:membercollectsubject:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = memberCollectSubjectService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("member:membercollectsubject:info")
public R info(@PathVariable("id") Long id){
MemberCollectSubjectEntity memberCollectSubject = memberCollectSubjectService.getById(id);
return R.ok().put("memberCollectSubject", memberCollectSubject);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("member:membercollectsubject:save")
public R save(@RequestBody MemberCollectSubjectEntity memberCollectSubject){
memberCollectSubjectService.save(memberCollectSubject);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("member:membercollectsubject:update")
public R update(@RequestBody MemberCollectSubjectEntity memberCollectSubject){
memberCollectSubjectService.updateById(memberCollectSubject);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("member:membercollectsubject:delete")
public R delete(@RequestBody Long[] ids){
memberCollectSubjectService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.member.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.member.entity.MemberEntity;
import com.bookstore.bookmall.member.service.MemberService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@RestController
@RequestMapping("member/member")
public class MemberController {
@Autowired
private MemberService memberService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("member:member:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = memberService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("member:member:info")
public R info(@PathVariable("id") Long id){
MemberEntity member = memberService.getById(id);
return R.ok().put("member", member);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("member:member:save")
public R save(@RequestBody MemberEntity member){
memberService.save(member);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("member:member:update")
public R update(@RequestBody MemberEntity member){
memberService.updateById(member);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("member:member:delete")
public R delete(@RequestBody Long[] ids){
memberService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.member.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.member.entity.MemberLevelEntity;
import com.bookstore.bookmall.member.service.MemberLevelService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@RestController
@RequestMapping("member/memberlevel")
public class MemberLevelController {
@Autowired
private MemberLevelService memberLevelService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("member:memberlevel:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = memberLevelService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("member:memberlevel:info")
public R info(@PathVariable("id") Long id){
MemberLevelEntity memberLevel = memberLevelService.getById(id);
return R.ok().put("memberLevel", memberLevel);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("member:memberlevel:save")
public R save(@RequestBody MemberLevelEntity memberLevel){
memberLevelService.save(memberLevel);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("member:memberlevel:update")
public R update(@RequestBody MemberLevelEntity memberLevel){
memberLevelService.updateById(memberLevel);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("member:memberlevel:delete")
public R delete(@RequestBody Long[] ids){
memberLevelService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.member.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.member.entity.MemberLoginLogEntity;
import com.bookstore.bookmall.member.service.MemberLoginLogService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@RestController
@RequestMapping("member/memberloginlog")
public class MemberLoginLogController {
@Autowired
private MemberLoginLogService memberLoginLogService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("member:memberloginlog:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = memberLoginLogService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("member:memberloginlog:info")
public R info(@PathVariable("id") Long id){
MemberLoginLogEntity memberLoginLog = memberLoginLogService.getById(id);
return R.ok().put("memberLoginLog", memberLoginLog);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("member:memberloginlog:save")
public R save(@RequestBody MemberLoginLogEntity memberLoginLog){
memberLoginLogService.save(memberLoginLog);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("member:memberloginlog:update")
public R update(@RequestBody MemberLoginLogEntity memberLoginLog){
memberLoginLogService.updateById(memberLoginLog);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("member:memberloginlog:delete")
public R delete(@RequestBody Long[] ids){
memberLoginLogService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.member.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.member.entity.MemberReceiveAddressEntity;
import com.bookstore.bookmall.member.service.MemberReceiveAddressService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@RestController
@RequestMapping("member/memberreceiveaddress")
public class MemberReceiveAddressController {
@Autowired
private MemberReceiveAddressService memberReceiveAddressService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("member:memberreceiveaddress:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = memberReceiveAddressService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("member:memberreceiveaddress:info")
public R info(@PathVariable("id") Long id){
MemberReceiveAddressEntity memberReceiveAddress = memberReceiveAddressService.getById(id);
return R.ok().put("memberReceiveAddress", memberReceiveAddress);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("member:memberreceiveaddress:save")
public R save(@RequestBody MemberReceiveAddressEntity memberReceiveAddress){
memberReceiveAddressService.save(memberReceiveAddress);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("member:memberreceiveaddress:update")
public R update(@RequestBody MemberReceiveAddressEntity memberReceiveAddress){
memberReceiveAddressService.updateById(memberReceiveAddress);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("member:memberreceiveaddress:delete")
public R delete(@RequestBody Long[] ids){
memberReceiveAddressService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.member.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.member.entity.MemberStatisticsInfoEntity;
import com.bookstore.bookmall.member.service.MemberStatisticsInfoService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@RestController
@RequestMapping("member/memberstatisticsinfo")
public class MemberStatisticsInfoController {
@Autowired
private MemberStatisticsInfoService memberStatisticsInfoService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("member:memberstatisticsinfo:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = memberStatisticsInfoService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("member:memberstatisticsinfo:info")
public R info(@PathVariable("id") Long id){
MemberStatisticsInfoEntity memberStatisticsInfo = memberStatisticsInfoService.getById(id);
return R.ok().put("memberStatisticsInfo", memberStatisticsInfo);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("member:memberstatisticsinfo:save")
public R save(@RequestBody MemberStatisticsInfoEntity memberStatisticsInfo){
memberStatisticsInfoService.save(memberStatisticsInfo);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("member:memberstatisticsinfo:update")
public R update(@RequestBody MemberStatisticsInfoEntity memberStatisticsInfo){
memberStatisticsInfoService.updateById(memberStatisticsInfo);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("member:memberstatisticsinfo:delete")
public R delete(@RequestBody Long[] ids){
memberStatisticsInfoService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,17 @@
package com.bookstore.bookmall.member.dao;
import com.bookstore.bookmall.member.entity.GrowthChangeHistoryEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Mapper
public interface GrowthChangeHistoryDao extends BaseMapper<GrowthChangeHistoryEntity> {
}

@ -0,0 +1,17 @@
package com.bookstore.bookmall.member.dao;
import com.bookstore.bookmall.member.entity.IntegrationChangeHistoryEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Mapper
public interface IntegrationChangeHistoryDao extends BaseMapper<IntegrationChangeHistoryEntity> {
}

@ -0,0 +1,17 @@
package com.bookstore.bookmall.member.dao;
import com.bookstore.bookmall.member.entity.MemberCollectSpuEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Mapper
public interface MemberCollectSpuDao extends BaseMapper<MemberCollectSpuEntity> {
}

@ -0,0 +1,17 @@
package com.bookstore.bookmall.member.dao;
import com.bookstore.bookmall.member.entity.MemberCollectSubjectEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Mapper
public interface MemberCollectSubjectDao extends BaseMapper<MemberCollectSubjectEntity> {
}

@ -0,0 +1,17 @@
package com.bookstore.bookmall.member.dao;
import com.bookstore.bookmall.member.entity.MemberEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Mapper
public interface MemberDao extends BaseMapper<MemberEntity> {
}

@ -0,0 +1,17 @@
package com.bookstore.bookmall.member.dao;
import com.bookstore.bookmall.member.entity.MemberLevelEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Mapper
public interface MemberLevelDao extends BaseMapper<MemberLevelEntity> {
}

@ -0,0 +1,17 @@
package com.bookstore.bookmall.member.dao;
import com.bookstore.bookmall.member.entity.MemberLoginLogEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Mapper
public interface MemberLoginLogDao extends BaseMapper<MemberLoginLogEntity> {
}

@ -0,0 +1,17 @@
package com.bookstore.bookmall.member.dao;
import com.bookstore.bookmall.member.entity.MemberReceiveAddressEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Mapper
public interface MemberReceiveAddressDao extends BaseMapper<MemberReceiveAddressEntity> {
}

@ -0,0 +1,17 @@
package com.bookstore.bookmall.member.dao;
import com.bookstore.bookmall.member.entity.MemberStatisticsInfoEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Mapper
public interface MemberStatisticsInfoDao extends BaseMapper<MemberStatisticsInfoEntity> {
}

@ -0,0 +1,48 @@
package com.bookstore.bookmall.member.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Data
@TableName("ums_growth_change_history")
public class GrowthChangeHistoryEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId
private Long id;
/**
* member_id
*/
private Long memberId;
/**
* create_time
*/
private Date createTime;
/**
*
*/
private Integer changeCount;
/**
*
*/
private String note;
/**
* [0-1-]
*/
private Integer sourceType;
}

@ -0,0 +1,48 @@
package com.bookstore.bookmall.member.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Data
@TableName("ums_integration_change_history")
public class IntegrationChangeHistoryEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId
private Long id;
/**
* member_id
*/
private Long memberId;
/**
* create_time
*/
private Date createTime;
/**
*
*/
private Integer changeCount;
/**
*
*/
private String note;
/**
* [0->1->;2->]
*/
private Integer sourceTyoe;
}

@ -0,0 +1,48 @@
package com.bookstore.bookmall.member.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Data
@TableName("ums_member_collect_spu")
public class MemberCollectSpuEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId
private Long id;
/**
* id
*/
private Long memberId;
/**
* spu_id
*/
private Long spuId;
/**
* spu_name
*/
private String spuName;
/**
* spu_img
*/
private String spuImg;
/**
* create_time
*/
private Date createTime;
}

@ -0,0 +1,44 @@
package com.bookstore.bookmall.member.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Data
@TableName("ums_member_collect_subject")
public class MemberCollectSubjectEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId
private Long id;
/**
* subject_id
*/
private Long subjectId;
/**
* subject_name
*/
private String subjectName;
/**
* subject_img
*/
private String subjectImg;
/**
* url
*/
private String subjectUrll;
}

@ -0,0 +1,96 @@
package com.bookstore.bookmall.member.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Data
@TableName("ums_member")
public class MemberEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId
private Long id;
/**
* id
*/
private Long levelId;
/**
*
*/
private String username;
/**
*
*/
private String password;
/**
*
*/
private String nickname;
/**
*
*/
private String mobile;
/**
*
*/
private String email;
/**
*
*/
private String header;
/**
*
*/
private Integer gender;
/**
*
*/
private Date birth;
/**
*
*/
private String city;
/**
*
*/
private String job;
/**
*
*/
private String sign;
/**
*
*/
private Integer sourceType;
/**
*
*/
private Integer integration;
/**
*
*/
private Integer growth;
/**
*
*/
private Integer status;
/**
*
*/
private Date createTime;
}

@ -0,0 +1,65 @@
package com.bookstore.bookmall.member.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Data
@TableName("ums_member_level")
public class MemberLevelEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId
private Long id;
/**
*
*/
private String name;
/**
*
*/
private Integer growthPoint;
/**
* [0->1->]
*/
private Integer defaultStatus;
/**
*
*/
private BigDecimal freeFreightPoint;
/**
*
*/
private Integer commentGrowthPoint;
/**
*
*/
private Integer priviledgeFreeFreight;
/**
*
*/
private Integer priviledgeMemberPrice;
/**
*
*/
private Integer priviledgeBirthday;
/**
*
*/
private String note;
}

@ -0,0 +1,48 @@
package com.bookstore.bookmall.member.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Data
@TableName("ums_member_login_log")
public class MemberLoginLogEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId
private Long id;
/**
* member_id
*/
private Long memberId;
/**
*
*/
private Date createTime;
/**
* ip
*/
private String ip;
/**
* city
*/
private String city;
/**
* [1-web2-app]
*/
private Integer loginType;
}

@ -0,0 +1,68 @@
package com.bookstore.bookmall.member.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Data
@TableName("ums_member_receive_address")
public class MemberReceiveAddressEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId
private Long id;
/**
* member_id
*/
private Long memberId;
/**
*
*/
private String name;
/**
*
*/
private String phone;
/**
*
*/
private String postCode;
/**
* /
*/
private String province;
/**
*
*/
private String city;
/**
*
*/
private String region;
/**
* ()
*/
private String detailAddress;
/**
*
*/
private String areacode;
/**
*
*/
private Integer defaultStatus;
}

@ -0,0 +1,85 @@
package com.bookstore.bookmall.member.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
@Data
@TableName("ums_member_statistics_info")
public class MemberStatisticsInfoEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId
private Long id;
/**
* id
*/
private Long memberId;
/**
*
*/
private BigDecimal consumeAmount;
/**
*
*/
private BigDecimal couponAmount;
/**
*
*/
private Integer orderCount;
/**
*
*/
private Integer couponCount;
/**
*
*/
private Integer commentCount;
/**
* 退
*/
private Integer returnOrderCount;
/**
*
*/
private Integer loginCount;
/**
*
*/
private Integer attendCount;
/**
*
*/
private Integer fansCount;
/**
*
*/
private Integer collectProductCount;
/**
*
*/
private Integer collectSubjectCount;
/**
*
*/
private Integer collectCommentCount;
/**
*
*/
private Integer inviteFriendCount;
}

@ -0,0 +1,20 @@
package com.bookstore.bookmall.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.bookmall.member.entity.GrowthChangeHistoryEntity;
import java.util.Map;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
public interface GrowthChangeHistoryService extends IService<GrowthChangeHistoryEntity> {
PageUtils queryPage(Map<String, Object> params);
}

@ -0,0 +1,20 @@
package com.bookstore.bookmall.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.bookmall.member.entity.IntegrationChangeHistoryEntity;
import java.util.Map;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
public interface IntegrationChangeHistoryService extends IService<IntegrationChangeHistoryEntity> {
PageUtils queryPage(Map<String, Object> params);
}

@ -0,0 +1,20 @@
package com.bookstore.bookmall.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.bookmall.member.entity.MemberCollectSpuEntity;
import java.util.Map;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
public interface MemberCollectSpuService extends IService<MemberCollectSpuEntity> {
PageUtils queryPage(Map<String, Object> params);
}

@ -0,0 +1,20 @@
package com.bookstore.bookmall.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.bookmall.member.entity.MemberCollectSubjectEntity;
import java.util.Map;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
public interface MemberCollectSubjectService extends IService<MemberCollectSubjectEntity> {
PageUtils queryPage(Map<String, Object> params);
}

@ -0,0 +1,20 @@
package com.bookstore.bookmall.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.bookmall.member.entity.MemberLevelEntity;
import java.util.Map;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
public interface MemberLevelService extends IService<MemberLevelEntity> {
PageUtils queryPage(Map<String, Object> params);
}

@ -0,0 +1,20 @@
package com.bookstore.bookmall.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.bookmall.member.entity.MemberLoginLogEntity;
import java.util.Map;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
public interface MemberLoginLogService extends IService<MemberLoginLogEntity> {
PageUtils queryPage(Map<String, Object> params);
}

@ -0,0 +1,20 @@
package com.bookstore.bookmall.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.bookmall.member.entity.MemberReceiveAddressEntity;
import java.util.Map;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
public interface MemberReceiveAddressService extends IService<MemberReceiveAddressEntity> {
PageUtils queryPage(Map<String, Object> params);
}

@ -0,0 +1,20 @@
package com.bookstore.bookmall.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.bookmall.member.entity.MemberEntity;
import java.util.Map;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
public interface MemberService extends IService<MemberEntity> {
PageUtils queryPage(Map<String, Object> params);
}

@ -0,0 +1,20 @@
package com.bookstore.bookmall.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.bookmall.member.entity.MemberStatisticsInfoEntity;
import java.util.Map;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:12:48
*/
public interface MemberStatisticsInfoService extends IService<MemberStatisticsInfoEntity> {
PageUtils queryPage(Map<String, Object> params);
}

@ -0,0 +1,29 @@
package com.bookstore.bookmall.member.service.impl;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.Query;
import com.bookstore.bookmall.member.dao.GrowthChangeHistoryDao;
import com.bookstore.bookmall.member.entity.GrowthChangeHistoryEntity;
import com.bookstore.bookmall.member.service.GrowthChangeHistoryService;
@Service("growthChangeHistoryService")
public class GrowthChangeHistoryServiceImpl extends ServiceImpl<GrowthChangeHistoryDao, GrowthChangeHistoryEntity> implements GrowthChangeHistoryService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<GrowthChangeHistoryEntity> page = this.page(
new Query<GrowthChangeHistoryEntity>().getPage(params),
new QueryWrapper<GrowthChangeHistoryEntity>()
);
return new PageUtils(page);
}
}

@ -0,0 +1,29 @@
package com.bookstore.bookmall.member.service.impl;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.Query;
import com.bookstore.bookmall.member.dao.IntegrationChangeHistoryDao;
import com.bookstore.bookmall.member.entity.IntegrationChangeHistoryEntity;
import com.bookstore.bookmall.member.service.IntegrationChangeHistoryService;
@Service("integrationChangeHistoryService")
public class IntegrationChangeHistoryServiceImpl extends ServiceImpl<IntegrationChangeHistoryDao, IntegrationChangeHistoryEntity> implements IntegrationChangeHistoryService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<IntegrationChangeHistoryEntity> page = this.page(
new Query<IntegrationChangeHistoryEntity>().getPage(params),
new QueryWrapper<IntegrationChangeHistoryEntity>()
);
return new PageUtils(page);
}
}

@ -0,0 +1,29 @@
package com.bookstore.bookmall.member.service.impl;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.Query;
import com.bookstore.bookmall.member.dao.MemberCollectSpuDao;
import com.bookstore.bookmall.member.entity.MemberCollectSpuEntity;
import com.bookstore.bookmall.member.service.MemberCollectSpuService;
@Service("memberCollectSpuService")
public class MemberCollectSpuServiceImpl extends ServiceImpl<MemberCollectSpuDao, MemberCollectSpuEntity> implements MemberCollectSpuService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<MemberCollectSpuEntity> page = this.page(
new Query<MemberCollectSpuEntity>().getPage(params),
new QueryWrapper<MemberCollectSpuEntity>()
);
return new PageUtils(page);
}
}

@ -0,0 +1,29 @@
package com.bookstore.bookmall.member.service.impl;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.Query;
import com.bookstore.bookmall.member.dao.MemberCollectSubjectDao;
import com.bookstore.bookmall.member.entity.MemberCollectSubjectEntity;
import com.bookstore.bookmall.member.service.MemberCollectSubjectService;
@Service("memberCollectSubjectService")
public class MemberCollectSubjectServiceImpl extends ServiceImpl<MemberCollectSubjectDao, MemberCollectSubjectEntity> implements MemberCollectSubjectService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<MemberCollectSubjectEntity> page = this.page(
new Query<MemberCollectSubjectEntity>().getPage(params),
new QueryWrapper<MemberCollectSubjectEntity>()
);
return new PageUtils(page);
}
}

@ -0,0 +1,29 @@
package com.bookstore.bookmall.member.service.impl;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.Query;
import com.bookstore.bookmall.member.dao.MemberLevelDao;
import com.bookstore.bookmall.member.entity.MemberLevelEntity;
import com.bookstore.bookmall.member.service.MemberLevelService;
@Service("memberLevelService")
public class MemberLevelServiceImpl extends ServiceImpl<MemberLevelDao, MemberLevelEntity> implements MemberLevelService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<MemberLevelEntity> page = this.page(
new Query<MemberLevelEntity>().getPage(params),
new QueryWrapper<MemberLevelEntity>()
);
return new PageUtils(page);
}
}

@ -0,0 +1,29 @@
package com.bookstore.bookmall.member.service.impl;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.Query;
import com.bookstore.bookmall.member.dao.MemberLoginLogDao;
import com.bookstore.bookmall.member.entity.MemberLoginLogEntity;
import com.bookstore.bookmall.member.service.MemberLoginLogService;
@Service("memberLoginLogService")
public class MemberLoginLogServiceImpl extends ServiceImpl<MemberLoginLogDao, MemberLoginLogEntity> implements MemberLoginLogService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<MemberLoginLogEntity> page = this.page(
new Query<MemberLoginLogEntity>().getPage(params),
new QueryWrapper<MemberLoginLogEntity>()
);
return new PageUtils(page);
}
}

@ -0,0 +1,29 @@
package com.bookstore.bookmall.member.service.impl;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.Query;
import com.bookstore.bookmall.member.dao.MemberReceiveAddressDao;
import com.bookstore.bookmall.member.entity.MemberReceiveAddressEntity;
import com.bookstore.bookmall.member.service.MemberReceiveAddressService;
@Service("memberReceiveAddressService")
public class MemberReceiveAddressServiceImpl extends ServiceImpl<MemberReceiveAddressDao, MemberReceiveAddressEntity> implements MemberReceiveAddressService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<MemberReceiveAddressEntity> page = this.page(
new Query<MemberReceiveAddressEntity>().getPage(params),
new QueryWrapper<MemberReceiveAddressEntity>()
);
return new PageUtils(page);
}
}

@ -0,0 +1,29 @@
package com.bookstore.bookmall.member.service.impl;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.Query;
import com.bookstore.bookmall.member.dao.MemberDao;
import com.bookstore.bookmall.member.entity.MemberEntity;
import com.bookstore.bookmall.member.service.MemberService;
@Service("memberService")
public class MemberServiceImpl extends ServiceImpl<MemberDao, MemberEntity> implements MemberService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<MemberEntity> page = this.page(
new Query<MemberEntity>().getPage(params),
new QueryWrapper<MemberEntity>()
);
return new PageUtils(page);
}
}

@ -0,0 +1,29 @@
package com.bookstore.bookmall.member.service.impl;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.Query;
import com.bookstore.bookmall.member.dao.MemberStatisticsInfoDao;
import com.bookstore.bookmall.member.entity.MemberStatisticsInfoEntity;
import com.bookstore.bookmall.member.service.MemberStatisticsInfoService;
@Service("memberStatisticsInfoService")
public class MemberStatisticsInfoServiceImpl extends ServiceImpl<MemberStatisticsInfoDao, MemberStatisticsInfoEntity> implements MemberStatisticsInfoService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<MemberStatisticsInfoEntity> page = this.page(
new Query<MemberStatisticsInfoEntity>().getPage(params),
new QueryWrapper<MemberStatisticsInfoEntity>()
);
return new PageUtils(page);
}
}

@ -0,0 +1,14 @@
spring:
datasource:
username: root
password: 7536981
url: jdbc:mysql://192.168.88.131:3306/mall_ums?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
config-locations: classpath*:/mapper/**/*.xml #classpath*中的*指的是不止引用自己路径的mapper依赖的jar包也扫描
global-config:
db-config:
id-type: auto #主键自增
server:
port: 8000

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.member.dao.GrowthChangeHistoryDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.member.entity.GrowthChangeHistoryEntity" id="growthChangeHistoryMap">
<result property="id" column="id"/>
<result property="memberId" column="member_id"/>
<result property="createTime" column="create_time"/>
<result property="changeCount" column="change_count"/>
<result property="note" column="note"/>
<result property="sourceType" column="source_type"/>
</resultMap>
</mapper>

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.member.dao.IntegrationChangeHistoryDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.member.entity.IntegrationChangeHistoryEntity" id="integrationChangeHistoryMap">
<result property="id" column="id"/>
<result property="memberId" column="member_id"/>
<result property="createTime" column="create_time"/>
<result property="changeCount" column="change_count"/>
<result property="note" column="note"/>
<result property="sourceTyoe" column="source_tyoe"/>
</resultMap>
</mapper>

@ -1,14 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.coupon.dao.CouponSpuRelationDao">
<mapper namespace="com.bookstore.bookmall.member.dao.MemberCollectSpuDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.coupon.entity.CouponSpuRelationEntity" id="couponSpuRelationMap">
<resultMap type="com.bookstore.bookmall.member.entity.MemberCollectSpuEntity" id="memberCollectSpuMap">
<result property="id" column="id"/>
<result property="couponId" column="coupon_id"/>
<result property="memberId" column="member_id"/>
<result property="spuId" column="spu_id"/>
<result property="spuName" column="spu_name"/>
<result property="spuImg" column="spu_img"/>
<result property="createTime" column="create_time"/>
</resultMap>

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.member.dao.MemberCollectSubjectDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.member.entity.MemberCollectSubjectEntity" id="memberCollectSubjectMap">
<result property="id" column="id"/>
<result property="subjectId" column="subject_id"/>
<result property="subjectName" column="subject_name"/>
<result property="subjectImg" column="subject_img"/>
<result property="subjectUrll" column="subject_urll"/>
</resultMap>
</mapper>

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.member.dao.MemberDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.member.entity.MemberEntity" id="memberMap">
<result property="id" column="id"/>
<result property="levelId" column="level_id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
<result property="nickname" column="nickname"/>
<result property="mobile" column="mobile"/>
<result property="email" column="email"/>
<result property="header" column="header"/>
<result property="gender" column="gender"/>
<result property="birth" column="birth"/>
<result property="city" column="city"/>
<result property="job" column="job"/>
<result property="sign" column="sign"/>
<result property="sourceType" column="source_type"/>
<result property="integration" column="integration"/>
<result property="growth" column="growth"/>
<result property="status" column="status"/>
<result property="createTime" column="create_time"/>
</resultMap>
</mapper>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.member.dao.MemberLevelDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.member.entity.MemberLevelEntity" id="memberLevelMap">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="growthPoint" column="growth_point"/>
<result property="defaultStatus" column="default_status"/>
<result property="freeFreightPoint" column="free_freight_point"/>
<result property="commentGrowthPoint" column="comment_growth_point"/>
<result property="priviledgeFreeFreight" column="priviledge_free_freight"/>
<result property="priviledgeMemberPrice" column="priviledge_member_price"/>
<result property="priviledgeBirthday" column="priviledge_birthday"/>
<result property="note" column="note"/>
</resultMap>
</mapper>

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.member.dao.MemberLoginLogDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.member.entity.MemberLoginLogEntity" id="memberLoginLogMap">
<result property="id" column="id"/>
<result property="memberId" column="member_id"/>
<result property="createTime" column="create_time"/>
<result property="ip" column="ip"/>
<result property="city" column="city"/>
<result property="loginType" column="login_type"/>
</resultMap>
</mapper>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.member.dao.MemberReceiveAddressDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.member.entity.MemberReceiveAddressEntity" id="memberReceiveAddressMap">
<result property="id" column="id"/>
<result property="memberId" column="member_id"/>
<result property="name" column="name"/>
<result property="phone" column="phone"/>
<result property="postCode" column="post_code"/>
<result property="province" column="province"/>
<result property="city" column="city"/>
<result property="region" column="region"/>
<result property="detailAddress" column="detail_address"/>
<result property="areacode" column="areacode"/>
<result property="defaultStatus" column="default_status"/>
</resultMap>
</mapper>

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.member.dao.MemberStatisticsInfoDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.member.entity.MemberStatisticsInfoEntity" id="memberStatisticsInfoMap">
<result property="id" column="id"/>
<result property="memberId" column="member_id"/>
<result property="consumeAmount" column="consume_amount"/>
<result property="couponAmount" column="coupon_amount"/>
<result property="orderCount" column="order_count"/>
<result property="couponCount" column="coupon_count"/>
<result property="commentCount" column="comment_count"/>
<result property="returnOrderCount" column="return_order_count"/>
<result property="loginCount" column="login_count"/>
<result property="attendCount" column="attend_count"/>
<result property="fansCount" column="fans_count"/>
<result property="collectProductCount" column="collect_product_count"/>
<result property="collectSubjectCount" column="collect_subject_count"/>
<result property="collectCommentCount" column="collect_comment_count"/>
<result property="inviteFriendCount" column="invite_friend_count"/>
</resultMap>
</mapper>

@ -1,4 +1,4 @@
package com.bookstore.bookmall.bookmember;
package com.bookstore.bookmall.member;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@ -32,6 +32,12 @@
<spring-cloud.version>2021.0.8</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>com.bookstore.bookmall</groupId>
<artifactId>mall-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>

@ -1,4 +1,4 @@
package com.bookstore.bookmall.bookorder;
package com.bookstore.bookmall.order;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@ -0,0 +1,90 @@
package com.bookstore.bookmall.order.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.order.entity.OrderEntity;
import com.bookstore.bookmall.order.service.OrderService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:56:47
*/
@RestController
@RequestMapping("order/order")
public class OrderController {
@Autowired
private OrderService orderService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("order:order:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = orderService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("order:order:info")
public R info(@PathVariable("id") Long id){
OrderEntity order = orderService.getById(id);
return R.ok().put("order", order);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("order:order:save")
public R save(@RequestBody OrderEntity order){
orderService.save(order);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("order:order:update")
public R update(@RequestBody OrderEntity order){
orderService.updateById(order);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("order:order:delete")
public R delete(@RequestBody Long[] ids){
orderService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.order.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.order.entity.OrderItemEntity;
import com.bookstore.bookmall.order.service.OrderItemService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:56:47
*/
@RestController
@RequestMapping("order/orderitem")
public class OrderItemController {
@Autowired
private OrderItemService orderItemService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("order:orderitem:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = orderItemService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("order:orderitem:info")
public R info(@PathVariable("id") Long id){
OrderItemEntity orderItem = orderItemService.getById(id);
return R.ok().put("orderItem", orderItem);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("order:orderitem:save")
public R save(@RequestBody OrderItemEntity orderItem){
orderItemService.save(orderItem);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("order:orderitem:update")
public R update(@RequestBody OrderItemEntity orderItem){
orderItemService.updateById(orderItem);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("order:orderitem:delete")
public R delete(@RequestBody Long[] ids){
orderItemService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.order.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.order.entity.OrderOperateHistoryEntity;
import com.bookstore.bookmall.order.service.OrderOperateHistoryService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:56:47
*/
@RestController
@RequestMapping("order/orderoperatehistory")
public class OrderOperateHistoryController {
@Autowired
private OrderOperateHistoryService orderOperateHistoryService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("order:orderoperatehistory:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = orderOperateHistoryService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("order:orderoperatehistory:info")
public R info(@PathVariable("id") Long id){
OrderOperateHistoryEntity orderOperateHistory = orderOperateHistoryService.getById(id);
return R.ok().put("orderOperateHistory", orderOperateHistory);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("order:orderoperatehistory:save")
public R save(@RequestBody OrderOperateHistoryEntity orderOperateHistory){
orderOperateHistoryService.save(orderOperateHistory);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("order:orderoperatehistory:update")
public R update(@RequestBody OrderOperateHistoryEntity orderOperateHistory){
orderOperateHistoryService.updateById(orderOperateHistory);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("order:orderoperatehistory:delete")
public R delete(@RequestBody Long[] ids){
orderOperateHistoryService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.order.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.order.entity.OrderReturnApplyEntity;
import com.bookstore.bookmall.order.service.OrderReturnApplyService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
* 退
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:56:47
*/
@RestController
@RequestMapping("order/orderreturnapply")
public class OrderReturnApplyController {
@Autowired
private OrderReturnApplyService orderReturnApplyService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("order:orderreturnapply:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = orderReturnApplyService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("order:orderreturnapply:info")
public R info(@PathVariable("id") Long id){
OrderReturnApplyEntity orderReturnApply = orderReturnApplyService.getById(id);
return R.ok().put("orderReturnApply", orderReturnApply);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("order:orderreturnapply:save")
public R save(@RequestBody OrderReturnApplyEntity orderReturnApply){
orderReturnApplyService.save(orderReturnApply);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("order:orderreturnapply:update")
public R update(@RequestBody OrderReturnApplyEntity orderReturnApply){
orderReturnApplyService.updateById(orderReturnApply);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("order:orderreturnapply:delete")
public R delete(@RequestBody Long[] ids){
orderReturnApplyService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.order.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.order.entity.OrderReturnReasonEntity;
import com.bookstore.bookmall.order.service.OrderReturnReasonService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
* 退
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:56:47
*/
@RestController
@RequestMapping("order/orderreturnreason")
public class OrderReturnReasonController {
@Autowired
private OrderReturnReasonService orderReturnReasonService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("order:orderreturnreason:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = orderReturnReasonService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("order:orderreturnreason:info")
public R info(@PathVariable("id") Long id){
OrderReturnReasonEntity orderReturnReason = orderReturnReasonService.getById(id);
return R.ok().put("orderReturnReason", orderReturnReason);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("order:orderreturnreason:save")
public R save(@RequestBody OrderReturnReasonEntity orderReturnReason){
orderReturnReasonService.save(orderReturnReason);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("order:orderreturnreason:update")
public R update(@RequestBody OrderReturnReasonEntity orderReturnReason){
orderReturnReasonService.updateById(orderReturnReason);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("order:orderreturnreason:delete")
public R delete(@RequestBody Long[] ids){
orderReturnReasonService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.order.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.order.entity.OrderSettingEntity;
import com.bookstore.bookmall.order.service.OrderSettingService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:56:47
*/
@RestController
@RequestMapping("order/ordersetting")
public class OrderSettingController {
@Autowired
private OrderSettingService orderSettingService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("order:ordersetting:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = orderSettingService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("order:ordersetting:info")
public R info(@PathVariable("id") Long id){
OrderSettingEntity orderSetting = orderSettingService.getById(id);
return R.ok().put("orderSetting", orderSetting);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("order:ordersetting:save")
public R save(@RequestBody OrderSettingEntity orderSetting){
orderSettingService.save(orderSetting);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("order:ordersetting:update")
public R update(@RequestBody OrderSettingEntity orderSetting){
orderSettingService.updateById(orderSetting);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("order:ordersetting:delete")
public R delete(@RequestBody Long[] ids){
orderSettingService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

@ -0,0 +1,90 @@
package com.bookstore.bookmall.order.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.bookstore.bookmall.order.entity.PaymentInfoEntity;
import com.bookstore.bookmall.order.service.PaymentInfoService;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.common.utils.R;
/**
*
*
* @author dy
* @email 2073699128@qq.com
* @date 2025-07-10 23:56:47
*/
@RestController
@RequestMapping("order/paymentinfo")
public class PaymentInfoController {
@Autowired
private PaymentInfoService paymentInfoService;
/**
*
*/
@RequestMapping("/list")
//@RequiresPermissions("order:paymentinfo:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = paymentInfoService.queryPage(params);
return R.ok().put("page", page);
}
/**
*
*/
@RequestMapping("/info/{id}")
//@RequiresPermissions("order:paymentinfo:info")
public R info(@PathVariable("id") Long id){
PaymentInfoEntity paymentInfo = paymentInfoService.getById(id);
return R.ok().put("paymentInfo", paymentInfo);
}
/**
*
*/
@RequestMapping("/save")
//@RequiresPermissions("order:paymentinfo:save")
public R save(@RequestBody PaymentInfoEntity paymentInfo){
paymentInfoService.save(paymentInfo);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
//@RequiresPermissions("order:paymentinfo:update")
public R update(@RequestBody PaymentInfoEntity paymentInfo){
paymentInfoService.updateById(paymentInfo);
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
//@RequiresPermissions("order:paymentinfo:delete")
public R delete(@RequestBody Long[] ids){
paymentInfoService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save