完成优惠券、优惠券包功能

dev
胡锐 2 months ago
parent 2550b407c6
commit 796706d0dd
  1. 14
      bweb/src/main/java/com/bweb/controller/BsAgentDiscountController.java
  2. 11
      bweb/src/main/java/com/bweb/controller/BsDiscountPkStockController.java
  3. 4
      bweb/src/main/java/com/bweb/controller/BsDiscountStockController.java
  4. 33
      cweb/src/main/java/com/cweb/controller/BsDiscountUserController.java
  5. 43
      openapi/src/main/java/com/openapi/controller/BsDiscountController.java
  6. BIN
      openapi/target/classes/com/openapi/controller/BsDiscountController.class
  7. BIN
      openapi/target/oil-openapi-1.0-SNAPSHOT.jar
  8. BIN
      openapi/target/oil-openapi-1.0-SNAPSHOT.jar.original
  9. 1
      schedule/src/main/java/com/hfkj/schedule/GasSchedule.java
  10. 1
      schedule/src/main/java/com/hfkj/schedule/OrderSettleSchedule.java
  11. 6
      service/src/main/java/com/hfkj/common/pay/util/SignatureUtil.java
  12. 122
      service/src/main/java/com/hfkj/dao/BsDiscountUserGiveRecordMapper.java
  13. 7
      service/src/main/java/com/hfkj/dao/BsDiscountUserGiveRecordMapperExt.java
  14. 318
      service/src/main/java/com/hfkj/dao/BsDiscountUserGiveRecordSqlProvider.java
  15. 216
      service/src/main/java/com/hfkj/entity/BsDiscountUserGiveRecord.java
  16. 933
      service/src/main/java/com/hfkj/entity/BsDiscountUserGiveRecordExample.java
  17. 3
      service/src/main/java/com/hfkj/service/agent/BsAgentDiscountService.java
  18. 21
      service/src/main/java/com/hfkj/service/agent/impl/BsAgentDiscountServiceImpl.java
  19. 17
      service/src/main/java/com/hfkj/service/discount/BsDiscountUserGiveRecordService.java
  20. 8
      service/src/main/java/com/hfkj/service/discount/BsDiscountUserService.java
  21. 7
      service/src/main/java/com/hfkj/service/discount/impl/BsDiscountPkStockBatchServiceImpl.java
  22. 4
      service/src/main/java/com/hfkj/service/discount/impl/BsDiscountPkStockCodeServiceImpl.java
  23. 4
      service/src/main/java/com/hfkj/service/discount/impl/BsDiscountStockCodeServiceImpl.java
  24. 26
      service/src/main/java/com/hfkj/service/discount/impl/BsDiscountUserGiveRecordServiceImpl.java
  25. 49
      service/src/main/java/com/hfkj/service/discount/impl/BsDiscountUserServiceImpl.java
  26. 12
      service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java

@ -7,6 +7,7 @@ import com.hfkj.common.exception.ErrorCode;
import com.hfkj.common.exception.ErrorHelp;
import com.hfkj.common.exception.SysCode;
import com.hfkj.common.security.UserCenter;
import com.hfkj.common.utils.PageUtil;
import com.hfkj.common.utils.ResponseMsgUtil;
import com.hfkj.entity.BsAgentDiscount;
import com.hfkj.entity.BsDiscount;
@ -32,7 +33,9 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Controller
@RequestMapping(value = "/agentDiscount")
@ -56,7 +59,7 @@ public class BsAgentDiscountController {
|| StringUtils.isBlank(body.getString("objectNo"))) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
if (agentDiscountService.getDetail(body.getLong("agentId"),body.getInteger("type"),body.getString("objectNo")) == null) {
if (agentDiscountService.getDetail(body.getLong("agentId"),body.getInteger("type"),body.getString("objectNo")) != null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "已绑定过优惠【"+body.getString("objectNo")+"】");
}
BsAgentDiscount agentDiscount = new BsAgentDiscount();
@ -86,6 +89,8 @@ public class BsAgentDiscountController {
} else {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的类型");
}
agentDiscountService.create(agentDiscount);
return ResponseMsgUtil.success("操作成功");
} catch (Exception e) {
@ -119,8 +124,11 @@ public class BsAgentDiscountController {
@RequestParam(name = "pageNum", required = true) Integer pageNum,
@RequestParam(name = "pageSize", required = true) Integer pageSize) {
try {
PageHelper.startPage(pageNum,pageSize);
return ResponseMsgUtil.success(new PageInfo<>(agentDiscountService.getList(agentId, type,null)));
List<BsAgentDiscount> list = agentDiscountService.getList(agentId);
if (type != null) {
list = list.stream().filter(o-> o.getType().equals(type)).collect(Collectors.toList());
}
return ResponseMsgUtil.success(PageUtil.initPageInfoObj(pageNum, list.size(),pageSize,new PageInfo<>(list)));
} catch (Exception e) {
return ResponseMsgUtil.exception(e);

@ -31,8 +31,6 @@ public class BsDiscountPkStockController {
private BsDiscountPkStockBatchService discountPkStockBatchService;
@Resource
private BsDiscountPkStockCodeService discountPkStockCodeService;
@Resource
private UserCenter userCenter;
@RequestMapping(value="/addStock",method = RequestMethod.POST)
@ResponseBody
@ -40,12 +38,12 @@ public class BsDiscountPkStockController {
public ResponseData addStock(@RequestBody JSONObject body) {
try {
if (body == null
|| StringUtils.isBlank(body.getString("discountPkNo"))
|| StringUtils.isBlank(body.getString("discountPkNo"))
|| body.getInteger("stockCount") == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
discountPkStockBatchService.addStock(body.getString("discountNo"), body.getInteger("stockCount"));
discountPkStockBatchService.addStock(body.getString("discountPkNo"), body.getInteger("stockCount"));
return ResponseMsgUtil.success("操作成功");
@ -69,6 +67,7 @@ public class BsDiscountPkStockController {
param.put("discountPkName", discountPkName);
param.put("batchNo", batchNo);
PageHelper.startPage(pageNum,pageSize);
return ResponseMsgUtil.success(new PageInfo<>(discountPkStockBatchService.getStockBatchList(param)));
@ -98,6 +97,8 @@ public class BsDiscountPkStockController {
public ResponseData queryStockBatchCodeList(@RequestParam(name = "codeId", required = false) String codeId,
@RequestParam(name = "discountPkNo", required = false) String discountPkNo,
@RequestParam(name = "batchNo", required = false) String batchNo,
@RequestParam(name = "userPhone", required = false) String userPhone,
@RequestParam(name = "status", required = false) Integer status,
@RequestParam(name = "pageNum", required = true) Integer pageNum,
@RequestParam(name = "pageSize", required = true) Integer pageSize) {
try {
@ -105,6 +106,8 @@ public class BsDiscountPkStockController {
param.put("codeId", codeId);
param.put("discountPkNo", discountPkNo);
param.put("batchNo", batchNo);
param.put("userPhone", userPhone);
param.put("status", status);
PageHelper.startPage(pageNum,pageSize);
return ResponseMsgUtil.success(new PageInfo<>(discountPkStockCodeService.getCodeList(param)));

@ -97,6 +97,8 @@ public class BsDiscountStockController {
public ResponseData queryStockBatchCodeList(@RequestParam(name = "codeId", required = false) String codeId,
@RequestParam(name = "discountNo", required = false) String discountNo,
@RequestParam(name = "batchNo", required = false) String batchNo,
@RequestParam(name = "userPhone", required = false) String userPhone,
@RequestParam(name = "status", required = false) Integer status,
@RequestParam(name = "pageNum", required = true) Integer pageNum,
@RequestParam(name = "pageSize", required = true) Integer pageSize) {
try {
@ -104,6 +106,8 @@ public class BsDiscountStockController {
param.put("codeId", codeId);
param.put("discountNo", discountNo);
param.put("batchNo", batchNo);
param.put("userPhone", userPhone);
param.put("status", status);
PageHelper.startPage(pageNum,pageSize);
return ResponseMsgUtil.success(new PageInfo<>(discountStockCodeService.getCodeList(param)));

@ -1,5 +1,6 @@
package com.cweb.controller;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hfkj.common.exception.ErrorCode;
@ -15,15 +16,14 @@ import com.hfkj.model.UserSessionObject;
import com.hfkj.service.discount.BsDiscountService;
import com.hfkj.service.discount.BsDiscountUserService;
import com.hfkj.service.gas.BsGasService;
import com.hfkj.sysenum.discount.DiscountUserStatusEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
@ -70,10 +70,33 @@ public class BsDiscountUserController {
}
@RequestMapping(value="/give",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "转赠他人")
public ResponseData give(@RequestBody JSONObject body) {
try {
if (body == null
|| body.getLong("codeId") == null
|| StringUtils.isBlank(body.getString("phone"))) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
if (userSession == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.ACCOUNT_LOGIN_NOT, "");
}
discountUserService.give(body.getLong("codeId"), userSession.getUser().getId(), body.getString("phone"));
return ResponseMsgUtil.success("操作成功");
} catch (Exception e) {
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/useDiscountList",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "加油优惠券列表")
public ResponseData useDiscountList(@RequestParam(name = "useScope", required = true) Integer useScope,
public ResponseData useDiscountList(@RequestParam(name = "use", required = true) Integer useScope,
@RequestParam(name = "merNo", required = true) String merNo,
@RequestParam(name = "refuelPrice", required = false) BigDecimal refuelPrice) {
try {

@ -57,13 +57,7 @@ public class BsDiscountController {
public ResponseData push(@Validated @RequestBody RequestPushDiscountModel body) {
log.info("========= Start 推送优惠券 Start ===========");
log.info("请求参数:" + JSONObject.toJSONString(body));
BsAgentApiLogWithBLOBs apiLog = new BsAgentApiLogWithBLOBs();
apiLog.setAppId(body.getAppId());
apiLog.setRequestId(body.getReqId());
apiLog.setRequestUrl("discount/push");
apiLog.setRequestParam(JSONObject.toJSONString(body));
try {
// 验证签名
BsAgentApiParam apiParam = agentApiParamService.getParamByAppId(body.getAppId());
@ -74,6 +68,11 @@ public class BsDiscountController {
if (agentApiLogService.isExist(body.getAppId(), body.getReqId())) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_REQ_ID_ERR, "");
}
apiLog.setAppId(body.getAppId());
apiLog.setRequestId(body.getReqId());
apiLog.setRequestUrl("discount/push");
apiLog.setRequestParam(JSONObject.toJSONString(body));
// 查询代理商是否拥有优惠券权限
if (agentDiscountService.getDetail(apiParam.getAgentId(),1,body.getDiscountNo()) == null) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "未配置优惠券");
@ -115,7 +114,9 @@ public class BsDiscountController {
return exception;
} finally {
// 记录日志
agentApiLogService.edit(apiLog);
if (apiLog.getAppId() != null) {
agentApiLogService.edit(apiLog);
}
log.info("========= END 推送优惠券 END ===========");
}
}
@ -126,13 +127,7 @@ public class BsDiscountController {
public ResponseData pushPk(@Validated @RequestBody RequestPushPkDiscountModel body) {
log.info("========= Start 推送优惠券包 Start ===========");
log.info("请求参数:" + JSONObject.toJSONString(body));
BsAgentApiLogWithBLOBs apiLog = new BsAgentApiLogWithBLOBs();
apiLog.setAppId(body.getAppId());
apiLog.setRequestId(body.getReqId());
apiLog.setRequestUrl("discount/pushPk");
apiLog.setRequestParam(JSONObject.toJSONString(body));
try {
// 验证签名
BsAgentApiParam apiParam = agentApiParamService.getParamByAppId(body.getAppId());
@ -143,6 +138,11 @@ public class BsDiscountController {
if (agentApiLogService.isExist(body.getAppId(), body.getReqId())) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_REQ_ID_ERR, "");
}
apiLog.setAppId(body.getAppId());
apiLog.setRequestId(body.getReqId());
apiLog.setRequestUrl("discount/pushPk");
apiLog.setRequestParam(JSONObject.toJSONString(body));
// 查询代理商是否拥有优惠券包权限
if (agentDiscountService.getDetail(apiParam.getAgentId(),2,body.getDiscountPkNo()) == null) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "未配置优惠券包");
@ -185,7 +185,9 @@ public class BsDiscountController {
return exception;
} finally {
// 记录日志
agentApiLogService.edit(apiLog);
if (apiLog.getAppId() != null) {
agentApiLogService.edit(apiLog);
}
log.info("========= END 推送优惠券包 END ===========");
}
}
@ -198,10 +200,6 @@ public class BsDiscountController {
log.info("请求参数:" + JSONObject.toJSONString(body));
BsAgentApiLogWithBLOBs apiLog = new BsAgentApiLogWithBLOBs();
apiLog.setAppId(body.getAppId());
apiLog.setRequestId(body.getReqId());
apiLog.setRequestUrl("discount/queryCode");
apiLog.setRequestParam(JSONObject.toJSONString(body));
try {
// 验证签名
@ -213,6 +211,11 @@ public class BsDiscountController {
if (agentApiLogService.isExist(body.getAppId(), body.getReqId())) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_REQ_ID_ERR, "");
}
apiLog.setAppId(body.getAppId());
apiLog.setRequestId(body.getReqId());
apiLog.setRequestUrl("discount/queryCode");
apiLog.setRequestParam(JSONObject.toJSONString(body));
// 查询优惠券编码
BsDiscountUser discountUser = discountUserService.getDetailByCodeId(body.getCode());
if (discountUser == null) {
@ -240,7 +243,9 @@ public class BsDiscountController {
return exception;
} finally {
// 记录日志
agentApiLogService.edit(apiLog);
if (apiLog.getAppId() != null) {
agentApiLogService.edit(apiLog);
}
log.info("========= END 查询优惠券编码 END ===========");
}
}

@ -19,6 +19,7 @@ public class GasSchedule {
private NewLinkGasService newLinkGasService;
@Resource
private CqShellPetroleumGasService cqShellPetroleumGasService;
@Scheduled(cron = "5 0 0 * * ?") // 每日凌晨00:00:5执行一次
public void newLinkGasSchedule() {
try {

@ -27,6 +27,7 @@ public class OrderSettleSchedule {
private BsOrderSettleService orderSettleService;
@Resource
private BsOrderSettleLedgerService orderSettleLedgerService;
@Scheduled(cron="0 0/3 * * * ?") //每3分钟执行一次
public void getBlxCoupon() {
Map<String,Object> param = new HashMap<>();

@ -82,11 +82,11 @@ public class SignatureUtil {
public static void main(String[] args) throws Exception {
String paramStr = "{ \n" +
" \"reqId\": \"cs0001\",\n" +
" \"reqId\": \"cs0005\",\n" +
" \"appId\": \"hf7356c71fb97ab0\",\n" +
" \"discountNo\": \"D10008\",\n" +
" \"discountPkNo\": \"DPK10018\",\n" +
" \"number\": \"1\",\n" +
" \"phone\": \"123456\"" +
" \"phone\": \"17726395120\"" +
"}";
String sign = createSign(JSONObject.parseObject(paramStr), "8aef995ff71485dc19b36e35f04c4016");
System.out.println(sign);

@ -0,0 +1,122 @@
package com.hfkj.dao;
import com.hfkj.entity.BsDiscountUserGiveRecord;
import com.hfkj.entity.BsDiscountUserGiveRecordExample;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.type.JdbcType;
import org.springframework.stereotype.Repository;
/**
*
* 代码由工具生成,请勿修改!!!
* 如果需要扩展请在其父类进行扩展
*
**/
@Repository
public interface BsDiscountUserGiveRecordMapper extends BsDiscountUserGiveRecordMapperExt {
@SelectProvider(type=BsDiscountUserGiveRecordSqlProvider.class, method="countByExample")
long countByExample(BsDiscountUserGiveRecordExample example);
@DeleteProvider(type=BsDiscountUserGiveRecordSqlProvider.class, method="deleteByExample")
int deleteByExample(BsDiscountUserGiveRecordExample example);
@Delete({
"delete from bs_discount_user_give_record",
"where id = #{id,jdbcType=BIGINT}"
})
int deleteByPrimaryKey(Long id);
@Insert({
"insert into bs_discount_user_give_record (discount_user_id, discount_stock_code, ",
"send_user_id, send_user_phone, ",
"receive_user_id, receive_user_phone, ",
"create_time, ext_1, ",
"ext_2, ext_3)",
"values (#{discountUserId,jdbcType=BIGINT}, #{discountStockCode,jdbcType=BIGINT}, ",
"#{sendUserId,jdbcType=BIGINT}, #{sendUserPhone,jdbcType=VARCHAR}, ",
"#{receiveUserId,jdbcType=BIGINT}, #{receiveUserPhone,jdbcType=VARCHAR}, ",
"#{createTime,jdbcType=TIMESTAMP}, #{ext1,jdbcType=VARCHAR}, ",
"#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})"
})
@Options(useGeneratedKeys=true,keyProperty="id")
int insert(BsDiscountUserGiveRecord record);
@InsertProvider(type=BsDiscountUserGiveRecordSqlProvider.class, method="insertSelective")
@Options(useGeneratedKeys=true,keyProperty="id")
int insertSelective(BsDiscountUserGiveRecord record);
@SelectProvider(type=BsDiscountUserGiveRecordSqlProvider.class, method="selectByExample")
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="discount_user_id", property="discountUserId", jdbcType=JdbcType.BIGINT),
@Result(column="discount_stock_code", property="discountStockCode", jdbcType=JdbcType.BIGINT),
@Result(column="send_user_id", property="sendUserId", jdbcType=JdbcType.BIGINT),
@Result(column="send_user_phone", property="sendUserPhone", jdbcType=JdbcType.VARCHAR),
@Result(column="receive_user_id", property="receiveUserId", jdbcType=JdbcType.BIGINT),
@Result(column="receive_user_phone", property="receiveUserPhone", jdbcType=JdbcType.VARCHAR),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR)
})
List<BsDiscountUserGiveRecord> selectByExample(BsDiscountUserGiveRecordExample example);
@Select({
"select",
"id, discount_user_id, discount_stock_code, send_user_id, send_user_phone, receive_user_id, ",
"receive_user_phone, create_time, ext_1, ext_2, ext_3",
"from bs_discount_user_give_record",
"where id = #{id,jdbcType=BIGINT}"
})
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="discount_user_id", property="discountUserId", jdbcType=JdbcType.BIGINT),
@Result(column="discount_stock_code", property="discountStockCode", jdbcType=JdbcType.BIGINT),
@Result(column="send_user_id", property="sendUserId", jdbcType=JdbcType.BIGINT),
@Result(column="send_user_phone", property="sendUserPhone", jdbcType=JdbcType.VARCHAR),
@Result(column="receive_user_id", property="receiveUserId", jdbcType=JdbcType.BIGINT),
@Result(column="receive_user_phone", property="receiveUserPhone", jdbcType=JdbcType.VARCHAR),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR)
})
BsDiscountUserGiveRecord selectByPrimaryKey(Long id);
@UpdateProvider(type=BsDiscountUserGiveRecordSqlProvider.class, method="updateByExampleSelective")
int updateByExampleSelective(@Param("record") BsDiscountUserGiveRecord record, @Param("example") BsDiscountUserGiveRecordExample example);
@UpdateProvider(type=BsDiscountUserGiveRecordSqlProvider.class, method="updateByExample")
int updateByExample(@Param("record") BsDiscountUserGiveRecord record, @Param("example") BsDiscountUserGiveRecordExample example);
@UpdateProvider(type=BsDiscountUserGiveRecordSqlProvider.class, method="updateByPrimaryKeySelective")
int updateByPrimaryKeySelective(BsDiscountUserGiveRecord record);
@Update({
"update bs_discount_user_give_record",
"set discount_user_id = #{discountUserId,jdbcType=BIGINT},",
"discount_stock_code = #{discountStockCode,jdbcType=BIGINT},",
"send_user_id = #{sendUserId,jdbcType=BIGINT},",
"send_user_phone = #{sendUserPhone,jdbcType=VARCHAR},",
"receive_user_id = #{receiveUserId,jdbcType=BIGINT},",
"receive_user_phone = #{receiveUserPhone,jdbcType=VARCHAR},",
"create_time = #{createTime,jdbcType=TIMESTAMP},",
"ext_1 = #{ext1,jdbcType=VARCHAR},",
"ext_2 = #{ext2,jdbcType=VARCHAR},",
"ext_3 = #{ext3,jdbcType=VARCHAR}",
"where id = #{id,jdbcType=BIGINT}"
})
int updateByPrimaryKey(BsDiscountUserGiveRecord record);
}

@ -0,0 +1,7 @@
package com.hfkj.dao;
/**
* mapper扩展类
*/
public interface BsDiscountUserGiveRecordMapperExt {
}

@ -0,0 +1,318 @@
package com.hfkj.dao;
import com.hfkj.entity.BsDiscountUserGiveRecord;
import com.hfkj.entity.BsDiscountUserGiveRecordExample.Criteria;
import com.hfkj.entity.BsDiscountUserGiveRecordExample.Criterion;
import com.hfkj.entity.BsDiscountUserGiveRecordExample;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.jdbc.SQL;
public class BsDiscountUserGiveRecordSqlProvider {
public String countByExample(BsDiscountUserGiveRecordExample example) {
SQL sql = new SQL();
sql.SELECT("count(*)").FROM("bs_discount_user_give_record");
applyWhere(sql, example, false);
return sql.toString();
}
public String deleteByExample(BsDiscountUserGiveRecordExample example) {
SQL sql = new SQL();
sql.DELETE_FROM("bs_discount_user_give_record");
applyWhere(sql, example, false);
return sql.toString();
}
public String insertSelective(BsDiscountUserGiveRecord record) {
SQL sql = new SQL();
sql.INSERT_INTO("bs_discount_user_give_record");
if (record.getDiscountUserId() != null) {
sql.VALUES("discount_user_id", "#{discountUserId,jdbcType=BIGINT}");
}
if (record.getDiscountStockCode() != null) {
sql.VALUES("discount_stock_code", "#{discountStockCode,jdbcType=BIGINT}");
}
if (record.getSendUserId() != null) {
sql.VALUES("send_user_id", "#{sendUserId,jdbcType=BIGINT}");
}
if (record.getSendUserPhone() != null) {
sql.VALUES("send_user_phone", "#{sendUserPhone,jdbcType=VARCHAR}");
}
if (record.getReceiveUserId() != null) {
sql.VALUES("receive_user_id", "#{receiveUserId,jdbcType=BIGINT}");
}
if (record.getReceiveUserPhone() != null) {
sql.VALUES("receive_user_phone", "#{receiveUserPhone,jdbcType=VARCHAR}");
}
if (record.getCreateTime() != null) {
sql.VALUES("create_time", "#{createTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.VALUES("ext_1", "#{ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.VALUES("ext_2", "#{ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.VALUES("ext_3", "#{ext3,jdbcType=VARCHAR}");
}
return sql.toString();
}
public String selectByExample(BsDiscountUserGiveRecordExample example) {
SQL sql = new SQL();
if (example != null && example.isDistinct()) {
sql.SELECT_DISTINCT("id");
} else {
sql.SELECT("id");
}
sql.SELECT("discount_user_id");
sql.SELECT("discount_stock_code");
sql.SELECT("send_user_id");
sql.SELECT("send_user_phone");
sql.SELECT("receive_user_id");
sql.SELECT("receive_user_phone");
sql.SELECT("create_time");
sql.SELECT("ext_1");
sql.SELECT("ext_2");
sql.SELECT("ext_3");
sql.FROM("bs_discount_user_give_record");
applyWhere(sql, example, false);
if (example != null && example.getOrderByClause() != null) {
sql.ORDER_BY(example.getOrderByClause());
}
return sql.toString();
}
public String updateByExampleSelective(Map<String, Object> parameter) {
BsDiscountUserGiveRecord record = (BsDiscountUserGiveRecord) parameter.get("record");
BsDiscountUserGiveRecordExample example = (BsDiscountUserGiveRecordExample) parameter.get("example");
SQL sql = new SQL();
sql.UPDATE("bs_discount_user_give_record");
if (record.getId() != null) {
sql.SET("id = #{record.id,jdbcType=BIGINT}");
}
if (record.getDiscountUserId() != null) {
sql.SET("discount_user_id = #{record.discountUserId,jdbcType=BIGINT}");
}
if (record.getDiscountStockCode() != null) {
sql.SET("discount_stock_code = #{record.discountStockCode,jdbcType=BIGINT}");
}
if (record.getSendUserId() != null) {
sql.SET("send_user_id = #{record.sendUserId,jdbcType=BIGINT}");
}
if (record.getSendUserPhone() != null) {
sql.SET("send_user_phone = #{record.sendUserPhone,jdbcType=VARCHAR}");
}
if (record.getReceiveUserId() != null) {
sql.SET("receive_user_id = #{record.receiveUserId,jdbcType=BIGINT}");
}
if (record.getReceiveUserPhone() != null) {
sql.SET("receive_user_phone = #{record.receiveUserPhone,jdbcType=VARCHAR}");
}
if (record.getCreateTime() != null) {
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}");
}
applyWhere(sql, example, true);
return sql.toString();
}
public String updateByExample(Map<String, Object> parameter) {
SQL sql = new SQL();
sql.UPDATE("bs_discount_user_give_record");
sql.SET("id = #{record.id,jdbcType=BIGINT}");
sql.SET("discount_user_id = #{record.discountUserId,jdbcType=BIGINT}");
sql.SET("discount_stock_code = #{record.discountStockCode,jdbcType=BIGINT}");
sql.SET("send_user_id = #{record.sendUserId,jdbcType=BIGINT}");
sql.SET("send_user_phone = #{record.sendUserPhone,jdbcType=VARCHAR}");
sql.SET("receive_user_id = #{record.receiveUserId,jdbcType=BIGINT}");
sql.SET("receive_user_phone = #{record.receiveUserPhone,jdbcType=VARCHAR}");
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}");
sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}");
sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}");
sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}");
BsDiscountUserGiveRecordExample example = (BsDiscountUserGiveRecordExample) parameter.get("example");
applyWhere(sql, example, true);
return sql.toString();
}
public String updateByPrimaryKeySelective(BsDiscountUserGiveRecord record) {
SQL sql = new SQL();
sql.UPDATE("bs_discount_user_give_record");
if (record.getDiscountUserId() != null) {
sql.SET("discount_user_id = #{discountUserId,jdbcType=BIGINT}");
}
if (record.getDiscountStockCode() != null) {
sql.SET("discount_stock_code = #{discountStockCode,jdbcType=BIGINT}");
}
if (record.getSendUserId() != null) {
sql.SET("send_user_id = #{sendUserId,jdbcType=BIGINT}");
}
if (record.getSendUserPhone() != null) {
sql.SET("send_user_phone = #{sendUserPhone,jdbcType=VARCHAR}");
}
if (record.getReceiveUserId() != null) {
sql.SET("receive_user_id = #{receiveUserId,jdbcType=BIGINT}");
}
if (record.getReceiveUserPhone() != null) {
sql.SET("receive_user_phone = #{receiveUserPhone,jdbcType=VARCHAR}");
}
if (record.getCreateTime() != null) {
sql.SET("create_time = #{createTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.SET("ext_1 = #{ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.SET("ext_2 = #{ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.SET("ext_3 = #{ext3,jdbcType=VARCHAR}");
}
sql.WHERE("id = #{id,jdbcType=BIGINT}");
return sql.toString();
}
protected void applyWhere(SQL sql, BsDiscountUserGiveRecordExample example, boolean includeExamplePhrase) {
if (example == null) {
return;
}
String parmPhrase1;
String parmPhrase1_th;
String parmPhrase2;
String parmPhrase2_th;
String parmPhrase3;
String parmPhrase3_th;
if (includeExamplePhrase) {
parmPhrase1 = "%s #{example.oredCriteria[%d].allCriteria[%d].value}";
parmPhrase1_th = "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}";
parmPhrase2 = "%s #{example.oredCriteria[%d].allCriteria[%d].value} and #{example.oredCriteria[%d].criteria[%d].secondValue}";
parmPhrase2_th = "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{example.oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}";
parmPhrase3 = "#{example.oredCriteria[%d].allCriteria[%d].value[%d]}";
parmPhrase3_th = "#{example.oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}";
} else {
parmPhrase1 = "%s #{oredCriteria[%d].allCriteria[%d].value}";
parmPhrase1_th = "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}";
parmPhrase2 = "%s #{oredCriteria[%d].allCriteria[%d].value} and #{oredCriteria[%d].criteria[%d].secondValue}";
parmPhrase2_th = "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}";
parmPhrase3 = "#{oredCriteria[%d].allCriteria[%d].value[%d]}";
parmPhrase3_th = "#{oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}";
}
StringBuilder sb = new StringBuilder();
List<Criteria> oredCriteria = example.getOredCriteria();
boolean firstCriteria = true;
for (int i = 0; i < oredCriteria.size(); i++) {
Criteria criteria = oredCriteria.get(i);
if (criteria.isValid()) {
if (firstCriteria) {
firstCriteria = false;
} else {
sb.append(" or ");
}
sb.append('(');
List<Criterion> criterions = criteria.getAllCriteria();
boolean firstCriterion = true;
for (int j = 0; j < criterions.size(); j++) {
Criterion criterion = criterions.get(j);
if (firstCriterion) {
firstCriterion = false;
} else {
sb.append(" and ");
}
if (criterion.isNoValue()) {
sb.append(criterion.getCondition());
} else if (criterion.isSingleValue()) {
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase1, criterion.getCondition(), i, j));
} else {
sb.append(String.format(parmPhrase1_th, criterion.getCondition(), i, j,criterion.getTypeHandler()));
}
} else if (criterion.isBetweenValue()) {
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase2, criterion.getCondition(), i, j, i, j));
} else {
sb.append(String.format(parmPhrase2_th, criterion.getCondition(), i, j, criterion.getTypeHandler(), i, j, criterion.getTypeHandler()));
}
} else if (criterion.isListValue()) {
sb.append(criterion.getCondition());
sb.append(" (");
List<?> listItems = (List<?>) criterion.getValue();
boolean comma = false;
for (int k = 0; k < listItems.size(); k++) {
if (comma) {
sb.append(", ");
} else {
comma = true;
}
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase3, i, j, k));
} else {
sb.append(String.format(parmPhrase3_th, i, j, k, criterion.getTypeHandler()));
}
}
sb.append(')');
}
}
sb.append(')');
}
}
if (sb.length() > 0) {
sql.WHERE(sb.toString());
}
}
}

@ -0,0 +1,216 @@
package com.hfkj.entity;
import java.io.Serializable;
import java.util.Date;
/**
* bs_discount_user_give_record
* @author
*/
/**
*
* 代码由工具生成
*
**/
public class BsDiscountUserGiveRecord implements Serializable {
/**
* 主键
*/
private Long id;
/**
* 用户优惠券id
*/
private Long discountUserId;
/**
* 优惠券库存code
*/
private Long discountStockCode;
/**
* 发送用户id
*/
private Long sendUserId;
/**
* 发送用户电话
*/
private String sendUserPhone;
/**
* 接收用户id
*/
private Long receiveUserId;
/**
* 接收用户电话
*/
private String receiveUserPhone;
/**
* 创建时间
*/
private Date createTime;
private String ext1;
private String ext2;
private String ext3;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getDiscountUserId() {
return discountUserId;
}
public void setDiscountUserId(Long discountUserId) {
this.discountUserId = discountUserId;
}
public Long getDiscountStockCode() {
return discountStockCode;
}
public void setDiscountStockCode(Long discountStockCode) {
this.discountStockCode = discountStockCode;
}
public Long getSendUserId() {
return sendUserId;
}
public void setSendUserId(Long sendUserId) {
this.sendUserId = sendUserId;
}
public String getSendUserPhone() {
return sendUserPhone;
}
public void setSendUserPhone(String sendUserPhone) {
this.sendUserPhone = sendUserPhone;
}
public Long getReceiveUserId() {
return receiveUserId;
}
public void setReceiveUserId(Long receiveUserId) {
this.receiveUserId = receiveUserId;
}
public String getReceiveUserPhone() {
return receiveUserPhone;
}
public void setReceiveUserPhone(String receiveUserPhone) {
this.receiveUserPhone = receiveUserPhone;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getExt1() {
return ext1;
}
public void setExt1(String ext1) {
this.ext1 = ext1;
}
public String getExt2() {
return ext2;
}
public void setExt2(String ext2) {
this.ext2 = ext2;
}
public String getExt3() {
return ext3;
}
public void setExt3(String ext3) {
this.ext3 = ext3;
}
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
BsDiscountUserGiveRecord other = (BsDiscountUserGiveRecord) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getDiscountUserId() == null ? other.getDiscountUserId() == null : this.getDiscountUserId().equals(other.getDiscountUserId()))
&& (this.getDiscountStockCode() == null ? other.getDiscountStockCode() == null : this.getDiscountStockCode().equals(other.getDiscountStockCode()))
&& (this.getSendUserId() == null ? other.getSendUserId() == null : this.getSendUserId().equals(other.getSendUserId()))
&& (this.getSendUserPhone() == null ? other.getSendUserPhone() == null : this.getSendUserPhone().equals(other.getSendUserPhone()))
&& (this.getReceiveUserId() == null ? other.getReceiveUserId() == null : this.getReceiveUserId().equals(other.getReceiveUserId()))
&& (this.getReceiveUserPhone() == null ? other.getReceiveUserPhone() == null : this.getReceiveUserPhone().equals(other.getReceiveUserPhone()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getExt1() == null ? other.getExt1() == null : this.getExt1().equals(other.getExt1()))
&& (this.getExt2() == null ? other.getExt2() == null : this.getExt2().equals(other.getExt2()))
&& (this.getExt3() == null ? other.getExt3() == null : this.getExt3().equals(other.getExt3()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getDiscountUserId() == null) ? 0 : getDiscountUserId().hashCode());
result = prime * result + ((getDiscountStockCode() == null) ? 0 : getDiscountStockCode().hashCode());
result = prime * result + ((getSendUserId() == null) ? 0 : getSendUserId().hashCode());
result = prime * result + ((getSendUserPhone() == null) ? 0 : getSendUserPhone().hashCode());
result = prime * result + ((getReceiveUserId() == null) ? 0 : getReceiveUserId().hashCode());
result = prime * result + ((getReceiveUserPhone() == null) ? 0 : getReceiveUserPhone().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getExt1() == null) ? 0 : getExt1().hashCode());
result = prime * result + ((getExt2() == null) ? 0 : getExt2().hashCode());
result = prime * result + ((getExt3() == null) ? 0 : getExt3().hashCode());
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", discountUserId=").append(discountUserId);
sb.append(", discountStockCode=").append(discountStockCode);
sb.append(", sendUserId=").append(sendUserId);
sb.append(", sendUserPhone=").append(sendUserPhone);
sb.append(", receiveUserId=").append(receiveUserId);
sb.append(", receiveUserPhone=").append(receiveUserPhone);
sb.append(", createTime=").append(createTime);
sb.append(", ext1=").append(ext1);
sb.append(", ext2=").append(ext2);
sb.append(", ext3=").append(ext3);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,933 @@
package com.hfkj.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class BsDiscountUserGiveRecordExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
private Integer limit;
private Long offset;
public BsDiscountUserGiveRecordExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
public void setLimit(Integer limit) {
this.limit = limit;
}
public Integer getLimit() {
return limit;
}
public void setOffset(Long offset) {
this.offset = offset;
}
public Long getOffset() {
return offset;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andDiscountUserIdIsNull() {
addCriterion("discount_user_id is null");
return (Criteria) this;
}
public Criteria andDiscountUserIdIsNotNull() {
addCriterion("discount_user_id is not null");
return (Criteria) this;
}
public Criteria andDiscountUserIdEqualTo(Long value) {
addCriterion("discount_user_id =", value, "discountUserId");
return (Criteria) this;
}
public Criteria andDiscountUserIdNotEqualTo(Long value) {
addCriterion("discount_user_id <>", value, "discountUserId");
return (Criteria) this;
}
public Criteria andDiscountUserIdGreaterThan(Long value) {
addCriterion("discount_user_id >", value, "discountUserId");
return (Criteria) this;
}
public Criteria andDiscountUserIdGreaterThanOrEqualTo(Long value) {
addCriterion("discount_user_id >=", value, "discountUserId");
return (Criteria) this;
}
public Criteria andDiscountUserIdLessThan(Long value) {
addCriterion("discount_user_id <", value, "discountUserId");
return (Criteria) this;
}
public Criteria andDiscountUserIdLessThanOrEqualTo(Long value) {
addCriterion("discount_user_id <=", value, "discountUserId");
return (Criteria) this;
}
public Criteria andDiscountUserIdIn(List<Long> values) {
addCriterion("discount_user_id in", values, "discountUserId");
return (Criteria) this;
}
public Criteria andDiscountUserIdNotIn(List<Long> values) {
addCriterion("discount_user_id not in", values, "discountUserId");
return (Criteria) this;
}
public Criteria andDiscountUserIdBetween(Long value1, Long value2) {
addCriterion("discount_user_id between", value1, value2, "discountUserId");
return (Criteria) this;
}
public Criteria andDiscountUserIdNotBetween(Long value1, Long value2) {
addCriterion("discount_user_id not between", value1, value2, "discountUserId");
return (Criteria) this;
}
public Criteria andDiscountStockCodeIsNull() {
addCriterion("discount_stock_code is null");
return (Criteria) this;
}
public Criteria andDiscountStockCodeIsNotNull() {
addCriterion("discount_stock_code is not null");
return (Criteria) this;
}
public Criteria andDiscountStockCodeEqualTo(Long value) {
addCriterion("discount_stock_code =", value, "discountStockCode");
return (Criteria) this;
}
public Criteria andDiscountStockCodeNotEqualTo(Long value) {
addCriterion("discount_stock_code <>", value, "discountStockCode");
return (Criteria) this;
}
public Criteria andDiscountStockCodeGreaterThan(Long value) {
addCriterion("discount_stock_code >", value, "discountStockCode");
return (Criteria) this;
}
public Criteria andDiscountStockCodeGreaterThanOrEqualTo(Long value) {
addCriterion("discount_stock_code >=", value, "discountStockCode");
return (Criteria) this;
}
public Criteria andDiscountStockCodeLessThan(Long value) {
addCriterion("discount_stock_code <", value, "discountStockCode");
return (Criteria) this;
}
public Criteria andDiscountStockCodeLessThanOrEqualTo(Long value) {
addCriterion("discount_stock_code <=", value, "discountStockCode");
return (Criteria) this;
}
public Criteria andDiscountStockCodeIn(List<Long> values) {
addCriterion("discount_stock_code in", values, "discountStockCode");
return (Criteria) this;
}
public Criteria andDiscountStockCodeNotIn(List<Long> values) {
addCriterion("discount_stock_code not in", values, "discountStockCode");
return (Criteria) this;
}
public Criteria andDiscountStockCodeBetween(Long value1, Long value2) {
addCriterion("discount_stock_code between", value1, value2, "discountStockCode");
return (Criteria) this;
}
public Criteria andDiscountStockCodeNotBetween(Long value1, Long value2) {
addCriterion("discount_stock_code not between", value1, value2, "discountStockCode");
return (Criteria) this;
}
public Criteria andSendUserIdIsNull() {
addCriterion("send_user_id is null");
return (Criteria) this;
}
public Criteria andSendUserIdIsNotNull() {
addCriterion("send_user_id is not null");
return (Criteria) this;
}
public Criteria andSendUserIdEqualTo(Long value) {
addCriterion("send_user_id =", value, "sendUserId");
return (Criteria) this;
}
public Criteria andSendUserIdNotEqualTo(Long value) {
addCriterion("send_user_id <>", value, "sendUserId");
return (Criteria) this;
}
public Criteria andSendUserIdGreaterThan(Long value) {
addCriterion("send_user_id >", value, "sendUserId");
return (Criteria) this;
}
public Criteria andSendUserIdGreaterThanOrEqualTo(Long value) {
addCriterion("send_user_id >=", value, "sendUserId");
return (Criteria) this;
}
public Criteria andSendUserIdLessThan(Long value) {
addCriterion("send_user_id <", value, "sendUserId");
return (Criteria) this;
}
public Criteria andSendUserIdLessThanOrEqualTo(Long value) {
addCriterion("send_user_id <=", value, "sendUserId");
return (Criteria) this;
}
public Criteria andSendUserIdIn(List<Long> values) {
addCriterion("send_user_id in", values, "sendUserId");
return (Criteria) this;
}
public Criteria andSendUserIdNotIn(List<Long> values) {
addCriterion("send_user_id not in", values, "sendUserId");
return (Criteria) this;
}
public Criteria andSendUserIdBetween(Long value1, Long value2) {
addCriterion("send_user_id between", value1, value2, "sendUserId");
return (Criteria) this;
}
public Criteria andSendUserIdNotBetween(Long value1, Long value2) {
addCriterion("send_user_id not between", value1, value2, "sendUserId");
return (Criteria) this;
}
public Criteria andSendUserPhoneIsNull() {
addCriterion("send_user_phone is null");
return (Criteria) this;
}
public Criteria andSendUserPhoneIsNotNull() {
addCriterion("send_user_phone is not null");
return (Criteria) this;
}
public Criteria andSendUserPhoneEqualTo(String value) {
addCriterion("send_user_phone =", value, "sendUserPhone");
return (Criteria) this;
}
public Criteria andSendUserPhoneNotEqualTo(String value) {
addCriterion("send_user_phone <>", value, "sendUserPhone");
return (Criteria) this;
}
public Criteria andSendUserPhoneGreaterThan(String value) {
addCriterion("send_user_phone >", value, "sendUserPhone");
return (Criteria) this;
}
public Criteria andSendUserPhoneGreaterThanOrEqualTo(String value) {
addCriterion("send_user_phone >=", value, "sendUserPhone");
return (Criteria) this;
}
public Criteria andSendUserPhoneLessThan(String value) {
addCriterion("send_user_phone <", value, "sendUserPhone");
return (Criteria) this;
}
public Criteria andSendUserPhoneLessThanOrEqualTo(String value) {
addCriterion("send_user_phone <=", value, "sendUserPhone");
return (Criteria) this;
}
public Criteria andSendUserPhoneLike(String value) {
addCriterion("send_user_phone like", value, "sendUserPhone");
return (Criteria) this;
}
public Criteria andSendUserPhoneNotLike(String value) {
addCriterion("send_user_phone not like", value, "sendUserPhone");
return (Criteria) this;
}
public Criteria andSendUserPhoneIn(List<String> values) {
addCriterion("send_user_phone in", values, "sendUserPhone");
return (Criteria) this;
}
public Criteria andSendUserPhoneNotIn(List<String> values) {
addCriterion("send_user_phone not in", values, "sendUserPhone");
return (Criteria) this;
}
public Criteria andSendUserPhoneBetween(String value1, String value2) {
addCriterion("send_user_phone between", value1, value2, "sendUserPhone");
return (Criteria) this;
}
public Criteria andSendUserPhoneNotBetween(String value1, String value2) {
addCriterion("send_user_phone not between", value1, value2, "sendUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserIdIsNull() {
addCriterion("receive_user_id is null");
return (Criteria) this;
}
public Criteria andReceiveUserIdIsNotNull() {
addCriterion("receive_user_id is not null");
return (Criteria) this;
}
public Criteria andReceiveUserIdEqualTo(Long value) {
addCriterion("receive_user_id =", value, "receiveUserId");
return (Criteria) this;
}
public Criteria andReceiveUserIdNotEqualTo(Long value) {
addCriterion("receive_user_id <>", value, "receiveUserId");
return (Criteria) this;
}
public Criteria andReceiveUserIdGreaterThan(Long value) {
addCriterion("receive_user_id >", value, "receiveUserId");
return (Criteria) this;
}
public Criteria andReceiveUserIdGreaterThanOrEqualTo(Long value) {
addCriterion("receive_user_id >=", value, "receiveUserId");
return (Criteria) this;
}
public Criteria andReceiveUserIdLessThan(Long value) {
addCriterion("receive_user_id <", value, "receiveUserId");
return (Criteria) this;
}
public Criteria andReceiveUserIdLessThanOrEqualTo(Long value) {
addCriterion("receive_user_id <=", value, "receiveUserId");
return (Criteria) this;
}
public Criteria andReceiveUserIdIn(List<Long> values) {
addCriterion("receive_user_id in", values, "receiveUserId");
return (Criteria) this;
}
public Criteria andReceiveUserIdNotIn(List<Long> values) {
addCriterion("receive_user_id not in", values, "receiveUserId");
return (Criteria) this;
}
public Criteria andReceiveUserIdBetween(Long value1, Long value2) {
addCriterion("receive_user_id between", value1, value2, "receiveUserId");
return (Criteria) this;
}
public Criteria andReceiveUserIdNotBetween(Long value1, Long value2) {
addCriterion("receive_user_id not between", value1, value2, "receiveUserId");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneIsNull() {
addCriterion("receive_user_phone is null");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneIsNotNull() {
addCriterion("receive_user_phone is not null");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneEqualTo(String value) {
addCriterion("receive_user_phone =", value, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneNotEqualTo(String value) {
addCriterion("receive_user_phone <>", value, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneGreaterThan(String value) {
addCriterion("receive_user_phone >", value, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneGreaterThanOrEqualTo(String value) {
addCriterion("receive_user_phone >=", value, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneLessThan(String value) {
addCriterion("receive_user_phone <", value, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneLessThanOrEqualTo(String value) {
addCriterion("receive_user_phone <=", value, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneLike(String value) {
addCriterion("receive_user_phone like", value, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneNotLike(String value) {
addCriterion("receive_user_phone not like", value, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneIn(List<String> values) {
addCriterion("receive_user_phone in", values, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneNotIn(List<String> values) {
addCriterion("receive_user_phone not in", values, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneBetween(String value1, String value2) {
addCriterion("receive_user_phone between", value1, value2, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andReceiveUserPhoneNotBetween(String value1, String value2) {
addCriterion("receive_user_phone not between", value1, value2, "receiveUserPhone");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andExt1IsNull() {
addCriterion("ext_1 is null");
return (Criteria) this;
}
public Criteria andExt1IsNotNull() {
addCriterion("ext_1 is not null");
return (Criteria) this;
}
public Criteria andExt1EqualTo(String value) {
addCriterion("ext_1 =", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotEqualTo(String value) {
addCriterion("ext_1 <>", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1GreaterThan(String value) {
addCriterion("ext_1 >", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1GreaterThanOrEqualTo(String value) {
addCriterion("ext_1 >=", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1LessThan(String value) {
addCriterion("ext_1 <", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1LessThanOrEqualTo(String value) {
addCriterion("ext_1 <=", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1Like(String value) {
addCriterion("ext_1 like", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotLike(String value) {
addCriterion("ext_1 not like", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1In(List<String> values) {
addCriterion("ext_1 in", values, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotIn(List<String> values) {
addCriterion("ext_1 not in", values, "ext1");
return (Criteria) this;
}
public Criteria andExt1Between(String value1, String value2) {
addCriterion("ext_1 between", value1, value2, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotBetween(String value1, String value2) {
addCriterion("ext_1 not between", value1, value2, "ext1");
return (Criteria) this;
}
public Criteria andExt2IsNull() {
addCriterion("ext_2 is null");
return (Criteria) this;
}
public Criteria andExt2IsNotNull() {
addCriterion("ext_2 is not null");
return (Criteria) this;
}
public Criteria andExt2EqualTo(String value) {
addCriterion("ext_2 =", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotEqualTo(String value) {
addCriterion("ext_2 <>", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2GreaterThan(String value) {
addCriterion("ext_2 >", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2GreaterThanOrEqualTo(String value) {
addCriterion("ext_2 >=", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2LessThan(String value) {
addCriterion("ext_2 <", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2LessThanOrEqualTo(String value) {
addCriterion("ext_2 <=", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2Like(String value) {
addCriterion("ext_2 like", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotLike(String value) {
addCriterion("ext_2 not like", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2In(List<String> values) {
addCriterion("ext_2 in", values, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotIn(List<String> values) {
addCriterion("ext_2 not in", values, "ext2");
return (Criteria) this;
}
public Criteria andExt2Between(String value1, String value2) {
addCriterion("ext_2 between", value1, value2, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotBetween(String value1, String value2) {
addCriterion("ext_2 not between", value1, value2, "ext2");
return (Criteria) this;
}
public Criteria andExt3IsNull() {
addCriterion("ext_3 is null");
return (Criteria) this;
}
public Criteria andExt3IsNotNull() {
addCriterion("ext_3 is not null");
return (Criteria) this;
}
public Criteria andExt3EqualTo(String value) {
addCriterion("ext_3 =", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotEqualTo(String value) {
addCriterion("ext_3 <>", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3GreaterThan(String value) {
addCriterion("ext_3 >", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3GreaterThanOrEqualTo(String value) {
addCriterion("ext_3 >=", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3LessThan(String value) {
addCriterion("ext_3 <", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3LessThanOrEqualTo(String value) {
addCriterion("ext_3 <=", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3Like(String value) {
addCriterion("ext_3 like", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotLike(String value) {
addCriterion("ext_3 not like", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3In(List<String> values) {
addCriterion("ext_3 in", values, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotIn(List<String> values) {
addCriterion("ext_3 not in", values, "ext3");
return (Criteria) this;
}
public Criteria andExt3Between(String value1, String value2) {
addCriterion("ext_3 between", value1, value2, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotBetween(String value1, String value2) {
addCriterion("ext_3 not between", value1, value2, "ext3");
return (Criteria) this;
}
}
/**
*/
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

@ -34,10 +34,9 @@ public interface BsAgentDiscountService {
/**
* 查询列表
* @param agentId
* @param type
* @return
*/
List<BsAgentDiscount> getList(Long agentId,Integer type, String objectNo);
List<BsAgentDiscount> getList(Long agentId);

@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @className: BsAgentDiscountServiceImpl
@ -36,7 +37,7 @@ public class BsAgentDiscountServiceImpl implements BsAgentDiscountService {
data.setStatus(1);
agentDiscountMapper.insert(data);
List<BsAgentDiscount> list = getList(data.getAgentId(), null,null);
List<BsAgentDiscount> list = getList(data.getAgentId());
list.add(data);
// 加入缓存
redisUtil.hset(CACHE_KEY,""+data.getAgentId(), list);
@ -59,7 +60,11 @@ public class BsAgentDiscountServiceImpl implements BsAgentDiscountService {
@Override
public BsAgentDiscount getDetail(Long agentId, Integer type, String objectNo) {
List<BsAgentDiscount> list = getList(agentId, type, objectNo);
List<BsAgentDiscount> list = getList(agentId)
.stream()
.filter(o -> o.getType().equals(type))
.filter(o -> o.getObjectNo().equals(objectNo))
.collect(Collectors.toList());
if (!list.isEmpty()) {
return list.get(0);
}
@ -67,21 +72,13 @@ public class BsAgentDiscountServiceImpl implements BsAgentDiscountService {
}
@Override
public List<BsAgentDiscount> getList(Long agentId, Integer type, String objectNo) {
public List<BsAgentDiscount> getList(Long agentId) {
Object cacheObj = redisUtil.hget(CACHE_KEY, "" + agentId);
if (cacheObj != null) {
return (List<BsAgentDiscount>) cacheObj;
}
BsAgentDiscountExample example = new BsAgentDiscountExample();
BsAgentDiscountExample.Criteria criteria = example.createCriteria()
.andStatusNotEqualTo(0)
.andAgentIdEqualTo(agentId);
if (type != null) {
criteria.andTypeEqualTo(type);
}
if (StringUtils.isNotBlank(objectNo)) {
criteria.andObjectNoEqualTo(objectNo);
}
example.createCriteria().andStatusNotEqualTo(0).andAgentIdEqualTo(agentId);
example.setOrderByClause("create_time desc");
List<BsAgentDiscount> list = agentDiscountMapper.selectByExample(example);
// 加入缓存

@ -0,0 +1,17 @@
package com.hfkj.service.discount;
import com.hfkj.entity.BsDiscountUserGiveRecord;
/**
* @className: BsDiscountUserGiveRecordService
* @author: HuRui
* @date: 2024/9/6
**/
public interface BsDiscountUserGiveRecordService {
/**
* 创建
* @param data
*/
void create(BsDiscountUserGiveRecord data);
}

@ -61,6 +61,14 @@ public interface BsDiscountUserService {
*/
BsDiscountUser getDetail(Long id);
/**
* 转增他人
* @param codeId 用户优惠券codeId
* @param giveUserId 转增用户id
* @param phone 接收用户手机号
*/
void give(Long codeId,Long giveUserId,String phone);
/**
* 查询详情
* @param stockCodeId

@ -6,6 +6,7 @@ import com.hfkj.common.exception.SysCode;
import com.hfkj.dao.BsDiscountPkStockBatchMapper;
import com.hfkj.entity.*;
import com.hfkj.service.discount.*;
import com.hfkj.sysenum.discount.DiscountPkStockCodeStatusEnum;
import com.hfkj.sysenum.discount.DiscountStockCodeStatusEnum;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
@ -70,7 +71,7 @@ public class BsDiscountPkStockBatchServiceImpl implements BsDiscountPkStockBatch
discountPkCode.setDiscountPkId(discountPk.getId());
discountPkCode.setDiscountPkNo(discountPk.getDiscountPkNo());
discountPkCode.setDiscountPkName(discountPk.getDiscountPkName());
discountPkCode.setStatus(DiscountStockCodeStatusEnum.status1.getCode());
discountPkCode.setStatus(DiscountPkStockCodeStatusEnum.status1.getCode());
discountPkCode.setCreateTime(new Date());
discountPkCode.setUpdateTime(new Date());
stockCodeList.add(discountPkCode);
@ -100,11 +101,11 @@ public class BsDiscountPkStockBatchServiceImpl implements BsDiscountPkStockBatch
BsDiscountPkStockBatchExample.Criteria criteria = example.createCriteria().andStatusNotEqualTo(0);
if (StringUtils.isNotBlank(MapUtils.getString(param, "discountPkNo"))) {
criteria.andDiscountPkNoEqualTo("%"+MapUtils.getString(param, "discountNo")+"%");
criteria.andDiscountPkNoLike("%"+MapUtils.getString(param, "discountPkNo")+"%");
}
if (StringUtils.isNotBlank(MapUtils.getString(param, "discountPkName"))) {
criteria.andDiscountPkNameEqualTo("%"+MapUtils.getString(param, "discountPkName")+"%");
criteria.andDiscountPkNameLike("%"+MapUtils.getString(param, "discountPkName")+"%");
}
if (StringUtils.isNotBlank(MapUtils.getString(param, "batchNo"))) {

@ -76,6 +76,10 @@ public class BsDiscountPkStockCodeServiceImpl implements BsDiscountPkStockCodeSe
criteria.andDiscountPkStockBatchNoLike("%"+MapUtils.getString(param, "batchNo")+"%");
}
if (StringUtils.isNotBlank(MapUtils.getString(param, "userPhone"))) {
criteria.andReceiveMerUserPhoneLike("%"+MapUtils.getString(param, "userPhone")+"%");
}
if (MapUtils.getInteger(param, "status") != null) {
criteria.andStatusEqualTo(MapUtils.getInteger(param, "status"));
}

@ -80,6 +80,10 @@ public class BsDiscountStockCodeServiceImpl implements BsDiscountStockCodeServic
criteria.andDiscountStockBatchNoLike("%"+MapUtils.getString(param, "batchNo")+"%");
}
if (StringUtils.isNotBlank(MapUtils.getString(param, "userPhone"))) {
criteria.andReceiveMerUserPhoneLike("%"+MapUtils.getString(param, "userPhone")+"%");
}
if (MapUtils.getInteger(param, "status") != null) {
criteria.andStatusEqualTo(MapUtils.getInteger(param, "status"));
}

@ -0,0 +1,26 @@
package com.hfkj.service.discount.impl;
import com.hfkj.dao.BsDiscountUserGiveRecordMapper;
import com.hfkj.entity.BsDiscountUserGiveRecord;
import com.hfkj.service.discount.BsDiscountUserGiveRecordService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
/**
* @className: BsDiscountUserGiveRecordServiceImpl
* @author: HuRui
* @date: 2024/9/6
**/
@Service("discountUserGiveRecordService")
public class BsDiscountUserGiveRecordServiceImpl implements BsDiscountUserGiveRecordService {
@Resource
private BsDiscountUserGiveRecordMapper discountUserGiveRecordMapper;
@Override
public void create(BsDiscountUserGiveRecord data) {
data.setCreateTime(new Date());
discountUserGiveRecordMapper.insert(data);
}
}

@ -19,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.TimeUnit;
/**
* @className: BsDiscountUserServiceImpl
@ -42,6 +43,8 @@ public class BsDiscountUserServiceImpl implements BsDiscountUserService {
@Resource
private BsDiscountPkStockCodeService discountPkStockCodeService;
@Resource
private BsDiscountUserGiveRecordService discountUserGiveRecordService;
@Resource
private BsUserService userService;
private static final String RECEIVE_DISCOUNT_LOCK_KEY = "RECEIVE_DISCOUNT";
@ -68,6 +71,8 @@ public class BsDiscountUserServiceImpl implements BsDiscountUserService {
Boolean lock = redisTemplate.opsForValue().setIfAbsent(lockKey, "");
if (Boolean.TRUE.equals(lock)) {
try {
// 锁超时时间 10秒
redisTemplate.expire(lockKey, 10, TimeUnit.SECONDS);
// 查询优惠券
BsDiscount discount = discountService.getDetail(discountNo);
if (discount == null) {
@ -96,7 +101,7 @@ public class BsDiscountUserServiceImpl implements BsDiscountUserService {
discountStockCode.setObtainTime(new Date());
discountStockCode.setReceiveMerUserId(user.getId());
discountStockCode.setReceiveMerUserPhone(user.getPhone());
discountStockCode.setStatus(DiscountStockCodeStatusEnum.status3.getCode());
discountStockCode.setStatus(DiscountStockCodeStatusEnum.status2.getCode());
discountStockCode.setAgentAppid(agentAppid);
discountStockCodeService.update(discountStockCode);
@ -161,6 +166,8 @@ public class BsDiscountUserServiceImpl implements BsDiscountUserService {
Boolean lock = redisTemplate.opsForValue().setIfAbsent(lockKey, "");
if (Boolean.TRUE.equals(lock)) {
try {
// 锁超时时间 10秒
redisTemplate.expire(lockKey, 10, TimeUnit.SECONDS);
// 查询优惠券包
BsDiscountPk discountPk = discountPkService.getDetail(discountPkNo);
if (discountPk == null) {
@ -187,7 +194,7 @@ public class BsDiscountUserServiceImpl implements BsDiscountUserService {
code.setObtainTime(new Date());
code.setReceiveMerUserId(user.getId());
code.setReceiveMerUserPhone(user.getPhone());
code.setStatus(DiscountStockCodeStatusEnum.status3.getCode());
code.setStatus(DiscountPkStockCodeStatusEnum.status2.getCode());
code.setAgentAppid(agentAppid);
discountPkStockCodeService.update(code);
@ -305,6 +312,44 @@ public class BsDiscountUserServiceImpl implements BsDiscountUserService {
return discountUserMapper.selectByPrimaryKey(id);
}
@Override
@Transactional(propagation= Propagation.REQUIRED, rollbackFor= {RuntimeException.class})
public void give(Long codeId,Long giveUserId, String phone) {
// 查询用户优惠券
BsDiscountUser discountUser = getDetailByCodeId(codeId);
if (discountUser == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的优惠券");
}
if (!discountUser.getStatus().equals(DiscountUserStatusEnum.type1.getCode())) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "优惠券无法赠送");
}
// 转赠人
BsUser giveUser = userService.getUser(giveUserId);
if (giveUser == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到转赠人信息");
}
if (!giveUser.getId().equals(discountUser.getUserId())) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "优惠券无法赠送");
}
// 查询接收人
BsUser user = userService.getUser(phone);
if (user == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "手机号未在系统中注册,无法赠送!");
}
discountUser.setUserId(user.getId());
discountUser.setUserPhone(user.getPhone());
editData(discountUser);
// 记录
BsDiscountUserGiveRecord giveRecord = new BsDiscountUserGiveRecord();
giveRecord.setDiscountUserId(discountUser.getId());
giveRecord.setDiscountStockCode(discountUser.getDiscountStockCode());
giveRecord.setSendUserId(giveUser.getId());
giveRecord.setSendUserPhone(giveUser.getPhone());
giveRecord.setReceiveUserId(user.getId());
giveRecord.setReceiveUserPhone(user.getPhone());
discountUserGiveRecordService.create(giveRecord);
}
@Override
public BsDiscountUser getDetailByCodeId(Long stockCodeId) {
BsDiscountUserExample example = new BsDiscountUserExample();

@ -12,6 +12,7 @@ import com.hfkj.entity.*;
import com.hfkj.model.order.OrderChildModel;
import com.hfkj.model.order.OrderModel;
import com.hfkj.pay.HuiPayService;
import com.hfkj.service.discount.BsDiscountUserService;
import com.hfkj.service.merchant.BsMerchantService;
import com.hfkj.service.order.*;
import com.hfkj.sysenum.order.*;
@ -49,7 +50,8 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService {
private BsOrderSettleService orderSettleService;
@Resource
private OrderRefundBusiness orderRefundBusiness;
@Resource
private BsDiscountUserService discountUserService;
@Override
public void editData(BsOrderRefund data) {
data.setUpdateTime(new Date());
@ -143,7 +145,7 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "退款失败!退货数量超过子订单可退数量");
}
// 查询交易订单
BsOrder order = orderService.getOrder(orderChild.getOrderNo());
OrderModel order = orderService.getDetail(orderChild.getOrderNo());
if (order == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的交易订单");
}
@ -236,13 +238,17 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService {
order.setOrderStatus(OrderStatusEnum.status4.getCode());
order.setRefundTime(new Date());
orderService.editData(order);
if (order.getDeduction().getUserCouponDiscountId() != null) {
// 退回优惠券
discountUserService.revokeUserDiscount(order.getDeduction().getUserCouponDiscountId());
}
}
}
// 删除缓存
orderService.cacheDelete(order.getOrderNo());
return orderRefund;
}
@Override

Loading…
Cancel
Save