From 2203fe2287fc8e0e34701480b4b40457eed3727f Mon Sep 17 00:00:00 2001 From: hurui <177768073@qq.com> Date: Mon, 20 Jun 2022 15:46:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bweb/controller/HighAgentController.java | 108 +++++++++- .../controller/HighCouponAgentController.java | 85 +++++++- .../com/bweb/controller/LoginController.java | 5 +- .../java/com/hai/dao/HighAgentMapper.java | 17 +- .../com/hai/dao/HighAgentSqlProvider.java | 28 +++ .../hai/dao/HighCouponAgentCodeMapper.java | 34 +++- .../dao/HighCouponAgentCodeSqlProvider.java | 42 ++++ .../com/hai/dao/HighCouponAgentRelMapper.java | 38 ++-- .../dao/HighCouponAgentRelSqlProvider.java | 14 ++ .../main/java/com/hai/entity/HighAgent.java | 35 ++++ .../java/com/hai/entity/HighAgentExample.java | 130 ++++++++++++ .../com/hai/entity/HighCouponAgentCode.java | 50 ++++- .../entity/HighCouponAgentCodeExample.java | 190 ++++++++++++++++++ .../com/hai/entity/HighCouponAgentRel.java | 16 ++ .../hai/entity/HighCouponAgentRelExample.java | 60 ++++++ .../com/hai/service/HighAgentService.java | 13 +- .../hai/service/HighCouponAgentService.java | 14 ++ .../service/impl/HighAgentServiceImpl.java | 51 ++++- .../impl/HighCouponAgentServiceImpl.java | 136 +++++++++---- 19 files changed, 976 insertions(+), 90 deletions(-) diff --git a/hai-bweb/src/main/java/com/bweb/controller/HighAgentController.java b/hai-bweb/src/main/java/com/bweb/controller/HighAgentController.java index 1d6d1747..6c77153c 100644 --- a/hai-bweb/src/main/java/com/bweb/controller/HighAgentController.java +++ b/hai-bweb/src/main/java/com/bweb/controller/HighAgentController.java @@ -1,5 +1,6 @@ package com.bweb.controller; +import com.alibaba.fastjson.JSONObject; import com.bweb.config.SysConst; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -9,6 +10,7 @@ import com.hai.common.exception.ErrorHelp; import com.hai.common.exception.SysCode; import com.hai.common.security.SessionObject; import com.hai.common.security.UserCenter; +import com.hai.common.utils.MemberValidateUtil; import com.hai.common.utils.ResponseMsgUtil; import com.hai.entity.HighAgent; import com.hai.entity.SecUser; @@ -55,6 +57,109 @@ public class HighAgentController { @Resource private SecUserService secUserService; + @RequestMapping(value = "/insertChildAgent", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "新增子级代理商") + public ResponseData insertChildAgent(@RequestBody JSONObject body) { + try { + //发布人员 + UserInfoModel userInfoModel = userCenter.getSessionModel(UserInfoModel.class); + if (userInfoModel == null) { + log.error("HighAgentController -> insertAgent() error!",""); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMPETENCE_INSUFFICIENT, ""); + } + + if (body == null || + StringUtils.isBlank(body.getString("agentName")) || + StringUtils.isBlank(body.getString("agentPhone")) || + StringUtils.isBlank(body.getString("agentAddress")) + ) { + log.error("HighAgentController -> insertAgent() error!",""); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + + // 校验账户手机号 + if (!MemberValidateUtil.validatePhone(body.getString("agentPhone"))) { + log.error("BsStudentController --> updateMerchant() error!", "请输入正确的手机号"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.PHONE_NUM_IS_ERROR, ""); + } + + // 校验账号用户名是否存在 + if (secUserService.findByLoginName(body.getString("agentPhone")) != null) { + log.error("HighAgentController --> insertAgent() error!", "手机号已存在,请更换!"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.USER_LOGIN_NAME_IS_EXIST_ERROR, ""); + } + + HighAgent agent = new HighAgent(); + agent.setParentId(userInfoModel.getHighAgent().getId()); + agent.setParentName(userInfoModel.getHighAgent().getAgentName()); + agent.setType(userInfoModel.getHighAgent().getType()); + agent.setAgentName(body.getString("agentName")); + agent.setAgentAddress(body.getString("agentAddress")); + agent.setAgentPhone(body.getString("agentPhone")); + agent.setAgentKey(String.valueOf(System.currentTimeMillis())); + agent.setAgentUser(body.getString("agentName")); + + agent.setStatus(1); // 状态:0:不可用,1:可用 + agent.setCreateTime(new Date()); + agent.setOperatorId(userInfoModel.getSecUser().getId()); + agent.setOperatorName(userInfoModel.getSecUser().getUserName()); + highAgentService.insertChildAgent(agent); + return ResponseMsgUtil.success("新增成功"); + + } catch (Exception e) { + log.error("HighAgentController --> insertChildAgent() error!", e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value = "/changeAgentStatus", method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "变更代理商状态") + public ResponseData changeAgentStatus(@RequestParam(value = "agentId" , required = true) Long agentId, + @RequestParam(value = "status" , required = true) Integer status) { + try { + HighAgent highAgent = highAgentService.findByAgentMsgId(agentId); + if (highAgent == null) { + log.error("HighAgentController --> changeAgentStatus() error!"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_USER_ERROR, ""); + } + highAgent.setStatus(status); + highAgentService.updateAgentDetail(highAgent); + + return ResponseMsgUtil.success("操作成功"); + + } catch (Exception e) { + log.error("HighAgentController --> changeAgentStatus() error!", e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value = "/getChildAgentList", method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "查询子级代理商列表") + public ResponseData getChildAgentList(@RequestParam(value = "agentId" , required = true) Long agentId, + @RequestParam(value = "agentPhone" , required = false) String agentPhone, + @RequestParam(value = "agentName" , required = false) String agentName, + @RequestParam(value = "status" , required = false) Integer status, + @RequestParam(value = "pageNum" , required = true) Integer pageNum, + @RequestParam(value = "pageSize" , required = true) Integer pageSize) { + try { + Map param = new HashMap<>(); + param.put("parentAgentId", agentId); + param.put("agentPhone", agentPhone); + param.put("agentName", agentName); + param.put("status", status); + + PageHelper.startPage(pageNum, pageSize); + return ResponseMsgUtil.success(new PageInfo<>(highAgentService.getListAgentMsg(param))); + + } catch (Exception e) { + log.error("HighAgentController --> changeAgentStatus() error!", e); + return ResponseMsgUtil.exception(e); + } + } + @RequestMapping(value = "/insertAgent", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "新增代理商") @@ -206,7 +311,7 @@ public class HighAgentController { // throw ErrorHelp.genException(SysCode.System, ErrorCode.MENU_TREE_HAS_NOT_ERROR, ""); // } - Map map = new HashMap<>(); + Map map = new HashMap<>(); if (StringUtils.isNotBlank(agentName)) { map.put("agentName", agentName); @@ -235,7 +340,6 @@ public class HighAgentController { } } - @RequestMapping(value = "/findByAgentId", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "根据id查询详情") diff --git a/hai-bweb/src/main/java/com/bweb/controller/HighCouponAgentController.java b/hai-bweb/src/main/java/com/bweb/controller/HighCouponAgentController.java index a785a0b2..220551ad 100644 --- a/hai-bweb/src/main/java/com/bweb/controller/HighCouponAgentController.java +++ b/hai-bweb/src/main/java/com/bweb/controller/HighCouponAgentController.java @@ -105,6 +105,90 @@ public class HighCouponAgentController { } } + @RequestMapping(value = "/assignCouponChildAgent", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "分配卡券给子级代理商") + public ResponseData assignCouponChildAgent(@RequestBody JSONObject body, HttpServletRequest request) { + try { + UserInfoModel userInfoModel = userCenter.getSessionModel(UserInfoModel.class); + if (userInfoModel == null || userInfoModel.getHighAgent() == null) { + log.error("HighCouponAgentController -> assignCouponAgent() error!","该主角色没有权限"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.MENU_TREE_HAS_NOT_ERROR, ""); + } + + if(body == null + || body.getLong("couponAgentRelId") == null + || body.getLong("agentId") == null + || body.getInteger("stockCount") == null + ) { + log.error("HighCouponAgentController -> assignCouponAgent() error!","参数错误"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + + // 查询父级代理商的卡券关系 + HighCouponAgentRel rel = highCouponAgentService.getRelById(body.getLong("couponAgentRelId")); + if (rel == null) { + log.error("HighCouponAgentController -> assignCouponAgent() error!","参数错误"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + if (rel.getAgentId().equals(body.getLong("agentId") )) { + log.error("HighCouponAgentController -> assignCouponAgent() error!","不能给自己分配"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "不能给自己分配"); + } + if (body.getInteger("stockCount").intValue() > rel.getStockCount().intValue()) { + log.error("HighCouponAgentController -> assignCouponAgent() error!","库存数量不足"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "库存数量不足"); + } + + // 查询卡券详情 + HighCoupon coupon = highCouponService.getCouponById(rel.getCouponId()); + if (coupon == null) { + log.error("HighCouponAgentController -> assignCouponAgent() error!","未找到卡券信息"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_COUPON, ""); + } + // 查询代理商 + HighAgent highAgent = highAgentService.findByAgentMsgId(body.getLong("agentId")); + if (highAgent == null) { + log.error("HighCouponAgentController -> assignCouponAgent() error!", "未找到代理商信息"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_AGENT, ""); + } + if (highAgent.getParentId() == null) { + log.error("HighCouponAgentController -> assignCouponAgent() error!", "不是子级代理商"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "不是子级代理商"); + } + + // 校验是否分配过 + HighCouponAgentRel couponAgent = highCouponAgentService.getRelByCouponAgent(rel.getCouponId(), body.getLong("agentId"), rel.getType()); + if (couponAgent != null) { + couponAgent.setStockCount(couponAgent.getStockCount() + body.getInteger("stockCount")); + couponAgent.setOperatorId(userInfoModel.getSecUser().getId()); + couponAgent.setOperatorName(userInfoModel.getSecUser().getUserName()); + highCouponAgentService.assignCouponAgent(couponAgent, body.getInteger("stockCount")); + } else { + couponAgent = new HighCouponAgentRel(); + couponAgent.setParentCouponAgentId(rel.getId()); + couponAgent.setType(rel.getType()); + couponAgent.setCouponId(rel.getCouponId()); + couponAgent.setAgentId(body.getLong("agentId")); + couponAgent.setCouponName(coupon.getCouponName()); + couponAgent.setSalesPrice(coupon.getSalesPrice()); + couponAgent.setStatus(1); // 状态 0:删除 1:正常 + couponAgent.setStockCount(body.getInteger("stockCount")); + couponAgent.setSalesCount(0); + couponAgent.setCreateTime(new Date()); + couponAgent.setOperatorId(userInfoModel.getSecUser().getId()); + couponAgent.setOperatorName(userInfoModel.getSecUser().getUserName()); + highCouponAgentService.assignCouponAgent(couponAgent, body.getInteger("stockCount")); + } + + return ResponseMsgUtil.success("分配成功"); + + } catch (Exception e) { + log.error("HighCouponAgentController --> assignCouponAgent() error!", e); + return ResponseMsgUtil.exception(e); + } + } + @RequestMapping(value = "/getAgentSalesCodeList", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询代理商已销售的卡券") @@ -259,7 +343,6 @@ public class HighCouponAgentController { } } - @RequestMapping(value = "/getCouponByAgent", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "根据代理商 查询卡券") diff --git a/hai-bweb/src/main/java/com/bweb/controller/LoginController.java b/hai-bweb/src/main/java/com/bweb/controller/LoginController.java index f293bacf..af6de63d 100644 --- a/hai-bweb/src/main/java/com/bweb/controller/LoginController.java +++ b/hai-bweb/src/main/java/com/bweb/controller/LoginController.java @@ -173,10 +173,9 @@ public class LoginController { log.error("login error!","未找到代理商"); throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_AGENT, ""); } - if(highAgent.getStatus() != 1) { - log.error("login error!","未找到代理商"); - throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_AGENT, ""); + log.error("login error!","代理商状态异常,请联系管理员"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "代理商状态异常,请联系管理员"); } userInfoModel.setHighAgent(highAgent); diff --git a/hai-service/src/main/java/com/hai/dao/HighAgentMapper.java b/hai-service/src/main/java/com/hai/dao/HighAgentMapper.java index 9abf6d82..1de4e899 100644 --- a/hai-service/src/main/java/com/hai/dao/HighAgentMapper.java +++ b/hai-service/src/main/java/com/hai/dao/HighAgentMapper.java @@ -39,14 +39,16 @@ public interface HighAgentMapper extends HighAgentMapperExt { int deleteByPrimaryKey(Long id); @Insert({ - "insert into high_agent (`type`, agent_key, ", + "insert into high_agent (`type`, parent_id, ", + "parent_name, agent_key, ", "agent_name, agent_address, ", "agent_user, agent_phone, ", "create_time, `status`, ", "user_name, operator_id, ", "operator_name, ext_1, ", "ext_2, ext_3)", - "values (#{type,jdbcType=INTEGER}, #{agentKey,jdbcType=VARCHAR}, ", + "values (#{type,jdbcType=INTEGER}, #{parentId,jdbcType=BIGINT}, ", + "#{parentName,jdbcType=VARCHAR}, #{agentKey,jdbcType=VARCHAR}, ", "#{agentName,jdbcType=VARCHAR}, #{agentAddress,jdbcType=VARCHAR}, ", "#{agentUser,jdbcType=VARCHAR}, #{agentPhone,jdbcType=VARCHAR}, ", "#{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, ", @@ -65,6 +67,8 @@ public interface HighAgentMapper extends HighAgentMapperExt { @Results({ @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), @Result(column="type", property="type", jdbcType=JdbcType.INTEGER), + @Result(column="parent_id", property="parentId", jdbcType=JdbcType.BIGINT), + @Result(column="parent_name", property="parentName", jdbcType=JdbcType.VARCHAR), @Result(column="agent_key", property="agentKey", jdbcType=JdbcType.VARCHAR), @Result(column="agent_name", property="agentName", jdbcType=JdbcType.VARCHAR), @Result(column="agent_address", property="agentAddress", jdbcType=JdbcType.VARCHAR), @@ -83,14 +87,17 @@ public interface HighAgentMapper extends HighAgentMapperExt { @Select({ "select", - "id, `type`, agent_key, agent_name, agent_address, agent_user, agent_phone, create_time, ", - "`status`, user_name, operator_id, operator_name, ext_1, ext_2, ext_3", + "id, `type`, parent_id, parent_name, agent_key, agent_name, agent_address, agent_user, ", + "agent_phone, create_time, `status`, user_name, operator_id, operator_name, ext_1, ", + "ext_2, ext_3", "from high_agent", "where id = #{id,jdbcType=BIGINT}" }) @Results({ @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), @Result(column="type", property="type", jdbcType=JdbcType.INTEGER), + @Result(column="parent_id", property="parentId", jdbcType=JdbcType.BIGINT), + @Result(column="parent_name", property="parentName", jdbcType=JdbcType.VARCHAR), @Result(column="agent_key", property="agentKey", jdbcType=JdbcType.VARCHAR), @Result(column="agent_name", property="agentName", jdbcType=JdbcType.VARCHAR), @Result(column="agent_address", property="agentAddress", jdbcType=JdbcType.VARCHAR), @@ -119,6 +126,8 @@ public interface HighAgentMapper extends HighAgentMapperExt { @Update({ "update high_agent", "set `type` = #{type,jdbcType=INTEGER},", + "parent_id = #{parentId,jdbcType=BIGINT},", + "parent_name = #{parentName,jdbcType=VARCHAR},", "agent_key = #{agentKey,jdbcType=VARCHAR},", "agent_name = #{agentName,jdbcType=VARCHAR},", "agent_address = #{agentAddress,jdbcType=VARCHAR},", diff --git a/hai-service/src/main/java/com/hai/dao/HighAgentSqlProvider.java b/hai-service/src/main/java/com/hai/dao/HighAgentSqlProvider.java index 276eb335..d6d88d13 100644 --- a/hai-service/src/main/java/com/hai/dao/HighAgentSqlProvider.java +++ b/hai-service/src/main/java/com/hai/dao/HighAgentSqlProvider.java @@ -32,6 +32,14 @@ public class HighAgentSqlProvider { sql.VALUES("`type`", "#{type,jdbcType=INTEGER}"); } + if (record.getParentId() != null) { + sql.VALUES("parent_id", "#{parentId,jdbcType=BIGINT}"); + } + + if (record.getParentName() != null) { + sql.VALUES("parent_name", "#{parentName,jdbcType=VARCHAR}"); + } + if (record.getAgentKey() != null) { sql.VALUES("agent_key", "#{agentKey,jdbcType=VARCHAR}"); } @@ -95,6 +103,8 @@ public class HighAgentSqlProvider { sql.SELECT("id"); } sql.SELECT("`type`"); + sql.SELECT("parent_id"); + sql.SELECT("parent_name"); sql.SELECT("agent_key"); sql.SELECT("agent_name"); sql.SELECT("agent_address"); @@ -133,6 +143,14 @@ public class HighAgentSqlProvider { sql.SET("`type` = #{record.type,jdbcType=INTEGER}"); } + if (record.getParentId() != null) { + sql.SET("parent_id = #{record.parentId,jdbcType=BIGINT}"); + } + + if (record.getParentName() != null) { + sql.SET("parent_name = #{record.parentName,jdbcType=VARCHAR}"); + } + if (record.getAgentKey() != null) { sql.SET("agent_key = #{record.agentKey,jdbcType=VARCHAR}"); } @@ -195,6 +213,8 @@ public class HighAgentSqlProvider { sql.SET("id = #{record.id,jdbcType=BIGINT}"); sql.SET("`type` = #{record.type,jdbcType=INTEGER}"); + sql.SET("parent_id = #{record.parentId,jdbcType=BIGINT}"); + sql.SET("parent_name = #{record.parentName,jdbcType=VARCHAR}"); sql.SET("agent_key = #{record.agentKey,jdbcType=VARCHAR}"); sql.SET("agent_name = #{record.agentName,jdbcType=VARCHAR}"); sql.SET("agent_address = #{record.agentAddress,jdbcType=VARCHAR}"); @@ -222,6 +242,14 @@ public class HighAgentSqlProvider { sql.SET("`type` = #{type,jdbcType=INTEGER}"); } + if (record.getParentId() != null) { + sql.SET("parent_id = #{parentId,jdbcType=BIGINT}"); + } + + if (record.getParentName() != null) { + sql.SET("parent_name = #{parentName,jdbcType=VARCHAR}"); + } + if (record.getAgentKey() != null) { sql.SET("agent_key = #{agentKey,jdbcType=VARCHAR}"); } diff --git a/hai-service/src/main/java/com/hai/dao/HighCouponAgentCodeMapper.java b/hai-service/src/main/java/com/hai/dao/HighCouponAgentCodeMapper.java index 220c3470..28649a26 100644 --- a/hai-service/src/main/java/com/hai/dao/HighCouponAgentCodeMapper.java +++ b/hai-service/src/main/java/com/hai/dao/HighCouponAgentCodeMapper.java @@ -44,19 +44,23 @@ public interface HighCouponAgentCodeMapper extends HighCouponAgentCodeMapperExt "coupon_agent_record_id, convert_user_phone, ", "convert_code, coupon_code_id, ", "coupon_code, qr_code, ", - "`status`, remark, ", - "create_time, sales_time, ", - "operator_id, operator_name, ", - "ext_1, ext_2, ext_3)", + "`status`, assign_coupon_agent_id, ", + "assign_agent_id, assign_agent_name, ", + "remark, create_time, ", + "sales_time, operator_id, ", + "operator_name, ext_1, ", + "ext_2, ext_3)", "values (#{type,jdbcType=INTEGER}, #{couponAgentId,jdbcType=BIGINT}, ", "#{couponId,jdbcType=BIGINT}, #{agentId,jdbcType=BIGINT}, ", "#{couponAgentRecordId,jdbcType=BIGINT}, #{convertUserPhone,jdbcType=VARCHAR}, ", "#{convertCode,jdbcType=VARCHAR}, #{couponCodeId,jdbcType=BIGINT}, ", "#{couponCode,jdbcType=VARCHAR}, #{qrCode,jdbcType=VARCHAR}, ", - "#{status,jdbcType=INTEGER}, #{remark,jdbcType=VARCHAR}, ", - "#{createTime,jdbcType=TIMESTAMP}, #{salesTime,jdbcType=TIMESTAMP}, ", - "#{operatorId,jdbcType=BIGINT}, #{operatorName,jdbcType=VARCHAR}, ", - "#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" + "#{status,jdbcType=INTEGER}, #{assignCouponAgentId,jdbcType=BIGINT}, ", + "#{assignAgentId,jdbcType=BIGINT}, #{assignAgentName,jdbcType=VARCHAR}, ", + "#{remark,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, ", + "#{salesTime,jdbcType=TIMESTAMP}, #{operatorId,jdbcType=BIGINT}, ", + "#{operatorName,jdbcType=VARCHAR}, #{ext1,jdbcType=VARCHAR}, ", + "#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" }) @Options(useGeneratedKeys=true,keyProperty="id") int insert(HighCouponAgentCode record); @@ -79,6 +83,9 @@ public interface HighCouponAgentCodeMapper extends HighCouponAgentCodeMapperExt @Result(column="coupon_code", property="couponCode", jdbcType=JdbcType.VARCHAR), @Result(column="qr_code", property="qrCode", jdbcType=JdbcType.VARCHAR), @Result(column="status", property="status", jdbcType=JdbcType.INTEGER), + @Result(column="assign_coupon_agent_id", property="assignCouponAgentId", jdbcType=JdbcType.BIGINT), + @Result(column="assign_agent_id", property="assignAgentId", jdbcType=JdbcType.BIGINT), + @Result(column="assign_agent_name", property="assignAgentName", jdbcType=JdbcType.VARCHAR), @Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR), @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="sales_time", property="salesTime", jdbcType=JdbcType.TIMESTAMP), @@ -93,8 +100,9 @@ public interface HighCouponAgentCodeMapper extends HighCouponAgentCodeMapperExt @Select({ "select", "id, `type`, coupon_agent_id, coupon_id, agent_id, coupon_agent_record_id, convert_user_phone, ", - "convert_code, coupon_code_id, coupon_code, qr_code, `status`, remark, create_time, ", - "sales_time, operator_id, operator_name, ext_1, ext_2, ext_3", + "convert_code, coupon_code_id, coupon_code, qr_code, `status`, assign_coupon_agent_id, ", + "assign_agent_id, assign_agent_name, remark, create_time, sales_time, operator_id, ", + "operator_name, ext_1, ext_2, ext_3", "from high_coupon_agent_code", "where id = #{id,jdbcType=BIGINT}" }) @@ -111,6 +119,9 @@ public interface HighCouponAgentCodeMapper extends HighCouponAgentCodeMapperExt @Result(column="coupon_code", property="couponCode", jdbcType=JdbcType.VARCHAR), @Result(column="qr_code", property="qrCode", jdbcType=JdbcType.VARCHAR), @Result(column="status", property="status", jdbcType=JdbcType.INTEGER), + @Result(column="assign_coupon_agent_id", property="assignCouponAgentId", jdbcType=JdbcType.BIGINT), + @Result(column="assign_agent_id", property="assignAgentId", jdbcType=JdbcType.BIGINT), + @Result(column="assign_agent_name", property="assignAgentName", jdbcType=JdbcType.VARCHAR), @Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR), @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="sales_time", property="salesTime", jdbcType=JdbcType.TIMESTAMP), @@ -144,6 +155,9 @@ public interface HighCouponAgentCodeMapper extends HighCouponAgentCodeMapperExt "coupon_code = #{couponCode,jdbcType=VARCHAR},", "qr_code = #{qrCode,jdbcType=VARCHAR},", "`status` = #{status,jdbcType=INTEGER},", + "assign_coupon_agent_id = #{assignCouponAgentId,jdbcType=BIGINT},", + "assign_agent_id = #{assignAgentId,jdbcType=BIGINT},", + "assign_agent_name = #{assignAgentName,jdbcType=VARCHAR},", "remark = #{remark,jdbcType=VARCHAR},", "create_time = #{createTime,jdbcType=TIMESTAMP},", "sales_time = #{salesTime,jdbcType=TIMESTAMP},", diff --git a/hai-service/src/main/java/com/hai/dao/HighCouponAgentCodeSqlProvider.java b/hai-service/src/main/java/com/hai/dao/HighCouponAgentCodeSqlProvider.java index 85e542ca..de5c2b49 100644 --- a/hai-service/src/main/java/com/hai/dao/HighCouponAgentCodeSqlProvider.java +++ b/hai-service/src/main/java/com/hai/dao/HighCouponAgentCodeSqlProvider.java @@ -72,6 +72,18 @@ public class HighCouponAgentCodeSqlProvider { sql.VALUES("`status`", "#{status,jdbcType=INTEGER}"); } + if (record.getAssignCouponAgentId() != null) { + sql.VALUES("assign_coupon_agent_id", "#{assignCouponAgentId,jdbcType=BIGINT}"); + } + + if (record.getAssignAgentId() != null) { + sql.VALUES("assign_agent_id", "#{assignAgentId,jdbcType=BIGINT}"); + } + + if (record.getAssignAgentName() != null) { + sql.VALUES("assign_agent_name", "#{assignAgentName,jdbcType=VARCHAR}"); + } + if (record.getRemark() != null) { sql.VALUES("remark", "#{remark,jdbcType=VARCHAR}"); } @@ -125,6 +137,9 @@ public class HighCouponAgentCodeSqlProvider { sql.SELECT("coupon_code"); sql.SELECT("qr_code"); sql.SELECT("`status`"); + sql.SELECT("assign_coupon_agent_id"); + sql.SELECT("assign_agent_id"); + sql.SELECT("assign_agent_name"); sql.SELECT("remark"); sql.SELECT("create_time"); sql.SELECT("sales_time"); @@ -198,6 +213,18 @@ public class HighCouponAgentCodeSqlProvider { sql.SET("`status` = #{record.status,jdbcType=INTEGER}"); } + if (record.getAssignCouponAgentId() != null) { + sql.SET("assign_coupon_agent_id = #{record.assignCouponAgentId,jdbcType=BIGINT}"); + } + + if (record.getAssignAgentId() != null) { + sql.SET("assign_agent_id = #{record.assignAgentId,jdbcType=BIGINT}"); + } + + if (record.getAssignAgentName() != null) { + sql.SET("assign_agent_name = #{record.assignAgentName,jdbcType=VARCHAR}"); + } + if (record.getRemark() != null) { sql.SET("remark = #{record.remark,jdbcType=VARCHAR}"); } @@ -250,6 +277,9 @@ public class HighCouponAgentCodeSqlProvider { sql.SET("coupon_code = #{record.couponCode,jdbcType=VARCHAR}"); sql.SET("qr_code = #{record.qrCode,jdbcType=VARCHAR}"); sql.SET("`status` = #{record.status,jdbcType=INTEGER}"); + sql.SET("assign_coupon_agent_id = #{record.assignCouponAgentId,jdbcType=BIGINT}"); + sql.SET("assign_agent_id = #{record.assignAgentId,jdbcType=BIGINT}"); + sql.SET("assign_agent_name = #{record.assignAgentName,jdbcType=VARCHAR}"); sql.SET("remark = #{record.remark,jdbcType=VARCHAR}"); sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}"); sql.SET("sales_time = #{record.salesTime,jdbcType=TIMESTAMP}"); @@ -312,6 +342,18 @@ public class HighCouponAgentCodeSqlProvider { sql.SET("`status` = #{status,jdbcType=INTEGER}"); } + if (record.getAssignCouponAgentId() != null) { + sql.SET("assign_coupon_agent_id = #{assignCouponAgentId,jdbcType=BIGINT}"); + } + + if (record.getAssignAgentId() != null) { + sql.SET("assign_agent_id = #{assignAgentId,jdbcType=BIGINT}"); + } + + if (record.getAssignAgentName() != null) { + sql.SET("assign_agent_name = #{assignAgentName,jdbcType=VARCHAR}"); + } + if (record.getRemark() != null) { sql.SET("remark = #{remark,jdbcType=VARCHAR}"); } diff --git a/hai-service/src/main/java/com/hai/dao/HighCouponAgentRelMapper.java b/hai-service/src/main/java/com/hai/dao/HighCouponAgentRelMapper.java index 3cf1e4e3..6bae1ca3 100644 --- a/hai-service/src/main/java/com/hai/dao/HighCouponAgentRelMapper.java +++ b/hai-service/src/main/java/com/hai/dao/HighCouponAgentRelMapper.java @@ -39,20 +39,20 @@ public interface HighCouponAgentRelMapper extends HighCouponAgentRelMapperExt { int deleteByPrimaryKey(Long id); @Insert({ - "insert into high_coupon_agent_rel (`type`, coupon_name, ", - "sales_price, coupon_id, ", - "agent_id, stock_count, ", - "sales_count, create_time, ", - "`status`, operator_id, ", - "operator_name, ext_1, ", - "ext_2, ext_3)", - "values (#{type,jdbcType=INTEGER}, #{couponName,jdbcType=VARCHAR}, ", - "#{salesPrice,jdbcType=DECIMAL}, #{couponId,jdbcType=BIGINT}, ", - "#{agentId,jdbcType=BIGINT}, #{stockCount,jdbcType=INTEGER}, ", - "#{salesCount,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, ", - "#{status,jdbcType=INTEGER}, #{operatorId,jdbcType=BIGINT}, ", - "#{operatorName,jdbcType=VARCHAR}, #{ext1,jdbcType=VARCHAR}, ", - "#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" + "insert into high_coupon_agent_rel (parent_coupon_agent_id, `type`, ", + "coupon_name, sales_price, ", + "coupon_id, agent_id, ", + "stock_count, sales_count, ", + "create_time, `status`, ", + "operator_id, operator_name, ", + "ext_1, ext_2, ext_3)", + "values (#{parentCouponAgentId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER}, ", + "#{couponName,jdbcType=VARCHAR}, #{salesPrice,jdbcType=DECIMAL}, ", + "#{couponId,jdbcType=BIGINT}, #{agentId,jdbcType=BIGINT}, ", + "#{stockCount,jdbcType=INTEGER}, #{salesCount,jdbcType=INTEGER}, ", + "#{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, ", + "#{operatorId,jdbcType=BIGINT}, #{operatorName,jdbcType=VARCHAR}, ", + "#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" }) @Options(useGeneratedKeys=true,keyProperty="id") int insert(HighCouponAgentRel record); @@ -64,6 +64,7 @@ public interface HighCouponAgentRelMapper extends HighCouponAgentRelMapperExt { @SelectProvider(type=HighCouponAgentRelSqlProvider.class, method="selectByExample") @Results({ @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), + @Result(column="parent_coupon_agent_id", property="parentCouponAgentId", jdbcType=JdbcType.BIGINT), @Result(column="type", property="type", jdbcType=JdbcType.INTEGER), @Result(column="coupon_name", property="couponName", jdbcType=JdbcType.VARCHAR), @Result(column="sales_price", property="salesPrice", jdbcType=JdbcType.DECIMAL), @@ -83,13 +84,15 @@ public interface HighCouponAgentRelMapper extends HighCouponAgentRelMapperExt { @Select({ "select", - "id, `type`, coupon_name, sales_price, coupon_id, agent_id, stock_count, sales_count, ", - "create_time, `status`, operator_id, operator_name, ext_1, ext_2, ext_3", + "id, parent_coupon_agent_id, `type`, coupon_name, sales_price, coupon_id, agent_id, ", + "stock_count, sales_count, create_time, `status`, operator_id, operator_name, ", + "ext_1, ext_2, ext_3", "from high_coupon_agent_rel", "where id = #{id,jdbcType=BIGINT}" }) @Results({ @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), + @Result(column="parent_coupon_agent_id", property="parentCouponAgentId", jdbcType=JdbcType.BIGINT), @Result(column="type", property="type", jdbcType=JdbcType.INTEGER), @Result(column="coupon_name", property="couponName", jdbcType=JdbcType.VARCHAR), @Result(column="sales_price", property="salesPrice", jdbcType=JdbcType.DECIMAL), @@ -118,7 +121,8 @@ public interface HighCouponAgentRelMapper extends HighCouponAgentRelMapperExt { @Update({ "update high_coupon_agent_rel", - "set `type` = #{type,jdbcType=INTEGER},", + "set parent_coupon_agent_id = #{parentCouponAgentId,jdbcType=BIGINT},", + "`type` = #{type,jdbcType=INTEGER},", "coupon_name = #{couponName,jdbcType=VARCHAR},", "sales_price = #{salesPrice,jdbcType=DECIMAL},", "coupon_id = #{couponId,jdbcType=BIGINT},", diff --git a/hai-service/src/main/java/com/hai/dao/HighCouponAgentRelSqlProvider.java b/hai-service/src/main/java/com/hai/dao/HighCouponAgentRelSqlProvider.java index 13d0d982..db891761 100644 --- a/hai-service/src/main/java/com/hai/dao/HighCouponAgentRelSqlProvider.java +++ b/hai-service/src/main/java/com/hai/dao/HighCouponAgentRelSqlProvider.java @@ -28,6 +28,10 @@ public class HighCouponAgentRelSqlProvider { SQL sql = new SQL(); sql.INSERT_INTO("high_coupon_agent_rel"); + if (record.getParentCouponAgentId() != null) { + sql.VALUES("parent_coupon_agent_id", "#{parentCouponAgentId,jdbcType=BIGINT}"); + } + if (record.getType() != null) { sql.VALUES("`type`", "#{type,jdbcType=INTEGER}"); } @@ -94,6 +98,7 @@ public class HighCouponAgentRelSqlProvider { } else { sql.SELECT("id"); } + sql.SELECT("parent_coupon_agent_id"); sql.SELECT("`type`"); sql.SELECT("coupon_name"); sql.SELECT("sales_price"); @@ -129,6 +134,10 @@ public class HighCouponAgentRelSqlProvider { sql.SET("id = #{record.id,jdbcType=BIGINT}"); } + if (record.getParentCouponAgentId() != null) { + sql.SET("parent_coupon_agent_id = #{record.parentCouponAgentId,jdbcType=BIGINT}"); + } + if (record.getType() != null) { sql.SET("`type` = #{record.type,jdbcType=INTEGER}"); } @@ -194,6 +203,7 @@ public class HighCouponAgentRelSqlProvider { sql.UPDATE("high_coupon_agent_rel"); sql.SET("id = #{record.id,jdbcType=BIGINT}"); + sql.SET("parent_coupon_agent_id = #{record.parentCouponAgentId,jdbcType=BIGINT}"); sql.SET("`type` = #{record.type,jdbcType=INTEGER}"); sql.SET("coupon_name = #{record.couponName,jdbcType=VARCHAR}"); sql.SET("sales_price = #{record.salesPrice,jdbcType=DECIMAL}"); @@ -218,6 +228,10 @@ public class HighCouponAgentRelSqlProvider { SQL sql = new SQL(); sql.UPDATE("high_coupon_agent_rel"); + if (record.getParentCouponAgentId() != null) { + sql.SET("parent_coupon_agent_id = #{parentCouponAgentId,jdbcType=BIGINT}"); + } + if (record.getType() != null) { sql.SET("`type` = #{type,jdbcType=INTEGER}"); } diff --git a/hai-service/src/main/java/com/hai/entity/HighAgent.java b/hai-service/src/main/java/com/hai/entity/HighAgent.java index e38f7875..958e9b23 100644 --- a/hai-service/src/main/java/com/hai/entity/HighAgent.java +++ b/hai-service/src/main/java/com/hai/entity/HighAgent.java @@ -20,6 +20,16 @@ public class HighAgent implements Serializable { */ private Integer type; + /** + * 上级代理商id + */ + private Long parentId; + + /** + * 上级代理商名称 + */ + private String parentName; + /** * 代理商编号 */ @@ -50,6 +60,9 @@ public class HighAgent implements Serializable { */ private Date createTime; + /** + * 状态:0:不可用,1:可用 2:禁用 + */ private Integer status; /** @@ -91,6 +104,22 @@ public class HighAgent implements Serializable { this.type = type; } + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public String getParentName() { + return parentName; + } + + public void setParentName(String parentName) { + this.parentName = parentName; + } + public String getAgentKey() { return agentKey; } @@ -209,6 +238,8 @@ public class HighAgent implements Serializable { HighAgent other = (HighAgent) that; return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType())) + && (this.getParentId() == null ? other.getParentId() == null : this.getParentId().equals(other.getParentId())) + && (this.getParentName() == null ? other.getParentName() == null : this.getParentName().equals(other.getParentName())) && (this.getAgentKey() == null ? other.getAgentKey() == null : this.getAgentKey().equals(other.getAgentKey())) && (this.getAgentName() == null ? other.getAgentName() == null : this.getAgentName().equals(other.getAgentName())) && (this.getAgentAddress() == null ? other.getAgentAddress() == null : this.getAgentAddress().equals(other.getAgentAddress())) @@ -230,6 +261,8 @@ public class HighAgent implements Serializable { int result = 1; result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); result = prime * result + ((getType() == null) ? 0 : getType().hashCode()); + result = prime * result + ((getParentId() == null) ? 0 : getParentId().hashCode()); + result = prime * result + ((getParentName() == null) ? 0 : getParentName().hashCode()); result = prime * result + ((getAgentKey() == null) ? 0 : getAgentKey().hashCode()); result = prime * result + ((getAgentName() == null) ? 0 : getAgentName().hashCode()); result = prime * result + ((getAgentAddress() == null) ? 0 : getAgentAddress().hashCode()); @@ -254,6 +287,8 @@ public class HighAgent implements Serializable { sb.append("Hash = ").append(hashCode()); sb.append(", id=").append(id); sb.append(", type=").append(type); + sb.append(", parentId=").append(parentId); + sb.append(", parentName=").append(parentName); sb.append(", agentKey=").append(agentKey); sb.append(", agentName=").append(agentName); sb.append(", agentAddress=").append(agentAddress); diff --git a/hai-service/src/main/java/com/hai/entity/HighAgentExample.java b/hai-service/src/main/java/com/hai/entity/HighAgentExample.java index 496431ed..c882d04b 100644 --- a/hai-service/src/main/java/com/hai/entity/HighAgentExample.java +++ b/hai-service/src/main/java/com/hai/entity/HighAgentExample.java @@ -245,6 +245,136 @@ public class HighAgentExample { return (Criteria) this; } + public Criteria andParentIdIsNull() { + addCriterion("parent_id is null"); + return (Criteria) this; + } + + public Criteria andParentIdIsNotNull() { + addCriterion("parent_id is not null"); + return (Criteria) this; + } + + public Criteria andParentIdEqualTo(Long value) { + addCriterion("parent_id =", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotEqualTo(Long value) { + addCriterion("parent_id <>", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThan(Long value) { + addCriterion("parent_id >", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThanOrEqualTo(Long value) { + addCriterion("parent_id >=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThan(Long value) { + addCriterion("parent_id <", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThanOrEqualTo(Long value) { + addCriterion("parent_id <=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdIn(List values) { + addCriterion("parent_id in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotIn(List values) { + addCriterion("parent_id not in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdBetween(Long value1, Long value2) { + addCriterion("parent_id between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotBetween(Long value1, Long value2) { + addCriterion("parent_id not between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andParentNameIsNull() { + addCriterion("parent_name is null"); + return (Criteria) this; + } + + public Criteria andParentNameIsNotNull() { + addCriterion("parent_name is not null"); + return (Criteria) this; + } + + public Criteria andParentNameEqualTo(String value) { + addCriterion("parent_name =", value, "parentName"); + return (Criteria) this; + } + + public Criteria andParentNameNotEqualTo(String value) { + addCriterion("parent_name <>", value, "parentName"); + return (Criteria) this; + } + + public Criteria andParentNameGreaterThan(String value) { + addCriterion("parent_name >", value, "parentName"); + return (Criteria) this; + } + + public Criteria andParentNameGreaterThanOrEqualTo(String value) { + addCriterion("parent_name >=", value, "parentName"); + return (Criteria) this; + } + + public Criteria andParentNameLessThan(String value) { + addCriterion("parent_name <", value, "parentName"); + return (Criteria) this; + } + + public Criteria andParentNameLessThanOrEqualTo(String value) { + addCriterion("parent_name <=", value, "parentName"); + return (Criteria) this; + } + + public Criteria andParentNameLike(String value) { + addCriterion("parent_name like", value, "parentName"); + return (Criteria) this; + } + + public Criteria andParentNameNotLike(String value) { + addCriterion("parent_name not like", value, "parentName"); + return (Criteria) this; + } + + public Criteria andParentNameIn(List values) { + addCriterion("parent_name in", values, "parentName"); + return (Criteria) this; + } + + public Criteria andParentNameNotIn(List values) { + addCriterion("parent_name not in", values, "parentName"); + return (Criteria) this; + } + + public Criteria andParentNameBetween(String value1, String value2) { + addCriterion("parent_name between", value1, value2, "parentName"); + return (Criteria) this; + } + + public Criteria andParentNameNotBetween(String value1, String value2) { + addCriterion("parent_name not between", value1, value2, "parentName"); + return (Criteria) this; + } + public Criteria andAgentKeyIsNull() { addCriterion("agent_key is null"); return (Criteria) this; diff --git a/hai-service/src/main/java/com/hai/entity/HighCouponAgentCode.java b/hai-service/src/main/java/com/hai/entity/HighCouponAgentCode.java index a5b23b11..55d0b7fa 100644 --- a/hai-service/src/main/java/com/hai/entity/HighCouponAgentCode.java +++ b/hai-service/src/main/java/com/hai/entity/HighCouponAgentCode.java @@ -71,10 +71,25 @@ public class HighCouponAgentCode extends HighCouponAgentCodeModel implements Ser private String qrCode; /** - * 状态:1.待销售 2.未使用 3.已使用 + * 状态:0.删除 1.待销售 2.未使用 3.已使用 4. 分发代理商 */ private Integer status; + /** + * 分配给卡券和代理商的id + */ + private Long assignCouponAgentId; + + /** + * 分配代理商id + */ + private Long assignAgentId; + + /** + * 分配代理商名称 + */ + private String assignAgentName; + /** * 备注 */ @@ -204,6 +219,30 @@ public class HighCouponAgentCode extends HighCouponAgentCodeModel implements Ser this.status = status; } + public Long getAssignCouponAgentId() { + return assignCouponAgentId; + } + + public void setAssignCouponAgentId(Long assignCouponAgentId) { + this.assignCouponAgentId = assignCouponAgentId; + } + + public Long getAssignAgentId() { + return assignAgentId; + } + + public void setAssignAgentId(Long assignAgentId) { + this.assignAgentId = assignAgentId; + } + + public String getAssignAgentName() { + return assignAgentName; + } + + public void setAssignAgentName(String assignAgentName) { + this.assignAgentName = assignAgentName; + } + public String getRemark() { return remark; } @@ -292,6 +331,9 @@ public class HighCouponAgentCode extends HighCouponAgentCodeModel implements Ser && (this.getCouponCode() == null ? other.getCouponCode() == null : this.getCouponCode().equals(other.getCouponCode())) && (this.getQrCode() == null ? other.getQrCode() == null : this.getQrCode().equals(other.getQrCode())) && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus())) + && (this.getAssignCouponAgentId() == null ? other.getAssignCouponAgentId() == null : this.getAssignCouponAgentId().equals(other.getAssignCouponAgentId())) + && (this.getAssignAgentId() == null ? other.getAssignAgentId() == null : this.getAssignAgentId().equals(other.getAssignAgentId())) + && (this.getAssignAgentName() == null ? other.getAssignAgentName() == null : this.getAssignAgentName().equals(other.getAssignAgentName())) && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark())) && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime())) && (this.getSalesTime() == null ? other.getSalesTime() == null : this.getSalesTime().equals(other.getSalesTime())) @@ -318,6 +360,9 @@ public class HighCouponAgentCode extends HighCouponAgentCodeModel implements Ser result = prime * result + ((getCouponCode() == null) ? 0 : getCouponCode().hashCode()); result = prime * result + ((getQrCode() == null) ? 0 : getQrCode().hashCode()); result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode()); + result = prime * result + ((getAssignCouponAgentId() == null) ? 0 : getAssignCouponAgentId().hashCode()); + result = prime * result + ((getAssignAgentId() == null) ? 0 : getAssignAgentId().hashCode()); + result = prime * result + ((getAssignAgentName() == null) ? 0 : getAssignAgentName().hashCode()); result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode()); result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode()); result = prime * result + ((getSalesTime() == null) ? 0 : getSalesTime().hashCode()); @@ -347,6 +392,9 @@ public class HighCouponAgentCode extends HighCouponAgentCodeModel implements Ser sb.append(", couponCode=").append(couponCode); sb.append(", qrCode=").append(qrCode); sb.append(", status=").append(status); + sb.append(", assignCouponAgentId=").append(assignCouponAgentId); + sb.append(", assignAgentId=").append(assignAgentId); + sb.append(", assignAgentName=").append(assignAgentName); sb.append(", remark=").append(remark); sb.append(", createTime=").append(createTime); sb.append(", salesTime=").append(salesTime); diff --git a/hai-service/src/main/java/com/hai/entity/HighCouponAgentCodeExample.java b/hai-service/src/main/java/com/hai/entity/HighCouponAgentCodeExample.java index 44123806..624a22d1 100644 --- a/hai-service/src/main/java/com/hai/entity/HighCouponAgentCodeExample.java +++ b/hai-service/src/main/java/com/hai/entity/HighCouponAgentCodeExample.java @@ -885,6 +885,196 @@ public class HighCouponAgentCodeExample { return (Criteria) this; } + public Criteria andAssignCouponAgentIdIsNull() { + addCriterion("assign_coupon_agent_id is null"); + return (Criteria) this; + } + + public Criteria andAssignCouponAgentIdIsNotNull() { + addCriterion("assign_coupon_agent_id is not null"); + return (Criteria) this; + } + + public Criteria andAssignCouponAgentIdEqualTo(Long value) { + addCriterion("assign_coupon_agent_id =", value, "assignCouponAgentId"); + return (Criteria) this; + } + + public Criteria andAssignCouponAgentIdNotEqualTo(Long value) { + addCriterion("assign_coupon_agent_id <>", value, "assignCouponAgentId"); + return (Criteria) this; + } + + public Criteria andAssignCouponAgentIdGreaterThan(Long value) { + addCriterion("assign_coupon_agent_id >", value, "assignCouponAgentId"); + return (Criteria) this; + } + + public Criteria andAssignCouponAgentIdGreaterThanOrEqualTo(Long value) { + addCriterion("assign_coupon_agent_id >=", value, "assignCouponAgentId"); + return (Criteria) this; + } + + public Criteria andAssignCouponAgentIdLessThan(Long value) { + addCriterion("assign_coupon_agent_id <", value, "assignCouponAgentId"); + return (Criteria) this; + } + + public Criteria andAssignCouponAgentIdLessThanOrEqualTo(Long value) { + addCriterion("assign_coupon_agent_id <=", value, "assignCouponAgentId"); + return (Criteria) this; + } + + public Criteria andAssignCouponAgentIdIn(List values) { + addCriterion("assign_coupon_agent_id in", values, "assignCouponAgentId"); + return (Criteria) this; + } + + public Criteria andAssignCouponAgentIdNotIn(List values) { + addCriterion("assign_coupon_agent_id not in", values, "assignCouponAgentId"); + return (Criteria) this; + } + + public Criteria andAssignCouponAgentIdBetween(Long value1, Long value2) { + addCriterion("assign_coupon_agent_id between", value1, value2, "assignCouponAgentId"); + return (Criteria) this; + } + + public Criteria andAssignCouponAgentIdNotBetween(Long value1, Long value2) { + addCriterion("assign_coupon_agent_id not between", value1, value2, "assignCouponAgentId"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdIsNull() { + addCriterion("assign_agent_id is null"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdIsNotNull() { + addCriterion("assign_agent_id is not null"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdEqualTo(Long value) { + addCriterion("assign_agent_id =", value, "assignAgentId"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdNotEqualTo(Long value) { + addCriterion("assign_agent_id <>", value, "assignAgentId"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdGreaterThan(Long value) { + addCriterion("assign_agent_id >", value, "assignAgentId"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdGreaterThanOrEqualTo(Long value) { + addCriterion("assign_agent_id >=", value, "assignAgentId"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdLessThan(Long value) { + addCriterion("assign_agent_id <", value, "assignAgentId"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdLessThanOrEqualTo(Long value) { + addCriterion("assign_agent_id <=", value, "assignAgentId"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdIn(List values) { + addCriterion("assign_agent_id in", values, "assignAgentId"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdNotIn(List values) { + addCriterion("assign_agent_id not in", values, "assignAgentId"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdBetween(Long value1, Long value2) { + addCriterion("assign_agent_id between", value1, value2, "assignAgentId"); + return (Criteria) this; + } + + public Criteria andAssignAgentIdNotBetween(Long value1, Long value2) { + addCriterion("assign_agent_id not between", value1, value2, "assignAgentId"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameIsNull() { + addCriterion("assign_agent_name is null"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameIsNotNull() { + addCriterion("assign_agent_name is not null"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameEqualTo(String value) { + addCriterion("assign_agent_name =", value, "assignAgentName"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameNotEqualTo(String value) { + addCriterion("assign_agent_name <>", value, "assignAgentName"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameGreaterThan(String value) { + addCriterion("assign_agent_name >", value, "assignAgentName"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameGreaterThanOrEqualTo(String value) { + addCriterion("assign_agent_name >=", value, "assignAgentName"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameLessThan(String value) { + addCriterion("assign_agent_name <", value, "assignAgentName"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameLessThanOrEqualTo(String value) { + addCriterion("assign_agent_name <=", value, "assignAgentName"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameLike(String value) { + addCriterion("assign_agent_name like", value, "assignAgentName"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameNotLike(String value) { + addCriterion("assign_agent_name not like", value, "assignAgentName"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameIn(List values) { + addCriterion("assign_agent_name in", values, "assignAgentName"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameNotIn(List values) { + addCriterion("assign_agent_name not in", values, "assignAgentName"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameBetween(String value1, String value2) { + addCriterion("assign_agent_name between", value1, value2, "assignAgentName"); + return (Criteria) this; + } + + public Criteria andAssignAgentNameNotBetween(String value1, String value2) { + addCriterion("assign_agent_name not between", value1, value2, "assignAgentName"); + return (Criteria) this; + } + public Criteria andRemarkIsNull() { addCriterion("remark is null"); return (Criteria) this; diff --git a/hai-service/src/main/java/com/hai/entity/HighCouponAgentRel.java b/hai-service/src/main/java/com/hai/entity/HighCouponAgentRel.java index 57d98c69..b92de4a6 100644 --- a/hai-service/src/main/java/com/hai/entity/HighCouponAgentRel.java +++ b/hai-service/src/main/java/com/hai/entity/HighCouponAgentRel.java @@ -21,6 +21,11 @@ public class HighCouponAgentRel extends HighCouponAgentRelModel implements Seria */ private Long id; + /** + * 上级关系 + */ + private Long parentCouponAgentId; + /** * 类型 1:销售码 2:兑换码 */ @@ -92,6 +97,14 @@ public class HighCouponAgentRel extends HighCouponAgentRelModel implements Seria this.id = id; } + public Long getParentCouponAgentId() { + return parentCouponAgentId; + } + + public void setParentCouponAgentId(Long parentCouponAgentId) { + this.parentCouponAgentId = parentCouponAgentId; + } + public Integer getType() { return type; } @@ -217,6 +230,7 @@ public class HighCouponAgentRel extends HighCouponAgentRelModel implements Seria } HighCouponAgentRel other = (HighCouponAgentRel) that; return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getParentCouponAgentId() == null ? other.getParentCouponAgentId() == null : this.getParentCouponAgentId().equals(other.getParentCouponAgentId())) && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType())) && (this.getCouponName() == null ? other.getCouponName() == null : this.getCouponName().equals(other.getCouponName())) && (this.getSalesPrice() == null ? other.getSalesPrice() == null : this.getSalesPrice().equals(other.getSalesPrice())) @@ -238,6 +252,7 @@ public class HighCouponAgentRel extends HighCouponAgentRelModel implements Seria final int prime = 31; int result = 1; result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getParentCouponAgentId() == null) ? 0 : getParentCouponAgentId().hashCode()); result = prime * result + ((getType() == null) ? 0 : getType().hashCode()); result = prime * result + ((getCouponName() == null) ? 0 : getCouponName().hashCode()); result = prime * result + ((getSalesPrice() == null) ? 0 : getSalesPrice().hashCode()); @@ -262,6 +277,7 @@ public class HighCouponAgentRel extends HighCouponAgentRelModel implements Seria sb.append(" ["); sb.append("Hash = ").append(hashCode()); sb.append(", id=").append(id); + sb.append(", parentCouponAgentId=").append(parentCouponAgentId); sb.append(", type=").append(type); sb.append(", couponName=").append(couponName); sb.append(", salesPrice=").append(salesPrice); diff --git a/hai-service/src/main/java/com/hai/entity/HighCouponAgentRelExample.java b/hai-service/src/main/java/com/hai/entity/HighCouponAgentRelExample.java index 59ebd92c..cd6d1606 100644 --- a/hai-service/src/main/java/com/hai/entity/HighCouponAgentRelExample.java +++ b/hai-service/src/main/java/com/hai/entity/HighCouponAgentRelExample.java @@ -186,6 +186,66 @@ public class HighCouponAgentRelExample { return (Criteria) this; } + public Criteria andParentCouponAgentIdIsNull() { + addCriterion("parent_coupon_agent_id is null"); + return (Criteria) this; + } + + public Criteria andParentCouponAgentIdIsNotNull() { + addCriterion("parent_coupon_agent_id is not null"); + return (Criteria) this; + } + + public Criteria andParentCouponAgentIdEqualTo(Long value) { + addCriterion("parent_coupon_agent_id =", value, "parentCouponAgentId"); + return (Criteria) this; + } + + public Criteria andParentCouponAgentIdNotEqualTo(Long value) { + addCriterion("parent_coupon_agent_id <>", value, "parentCouponAgentId"); + return (Criteria) this; + } + + public Criteria andParentCouponAgentIdGreaterThan(Long value) { + addCriterion("parent_coupon_agent_id >", value, "parentCouponAgentId"); + return (Criteria) this; + } + + public Criteria andParentCouponAgentIdGreaterThanOrEqualTo(Long value) { + addCriterion("parent_coupon_agent_id >=", value, "parentCouponAgentId"); + return (Criteria) this; + } + + public Criteria andParentCouponAgentIdLessThan(Long value) { + addCriterion("parent_coupon_agent_id <", value, "parentCouponAgentId"); + return (Criteria) this; + } + + public Criteria andParentCouponAgentIdLessThanOrEqualTo(Long value) { + addCriterion("parent_coupon_agent_id <=", value, "parentCouponAgentId"); + return (Criteria) this; + } + + public Criteria andParentCouponAgentIdIn(List values) { + addCriterion("parent_coupon_agent_id in", values, "parentCouponAgentId"); + return (Criteria) this; + } + + public Criteria andParentCouponAgentIdNotIn(List values) { + addCriterion("parent_coupon_agent_id not in", values, "parentCouponAgentId"); + return (Criteria) this; + } + + public Criteria andParentCouponAgentIdBetween(Long value1, Long value2) { + addCriterion("parent_coupon_agent_id between", value1, value2, "parentCouponAgentId"); + return (Criteria) this; + } + + public Criteria andParentCouponAgentIdNotBetween(Long value1, Long value2) { + addCriterion("parent_coupon_agent_id not between", value1, value2, "parentCouponAgentId"); + return (Criteria) this; + } + public Criteria andTypeIsNull() { addCriterion("`type` is null"); return (Criteria) this; diff --git a/hai-service/src/main/java/com/hai/service/HighAgentService.java b/hai-service/src/main/java/com/hai/service/HighAgentService.java index f81df352..a96d9c79 100644 --- a/hai-service/src/main/java/com/hai/service/HighAgentService.java +++ b/hai-service/src/main/java/com/hai/service/HighAgentService.java @@ -25,7 +25,7 @@ public interface HighAgentService { * @throws Exception 抛出异常 */ - List getListAgentMsg(Map map) throws Exception; + List getListAgentMsg(Map map) throws Exception; /** * @@ -61,6 +61,17 @@ public interface HighAgentService { */ void updateAgentMsg(HighAgentModel highAgentModel) throws Exception; + /** + * + * @Title: insertUser + * @Description: 新增代理商信息 + * @author: Sum1Dream + * @Date: 2021/03/09 11:23 + * @param: [highUser] 用户信息 + * @return: com.hai.entity.HighAgentMsg + */ + void insertChildAgent(HighAgent agent) throws Exception ; + /** * * @Title: insertUser diff --git a/hai-service/src/main/java/com/hai/service/HighCouponAgentService.java b/hai-service/src/main/java/com/hai/service/HighCouponAgentService.java index a8dda49e..198b87f5 100644 --- a/hai-service/src/main/java/com/hai/service/HighCouponAgentService.java +++ b/hai-service/src/main/java/com/hai/service/HighCouponAgentService.java @@ -3,6 +3,7 @@ package com.hai.service; import com.hai.entity.HighCouponAgentCode; import com.hai.entity.HighCouponAgentRecord; import com.hai.entity.HighCouponAgentRel; +import com.hai.entity.HighCouponCode; import org.apache.ibatis.annotations.Param; import java.security.PrivateKey; @@ -37,6 +38,13 @@ public interface HighCouponAgentService { **/ HighCouponAgentRel getRelByCouponAgent(Long couponId,Long agentId, Integer type); + /** + * 根据id查询关系 + * @param couponAgentRelId + * @return + */ + HighCouponAgentRel getRelById(Long couponAgentRelId); + /** * @Author 胡锐 * @Description 查询卡券与代理商关系列表 @@ -135,4 +143,10 @@ public interface HighCouponAgentService { */ Map pushGzSinopec(Long couponAgentRelId, String phone, String remark) throws Exception; + /** + * 查询代理商未分配的 销售码、兑换码 + * @param couponAgentRelId + * @return + */ + List getNoSaleCode(Long couponAgentRelId); } diff --git a/hai-service/src/main/java/com/hai/service/impl/HighAgentServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/HighAgentServiceImpl.java index acd2225f..6acd5dab 100644 --- a/hai-service/src/main/java/com/hai/service/impl/HighAgentServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/HighAgentServiceImpl.java @@ -8,8 +8,11 @@ import com.hai.entity.SecUser; import com.hai.model.HighAgentModel; import com.hai.service.HighAgentService; import com.hai.service.SecUserService; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Date; @@ -31,27 +34,36 @@ public class HighAgentServiceImpl implements HighAgentService { private SecUserService secUserService; @Override - public List getListAgentMsg(Map map) throws Exception { + public List getListAgentMsg(Map map) throws Exception { HighAgentExample example = new HighAgentExample(); HighAgentExample.Criteria criteria = example.createCriteria(); - if (StringUtils.isNotBlank(map.get("agentName"))) { + if (MapUtils.getLong(map, "parentAgentId") != null) { + criteria.andParentIdEqualTo(MapUtils.getLong(map, "parentAgentId")); + } + + if (StringUtils.isNotBlank(MapUtils.getString(map, "agentName"))) { criteria.andAgentNameLike("%" + map.get("agentName") + "%"); } - if (StringUtils.isNotBlank(map.get("agentPhone"))) { - criteria.andAgentPhoneEqualTo( map.get("agentPhone")); + + if (StringUtils.isNotBlank(MapUtils.getString(map, "agentPhone"))) { + criteria.andAgentPhoneEqualTo(MapUtils.getString(map, "agentPhone")); } - if (StringUtils.isNotBlank(map.get("status"))) { - criteria.andStatusEqualTo(Integer.valueOf(map.get("status"))); + + if (MapUtils.getInteger(map, "status") != null) { + criteria.andStatusEqualTo(MapUtils.getInteger(map, "status")); } - if (StringUtils.isNotBlank(map.get("type"))) { - criteria.andTypeEqualTo(Integer.valueOf(map.get("type"))); + + if (MapUtils.getInteger(map, "type") != null) { + criteria.andTypeEqualTo(MapUtils.getInteger(map, "type")); } - if (StringUtils.isNotBlank(map.get("operatorId"))) { - criteria.andOperatorIdEqualTo(Long.valueOf(map.get("operatorId"))); + + if (MapUtils.getLong(map, "operatorId") != null) { + criteria.andOperatorIdEqualTo(MapUtils.getLong(map, "operatorId")); } + example.setOrderByClause("create_time desc"); return highAgentMapper.selectByExample(example); } @@ -89,6 +101,25 @@ public class HighAgentServiceImpl implements HighAgentService { } } + @Override + @Transactional(propagation= Propagation.REQUIRES_NEW) + public void insertChildAgent(HighAgent agent) throws Exception { + highAgentMapper.insert(agent); + + SecUser secUser = new SecUser(); + secUser.setUserName(agent.getUserName()); + secUser.setLoginName(agent.getAgentPhone()); + secUser.setPassword(MD5Util.encode("123456".getBytes())); + secUser.setAdminFlag(1); + secUser.setStatus(1); + secUser.setRoleId(6L); + secUser.setObjectType(4); + secUser.setObjectId(agent.getId()); + secUser.setCreateTime(new Date()); + secUser.setUpdateTime(new Date()); + secUserService.addUser(secUser); + } + @Override public void insertAgentMsg(HighAgentModel highAgentModel) throws Exception { highAgentMapper.insert(highAgentModel); diff --git a/hai-service/src/main/java/com/hai/service/impl/HighCouponAgentServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/HighCouponAgentServiceImpl.java index 17727303..8b3569c9 100644 --- a/hai-service/src/main/java/com/hai/service/impl/HighCouponAgentServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/HighCouponAgentServiceImpl.java @@ -72,7 +72,6 @@ public class HighCouponAgentServiceImpl implements HighCouponAgentService { @Override @Transactional(propagation= Propagation.REQUIRES_NEW) public void assignCouponAgent(HighCouponAgentRel highCouponAgentRel,Integer stockCount) { - if (highCouponAgentRel.getId() != null) { highCouponAgentRelMapper.updateByPrimaryKey(highCouponAgentRel); } else { @@ -99,51 +98,92 @@ public class HighCouponAgentServiceImpl implements HighCouponAgentService { record.setCreateTime(new Date()); highCouponAgentRecordMapper.insert(record); - if (highCouponAgentRel.getType() == 1) { - // 查询未销售的卡券 - List codeList = highCouponCodeService.getNoSaleCode(highCouponAgentRel.getCouponId()); - if (stockCount > codeList.size()) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法分配,分配数量超过库存数量"); + if (highCouponAgentRel.getParentCouponAgentId() == null) { + if (highCouponAgentRel.getType() == 1) { + // 查询未销售的卡券 + List codeList = highCouponCodeService.getNoSaleCode(highCouponAgentRel.getCouponId()); + if (stockCount > codeList.size()) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法分配,分配数量超过库存数量"); + } + List assignCouponCodeList = codeList.stream().limit(stockCount).collect(Collectors.toList()); + HighCouponAgentCode highCouponAgentCode; + for (HighCouponCode code : assignCouponCodeList) { + code.setAgentId(highCouponAgentRel.getAgentId()); + code.setIsAssignAgent(true); + highCouponCodeService.updateCouponCode(code); + + highCouponAgentCode = new HighCouponAgentCode(); + highCouponAgentCode.setType(highCouponAgentRel.getType()); + highCouponAgentCode.setCouponAgentId(highCouponAgentRel.getId()); + highCouponAgentCode.setCouponAgentRecordId(record.getId()); + highCouponAgentCode.setCouponId(code.getCouponId()); + highCouponAgentCode.setAgentId(highCouponAgentRel.getAgentId()); + highCouponAgentCode.setCouponCodeId(code.getId()); + highCouponAgentCode.setCouponCode(code.getSalesCode()); + highCouponAgentCode.setQrCode(code.getExt1()); + highCouponAgentCode.setStatus(1); + highCouponAgentCode.setCreateTime(new Date()); + highCouponAgentCode.setOperatorId(highCouponAgentRel.getOperatorId()); + highCouponAgentCode.setOperatorName(highCouponAgentRel.getOperatorName()); + highCouponAgentCodeMapper.insert(highCouponAgentCode); + } } - List assignCouponCodeList = codeList.stream().limit(stockCount).collect(Collectors.toList()); - HighCouponAgentCode highCouponAgentCode; - for (HighCouponCode code : assignCouponCodeList) { - code.setAgentId(highCouponAgentRel.getAgentId()); - code.setIsAssignAgent(true); - highCouponCodeService.updateCouponCode(code); - - highCouponAgentCode = new HighCouponAgentCode(); - highCouponAgentCode.setType(highCouponAgentRel.getType()); - highCouponAgentCode.setCouponAgentId(highCouponAgentRel.getId()); - highCouponAgentCode.setCouponAgentRecordId(record.getId()); - highCouponAgentCode.setCouponId(code.getCouponId()); - highCouponAgentCode.setAgentId(highCouponAgentRel.getAgentId()); - highCouponAgentCode.setCouponCodeId(code.getId()); - highCouponAgentCode.setCouponCode(code.getSalesCode()); - highCouponAgentCode.setQrCode(code.getExt1()); - highCouponAgentCode.setStatus(1); - highCouponAgentCode.setCreateTime(new Date()); - highCouponAgentCode.setOperatorId(highCouponAgentRel.getOperatorId()); - highCouponAgentCode.setOperatorName(highCouponAgentRel.getOperatorName()); - highCouponAgentCodeMapper.insert(highCouponAgentCode); + + if (highCouponAgentRel.getType() == 2) { + HighCouponAgentCode highCouponAgentCode; + for (int i = 0; i < stockCount; i++) { + highCouponAgentCode = new HighCouponAgentCode(); + highCouponAgentCode.setType(highCouponAgentRel.getType()); + highCouponAgentCode.setCouponAgentId(highCouponAgentRel.getId()); + highCouponAgentCode.setCouponAgentRecordId(record.getId()); + highCouponAgentCode.setCouponId(highCoupon.getId()); + highCouponAgentCode.setAgentId(highCouponAgentRel.getAgentId()); + highCouponAgentCode.setConvertCode(generateConvertCode(highCouponAgentRel.getId())); + highCouponAgentCode.setStatus(1); + highCouponAgentCode.setCreateTime(new Date()); + highCouponAgentCode.setOperatorId(highCouponAgentRel.getOperatorId()); + highCouponAgentCode.setOperatorName(highCouponAgentRel.getOperatorName()); + highCouponAgentCodeMapper.insert(highCouponAgentCode); + } } } - if (highCouponAgentRel.getType() == 2) { - HighCouponAgentCode highCouponAgentCode; + if (highCouponAgentRel.getParentCouponAgentId() != null) { + + // 父级代理商库存 + HighCouponAgentRel parentRel = getRelById(highCouponAgentRel.getParentCouponAgentId()); + if (parentRel == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到代理商"); + } + parentRel.setStockCount(parentRel.getStockCount() - stockCount); + parentRel.setSalesCount(parentRel.getSalesCount() + stockCount); + highCouponAgentRelMapper.updateByPrimaryKey(parentRel); + + // 查询父代理商未分配的码值 + List codeList = getNoSaleCode(parentRel.getId()); + if (codeList.size() < stockCount) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "库存数量不足"); + } for (int i = 0; i < stockCount; i++) { - highCouponAgentCode = new HighCouponAgentCode(); - highCouponAgentCode.setType(highCouponAgentRel.getType()); - highCouponAgentCode.setCouponAgentId(highCouponAgentRel.getId()); - highCouponAgentCode.setCouponAgentRecordId(record.getId()); - highCouponAgentCode.setCouponId(highCoupon.getId()); - highCouponAgentCode.setAgentId(highCouponAgentRel.getAgentId()); - highCouponAgentCode.setConvertCode(generateConvertCode(highCouponAgentRel.getId())); - highCouponAgentCode.setStatus(1); - highCouponAgentCode.setCreateTime(new Date()); - highCouponAgentCode.setOperatorId(highCouponAgentRel.getOperatorId()); - highCouponAgentCode.setOperatorName(highCouponAgentRel.getOperatorName()); - highCouponAgentCodeMapper.insert(highCouponAgentCode); + HighCouponAgentCode code = codeList.get(i); + code.setAssignCouponAgentId(highCouponAgentRel.getId()); + code.setAssignAgentId(highAgent.getId()); + code.setAssignAgentName(highAgent.getAgentName()); + code.setStatus(4); + highCouponAgentCodeMapper.updateByPrimaryKey(code); + + code.setId(null); + code.setAssignCouponAgentId(null); + code.setAssignAgentId(null); + code.setAssignAgentName(null); + code.setStatus(1); + code.setAgentId(highCouponAgentRel.getAgentId()); + code.setCouponAgentId(highCouponAgentRel.getId()); + code.setCouponAgentRecordId(record.getId()); + code.setCreateTime(new Date()); + code.setOperatorId(highCouponAgentRel.getOperatorId()); + code.setOperatorName(highCouponAgentRel.getOperatorName()); + highCouponAgentCodeMapper.insert(code); } } } @@ -164,6 +204,11 @@ public class HighCouponAgentServiceImpl implements HighCouponAgentService { return null; } + @Override + public HighCouponAgentRel getRelById(Long couponAgentRelId) { + return highCouponAgentRelMapper.selectByPrimaryKey(couponAgentRelId); + } + @Override public List getCouponAgentList(Map map) { HighCouponAgentRelExample example = new HighCouponAgentRelExample(); @@ -617,4 +662,13 @@ public class HighCouponAgentServiceImpl implements HighCouponAgentService { map.put("couponAgentCode", convertCode); return map; } + + @Override + public List getNoSaleCode(Long couponAgentRelId) { + HighCouponAgentCodeExample example = new HighCouponAgentCodeExample(); + example.createCriteria().andStatusEqualTo(1).andCouponAgentIdEqualTo(couponAgentRelId); + example.setOrderByClause("create_time desc"); + return highCouponAgentCodeMapper.selectByExample(example); + } + }