增加麦当劳优惠券接口

This commit is contained in:
wulin 2022-04-24 22:28:26 +08:00
parent d919711f27
commit 0ab9ecb5bf
25 changed files with 2395 additions and 3 deletions

15
pom.xml
View File

@ -253,7 +253,6 @@
<groupId>com.aliyun</groupId>
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
<version>2.0.0</version>
<classifier>suibian</classifier>
</dependency>
<dependency>
@ -266,6 +265,20 @@
<artifactId>org.eclipse.jgit</artifactId>
<version>5.1.3.201810200350-r</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.socket/socket.io-client -->
<dependency>
<groupId>io.socket</groupId>
<artifactId>engine.io-client</artifactId>
<version>1.0.1-lz1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.socket/socket.io-client -->
<dependency>
<groupId>io.socket</groupId>
<artifactId>socket.io-client</artifactId>
<version>1.0.1-lz</version>
</dependency>

View File

@ -0,0 +1,91 @@
package com.lz;
import lombok.extern.slf4j.Slf4j;
import org.json.JSONObject;
import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
public class TestSocket {
public static void main(String[] args) {
String url = "http://172.16.10.5:9090";
try {
Map<String, List<String>> extraHeaders = new HashMap<>();
//登录token
List<String> token = new ArrayList<>();
token.add("tlyjP116jIwf3kik7nJr069");
extraHeaders.put("token", token);
//email
List<String> email = new ArrayList<>();
email.add("wulin@sina.com");
extraHeaders.put("email", email);
//头像
List<String> himage = new ArrayList<>();
himage.add("https://www.baidu.com/1.jpg");
extraHeaders.put("himage", himage);
//昵称
List<String> nick = new ArrayList<>();
nick.add("%E6%9C%BA%E5%99%A8%E4%BA%BA1%E5%8F%B7");
extraHeaders.put("nick", nick);
IO.Options options = new IO.Options();
options.transports = new String[]{"websocket"};
options.reconnectionAttempts = 2;
// 失败重连的时间间隔
options.reconnectionDelay = 1000;
// 连接超时时间(ms)
options.timeout = 500;
//options.query = "token=tUbNxd16i6omy3jqTswJ165";
//options.query = "token:tUbNxd16i6omy3jqTswJ165";
options.extraHeaders = extraHeaders;
// roomId: 房间唯一标识 传给服务端存储
final Socket socket = IO.socket(url + "?roomId=-1", options);
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
public void call(Object... args) {
log.info("连上服务端:");
}
});
// 自定义事件`onlineMessage` -> 接收服务端成功连接消息
socket.on("onlineMessage", new Emitter.Listener() {
public void call(Object... args) {
log.info("有客户端上线:" + args[0].toString());
}
});
// 自定义事件`offlineMessage` -> 接收服务端消息
socket.on("offlineMessage", new Emitter.Listener() {
public void call(Object... args) {
log.info("有客户端下线:" + args[0].toString());
}
});
// 自定义事件`myBroadcast` -> 接收服务端广播消息
socket.on("receiveRoomMessage", new Emitter.Listener() {
public void call(Object... args) {
log.info("数据同步:" + args[0].toString());
}
});
socket.connect();
Integer v = 1000;
Integer m = 82;
Integer time = 0;
while(true){
JSONObject jsonObject = new JSONObject("{\"r\":" + time / 1000 + ",\"v\":" + v + ",\"h\":209,\"s\":603,\"g\":0,\"m\":" + m + ",\"c\":5}");
socket.emit("sendRoomMessage", jsonObject);
Thread.sleep(500);
v += 500;
m += 2;
time += 500;
if(v.equals(12000)){
v = 1500;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -0,0 +1,98 @@
package com.lz;
import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;
import lombok.extern.slf4j.Slf4j;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
public class TestSocket1 {
public static void main(String[] args) {
String url = "http://172.16.10.5:9090";
try {
Map<String, List<String>> extraHeaders = new HashMap<>();
//登录token
List<String> token = new ArrayList<>();
token.add("tLmZHV16i8OQMG4eNoqE617");
extraHeaders.put("token", token);
//email
List<String> email = new ArrayList<>();
email.add("wulin@163.com");
extraHeaders.put("email", email);
//头像
List<String> himage = new ArrayList<>();
himage.add("https://www.baidu.com/1.jpg");
extraHeaders.put("himage", himage);
//昵称
List<String> nick = new ArrayList<>();
nick.add("%E6%99%BA%E8%83%BD2%E5%8F%B7");
extraHeaders.put("nick", nick);
IO.Options options = new IO.Options();
options.transports = new String[]{"websocket"};
options.reconnectionAttempts = 2;
// 失败重连的时间间隔
options.reconnectionDelay = 1000;
// 连接超时时间(ms)
options.timeout = 500;
options.extraHeaders = extraHeaders;
// roomId: 房间唯一标识 传给服务端存储
final Socket socket = IO.socket(url + "?roomId=-1", options);
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
public void call(Object... args) {
socket.send("hello...");
}
});
// 自定义事件`onlineMessage` -> 接收服务端成功连接消息
socket.on("onlineMessage", new Emitter.Listener() {
public void call(Object... args) {
log.info("服务端上线:" + args[0].toString());
}
});
// 自定义事件`offlineMessage` -> 接收服务端消息
socket.on("offlineMessage", new Emitter.Listener() {
public void call(Object... args) {
log.info("服务端下线:" + args[0].toString());
}
});
// 自定义事件`myBroadcast` -> 接收服务端广播消息
socket.on("receiveRoomMessage", new Emitter.Listener() {
public void call(Object... args) {
log.info("服务端广播:" + args[0].toString());
}
});
socket.connect();
Integer v = 1000;
Integer m = 82;
Integer time = 0;
while(true){
JSONObject jsonObject = new JSONObject("{\"r\":" + time / 1000 + ",\"v\":" + v + ",\"h\":209,\"s\":603,\"g\":0,\"m\":" + m + ",\"c\":5}");
socket.emit("sendRoomMessage", jsonObject);
Thread.sleep(500);
v += 500;
m += 2;
time += 500;
if(v.equals(12000)){
v = 1500;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -75,6 +75,7 @@ public class ShiroConfig {
filterMap.put("/luck/getLuckById", "anon");
filterMap.put("/luck/updateLuck", "anon");
filterMap.put("/doc.html**", "anon");
filterMap.put("/mcdonaldCoupon/**", "anon");
filterMap.put("/**", "oauth2");
shiroFilter.setFilterChainDefinitionMap(filterMap);

View File

@ -0,0 +1,171 @@
package com.lz.modules.mcdonald.controller;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.lz.common.utils.*;
import com.lz.modules.flow.model.EvaluationGroupDto;
import com.lz.modules.mcdonald.entity.McdonaldCoupon;
import com.lz.modules.mcdonald.model.McdonaldCouponDto;
import com.lz.modules.mcdonald.service.McdonaldCouponService;
import com.lz.modules.sys.entity.SysUserEntity;
import com.lz.modules.sys.service.SysUserService;
import com.lz.modules.third.entity.ThirdAppConfig;
import com.lz.modules.third.service.ThirdAppConfigService;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/mcdonaldCoupon")
@Slf4j
@Api(tags = "麦当劳优惠券相关相关")
public class McdonaldCouponController {
@Autowired
private McdonaldCouponService mcdonaldCouponService;
@Autowired
private RedisCacheUtil redisCacheUtil;
@Autowired
private SysUserService sysUserService;
@Autowired
private ThirdAppConfigService thirdAppConfigService;
static String WEIXIN_TOKEN_TKEY = "weixin_access_token_key";
static String WEIXIN_TICKET_TKEY = "weixin_jsapi_ticket_key";
/*@RequestMapping("/list")
public R list(@RequestBody String body) {
Map<String,Object> params = new HashMap<>();
if(StringUtil.isNotBlank(body)){
params = JSONObject.parseObject(body,Map.class);
}
PageUtils page = mcdonaldCouponService.queryPage(params);
return R.ok().put("page", page);
}*/
@GetMapping("/getByCode")
@ApiOperation("根据二维码内容获取优惠券信息")
@ApiResponses({@ApiResponse(code=200,message = "成功", response= EvaluationGroupDto.class)})
public R getByCode(@ApiParam("二维码内容") @RequestParam String code, @ApiParam("麦当劳客服手机号") @RequestParam String phone) {
String sha1 = redisCacheUtil.getValue("WEIXIN_TOKEN_" + phone, "");
if(sha1.length() > 0) {
McdonaldCouponDto mcdonaldCouponDto = mcdonaldCouponService.selectMcdonaldCouponByQrCode(code);
return R.ok().put("mcdonaldCoupon", mcdonaldCouponDto);
}
return R.error("非法访问");
}
@GetMapping("/setUseByCode")
@ApiOperation("根据二维码使用优惠券")
@ApiResponses({@ApiResponse(code=200,message = "成功", response= EvaluationGroupDto.class)})
public R setUseByCode(@ApiParam("二维码内容") @RequestParam String code,
@ApiParam("订单金额") @RequestParam BigDecimal orderMoney,
@ApiParam("订单金额") @RequestParam String orderId,
@ApiParam("用户手机号") @RequestParam String phone) {
String sha1 = redisCacheUtil.getValue("WEIXIN_TOKEN_" + phone, "");
if(sha1.length() > 0){
return mcdonaldCouponService.updateMcdonaldCouponByQrCode(code, orderMoney, orderId);
}
return R.error("非法访问");
//return R.ok().put("mcdonaldCoupon",mcdonaldCouponDto);
}
@GetMapping("/getWXConfig")
@ApiOperation("获取微信配置")
@ApiResponses({@ApiResponse(code=200,message = "成功", response= EvaluationGroupDto.class)})
public R getWXConfig(@ApiParam("需要签名的url") @RequestParam String url,
@ApiParam("配置id") @RequestParam Long cfgId,
@ApiParam("麦当劳客服手机号") @RequestParam String phone) {
ThirdAppConfig thirdAppConfig = thirdAppConfigService.selectThirdAppConfigById(cfgId);
if(thirdAppConfig != null && url.equals(thirdAppConfig.getAppUrl())){
SysUserEntity sysUserEntity = sysUserService.selectSysUserByMobile(phone);
if(sysUserEntity == null){
return R.error("麦当劳客服不存在");
}
String accessToken = (String)redisCacheUtil.getValue(WEIXIN_TOKEN_TKEY, "");
if(accessToken.length() == 0){
log.info("无有效微信token从服务器获取");
String getValue =
HttpUtil.doGet(
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" +
thirdAppConfig.getAppId() + "&secret=" + thirdAppConfig.getAppSecret(),
60);
log.info("获取到的值{}", getValue);
JSONObject jsonObject = JSONObject.parseObject(getValue);
accessToken = jsonObject.getString("access_token");
if(accessToken == null){
return R.error("获取微信access_token错误");
}
redisCacheUtil.saveObject(WEIXIN_TOKEN_TKEY, accessToken, 6900);//微信access_toekn有效期7200秒这里扣除5分钟防止过期界限问题
}
String jsapiTicket = redisCacheUtil.getValue(WEIXIN_TICKET_TKEY, "");
if(jsapiTicket.length() == 0){
String getValue =
HttpUtil.doGet(
"https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=" + accessToken,
60);
JSONObject jsonObject = JSONObject.parseObject(getValue);
int errCode = jsonObject.getInteger("errcode");
if(errCode != 0){
return R.error("获取微信jsapi_ticket失败");
}
jsapiTicket = jsonObject.getString("ticket");
redisCacheUtil.saveObject(WEIXIN_TICKET_TKEY, jsapiTicket, 7100);//微信的jsapi_ticket有效期为7200秒
}
String noncestr = StringUtil.getRandomNum(16);//获取16为随机字符串
String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
String param = "jsapiTicket=" + jsapiTicket + "&noncestr=" + noncestr + "&timestamp=" + timestamp
+ "&url=" + url;
String signature = DigestUtil.SHA1(param);
log.info("noncestr{}, timestamp{}, param{}, signature{}", noncestr,
timestamp,
param,
signature);
redisCacheUtil.saveObject("WEIXIN_TOKEN_" + phone, signature, 7100);
return R.ok().put("timestamp",timestamp).put("noncestr", noncestr).put("signature", signature);
}
return R.error("传入的url不安全");
}
@RequestMapping("/getById")
public R getById(@RequestBody McdonaldCoupon mcdonaldCoupon) {
//mcdonaldCoupon = mcdonaldCouponService.selectMcdonaldCouponById(mcdonaldCoupon.getId());
return R.ok().ok();//.put("mcdonaldCoupon",mcdonaldCoupon);
}
@RequestMapping("/update")
public R update(@RequestBody McdonaldCoupon mcdonaldCoupon) {
mcdonaldCouponService.updateMcdonaldCouponById(mcdonaldCoupon);
return R.ok();
}
@RequestMapping("/save")
public R save(@RequestBody McdonaldCoupon mcdonaldCoupon) {
mcdonaldCouponService.insertMcdonaldCoupon(mcdonaldCoupon);
return R.ok();
}
@RequestMapping("/delete")
public R delete(@RequestBody Long id) {
mcdonaldCouponService.deleteMcdonaldCouponById(id);
return R.ok();
}
}

View File

@ -0,0 +1,64 @@
package com.lz.modules.mcdonald.controller;
import com.alibaba.fastjson.JSONObject;
import com.lz.common.utils.PageUtils;
import com.lz.common.utils.R;
import com.lz.common.utils.StringUtil;
import com.lz.modules.mcdonald.entity.McdonaldCouponUseRecord;
import com.lz.modules.mcdonald.service.McdonaldCouponUseRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/mcdonaldCouponUseRecord")
public class McdonaldCouponUseRecordController {
@Autowired
private McdonaldCouponUseRecordService mcdonaldCouponUseRecordService;
/*@RequestMapping("/list")
public R list(@RequestBody String body) {
Map<String,Object> params = new HashMap<>();
if(StringUtil.isNotBlank(body)){
params = JSONObject.parseObject(body,Map.class);
}
PageUtils page = mcdonaldCouponUseRecordService.queryPage(params);
return R.ok().put("page", page);
}*/
@RequestMapping("/getById")
public R getById(@RequestBody McdonaldCouponUseRecord mcdonaldCouponUseRecord) {
mcdonaldCouponUseRecord = mcdonaldCouponUseRecordService.selectMcdonaldCouponUseRecordById(mcdonaldCouponUseRecord.getId());
return R.ok().put("mcdonaldCouponUseRecord",mcdonaldCouponUseRecord);
}
@RequestMapping("/update")
public R update(@RequestBody McdonaldCouponUseRecord mcdonaldCouponUseRecord) {
mcdonaldCouponUseRecordService.updateMcdonaldCouponUseRecordById(mcdonaldCouponUseRecord);
return R.ok();
}
@RequestMapping("/save")
public R save(@RequestBody McdonaldCouponUseRecord mcdonaldCouponUseRecord) {
mcdonaldCouponUseRecordService.insertMcdonaldCouponUseRecord(mcdonaldCouponUseRecord);
return R.ok();
}
@RequestMapping("/delete")
public R delete(@RequestBody Long id) {
mcdonaldCouponUseRecordService.deleteMcdonaldCouponUseRecordById(id);
return R.ok();
}
}

View File

@ -0,0 +1,35 @@
package com.lz.modules.mcdonald.dao;
/**
* <p>
* 麦当劳优惠券 服务类
* </p>
*
* @author quyixiao
* @since 2022-04-24
*/
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lz.modules.mcdonald.entity.McdonaldCoupon;
import com.lz.modules.mcdonald.model.McdonaldCouponDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface McdonaldCouponMapper extends BaseMapper<McdonaldCoupon> {
McdonaldCoupon selectMcdonaldCouponById(@Param("id")Long id);
Long insertMcdonaldCoupon(McdonaldCoupon mcdonaldCoupon);
int updateMcdonaldCouponById(McdonaldCoupon mcdonaldCoupon);
int updateCoverMcdonaldCouponById(McdonaldCoupon mcdonaldCoupon);
int deleteMcdonaldCouponById(@Param("id")Long id);
McdonaldCouponDto selectMcdonaldCouponByQrCode(@Param("code") String code);
}

View File

@ -0,0 +1,33 @@
package com.lz.modules.mcdonald.dao;
/**
* <p>
* 麦当劳优惠券使用记录表 服务类
* </p>
*
* @author quyixiao
* @since 2022-04-24
*/
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lz.modules.mcdonald.entity.McdonaldCouponUseRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface McdonaldCouponUseRecordMapper extends BaseMapper<McdonaldCouponUseRecord> {
McdonaldCouponUseRecord selectMcdonaldCouponUseRecordById(@Param("id")Long id);
Long insertMcdonaldCouponUseRecord(McdonaldCouponUseRecord mcdonaldCouponUseRecord);
int updateMcdonaldCouponUseRecordById(McdonaldCouponUseRecord mcdonaldCouponUseRecord);
int updateCoverMcdonaldCouponUseRecordById(McdonaldCouponUseRecord mcdonaldCouponUseRecord);
int deleteMcdonaldCouponUseRecordById(@Param("id")Long id);
}

View File

@ -0,0 +1,274 @@
package com.lz.modules.mcdonald.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* <p>
* </p>*麦当劳优惠券
* @author quyixiao
* @since 2022-04-24
*/
@Data
@TableName("mcdonald_coupon")
@ApiModel(value = "麦当劳优惠券")
public class McdonaldCoupon implements java.io.Serializable {
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
//是否删除状态1删除0有效
@ApiModelProperty(value = "是否删除状态1删除0有效", name = "isDelete")
private Integer isDelete;
//创建时间
@ApiModelProperty(value = "创建时间", name = "gmtCreate")
private Date gmtCreate;
//最后修改时间
@ApiModelProperty(value = "最后修改时间", name = "gmtModified")
private Date gmtModified;
//核销使用最后日期
@ApiModelProperty(value = "核销使用最后日期", name = "gmtUse")
private Date gmtUse;
//有效截至日期
@ApiModelProperty(value = "有效截至日期", name = "gmtValidity")
private Date gmtValidity;
//优惠券二维码内容
@ApiModelProperty(value = "优惠券二维码内容", name = "qrCode")
private String qrCode;
//优惠券状态0新建可用1已核销2失效非过期的不可用
@ApiModelProperty(value = "优惠券状态0新建可用1已核销2失效非过期的不可用", name = "status")
private Integer status;
//优惠券对应的面额
@ApiModelProperty(value = "优惠券对应的面额", name = "couponValue")
private BigDecimal couponValue;
//已经使用面额
@ApiModelProperty(value = "已经使用面额", name = "useValue")
private BigDecimal useValue;
//起付金额
@ApiModelProperty(value = "起付金额", name = "startUse")
private BigDecimal startUse;
//支付比例0无比例其他按比例值计算默认0
@ApiModelProperty(value = "支付比例0无比例其他按比例值计算。默认0", name = "payProportion")
private BigDecimal payProportion;
//备注说明
@ApiModelProperty(value = "备注说明", name = "remark")
private String remark;
/**
*
* @return
*/
public Long getId() {
return id;
}
/**
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 是否删除状态1删除0有效
* @return
*/
public Integer getIsDelete() {
return isDelete;
}
/**
* 是否删除状态1删除0有效
* @param isDelete
*/
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
/**
* 创建时间
* @return
*/
public Date getGmtCreate() {
return gmtCreate;
}
/**
* 创建时间
* @param gmtCreate
*/
public void setGmtCreate(Date gmtCreate) {
this.gmtCreate = gmtCreate;
}
/**
* 最后修改时间
* @return
*/
public Date getGmtModified() {
return gmtModified;
}
/**
* 最后修改时间
* @param gmtModified
*/
public void setGmtModified(Date gmtModified) {
this.gmtModified = gmtModified;
}
/**
* 核销使用最后日期
* @return
*/
public Date getGmtUse() {
return gmtUse;
}
/**
* 核销使用最后日期
* @param gmtUse
*/
public void setGmtUse(Date gmtUse) {
this.gmtUse = gmtUse;
}
/**
* 有效截至日期
* @return
*/
public Date getGmtValidity() {
return gmtValidity;
}
/**
* 有效截至日期
* @param gmtValidity
*/
public void setGmtValidity(Date gmtValidity) {
this.gmtValidity = gmtValidity;
}
/**
* 优惠券二维码内容
* @return
*/
public String getQrCode() {
return qrCode;
}
/**
* 优惠券二维码内容
* @param qrCode
*/
public void setQrCode(String qrCode) {
this.qrCode = qrCode;
}
/**
* 优惠券状态0新建可用1已核销2失效非过期的不可用
* @return
*/
public Integer getStatus() {
return status;
}
/**
* 优惠券状态0新建可用1已核销2失效非过期的不可用
* @param status
*/
public void setStatus(Integer status) {
this.status = status;
}
/**
* 优惠券对应的面额
* @return
*/
public BigDecimal getCouponValue() {
return couponValue;
}
/**
* 优惠券对应的面额
* @param couponValue
*/
public void setCouponValue(BigDecimal couponValue) {
this.couponValue = couponValue;
}
/**
* 已经使用面额
* @return
*/
public BigDecimal getUseValue() {
return useValue;
}
/**
* 已经使用面额
* @param useValue
*/
public void setUseValue(BigDecimal useValue) {
this.useValue = useValue;
}
/**
* 起付金额
* @return
*/
public BigDecimal getStartUse() {
return startUse;
}
/**
* 起付金额
* @param startUse
*/
public void setStartUse(BigDecimal startUse) {
this.startUse = startUse;
}
/**
* 支付比例0无比例其他按比例值计算默认0
* @return
*/
public BigDecimal getPayProportion() {
return payProportion;
}
/**
* 支付比例0无比例其他按比例值计算默认0
* @param payProportion
*/
public void setPayProportion(BigDecimal payProportion) {
this.payProportion = payProportion;
}
/**
* 备注说明
* @return
*/
public String getRemark() {
return remark;
}
/**
* 备注说明
* @param remark
*/
public void setRemark(String remark) {
this.remark = remark;
}
@Override
public String toString() {
return "McdonaldCoupon{" +
",id=" + id +
",isDelete=" + isDelete +
",gmtCreate=" + gmtCreate +
",gmtModified=" + gmtModified +
",gmtUse=" + gmtUse +
",gmtValidity=" + gmtValidity +
",qrCode=" + qrCode +
",status=" + status +
",couponValue=" + couponValue +
",useValue=" + useValue +
",startUse=" + startUse +
",payProportion=" + payProportion +
",remark=" + remark +
"}";
}
}

View File

@ -0,0 +1,236 @@
package com.lz.modules.mcdonald.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* <p>
* </p>*麦当劳优惠券使用记录表
* @author quyixiao
* @since 2022-04-24
*/
@Data
@TableName("mcdonald_coupon_use_record")
@ApiModel(value = "麦当劳优惠券使用记录表")
public class McdonaldCouponUseRecord implements java.io.Serializable {
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
//是否删除状态1删除0有效
@ApiModelProperty(value = "是否删除状态1删除0有效", name = "isDelete")
private Integer isDelete;
//创建时间
@ApiModelProperty(value = "创建时间", name = "gmtCreate")
private Date gmtCreate;
//最后修改时间
@ApiModelProperty(value = "最后修改时间", name = "gmtModified")
private Date gmtModified;
//优惠券编号
@ApiModelProperty(value = "优惠券编号", name = "couponId")
private Long couponId;
//核销操作员ID
@ApiModelProperty(value = "核销操作员ID", name = "userId")
private Long userId;
//优惠券对应的面额
@ApiModelProperty(value = "优惠券对应的面额", name = "couponValue")
private BigDecimal couponValue;
//抵用金额
@ApiModelProperty(value = "抵用金额", name = "useValue")
private BigDecimal useValue;
//麦当劳订单编号
@ApiModelProperty(value = "麦当劳订单编号", name = "orderId")
private String orderId;
//订单金额
@ApiModelProperty(value = "订单金额", name = "orderValue")
private BigDecimal orderValue;
//备注说明
@ApiModelProperty(value = "备注说明", name = "remark")
private String remark;
/**
*
* @return
*/
public Long getId() {
return id;
}
/**
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 是否删除状态1删除0有效
* @return
*/
public Integer getIsDelete() {
return isDelete;
}
/**
* 是否删除状态1删除0有效
* @param isDelete
*/
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
/**
* 创建时间
* @return
*/
public Date getGmtCreate() {
return gmtCreate;
}
/**
* 创建时间
* @param gmtCreate
*/
public void setGmtCreate(Date gmtCreate) {
this.gmtCreate = gmtCreate;
}
/**
* 最后修改时间
* @return
*/
public Date getGmtModified() {
return gmtModified;
}
/**
* 最后修改时间
* @param gmtModified
*/
public void setGmtModified(Date gmtModified) {
this.gmtModified = gmtModified;
}
/**
* 优惠券编号
* @return
*/
public Long getCouponId() {
return couponId;
}
/**
* 优惠券编号
* @param couponId
*/
public void setCouponId(Long couponId) {
this.couponId = couponId;
}
/**
* 核销操作员ID
* @return
*/
public Long getUserId() {
return userId;
}
/**
* 核销操作员ID
* @param userId
*/
public void setUserId(Long userId) {
this.userId = userId;
}
/**
* 优惠券对应的面额
* @return
*/
public BigDecimal getCouponValue() {
return couponValue;
}
/**
* 优惠券对应的面额
* @param couponValue
*/
public void setCouponValue(BigDecimal couponValue) {
this.couponValue = couponValue;
}
/**
* 抵用金额
* @return
*/
public BigDecimal getUseValue() {
return useValue;
}
/**
* 抵用金额
* @param useValue
*/
public void setUseValue(BigDecimal useValue) {
this.useValue = useValue;
}
/**
* 麦当劳订单编号
* @return
*/
public String getOrderId() {
return orderId;
}
/**
* 麦当劳订单编号
* @param orderId
*/
public void setOrderId(String orderId) {
this.orderId = orderId;
}
/**
* 订单金额
* @return
*/
public BigDecimal getOrderValue() {
return orderValue;
}
/**
* 订单金额
* @param orderValue
*/
public void setOrderValue(BigDecimal orderValue) {
this.orderValue = orderValue;
}
/**
* 备注说明
* @return
*/
public String getRemark() {
return remark;
}
/**
* 备注说明
* @param remark
*/
public void setRemark(String remark) {
this.remark = remark;
}
@Override
public String toString() {
return "McdonaldCouponUseRecord{" +
",id=" + id +
",isDelete=" + isDelete +
",gmtCreate=" + gmtCreate +
",gmtModified=" + gmtModified +
",couponId=" + couponId +
",userId=" + userId +
",couponValue=" + couponValue +
",useValue=" + useValue +
",orderId=" + orderId +
",orderValue=" + orderValue +
",remark=" + remark +
"}";
}
}

View File

@ -0,0 +1,213 @@
package com.lz.modules.mcdonald.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* <p>
* </p>*麦当劳优惠券
* @author quyixiao
* @since 2022-04-24
*/
@Data
@ApiModel(value = "麦当劳优惠券Dto")
public class McdonaldCouponDto {
//
@ApiModelProperty(value = "", name = "id")
private Long id;
//核销使用最后日期
@ApiModelProperty(value = "核销使用最后日期", name = "gmtUse")
private Date gmtUse;
//有效截至日期
@ApiModelProperty(value = "有效截至日期", name = "gmtValidity")
private Date gmtValidity;
//优惠券二维码内容
@ApiModelProperty(value = "优惠券二维码内容", name = "qrCode")
private String qrCode;
//优惠券状态0新建可用1已核销2失效非过期的不可用
@ApiModelProperty(value = "优惠券状态0新建可用1已核销2失效非过期的不可用", name = "status")
private Integer status;
//优惠券对应的面额
@ApiModelProperty(value = "优惠券对应的面额", name = "couponValue")
private BigDecimal couponValue;
//已经使用面额
@ApiModelProperty(value = "已经使用面额", name = "useValue")
private BigDecimal useValue;
//起付金额
@ApiModelProperty(value = "起付金额", name = "startUse")
private BigDecimal startUse;
//支付比例0无比例其他按比例值计算默认0
@ApiModelProperty(value = "支付比例0无比例其他按比例值计算。默认0", name = "payProportion")
private BigDecimal payProportion;
//备注说明
@ApiModelProperty(value = "备注说明", name = "remark")
private String remark;
/**
*
* @return
*/
public Long getId() {
return id;
}
/**
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 核销使用最后日期
* @return
*/
public Date getGmtUse() {
return gmtUse;
}
/**
* 核销使用最后日期
* @param gmtUse
*/
public void setGmtUse(Date gmtUse) {
this.gmtUse = gmtUse;
}
/**
* 有效截至日期
* @return
*/
public Date getGmtValidity() {
return gmtValidity;
}
/**
* 有效截至日期
* @param gmtValidity
*/
public void setGmtValidity(Date gmtValidity) {
this.gmtValidity = gmtValidity;
}
/**
* 优惠券二维码内容
* @return
*/
public String getQrCode() {
return qrCode;
}
/**
* 优惠券二维码内容
* @param qrCode
*/
public void setQrCode(String qrCode) {
this.qrCode = qrCode;
}
/**
* 优惠券状态0新建可用1已核销2失效非过期的不可用
* @return
*/
public Integer getStatus() {
return status;
}
/**
* 优惠券状态0新建可用1已核销2失效非过期的不可用
* @param status
*/
public void setStatus(Integer status) {
this.status = status;
}
/**
* 优惠券对应的面额
* @return
*/
public BigDecimal getCouponValue() {
return couponValue;
}
/**
* 优惠券对应的面额
* @param couponValue
*/
public void setCouponValue(BigDecimal couponValue) {
this.couponValue = couponValue;
}
/**
* 已经使用面额
* @return
*/
public BigDecimal getUseValue() {
return useValue;
}
/**
* 已经使用面额
* @param useValue
*/
public void setUseValue(BigDecimal useValue) {
this.useValue = useValue;
}
/**
* 起付金额
* @return
*/
public BigDecimal getStartUse() {
return startUse;
}
/**
* 起付金额
* @param startUse
*/
public void setStartUse(BigDecimal startUse) {
this.startUse = startUse;
}
/**
* 支付比例0无比例其他按比例值计算默认0
* @return
*/
public BigDecimal getPayProportion() {
return payProportion;
}
/**
* 支付比例0无比例其他按比例值计算默认0
* @param payProportion
*/
public void setPayProportion(BigDecimal payProportion) {
this.payProportion = payProportion;
}
/**
* 备注说明
* @return
*/
public String getRemark() {
return remark;
}
/**
* 备注说明
* @param remark
*/
public void setRemark(String remark) {
this.remark = remark;
}
@Override
public String toString() {
return "McdonaldCouponDto{" +
",id=" + id +
",gmtUse=" + gmtUse +
",gmtValidity=" + gmtValidity +
",qrCode=" + qrCode +
",status=" + status +
",couponValue=" + couponValue +
",useValue=" + useValue +
",startUse=" + startUse +
",payProportion=" + payProportion +
",remark=" + remark +
"}";
}
}

View File

@ -0,0 +1,175 @@
package com.lz.modules.mcdonald.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* <p>
* </p>*麦当劳优惠券使用记录表
* @author quyixiao
* @since 2022-04-24
*/
@Data
@ApiModel(value = "麦当劳优惠券使用记录表Dto")
public class McdonaldCouponUseRecordDto {
//
@ApiModelProperty(value = "", name = "id")
private Long id;
//优惠券编号
@ApiModelProperty(value = "优惠券编号", name = "couponId")
private Long couponId;
//核销操作员ID
@ApiModelProperty(value = "核销操作员ID", name = "userId")
private Long userId;
//优惠券对应的面额
@ApiModelProperty(value = "优惠券对应的面额", name = "couponValue")
private BigDecimal couponValue;
//抵用金额
@ApiModelProperty(value = "抵用金额", name = "useValue")
private BigDecimal useValue;
//麦当劳订单编号
@ApiModelProperty(value = "麦当劳订单编号", name = "orderId")
private String orderId;
//订单金额
@ApiModelProperty(value = "订单金额", name = "orderValue")
private BigDecimal orderValue;
//备注说明
@ApiModelProperty(value = "备注说明", name = "remark")
private String remark;
/**
*
* @return
*/
public Long getId() {
return id;
}
/**
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 优惠券编号
* @return
*/
public Long getCouponId() {
return couponId;
}
/**
* 优惠券编号
* @param couponId
*/
public void setCouponId(Long couponId) {
this.couponId = couponId;
}
/**
* 核销操作员ID
* @return
*/
public Long getUserId() {
return userId;
}
/**
* 核销操作员ID
* @param userId
*/
public void setUserId(Long userId) {
this.userId = userId;
}
/**
* 优惠券对应的面额
* @return
*/
public BigDecimal getCouponValue() {
return couponValue;
}
/**
* 优惠券对应的面额
* @param couponValue
*/
public void setCouponValue(BigDecimal couponValue) {
this.couponValue = couponValue;
}
/**
* 抵用金额
* @return
*/
public BigDecimal getUseValue() {
return useValue;
}
/**
* 抵用金额
* @param useValue
*/
public void setUseValue(BigDecimal useValue) {
this.useValue = useValue;
}
/**
* 麦当劳订单编号
* @return
*/
public String getOrderId() {
return orderId;
}
/**
* 麦当劳订单编号
* @param orderId
*/
public void setOrderId(String orderId) {
this.orderId = orderId;
}
/**
* 订单金额
* @return
*/
public BigDecimal getOrderValue() {
return orderValue;
}
/**
* 订单金额
* @param orderValue
*/
public void setOrderValue(BigDecimal orderValue) {
this.orderValue = orderValue;
}
/**
* 备注说明
* @return
*/
public String getRemark() {
return remark;
}
/**
* 备注说明
* @param remark
*/
public void setRemark(String remark) {
this.remark = remark;
}
@Override
public String toString() {
return "McdonaldCouponUseRecordDto{" +
",id=" + id +
",couponId=" + couponId +
",userId=" + userId +
",couponValue=" + couponValue +
",useValue=" + useValue +
",orderId=" + orderId +
",orderValue=" + orderValue +
",remark=" + remark +
"}";
}
}

View File

@ -0,0 +1,245 @@
package com.lz.modules.mcdonald.req;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* <p>
* 菜单权限表
* </p>*麦当劳优惠券
* @author quyixiao
* @since 2022-04-24
*/
@Data
@ApiModel(value = "麦当劳优惠券Req")
public class McdonaldCouponReq implements java.io.Serializable {
@ApiModelProperty(value = "currPage", name = "当前页码")
private int currPage = 1;
@ApiModelProperty(value = "pageSize", name = "每页返回条数")
private int pageSize = 10;
@ApiModelProperty(value = "sort", name = "类型")
private String sort;
@ApiModelProperty(value = "order", name = "排序")
private String order;
//
private Long id;
//是否删除状态1删除0有效
@ApiModelProperty(value = "是否删除状态1删除0有效", name = "isDelete")
private Integer isDelete;
//创建时间
@ApiModelProperty(value = "创建时间", name = "gmtCreate")
private Date gmtCreate;
//最后修改时间
@ApiModelProperty(value = "最后修改时间", name = "gmtModified")
private Date gmtModified;
//核销使用最后日期
@ApiModelProperty(value = "核销使用最后日期", name = "gmtUse")
private Date gmtUse;
//有效截至日期
@ApiModelProperty(value = "有效截至日期", name = "gmtValidity")
private Date gmtValidity;
//优惠券二维码内容
@ApiModelProperty(value = "优惠券二维码内容", name = "qrCode")
private String qrCode;
//优惠券状态0新建可用1已核销2失效非过期的不可用
@ApiModelProperty(value = "优惠券状态0新建可用1已核销2失效非过期的不可用", name = "status")
private Integer status;
//优惠券对应的面额
@ApiModelProperty(value = "优惠券对应的面额", name = "couponValue")
private BigDecimal couponValue;
//已经使用面额
@ApiModelProperty(value = "已经使用面额", name = "useValue")
private BigDecimal useValue;
//备注说明
@ApiModelProperty(value = "备注说明", name = "remark")
private String remark;
/**
*
* @return
*/
public Long getId() {
return id;
}
/**
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 是否删除状态1删除0有效
* @return
*/
public Integer getIsDelete() {
return isDelete;
}
/**
* 是否删除状态1删除0有效
* @param isDelete
*/
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
/**
* 创建时间
* @return
*/
public Date getGmtCreate() {
return gmtCreate;
}
/**
* 创建时间
* @param gmtCreate
*/
public void setGmtCreate(Date gmtCreate) {
this.gmtCreate = gmtCreate;
}
/**
* 最后修改时间
* @return
*/
public Date getGmtModified() {
return gmtModified;
}
/**
* 最后修改时间
* @param gmtModified
*/
public void setGmtModified(Date gmtModified) {
this.gmtModified = gmtModified;
}
/**
* 核销使用最后日期
* @return
*/
public Date getGmtUse() {
return gmtUse;
}
/**
* 核销使用最后日期
* @param gmtUse
*/
public void setGmtUse(Date gmtUse) {
this.gmtUse = gmtUse;
}
/**
* 有效截至日期
* @return
*/
public Date getGmtValidity() {
return gmtValidity;
}
/**
* 有效截至日期
* @param gmtValidity
*/
public void setGmtValidity(Date gmtValidity) {
this.gmtValidity = gmtValidity;
}
/**
* 优惠券二维码内容
* @return
*/
public String getQrCode() {
return qrCode;
}
/**
* 优惠券二维码内容
* @param qrCode
*/
public void setQrCode(String qrCode) {
this.qrCode = qrCode;
}
/**
* 优惠券状态0新建可用1已核销2失效非过期的不可用
* @return
*/
public Integer getStatus() {
return status;
}
/**
* 优惠券状态0新建可用1已核销2失效非过期的不可用
* @param status
*/
public void setStatus(Integer status) {
this.status = status;
}
/**
* 优惠券对应的面额
* @return
*/
public BigDecimal getCouponValue() {
return couponValue;
}
/**
* 优惠券对应的面额
* @param couponValue
*/
public void setCouponValue(BigDecimal couponValue) {
this.couponValue = couponValue;
}
/**
* 已经使用面额
* @return
*/
public BigDecimal getUseValue() {
return useValue;
}
/**
* 已经使用面额
* @param useValue
*/
public void setUseValue(BigDecimal useValue) {
this.useValue = useValue;
}
/**
* 备注说明
* @return
*/
public String getRemark() {
return remark;
}
/**
* 备注说明
* @param remark
*/
public void setRemark(String remark) {
this.remark = remark;
}
@Override
public String toString() {
return "McdonaldCouponReq{" +
",id=" + id +
",isDelete=" + isDelete +
",gmtCreate=" + gmtCreate +
",gmtModified=" + gmtModified +
",gmtUse=" + gmtUse +
",gmtValidity=" + gmtValidity +
",qrCode=" + qrCode +
",status=" + status +
",couponValue=" + couponValue +
",useValue=" + useValue +
",remark=" + remark +
"}";
}
}

View File

@ -0,0 +1,245 @@
package com.lz.modules.mcdonald.req;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* <p>
* 菜单权限表
* </p>*麦当劳优惠券使用记录表
* @author quyixiao
* @since 2022-04-24
*/
@Data
@ApiModel(value = "麦当劳优惠券使用记录表Req")
public class McdonaldCouponUseRecordReq implements java.io.Serializable {
@ApiModelProperty(value = "currPage", name = "当前页码")
private int currPage = 1;
@ApiModelProperty(value = "pageSize", name = "每页返回条数")
private int pageSize = 10;
@ApiModelProperty(value = "sort", name = "类型")
private String sort;
@ApiModelProperty(value = "order", name = "排序")
private String order;
//
private Long id;
//是否删除状态1删除0有效
@ApiModelProperty(value = "是否删除状态1删除0有效", name = "isDelete")
private Integer isDelete;
//创建时间
@ApiModelProperty(value = "创建时间", name = "gmtCreate")
private Date gmtCreate;
//最后修改时间
@ApiModelProperty(value = "最后修改时间", name = "gmtModified")
private Date gmtModified;
//优惠券编号
@ApiModelProperty(value = "优惠券编号", name = "couponId")
private Long couponId;
//核销操作员ID
@ApiModelProperty(value = "核销操作员ID", name = "userId")
private Long userId;
//优惠券对应的面额
@ApiModelProperty(value = "优惠券对应的面额", name = "couponValue")
private BigDecimal couponValue;
//抵用金额
@ApiModelProperty(value = "抵用金额", name = "useValue")
private BigDecimal useValue;
//麦当劳订单编号
@ApiModelProperty(value = "麦当劳订单编号", name = "orderId")
private Long orderId;
//订单金额
@ApiModelProperty(value = "订单金额", name = "orderValue")
private BigDecimal orderValue;
//备注说明
@ApiModelProperty(value = "备注说明", name = "remark")
private String remark;
/**
*
* @return
*/
public Long getId() {
return id;
}
/**
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 是否删除状态1删除0有效
* @return
*/
public Integer getIsDelete() {
return isDelete;
}
/**
* 是否删除状态1删除0有效
* @param isDelete
*/
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
/**
* 创建时间
* @return
*/
public Date getGmtCreate() {
return gmtCreate;
}
/**
* 创建时间
* @param gmtCreate
*/
public void setGmtCreate(Date gmtCreate) {
this.gmtCreate = gmtCreate;
}
/**
* 最后修改时间
* @return
*/
public Date getGmtModified() {
return gmtModified;
}
/**
* 最后修改时间
* @param gmtModified
*/
public void setGmtModified(Date gmtModified) {
this.gmtModified = gmtModified;
}
/**
* 优惠券编号
* @return
*/
public Long getCouponId() {
return couponId;
}
/**
* 优惠券编号
* @param couponId
*/
public void setCouponId(Long couponId) {
this.couponId = couponId;
}
/**
* 核销操作员ID
* @return
*/
public Long getUserId() {
return userId;
}
/**
* 核销操作员ID
* @param userId
*/
public void setUserId(Long userId) {
this.userId = userId;
}
/**
* 优惠券对应的面额
* @return
*/
public BigDecimal getCouponValue() {
return couponValue;
}
/**
* 优惠券对应的面额
* @param couponValue
*/
public void setCouponValue(BigDecimal couponValue) {
this.couponValue = couponValue;
}
/**
* 抵用金额
* @return
*/
public BigDecimal getUseValue() {
return useValue;
}
/**
* 抵用金额
* @param useValue
*/
public void setUseValue(BigDecimal useValue) {
this.useValue = useValue;
}
/**
* 麦当劳订单编号
* @return
*/
public Long getOrderId() {
return orderId;
}
/**
* 麦当劳订单编号
* @param orderId
*/
public void setOrderId(Long orderId) {
this.orderId = orderId;
}
/**
* 订单金额
* @return
*/
public BigDecimal getOrderValue() {
return orderValue;
}
/**
* 订单金额
* @param orderValue
*/
public void setOrderValue(BigDecimal orderValue) {
this.orderValue = orderValue;
}
/**
* 备注说明
* @return
*/
public String getRemark() {
return remark;
}
/**
* 备注说明
* @param remark
*/
public void setRemark(String remark) {
this.remark = remark;
}
@Override
public String toString() {
return "McdonaldCouponUseRecordReq{" +
",id=" + id +
",isDelete=" + isDelete +
",gmtCreate=" + gmtCreate +
",gmtModified=" + gmtModified +
",couponId=" + couponId +
",userId=" + userId +
",couponValue=" + couponValue +
",useValue=" + useValue +
",orderId=" + orderId +
",orderValue=" + orderValue +
",remark=" + remark +
"}";
}
}

View File

@ -0,0 +1,41 @@
package com.lz.modules.mcdonald.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lz.common.utils.R;
import com.lz.modules.mcdonald.entity.McdonaldCoupon;
import com.lz.modules.mcdonald.model.McdonaldCouponDto;
import com.lz.modules.mcdonald.req.McdonaldCouponReq;
import java.math.BigDecimal;
/**
* <p>
* 麦当劳优惠券 服务类
* </p>
*
* @author quyixiao
* @since 2022-04-24
*/
public interface McdonaldCouponService extends IService<McdonaldCoupon> {
McdonaldCoupon selectMcdonaldCouponById(Long id);
Long insertMcdonaldCoupon(McdonaldCoupon mcdonaldCoupon);
int updateMcdonaldCouponById(McdonaldCoupon mcdonaldCoupon);
int updateCoverMcdonaldCouponById(McdonaldCoupon mcdonaldCoupon);
int deleteMcdonaldCouponById(Long id);
McdonaldCouponDto selectMcdonaldCouponByQrCode(String code);
R updateMcdonaldCouponByQrCode(String code, BigDecimal orderMoney, String orderId);
}

View File

@ -0,0 +1,33 @@
package com.lz.modules.mcdonald.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lz.modules.mcdonald.entity.McdonaldCouponUseRecord;
/**
* <p>
* 麦当劳优惠券使用记录表 服务类
* </p>
*
* @author quyixiao
* @since 2022-04-24
*/
public interface McdonaldCouponUseRecordService extends IService<McdonaldCouponUseRecord> {
McdonaldCouponUseRecord selectMcdonaldCouponUseRecordById(Long id);
Long insertMcdonaldCouponUseRecord(McdonaldCouponUseRecord mcdonaldCouponUseRecord);
int updateMcdonaldCouponUseRecordById(McdonaldCouponUseRecord mcdonaldCouponUseRecord);
int updateCoverMcdonaldCouponUseRecordById(McdonaldCouponUseRecord mcdonaldCouponUseRecord);
int deleteMcdonaldCouponUseRecordById(Long id);
}

View File

@ -0,0 +1,128 @@
package com.lz.modules.mcdonald.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lz.common.utils.BigDecimalUtil;
import com.lz.common.utils.R;
import com.lz.modules.mcdonald.dao.McdonaldCouponMapper;
import com.lz.modules.mcdonald.dao.McdonaldCouponUseRecordMapper;
import com.lz.modules.mcdonald.entity.McdonaldCoupon;
import com.lz.modules.mcdonald.entity.McdonaldCouponUseRecord;
import com.lz.modules.mcdonald.model.McdonaldCouponDto;
import com.lz.modules.mcdonald.service.McdonaldCouponService;
import com.mchange.lang.IntegerUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
/**
* <p>
* 麦当劳优惠券 服务类
* </p>
*
* @author quyixiao
* @since 2022-04-24
*/
@Service
@Slf4j
public class McdonaldCouponServiceImpl extends ServiceImpl<McdonaldCouponMapper, McdonaldCoupon> implements McdonaldCouponService {
@Autowired
private McdonaldCouponMapper mcdonaldCouponMapper;
@Autowired
private McdonaldCouponUseRecordMapper mcdonaldCouponUseRecordMapper;
@Override
public McdonaldCoupon selectMcdonaldCouponById(Long id){
return mcdonaldCouponMapper.selectMcdonaldCouponById(id);
}
@Override
public Long insertMcdonaldCoupon(McdonaldCoupon mcdonaldCoupon){
return mcdonaldCouponMapper.insertMcdonaldCoupon(mcdonaldCoupon);
}
@Override
public int updateMcdonaldCouponById(McdonaldCoupon mcdonaldCoupon){
return mcdonaldCouponMapper.updateMcdonaldCouponById(mcdonaldCoupon);
}
@Override
public int updateCoverMcdonaldCouponById(McdonaldCoupon mcdonaldCoupon){
return mcdonaldCouponMapper.updateCoverMcdonaldCouponById(mcdonaldCoupon);
}
@Override
public int deleteMcdonaldCouponById(Long id){
return mcdonaldCouponMapper.deleteMcdonaldCouponById(id);
}
@Override
public McdonaldCouponDto selectMcdonaldCouponByQrCode(String code){
return mcdonaldCouponMapper.selectMcdonaldCouponByQrCode(code);
}
@Override
public R updateMcdonaldCouponByQrCode(String code, BigDecimal orderMoney, String orderId){
McdonaldCouponDto dto = mcdonaldCouponMapper.selectMcdonaldCouponByQrCode(code);
if(dto != null){
if(Integer.valueOf(0).equals(dto.getStatus())){
if(System.currentTimeMillis() < dto.getGmtValidity().getTime()){
if(dto.getStartUse().compareTo(orderMoney) >= 0){
BigDecimal useValue = BigDecimal.ZERO;
BigDecimal canUse = dto.getCouponValue().subtract(dto.getUseValue());
if(!dto.getPayProportion().equals(BigDecimal.ZERO)){
//支付比例不为空
log.info("支付比例不为空");
useValue = orderMoney.multiply(dto.getPayProportion());
if(canUse.compareTo(useValue) < 0){
log.info("可用金额小于抵扣金额");
useValue = canUse;
}
}
McdonaldCoupon mcdonaldCoupon = new McdonaldCoupon();
mcdonaldCoupon.setId(dto.getId());
mcdonaldCoupon.setUseValue(dto.getUseValue().add(useValue));
mcdonaldCoupon.setGmtModified(new Date(System.currentTimeMillis()));
mcdonaldCoupon.setGmtUse(mcdonaldCoupon.getGmtModified());
mcdonaldCouponMapper.updateMcdonaldCouponById(mcdonaldCoupon);
McdonaldCouponUseRecord mcdonaldCouponUseRecord = new McdonaldCouponUseRecord();
mcdonaldCouponUseRecord.setCouponId(dto.getId());
mcdonaldCouponUseRecord.setCouponValue(dto.getCouponValue());
mcdonaldCouponUseRecord.setUseValue(useValue);
mcdonaldCouponUseRecord.setOrderId(orderId);
mcdonaldCouponUseRecord.setOrderValue(orderMoney);
mcdonaldCouponUseRecord.setUserId(1000L);
mcdonaldCouponUseRecordMapper.insertMcdonaldCouponUseRecord(mcdonaldCouponUseRecord);
log.info("更新优惠券数据{}, 新增优惠券使用记录{}", mcdonaldCoupon, mcdonaldCouponUseRecord);
return R.ok().put("userValue", useValue).put("mustPay", orderMoney.subtract(useValue));
}
return R.error(501, String.format("订单金额不能低于%d", dto.getStartUse()));
}
return R.error(501, "优惠券已过期");
}
return R.error(501, "优惠券已使用");
}
return R.error(501, "优惠券不存在");
}
}

View File

@ -0,0 +1,63 @@
package com.lz.modules.mcdonald.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lz.modules.mcdonald.dao.McdonaldCouponUseRecordMapper;
import com.lz.modules.mcdonald.entity.McdonaldCouponUseRecord;
import com.lz.modules.mcdonald.service.McdonaldCouponUseRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* <p>
* 麦当劳优惠券使用记录表 服务类
* </p>
*
* @author quyixiao
* @since 2022-04-24
*/
@Service
public class McdonaldCouponUseRecordServiceImpl extends ServiceImpl<McdonaldCouponUseRecordMapper, McdonaldCouponUseRecord> implements McdonaldCouponUseRecordService {
@Autowired
private McdonaldCouponUseRecordMapper mcdonaldCouponUseRecordMapper;
@Override
public McdonaldCouponUseRecord selectMcdonaldCouponUseRecordById(Long id){
return mcdonaldCouponUseRecordMapper.selectMcdonaldCouponUseRecordById(id);
}
@Override
public Long insertMcdonaldCouponUseRecord(McdonaldCouponUseRecord mcdonaldCouponUseRecord){
return mcdonaldCouponUseRecordMapper.insertMcdonaldCouponUseRecord(mcdonaldCouponUseRecord);
}
@Override
public int updateMcdonaldCouponUseRecordById(McdonaldCouponUseRecord mcdonaldCouponUseRecord){
return mcdonaldCouponUseRecordMapper.updateMcdonaldCouponUseRecordById(mcdonaldCouponUseRecord);
}
@Override
public int updateCoverMcdonaldCouponUseRecordById(McdonaldCouponUseRecord mcdonaldCouponUseRecord){
return mcdonaldCouponUseRecordMapper.updateCoverMcdonaldCouponUseRecordById(mcdonaldCouponUseRecord);
}
@Override
public int deleteMcdonaldCouponUseRecordById(Long id){
return mcdonaldCouponUseRecordMapper.deleteMcdonaldCouponUseRecordById(id);
}
}

View File

@ -49,4 +49,6 @@ public interface SysUserDao extends BaseMapper<SysUserEntity> {
List<Long> queryMenuIdListByRoleId(@Param("roleId") Long roleId);
List<Long> queryMenuIdListByRoleIds(@Param("roleIds") Set<Long> roleIds);
SysUserEntity selectSysUserByMobile(@Param("phone") String phone);
}

View File

@ -69,4 +69,6 @@ public interface SysUserService extends IService<SysUserEntity> {
List<Long> queryMenuIdListByRoleId(Long roleId);
List<Long> queryMenuIdListByRoleIds(Set<Long> roleIds);
SysUserEntity selectSysUserByMobile(String phone);
}

View File

@ -156,6 +156,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
return baseMapper.queryMenuIdListByRoleIds(roleIds);
}
@Override
public SysUserEntity selectSysUserByMobile(String phone){
return sysUserDao.selectSysUserByMobile(phone);
}
/**
* 检查角色是否越权
*/

View File

@ -0,0 +1,117 @@
<?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.lz.modules.mcdonald.dao.McdonaldCouponMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.lz.modules.mcdonald.entity.McdonaldCoupon">
<id column="id" property="id"/>
<result column="is_delete" property="isDelete"/>
<result column="gmt_create" property="gmtCreate"/>
<result column="gmt_modified" property="gmtModified"/>
<result column="gmt_use" property="gmtUse"/>
<result column="gmt_validity" property="gmtValidity"/>
<result column="qr_code" property="qrCode"/>
<result column="status" property="status"/>
<result column="coupon_value" property="couponValue"/>
<result column="use_value" property="useValue"/>
<result column="start_use" property="startUse"/>
<result column="pay_proportion" property="payProportion"/>
<result column="remark" property="remark"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, gmt_use AS gmtUse, gmt_validity AS gmtValidity, qr_code AS qrCode, status AS status, coupon_value AS couponValue, use_value AS useValue, start_use AS startUse, pay_proportion AS payProportion, remark AS remark
</sql>
<select id="selectMcdonaldCouponById" resultType="McdonaldCoupon" >
select * from mcdonald_coupon where id=#{id} and is_delete = 0 limit 1
</select>
<insert id="insertMcdonaldCoupon" parameterType="McdonaldCoupon" useGeneratedKeys="true" keyProperty="id" >
insert into mcdonald_coupon(
<if test="gmtUse != null">gmt_use, </if>
<if test="gmtValidity != null">gmt_validity, </if>
<if test="qrCode != null">qr_code, </if>
<if test="status != null">status, </if>
<if test="couponValue != null">coupon_value, </if>
<if test="useValue != null">use_value, </if>
<if test="startUse != null">start_use, </if>
<if test="payProportion != null">pay_proportion, </if>
<if test="remark != null">remark, </if>
is_delete,
gmt_create,
gmt_modified
)values(
<if test="gmtUse != null">#{ gmtUse}, </if>
<if test="gmtValidity != null">#{ gmtValidity}, </if>
<if test="qrCode != null">#{ qrCode}, </if>
<if test="status != null">#{ status}, </if>
<if test="couponValue != null">#{ couponValue}, </if>
<if test="useValue != null">#{ useValue}, </if>
<if test="startUse != null">#{ startUse}, </if>
<if test="payProportion != null">#{ payProportion}, </if>
<if test="remark != null">#{ remark}, </if>
0,
now(),
now()
)
</insert>
<update id="updateMcdonaldCouponById" parameterType="McdonaldCoupon" >
update
mcdonald_coupon
<trim prefix="set" suffixOverrides=",">
<if test="isDelete != null">is_delete = #{isDelete},</if>
<if test="gmtCreate != null">gmt_create = #{gmtCreate},</if>
<if test="gmtUse != null">gmt_use = #{gmtUse},</if>
<if test="gmtValidity != null">gmt_validity = #{gmtValidity},</if>
<if test="qrCode != null">qr_code = #{qrCode},</if>
<if test="status != null">status = #{status},</if>
<if test="couponValue != null">coupon_value = #{couponValue},</if>
<if test="useValue != null">use_value = #{useValue},</if>
<if test="startUse != null">start_use = #{startUse},</if>
<if test="payProportion != null">pay_proportion = #{payProportion},</if>
<if test="remark != null">remark = #{remark}</if>
</trim>
,gmt_modified = now()
where id = #{id}
</update>
<update id="updateCoverMcdonaldCouponById" parameterType="McdonaldCoupon" >
update
mcdonald_coupon
set
is_delete = #{isDelete},
gmt_create = #{gmtCreate},
gmt_use = #{gmtUse},
gmt_validity = #{gmtValidity},
qr_code = #{qrCode},
status = #{status},
coupon_value = #{couponValue},
use_value = #{useValue},
start_use = #{startUse},
pay_proportion = #{payProportion},
remark = #{remark}
,gmt_modified = now()
where id = #{id}
</update>
<update id="deleteMcdonaldCouponById" parameterType="java.lang.Long">
update mcdonald_coupon set is_delete = 1 where id=#{id} limit 1
</update>
<select id="selectMcdonaldCouponByQrCode" resultType="com.lz.modules.mcdonald.model.McdonaldCouponDto" >
select * from mcdonald_coupon where qr_code=#{code} and is_delete = 0 limit 1
</select>
</mapper>

View File

@ -0,0 +1,103 @@
<?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.lz.modules.mcdonald.dao.McdonaldCouponUseRecordMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.lz.modules.mcdonald.entity.McdonaldCouponUseRecord">
<id column="id" property="id"/>
<result column="is_delete" property="isDelete"/>
<result column="gmt_create" property="gmtCreate"/>
<result column="gmt_modified" property="gmtModified"/>
<result column="coupon_id" property="couponId"/>
<result column="user_id" property="userId"/>
<result column="coupon_value" property="couponValue"/>
<result column="use_value" property="useValue"/>
<result column="order_id" property="orderId"/>
<result column="order_value" property="orderValue"/>
<result column="remark" property="remark"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, coupon_id AS couponId, user_id AS userId, coupon_value AS couponValue, use_value AS useValue, order_id AS orderId, order_value AS orderValue, remark AS remark
</sql>
<select id="selectMcdonaldCouponUseRecordById" resultType="McdonaldCouponUseRecord" >
select * from mcdonald_coupon_use_record where id=#{id} and is_delete = 0 limit 1
</select>
<insert id="insertMcdonaldCouponUseRecord" parameterType="McdonaldCouponUseRecord" useGeneratedKeys="true" keyProperty="id" >
insert into mcdonald_coupon_use_record(
<if test="couponId != null">coupon_id, </if>
<if test="userId != null">user_id, </if>
<if test="couponValue != null">coupon_value, </if>
<if test="useValue != null">use_value, </if>
<if test="orderId != null">order_id, </if>
<if test="orderValue != null">order_value, </if>
<if test="remark != null">remark, </if>
is_delete,
gmt_create,
gmt_modified
)values(
<if test="couponId != null">#{ couponId}, </if>
<if test="userId != null">#{ userId}, </if>
<if test="couponValue != null">#{ couponValue}, </if>
<if test="useValue != null">#{ useValue}, </if>
<if test="orderId != null">#{ orderId}, </if>
<if test="orderValue != null">#{ orderValue}, </if>
<if test="remark != null">#{ remark}, </if>
0,
now(),
now()
)
</insert>
<update id="updateMcdonaldCouponUseRecordById" parameterType="McdonaldCouponUseRecord" >
update
mcdonald_coupon_use_record
<trim prefix="set" suffixOverrides=",">
<if test="isDelete != null">is_delete = #{isDelete},</if>
<if test="gmtCreate != null">gmt_create = #{gmtCreate},</if>
<if test="couponId != null">coupon_id = #{couponId},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="couponValue != null">coupon_value = #{couponValue},</if>
<if test="useValue != null">use_value = #{useValue},</if>
<if test="orderId != null">order_id = #{orderId},</if>
<if test="orderValue != null">order_value = #{orderValue},</if>
<if test="remark != null">remark = #{remark}</if>
</trim>
,gmt_modified = now()
where id = #{id}
</update>
<update id="updateCoverMcdonaldCouponUseRecordById" parameterType="McdonaldCouponUseRecord" >
update
mcdonald_coupon_use_record
set
is_delete = #{isDelete},
gmt_create = #{gmtCreate},
coupon_id = #{couponId},
user_id = #{userId},
coupon_value = #{couponValue},
use_value = #{useValue},
order_id = #{orderId},
order_value = #{orderValue},
remark = #{remark}
,gmt_modified = now()
where id = #{id}
</update>
<update id="deleteMcdonaldCouponUseRecordById" parameterType="java.lang.Long">
update mcdonald_coupon_use_record set is_delete = 1 where id=#{id} limit 1
</update>
</mapper>

View File

@ -78,5 +78,9 @@
</if>
</select>
<select id="selectSysUserByMobile" resultType="java.lang.Long">
select * from sys_user where mobile=#{phone} and type=1 limit 1
</select>
</mapper>

View File

@ -85,8 +85,8 @@ public class MysqlMain {
List<TablesBean> list = new ArrayList<TablesBean>();
list.add(new TablesBean("lz_departments_staff_relate"));
list.add(new TablesBean("lz_staff"));
list.add(new TablesBean("mcdonald_coupon_use_record"));
list.add(new TablesBean("mcdonald_coupon"));
List<TablesBean> list2 = new ArrayList<TablesBean>();