diff --git a/hai-bweb/src/main/java/com/bweb/config/AuthConfig.java b/hai-bweb/src/main/java/com/bweb/config/AuthConfig.java index 7c223cf0..54f3b110 100644 --- a/hai-bweb/src/main/java/com/bweb/config/AuthConfig.java +++ b/hai-bweb/src/main/java/com/bweb/config/AuthConfig.java @@ -93,6 +93,7 @@ public class AuthConfig implements WebMvcConfigurer { .excludePathPatterns("/login/logout") .excludePathPatterns("/common/*") .excludePathPatterns("/sms/*") + .excludePathPatterns("/telApi/*") .excludePathPatterns("/cmsContent/get*") ; } diff --git a/hai-bweb/src/main/java/com/bweb/controller/TelApiController.java b/hai-bweb/src/main/java/com/bweb/controller/TelApiController.java new file mode 100644 index 00000000..749dd395 --- /dev/null +++ b/hai-bweb/src/main/java/com/bweb/controller/TelApiController.java @@ -0,0 +1,167 @@ +package com.bweb.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.hai.common.exception.ErrorCode; +import com.hai.common.exception.ErrorHelp; +import com.hai.common.exception.SysCode; +import com.hai.common.pay.util.IOUtil; +import com.hai.common.pay.util.XmlUtil; +import com.hai.common.utils.*; +import com.hai.entity.HighDiscount; +import com.hai.entity.HighTelOrder; +import com.hai.model.ResponseData; +import com.hai.service.TelApiService; +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.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.BufferedOutputStream; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.SortedMap; +import java.util.regex.Pattern; + +@RestController +@RequestMapping(value = "/telApi") +@Api(value = "电话费充值数据接口") +public class TelApiController { + private static Logger log = LoggerFactory.getLogger(TelApiController.class); + + @Resource + private TelApiService telApiService; + + /** + * 中国电信号码格式验证 手机段: 133,153,180,181,189,177,1700,173,199 + **/ + private static final String CHINA_TELECOM_PATTERN = "(^1(33|53|77|73|99|8[019])\\d{8}$)|(^1700\\d{7}$)"; + + /** + * 中国联通号码格式验证 手机段:130,131,132,155,156,185,186,145,176,1709 + **/ + private static final String CHINA_UNICOM_PATTERN = "(^1(3[0-2]|4[5]|5[56]|7[6]|8[56])\\d{8}$)|(^1709\\d{7}$)"; + + /** + * 中国移动号码格式验证 + * 手机段:134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705 + **/ + private static final String CHINA_MOBILE_PATTERN = "(^1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\\d{8}$)|(^1705\\d{7}$)"; + + + @RequestMapping(value = "/telPay", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "充值话费") + public ResponseData certification(@RequestBody HighTelOrder highTelOrder) { + try { + + if (StringUtils.isBlank(highTelOrder.getTel()) || + highTelOrder.getPrice() == null + ) { + log.error("telApi -> telPay() error!", "参数错误"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + + int random = (int) (1 + Math.random() * (999999 - 100000 + 1)); + + Map map = new HashMap<>(); + + String mchid = "HFb44f8_10004"; + String tel = highTelOrder.getTel(); + String orderid = "HF" + DateUtil.date2String(new Date(), "yyyyMMddHHmmss") + IDGenerator.nextId(5); + BigDecimal price = BigDecimal.valueOf(highTelOrder.getPrice()); + String teltype = isChinaMobilePhoneNum(highTelOrder.getTel()).toString(); + int timeout = 300; + String notify = "notify"; + String time = String.valueOf(new Date().getTime()); + String APIKEY = "483e5a68fe9bda2f7ab3f2665a0006cd"; + String sign = mchid + tel + price + orderid + teltype + notify + time + random + APIKEY; + + String param = "mchid=" + mchid + + "&tel=" + tel + + "&orderid=" + orderid + + "&price=" + price + + "&teltype=" + teltype + + "¬ify=" + notify + + "&time=" + time + + "&rand=" + random + + "&sign=" + MD5Util.encode(sign.getBytes()); + map.put("from", param); + + JSONObject object = HttpsUtils.doSmsPost("http://45.130.154.125:9998/api/telpay", map, new HashMap<>()); + return ResponseMsgUtil.success(object); + } catch (Exception e) { + log.error("HighMerchantController -> insertMerchant() error!", e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value = "/notify", method = RequestMethod.POST) + @ApiOperation(value = "话费充值 -> 异步回调") + public void wechatNotify(HttpServletRequest request, HttpServletResponse response) { + try { + + log.info("话费充值 -> 异步通知:处理开始"); + + String notifyXml = null; // 话费充值系统发送的数据(格式) + notifyXml = IOUtil.inputStreamToString(request.getInputStream(), "UTF-8"); + + log.info("话费充值系统发送的数据:" + notifyXml); + SortedMap map = XmlUtil.parseXmlToTreeMap(notifyXml, "UTF-8"); + +// resXml = notifyService.wechatNotify(map); +// +// +// BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream()); +// out.write(resXml.getBytes()); +// out.flush(); +// out.close(); + log.info("话费充值 -> 异步通知:处理完成"); + } catch (Exception e) { + log.error("WechatPayController --> wechatNotify() error!", e); + } + } + + /** + * 查询电话属于哪个运营商 + * + * @param tel 手机号码 + * @return 0:不属于任何一个运营商,0:移动,1:联通,2:电信 99: 什么都不是 + */ + public Integer isChinaMobilePhoneNum(String tel) { + boolean b1 = tel != null && !tel.trim().equals("") && match(CHINA_MOBILE_PATTERN, tel); + if (b1) { + return 0; + } + b1 = tel != null && !tel.trim().equals("") && match(CHINA_UNICOM_PATTERN, tel); + if (b1) { + return 1; + } + b1 = tel != null && !tel.trim().equals("") && match(CHINA_TELECOM_PATTERN, tel); + if (b1) { + return 2; + } + return 99; + } + + /** + * 匹配函数 + * + * @param regex + * @param tel + * @return + */ + private static boolean match(String regex, String tel) { + return Pattern.matches(regex, tel); + } + + +} diff --git a/hai-service/src/main/java/com/hai/dao/HighTelOrderMapper.java b/hai-service/src/main/java/com/hai/dao/HighTelOrderMapper.java new file mode 100644 index 00000000..e2b74234 --- /dev/null +++ b/hai-service/src/main/java/com/hai/dao/HighTelOrderMapper.java @@ -0,0 +1,128 @@ +package com.hai.dao; + +import com.hai.entity.HighTelOrder; +import com.hai.entity.HighTelOrderExample; +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 HighTelOrderMapper extends HighTelOrderMapperExt { + @SelectProvider(type=HighTelOrderSqlProvider.class, method="countByExample") + long countByExample(HighTelOrderExample example); + + @DeleteProvider(type=HighTelOrderSqlProvider.class, method="deleteByExample") + int deleteByExample(HighTelOrderExample example); + + @Delete({ + "delete from high_tel_order", + "where id = #{id,jdbcType=INTEGER}" + }) + int deleteByPrimaryKey(Integer id); + + @Insert({ + "insert into high_tel_order (order_id, out_order_id, ", + "mchid, tel, price, ", + "`status`, pay_time, ", + "create_time, update_time, ", + "ext_1, ext_2, ext_3)", + "values (#{orderId,jdbcType=VARCHAR}, #{outOrderId,jdbcType=VARCHAR}, ", + "#{mchid,jdbcType=VARCHAR}, #{tel,jdbcType=VARCHAR}, #{price,jdbcType=DECIMAL}, ", + "#{status,jdbcType=INTEGER}, #{payTime,jdbcType=TIMESTAMP}, ", + "#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, ", + "#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" + }) + @Options(useGeneratedKeys=true,keyProperty="id") + int insert(HighTelOrder record); + + @InsertProvider(type=HighTelOrderSqlProvider.class, method="insertSelective") + @Options(useGeneratedKeys=true,keyProperty="id") + int insertSelective(HighTelOrder record); + + @SelectProvider(type=HighTelOrderSqlProvider.class, method="selectByExample") + @Results({ + @Result(column="id", property="id", jdbcType=JdbcType.INTEGER, id=true), + @Result(column="order_id", property="orderId", jdbcType=JdbcType.VARCHAR), + @Result(column="out_order_id", property="outOrderId", jdbcType=JdbcType.VARCHAR), + @Result(column="mchid", property="mchid", jdbcType=JdbcType.VARCHAR), + @Result(column="tel", property="tel", jdbcType=JdbcType.VARCHAR), + @Result(column="price", property="price", jdbcType=JdbcType.DECIMAL), + @Result(column="status", property="status", jdbcType=JdbcType.INTEGER), + @Result(column="pay_time", property="payTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="update_time", property="updateTime", 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 selectByExample(HighTelOrderExample example); + + @Select({ + "select", + "id, order_id, out_order_id, mchid, tel, price, `status`, pay_time, create_time, ", + "update_time, ext_1, ext_2, ext_3", + "from high_tel_order", + "where id = #{id,jdbcType=INTEGER}" + }) + @Results({ + @Result(column="id", property="id", jdbcType=JdbcType.INTEGER, id=true), + @Result(column="order_id", property="orderId", jdbcType=JdbcType.VARCHAR), + @Result(column="out_order_id", property="outOrderId", jdbcType=JdbcType.VARCHAR), + @Result(column="mchid", property="mchid", jdbcType=JdbcType.VARCHAR), + @Result(column="tel", property="tel", jdbcType=JdbcType.VARCHAR), + @Result(column="price", property="price", jdbcType=JdbcType.DECIMAL), + @Result(column="status", property="status", jdbcType=JdbcType.INTEGER), + @Result(column="pay_time", property="payTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="update_time", property="updateTime", 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) + }) + HighTelOrder selectByPrimaryKey(Integer id); + + @UpdateProvider(type=HighTelOrderSqlProvider.class, method="updateByExampleSelective") + int updateByExampleSelective(@Param("record") HighTelOrder record, @Param("example") HighTelOrderExample example); + + @UpdateProvider(type=HighTelOrderSqlProvider.class, method="updateByExample") + int updateByExample(@Param("record") HighTelOrder record, @Param("example") HighTelOrderExample example); + + @UpdateProvider(type=HighTelOrderSqlProvider.class, method="updateByPrimaryKeySelective") + int updateByPrimaryKeySelective(HighTelOrder record); + + @Update({ + "update high_tel_order", + "set order_id = #{orderId,jdbcType=VARCHAR},", + "out_order_id = #{outOrderId,jdbcType=VARCHAR},", + "mchid = #{mchid,jdbcType=VARCHAR},", + "tel = #{tel,jdbcType=VARCHAR},", + "price = #{price,jdbcType=DECIMAL},", + "`status` = #{status,jdbcType=INTEGER},", + "pay_time = #{payTime,jdbcType=TIMESTAMP},", + "create_time = #{createTime,jdbcType=TIMESTAMP},", + "update_time = #{updateTime,jdbcType=TIMESTAMP},", + "ext_1 = #{ext1,jdbcType=VARCHAR},", + "ext_2 = #{ext2,jdbcType=VARCHAR},", + "ext_3 = #{ext3,jdbcType=VARCHAR}", + "where id = #{id,jdbcType=INTEGER}" + }) + int updateByPrimaryKey(HighTelOrder record); +} \ No newline at end of file diff --git a/hai-service/src/main/java/com/hai/dao/HighTelOrderMapperExt.java b/hai-service/src/main/java/com/hai/dao/HighTelOrderMapperExt.java new file mode 100644 index 00000000..a93ae699 --- /dev/null +++ b/hai-service/src/main/java/com/hai/dao/HighTelOrderMapperExt.java @@ -0,0 +1,7 @@ +package com.hai.dao; + +/** + * mapper扩展类 + */ +public interface HighTelOrderMapperExt { +} \ No newline at end of file diff --git a/hai-service/src/main/java/com/hai/dao/HighTelOrderSqlProvider.java b/hai-service/src/main/java/com/hai/dao/HighTelOrderSqlProvider.java new file mode 100644 index 00000000..94062d10 --- /dev/null +++ b/hai-service/src/main/java/com/hai/dao/HighTelOrderSqlProvider.java @@ -0,0 +1,346 @@ +package com.hai.dao; + +import com.hai.entity.HighTelOrder; +import com.hai.entity.HighTelOrderExample.Criteria; +import com.hai.entity.HighTelOrderExample.Criterion; +import com.hai.entity.HighTelOrderExample; +import java.util.List; +import java.util.Map; +import org.apache.ibatis.jdbc.SQL; + +public class HighTelOrderSqlProvider { + + public String countByExample(HighTelOrderExample example) { + SQL sql = new SQL(); + sql.SELECT("count(*)").FROM("high_tel_order"); + applyWhere(sql, example, false); + return sql.toString(); + } + + public String deleteByExample(HighTelOrderExample example) { + SQL sql = new SQL(); + sql.DELETE_FROM("high_tel_order"); + applyWhere(sql, example, false); + return sql.toString(); + } + + public String insertSelective(HighTelOrder record) { + SQL sql = new SQL(); + sql.INSERT_INTO("high_tel_order"); + + if (record.getOrderId() != null) { + sql.VALUES("order_id", "#{orderId,jdbcType=VARCHAR}"); + } + + if (record.getOutOrderId() != null) { + sql.VALUES("out_order_id", "#{outOrderId,jdbcType=VARCHAR}"); + } + + if (record.getMchid() != null) { + sql.VALUES("mchid", "#{mchid,jdbcType=VARCHAR}"); + } + + if (record.getTel() != null) { + sql.VALUES("tel", "#{tel,jdbcType=VARCHAR}"); + } + + if (record.getPrice() != null) { + sql.VALUES("price", "#{price,jdbcType=DECIMAL}"); + } + + if (record.getStatus() != null) { + sql.VALUES("`status`", "#{status,jdbcType=INTEGER}"); + } + + if (record.getPayTime() != null) { + sql.VALUES("pay_time", "#{payTime,jdbcType=TIMESTAMP}"); + } + + if (record.getCreateTime() != null) { + sql.VALUES("create_time", "#{createTime,jdbcType=TIMESTAMP}"); + } + + if (record.getUpdateTime() != null) { + sql.VALUES("update_time", "#{updateTime,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(HighTelOrderExample example) { + SQL sql = new SQL(); + if (example != null && example.isDistinct()) { + sql.SELECT_DISTINCT("id"); + } else { + sql.SELECT("id"); + } + sql.SELECT("order_id"); + sql.SELECT("out_order_id"); + sql.SELECT("mchid"); + sql.SELECT("tel"); + sql.SELECT("price"); + sql.SELECT("`status`"); + sql.SELECT("pay_time"); + sql.SELECT("create_time"); + sql.SELECT("update_time"); + sql.SELECT("ext_1"); + sql.SELECT("ext_2"); + sql.SELECT("ext_3"); + sql.FROM("high_tel_order"); + applyWhere(sql, example, false); + + if (example != null && example.getOrderByClause() != null) { + sql.ORDER_BY(example.getOrderByClause()); + } + + return sql.toString(); + } + + public String updateByExampleSelective(Map parameter) { + HighTelOrder record = (HighTelOrder) parameter.get("record"); + HighTelOrderExample example = (HighTelOrderExample) parameter.get("example"); + + SQL sql = new SQL(); + sql.UPDATE("high_tel_order"); + + if (record.getId() != null) { + sql.SET("id = #{record.id,jdbcType=INTEGER}"); + } + + if (record.getOrderId() != null) { + sql.SET("order_id = #{record.orderId,jdbcType=VARCHAR}"); + } + + if (record.getOutOrderId() != null) { + sql.SET("out_order_id = #{record.outOrderId,jdbcType=VARCHAR}"); + } + + if (record.getMchid() != null) { + sql.SET("mchid = #{record.mchid,jdbcType=VARCHAR}"); + } + + if (record.getTel() != null) { + sql.SET("tel = #{record.tel,jdbcType=VARCHAR}"); + } + + if (record.getPrice() != null) { + sql.SET("price = #{record.price,jdbcType=DECIMAL}"); + } + + if (record.getStatus() != null) { + sql.SET("`status` = #{record.status,jdbcType=INTEGER}"); + } + + if (record.getPayTime() != null) { + sql.SET("pay_time = #{record.payTime,jdbcType=TIMESTAMP}"); + } + + if (record.getCreateTime() != null) { + sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}"); + } + + if (record.getUpdateTime() != null) { + sql.SET("update_time = #{record.updateTime,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 parameter) { + SQL sql = new SQL(); + sql.UPDATE("high_tel_order"); + + sql.SET("id = #{record.id,jdbcType=INTEGER}"); + sql.SET("order_id = #{record.orderId,jdbcType=VARCHAR}"); + sql.SET("out_order_id = #{record.outOrderId,jdbcType=VARCHAR}"); + sql.SET("mchid = #{record.mchid,jdbcType=VARCHAR}"); + sql.SET("tel = #{record.tel,jdbcType=VARCHAR}"); + sql.SET("price = #{record.price,jdbcType=DECIMAL}"); + sql.SET("`status` = #{record.status,jdbcType=INTEGER}"); + sql.SET("pay_time = #{record.payTime,jdbcType=TIMESTAMP}"); + sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}"); + sql.SET("update_time = #{record.updateTime,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}"); + + HighTelOrderExample example = (HighTelOrderExample) parameter.get("example"); + applyWhere(sql, example, true); + return sql.toString(); + } + + public String updateByPrimaryKeySelective(HighTelOrder record) { + SQL sql = new SQL(); + sql.UPDATE("high_tel_order"); + + if (record.getOrderId() != null) { + sql.SET("order_id = #{orderId,jdbcType=VARCHAR}"); + } + + if (record.getOutOrderId() != null) { + sql.SET("out_order_id = #{outOrderId,jdbcType=VARCHAR}"); + } + + if (record.getMchid() != null) { + sql.SET("mchid = #{mchid,jdbcType=VARCHAR}"); + } + + if (record.getTel() != null) { + sql.SET("tel = #{tel,jdbcType=VARCHAR}"); + } + + if (record.getPrice() != null) { + sql.SET("price = #{price,jdbcType=DECIMAL}"); + } + + if (record.getStatus() != null) { + sql.SET("`status` = #{status,jdbcType=INTEGER}"); + } + + if (record.getPayTime() != null) { + sql.SET("pay_time = #{payTime,jdbcType=TIMESTAMP}"); + } + + if (record.getCreateTime() != null) { + sql.SET("create_time = #{createTime,jdbcType=TIMESTAMP}"); + } + + if (record.getUpdateTime() != null) { + sql.SET("update_time = #{updateTime,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=INTEGER}"); + + return sql.toString(); + } + + protected void applyWhere(SQL sql, HighTelOrderExample 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 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 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()); + } + } +} \ No newline at end of file diff --git a/hai-service/src/main/java/com/hai/entity/HighTelOrder.java b/hai-service/src/main/java/com/hai/entity/HighTelOrder.java new file mode 100644 index 00000000..46415559 --- /dev/null +++ b/hai-service/src/main/java/com/hai/entity/HighTelOrder.java @@ -0,0 +1,257 @@ +package com.hai.entity; + +import java.io.Serializable; +import java.util.Date; + +/** + * high_tel_order + * @author + */ +/** + * + * 代码由工具生成 + * + **/ +public class HighTelOrder implements Serializable { + /** + * 主键ID + */ + private Integer id; + + /** + * 充值订单ID + */ + private String orderId; + + /** + * 官方订单号 + */ + private String outOrderId; + + /** + * 商户ID + */ + private String mchid; + + /** + * 充值手机号码 + */ + private String tel; + + /** + * 充值金额 + */ + private Long price; + + /** + * 交易结果(1 未支付 ,2 支付中 3.已支付 4.支付失败 + */ + private Integer status; + + /** + * 支付时间 + */ + private Date payTime; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * ext_1 + */ + private String ext1; + + /** + * ext_2 + */ + private String ext2; + + /** + * ext_3 + */ + private String ext3; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getOutOrderId() { + return outOrderId; + } + + public void setOutOrderId(String outOrderId) { + this.outOrderId = outOrderId; + } + + public String getMchid() { + return mchid; + } + + public void setMchid(String mchid) { + this.mchid = mchid; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public Long getPrice() { + return price; + } + + public void setPrice(Long price) { + this.price = price; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Date getPayTime() { + return payTime; + } + + public void setPayTime(Date payTime) { + this.payTime = payTime; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + 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; + } + HighTelOrder other = (HighTelOrder) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getOrderId() == null ? other.getOrderId() == null : this.getOrderId().equals(other.getOrderId())) + && (this.getOutOrderId() == null ? other.getOutOrderId() == null : this.getOutOrderId().equals(other.getOutOrderId())) + && (this.getMchid() == null ? other.getMchid() == null : this.getMchid().equals(other.getMchid())) + && (this.getTel() == null ? other.getTel() == null : this.getTel().equals(other.getTel())) + && (this.getPrice() == null ? other.getPrice() == null : this.getPrice().equals(other.getPrice())) + && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus())) + && (this.getPayTime() == null ? other.getPayTime() == null : this.getPayTime().equals(other.getPayTime())) + && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime())) + && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime())) + && (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 + ((getOrderId() == null) ? 0 : getOrderId().hashCode()); + result = prime * result + ((getOutOrderId() == null) ? 0 : getOutOrderId().hashCode()); + result = prime * result + ((getMchid() == null) ? 0 : getMchid().hashCode()); + result = prime * result + ((getTel() == null) ? 0 : getTel().hashCode()); + result = prime * result + ((getPrice() == null) ? 0 : getPrice().hashCode()); + result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode()); + result = prime * result + ((getPayTime() == null) ? 0 : getPayTime().hashCode()); + result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode()); + result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().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(", orderId=").append(orderId); + sb.append(", outOrderId=").append(outOrderId); + sb.append(", mchid=").append(mchid); + sb.append(", tel=").append(tel); + sb.append(", price=").append(price); + sb.append(", status=").append(status); + sb.append(", payTime=").append(payTime); + sb.append(", createTime=").append(createTime); + sb.append(", updateTime=").append(updateTime); + 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(); + } +} diff --git a/hai-service/src/main/java/com/hai/entity/HighTelOrderExample.java b/hai-service/src/main/java/com/hai/entity/HighTelOrderExample.java new file mode 100644 index 00000000..8bba320a --- /dev/null +++ b/hai-service/src/main/java/com/hai/entity/HighTelOrderExample.java @@ -0,0 +1,1073 @@ +package com.hai.entity; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class HighTelOrderExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + private Integer limit; + + private Long offset; + + public HighTelOrderExample() { + oredCriteria = new ArrayList(); + } + + 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 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 criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List 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(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andOrderIdIsNull() { + addCriterion("order_id is null"); + return (Criteria) this; + } + + public Criteria andOrderIdIsNotNull() { + addCriterion("order_id is not null"); + return (Criteria) this; + } + + public Criteria andOrderIdEqualTo(String value) { + addCriterion("order_id =", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdNotEqualTo(String value) { + addCriterion("order_id <>", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdGreaterThan(String value) { + addCriterion("order_id >", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdGreaterThanOrEqualTo(String value) { + addCriterion("order_id >=", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdLessThan(String value) { + addCriterion("order_id <", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdLessThanOrEqualTo(String value) { + addCriterion("order_id <=", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdLike(String value) { + addCriterion("order_id like", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdNotLike(String value) { + addCriterion("order_id not like", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdIn(List values) { + addCriterion("order_id in", values, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdNotIn(List values) { + addCriterion("order_id not in", values, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdBetween(String value1, String value2) { + addCriterion("order_id between", value1, value2, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdNotBetween(String value1, String value2) { + addCriterion("order_id not between", value1, value2, "orderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdIsNull() { + addCriterion("out_order_id is null"); + return (Criteria) this; + } + + public Criteria andOutOrderIdIsNotNull() { + addCriterion("out_order_id is not null"); + return (Criteria) this; + } + + public Criteria andOutOrderIdEqualTo(String value) { + addCriterion("out_order_id =", value, "outOrderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdNotEqualTo(String value) { + addCriterion("out_order_id <>", value, "outOrderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdGreaterThan(String value) { + addCriterion("out_order_id >", value, "outOrderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdGreaterThanOrEqualTo(String value) { + addCriterion("out_order_id >=", value, "outOrderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdLessThan(String value) { + addCriterion("out_order_id <", value, "outOrderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdLessThanOrEqualTo(String value) { + addCriterion("out_order_id <=", value, "outOrderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdLike(String value) { + addCriterion("out_order_id like", value, "outOrderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdNotLike(String value) { + addCriterion("out_order_id not like", value, "outOrderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdIn(List values) { + addCriterion("out_order_id in", values, "outOrderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdNotIn(List values) { + addCriterion("out_order_id not in", values, "outOrderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdBetween(String value1, String value2) { + addCriterion("out_order_id between", value1, value2, "outOrderId"); + return (Criteria) this; + } + + public Criteria andOutOrderIdNotBetween(String value1, String value2) { + addCriterion("out_order_id not between", value1, value2, "outOrderId"); + return (Criteria) this; + } + + public Criteria andMchidIsNull() { + addCriterion("mchid is null"); + return (Criteria) this; + } + + public Criteria andMchidIsNotNull() { + addCriterion("mchid is not null"); + return (Criteria) this; + } + + public Criteria andMchidEqualTo(String value) { + addCriterion("mchid =", value, "mchid"); + return (Criteria) this; + } + + public Criteria andMchidNotEqualTo(String value) { + addCriterion("mchid <>", value, "mchid"); + return (Criteria) this; + } + + public Criteria andMchidGreaterThan(String value) { + addCriterion("mchid >", value, "mchid"); + return (Criteria) this; + } + + public Criteria andMchidGreaterThanOrEqualTo(String value) { + addCriterion("mchid >=", value, "mchid"); + return (Criteria) this; + } + + public Criteria andMchidLessThan(String value) { + addCriterion("mchid <", value, "mchid"); + return (Criteria) this; + } + + public Criteria andMchidLessThanOrEqualTo(String value) { + addCriterion("mchid <=", value, "mchid"); + return (Criteria) this; + } + + public Criteria andMchidLike(String value) { + addCriterion("mchid like", value, "mchid"); + return (Criteria) this; + } + + public Criteria andMchidNotLike(String value) { + addCriterion("mchid not like", value, "mchid"); + return (Criteria) this; + } + + public Criteria andMchidIn(List values) { + addCriterion("mchid in", values, "mchid"); + return (Criteria) this; + } + + public Criteria andMchidNotIn(List values) { + addCriterion("mchid not in", values, "mchid"); + return (Criteria) this; + } + + public Criteria andMchidBetween(String value1, String value2) { + addCriterion("mchid between", value1, value2, "mchid"); + return (Criteria) this; + } + + public Criteria andMchidNotBetween(String value1, String value2) { + addCriterion("mchid not between", value1, value2, "mchid"); + return (Criteria) this; + } + + public Criteria andTelIsNull() { + addCriterion("tel is null"); + return (Criteria) this; + } + + public Criteria andTelIsNotNull() { + addCriterion("tel is not null"); + return (Criteria) this; + } + + public Criteria andTelEqualTo(String value) { + addCriterion("tel =", value, "tel"); + return (Criteria) this; + } + + public Criteria andTelNotEqualTo(String value) { + addCriterion("tel <>", value, "tel"); + return (Criteria) this; + } + + public Criteria andTelGreaterThan(String value) { + addCriterion("tel >", value, "tel"); + return (Criteria) this; + } + + public Criteria andTelGreaterThanOrEqualTo(String value) { + addCriterion("tel >=", value, "tel"); + return (Criteria) this; + } + + public Criteria andTelLessThan(String value) { + addCriterion("tel <", value, "tel"); + return (Criteria) this; + } + + public Criteria andTelLessThanOrEqualTo(String value) { + addCriterion("tel <=", value, "tel"); + return (Criteria) this; + } + + public Criteria andTelLike(String value) { + addCriterion("tel like", value, "tel"); + return (Criteria) this; + } + + public Criteria andTelNotLike(String value) { + addCriterion("tel not like", value, "tel"); + return (Criteria) this; + } + + public Criteria andTelIn(List values) { + addCriterion("tel in", values, "tel"); + return (Criteria) this; + } + + public Criteria andTelNotIn(List values) { + addCriterion("tel not in", values, "tel"); + return (Criteria) this; + } + + public Criteria andTelBetween(String value1, String value2) { + addCriterion("tel between", value1, value2, "tel"); + return (Criteria) this; + } + + public Criteria andTelNotBetween(String value1, String value2) { + addCriterion("tel not between", value1, value2, "tel"); + return (Criteria) this; + } + + public Criteria andPriceIsNull() { + addCriterion("price is null"); + return (Criteria) this; + } + + public Criteria andPriceIsNotNull() { + addCriterion("price is not null"); + return (Criteria) this; + } + + public Criteria andPriceEqualTo(Long value) { + addCriterion("price =", value, "price"); + return (Criteria) this; + } + + public Criteria andPriceNotEqualTo(Long value) { + addCriterion("price <>", value, "price"); + return (Criteria) this; + } + + public Criteria andPriceGreaterThan(Long value) { + addCriterion("price >", value, "price"); + return (Criteria) this; + } + + public Criteria andPriceGreaterThanOrEqualTo(Long value) { + addCriterion("price >=", value, "price"); + return (Criteria) this; + } + + public Criteria andPriceLessThan(Long value) { + addCriterion("price <", value, "price"); + return (Criteria) this; + } + + public Criteria andPriceLessThanOrEqualTo(Long value) { + addCriterion("price <=", value, "price"); + return (Criteria) this; + } + + public Criteria andPriceIn(List values) { + addCriterion("price in", values, "price"); + return (Criteria) this; + } + + public Criteria andPriceNotIn(List values) { + addCriterion("price not in", values, "price"); + return (Criteria) this; + } + + public Criteria andPriceBetween(Long value1, Long value2) { + addCriterion("price between", value1, value2, "price"); + return (Criteria) this; + } + + public Criteria andPriceNotBetween(Long value1, Long value2) { + addCriterion("price not between", value1, value2, "price"); + return (Criteria) this; + } + + public Criteria andStatusIsNull() { + addCriterion("`status` is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("`status` is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(Integer value) { + addCriterion("`status` =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(Integer value) { + addCriterion("`status` <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(Integer value) { + addCriterion("`status` >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(Integer value) { + addCriterion("`status` >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(Integer value) { + addCriterion("`status` <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(Integer value) { + addCriterion("`status` <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("`status` in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("`status` not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(Integer value1, Integer value2) { + addCriterion("`status` between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(Integer value1, Integer value2) { + addCriterion("`status` not between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andPayTimeIsNull() { + addCriterion("pay_time is null"); + return (Criteria) this; + } + + public Criteria andPayTimeIsNotNull() { + addCriterion("pay_time is not null"); + return (Criteria) this; + } + + public Criteria andPayTimeEqualTo(Date value) { + addCriterion("pay_time =", value, "payTime"); + return (Criteria) this; + } + + public Criteria andPayTimeNotEqualTo(Date value) { + addCriterion("pay_time <>", value, "payTime"); + return (Criteria) this; + } + + public Criteria andPayTimeGreaterThan(Date value) { + addCriterion("pay_time >", value, "payTime"); + return (Criteria) this; + } + + public Criteria andPayTimeGreaterThanOrEqualTo(Date value) { + addCriterion("pay_time >=", value, "payTime"); + return (Criteria) this; + } + + public Criteria andPayTimeLessThan(Date value) { + addCriterion("pay_time <", value, "payTime"); + return (Criteria) this; + } + + public Criteria andPayTimeLessThanOrEqualTo(Date value) { + addCriterion("pay_time <=", value, "payTime"); + return (Criteria) this; + } + + public Criteria andPayTimeIn(List values) { + addCriterion("pay_time in", values, "payTime"); + return (Criteria) this; + } + + public Criteria andPayTimeNotIn(List values) { + addCriterion("pay_time not in", values, "payTime"); + return (Criteria) this; + } + + public Criteria andPayTimeBetween(Date value1, Date value2) { + addCriterion("pay_time between", value1, value2, "payTime"); + return (Criteria) this; + } + + public Criteria andPayTimeNotBetween(Date value1, Date value2) { + addCriterion("pay_time not between", value1, value2, "payTime"); + 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 values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List 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 andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Date value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Date value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Date value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Date value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Date value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Date value1, Date value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Date value1, Date value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + 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 values) { + addCriterion("ext_1 in", values, "ext1"); + return (Criteria) this; + } + + public Criteria andExt1NotIn(List 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 values) { + addCriterion("ext_2 in", values, "ext2"); + return (Criteria) this; + } + + public Criteria andExt2NotIn(List 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 values) { + addCriterion("ext_3 in", values, "ext3"); + return (Criteria) this; + } + + public Criteria andExt3NotIn(List 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); + } + } +} \ No newline at end of file diff --git a/hai-service/src/main/java/com/hai/service/TelApiService.java b/hai-service/src/main/java/com/hai/service/TelApiService.java new file mode 100644 index 00000000..bb1b5b8b --- /dev/null +++ b/hai-service/src/main/java/com/hai/service/TelApiService.java @@ -0,0 +1,61 @@ +package com.hai.service; + +import com.hai.entity.HighTelOrder; + +import java.util.List; +import java.util.Map; + +/** + * @ClassName TelApiService.java + * @author Sum1Dream + * @version 1.0.0 + * @Description //话费充值管理 + * @createTime 14:17 2021/5/28 + **/ +public interface TelApiService { + + /** + * @Author Sum1Dream + * @Description // 查询话费订单列表 + * @Date 11:33 2021/5/28 + * @Param [map] + * @return java.util.List + **/ + List getTelOrderList(Map map); + + /** + * @Author Sum1Dream + * @Description //新增话费订单 + * @Date 11:34 2021/5/28 + * @Param [highTelOrder] + * @return void + **/ + void insertOrder(HighTelOrder highTelOrder); + + /** + * @Author Sum1Dream + * @Description //修改话费订单 + * @Date 11:35 2021/5/28 + * @Param [highTelOrder] + * @return void + **/ + void updateOrder(HighTelOrder highTelOrder); + + /** + * @Author Sum1Dream + * @Description // 根据ID查询订单详情 + * @Date 11:36 2021/5/28 + * @Param [id] + * @return com.hai.entity.HighTelOrder + **/ + HighTelOrder findOrderById(Integer id); + + /** + * @Author Sum1Dream + * @Description //话费充值 验签成功后业务调用 + * @Date 16:44 2021/5/28 + * @Param [paramsMap] 异步回调返回的参数 + * @return java.lang.String + **/ + String telApiNotify(Map paramsMap) throws Exception; +} diff --git a/hai-service/src/main/java/com/hai/service/impl/TelApiServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/TelApiServiceImpl.java new file mode 100644 index 00000000..9768ff45 --- /dev/null +++ b/hai-service/src/main/java/com/hai/service/impl/TelApiServiceImpl.java @@ -0,0 +1,75 @@ +package com.hai.service.impl; + +import com.hai.dao.HighTelOrderMapper; +import com.hai.entity.HighTelOrder; +import com.hai.service.TelApiService; +import com.hai.service.pay.PayService; +import com.hai.service.pay.impl.NotifyServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service("telApiService") +public class TelApiServiceImpl implements TelApiService { + + @Resource + private HighTelOrderMapper highTelOrderMapper; + + private static Logger log = LoggerFactory.getLogger(TelApiServiceImpl.class); + + @Override + public List getTelOrderList(Map map) { + return null; + } + + @Override + public void insertOrder(HighTelOrder highTelOrder) { + highTelOrderMapper.insert(highTelOrder); + } + + @Override + public void updateOrder(HighTelOrder highTelOrder) { + highTelOrderMapper.updateByPrimaryKey(highTelOrder); + } + + @Override + public HighTelOrder findOrderById(Integer id) { + return highTelOrderMapper.selectByPrimaryKey(id); + } + + @Override + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) + public String telApiNotify(Map paramsMap) throws Exception { + String resXml = null; + + if ("1".equals(paramsMap.get("status"))) { + log.info("话费充值 -> 异步通知:支付成功,进入订单处理"); + + String orderId = paramsMap.get("order_id"); + +// if (payService != null) { +// payService.paySuccess(paramsMap, "WechatPay"); // 商户内部实际的交易业务处理 +// log.info("微信支付 -> 异步通知:订单处理完成"); +// } else { +// log.error("微信支付 -> 异步通知:业务处理,payService获取失败"); +// } + + // 通知微信.异步确认成功.必写.不然会一直通知后台.八次之后就认为交易失败了 + resXml = "" + "" + + "" + " "; + } else { + log.error("微信支付 -> 异步通知:支付失败,错误信息:" + paramsMap.get("err_code_des")); + resXml = "" + "" + "" + " "; + } + + + return resXml; + } +}