Compare commits

...

10 Commits

36 changed files with 831 additions and 20344 deletions

View File

@ -1837,3 +1837,5 @@ INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4888, 1, 234);
delete from sys_menu where menu_id = 202;
INSERT INTO crawl_source(`id`, `source_name`, `crawl_rule`, `source_status`, `create_time`, `update_time`) VALUES (16, 'i笔趣阁', '{\"bookListUrl\":\"http://m.ibiquge.net/xclass/{catId}/{page}.html\",\"catIdRule\":{\"catId1\":\"1\",\"catId2\":\"2\",\"catId3\":\"3\",\"catId4\":\"4\",\"catId5\":\"6\",\"catId6\":\"5\",\"catId7\":\"7\"},\"bookIdPatten\":\"href=\\\"/(\\\\d+_\\\\d+)/\\\"\",\"pagePatten\":\"value=\\\"(\\\\d+)/\\\\d+\\\"\",\"totalPagePatten\":\"value=\\\"\\\\d+/(\\\\d+)\\\"\",\"bookDetailUrl\":\"http://m.ibiquge.net/{bookId}/\",\"bookNamePatten\":\"<span class=\\\"title\\\">([^/]+)</span>\",\"authorNamePatten\":\"<a href=\\\"/author/\\\\d+/\\\">([^/]+)</a>\",\"picUrlPatten\":\"<img src=\\\"([^>]+)\\\"\\\\s+onerror=\\\"this.src=\",\"picUrlPrefix\":\"http://m.ibiquge.net\",\"statusPatten\":\">状态:([^/]+)</li>\",\"bookStatusRule\":{\"连载\":0,\"完结\":1},\"visitCountPatten\":\">点击:(\\\\d+)</li>\",\"descStart\":\"<p class=\\\"review\\\">\",\"descEnd\":\"</p>\",\"bookIndexUrl\":\"http://www.ibiquge.net/{bookId}/\",\"bookIndexStart\":\"正文</dt>\",\"indexIdPatten\":\"<a\\\\s+style=\\\"\\\"\\\\s+href=\\\"/\\\\d+_\\\\d+/(\\\\d+)\\\\.html\\\">[^/]+</a>\",\"indexNamePatten\":\"<a\\\\s+style=\\\"\\\"\\\\s+href=\\\"/\\\\d+_\\\\d+/\\\\d+\\\\.html\\\">([^/]+)</a>\",\"bookContentUrl\":\"http://www.ibiquge.net/{bookId}/{indexId}.html\",\"contentStart\":\"</p>\",\"contentEnd\":\"<div align=\\\"center\\\">\"}', 0, '2021-02-04 21:31:23', '2021-02-04 21:31:23');

View File

@ -5,7 +5,7 @@
<groupId>com.java2nb</groupId>
<artifactId>novel-admin</artifactId>
<version>3.5.0</version>
<version>3.5.2</version>
<packaging>jar</packaging>
<name>novel-admin</name>

View File

@ -1,19 +1,17 @@
package com.java2nb.novel.controller;
import com.java2nb.common.utils.DateUtils;
import com.java2nb.common.utils.PageBean;
import com.java2nb.common.utils.Query;
import com.java2nb.common.utils.R;
import com.java2nb.novel.domain.AuthorCodeDO;
import com.java2nb.novel.service.*;
import com.java2nb.test.service.OrderService;
import io.swagger.annotations.ApiOperation;
import com.java2nb.novel.service.AuthorService;
import com.java2nb.novel.service.BookService;
import com.java2nb.novel.service.PayService;
import com.java2nb.novel.service.UserService;
import lombok.SneakyThrows;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.text.SimpleDateFormat;
import java.util.Date;

View File

@ -1,135 +0,0 @@
package com.java2nb.test.controller;
import java.util.List;
import java.util.Map;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import io.swagger.annotations.ApiOperation;
import com.java2nb.test.domain.OrderDO;
import com.java2nb.test.service.OrderService;
import com.java2nb.common.utils.PageBean;
import com.java2nb.common.utils.Query;
import com.java2nb.common.utils.R;
/**
* 付呗-订单信息表
*
* @author xiongxy
* @email 1179705413@qq.com
* @date 2019-11-25 11:57:16
*/
@Controller
@RequestMapping("/test/order")
public class OrderController {
@Autowired
private OrderService orderService;
@GetMapping()
@RequiresPermissions("test:order:order")
String Order() {
return "test/order/order";
}
@ApiOperation(value = "获取付呗-订单信息表列表", notes = "获取付呗-订单信息表列表")
@ResponseBody
@GetMapping("/list")
@RequiresPermissions("test:order:order")
public R list(@RequestParam Map<String, Object> params) {
//查询列表数据
Query query = new Query(params);
List<OrderDO> orderList = orderService.list(query);
int total = orderService.count(query);
PageBean pageBean = new PageBean(orderList, total);
return R.ok().put("data", pageBean);
}
@ApiOperation(value = "新增付呗-订单信息表页面", notes = "新增付呗-订单信息表页面")
@GetMapping("/add")
@RequiresPermissions("test:order:add")
String add() {
return "test/order/add";
}
@ApiOperation(value = "修改付呗-订单信息表页面", notes = "修改付呗-订单信息表页面")
@GetMapping("/edit/{id}")
@RequiresPermissions("test:order:edit")
String edit(@PathVariable("id") Long id, Model model) {
OrderDO order = orderService.get(id);
model.addAttribute("order", order);
return "test/order/edit";
}
@ApiOperation(value = "查看付呗-订单信息表页面", notes = "查看付呗-订单信息表页面")
@GetMapping("/detail/{id}")
@RequiresPermissions("test:order:detail")
String detail(@PathVariable("id") Long id, Model model) {
OrderDO order = orderService.get(id);
model.addAttribute("order", order);
return "test/order/detail";
}
/**
* 保存
*/
@ApiOperation(value = "新增付呗-订单信息表", notes = "新增付呗-订单信息表")
@ResponseBody
@PostMapping("/save")
@RequiresPermissions("test:order:add")
public R save( OrderDO order) {
if (orderService.save(order) > 0) {
return R.ok();
}
return R.error();
}
/**
* 修改
*/
@ApiOperation(value = "修改付呗-订单信息表", notes = "修改付呗-订单信息表")
@ResponseBody
@RequestMapping("/update")
@RequiresPermissions("test:order:edit")
public R update( OrderDO order) {
orderService.update(order);
return R.ok();
}
/**
* 删除
*/
@ApiOperation(value = "删除付呗-订单信息表", notes = "删除付呗-订单信息表")
@PostMapping("/remove")
@ResponseBody
@RequiresPermissions("test:order:remove")
public R remove( Long id) {
if (orderService.remove(id) > 0) {
return R.ok();
}
return R.error();
}
/**
* 删除
*/
@ApiOperation(value = "批量删除付呗-订单信息表", notes = "批量删除付呗-订单信息表")
@PostMapping("/batchRemove")
@ResponseBody
@RequiresPermissions("test:order:batchRemove")
public R remove(@RequestParam("ids[]") Long[] ids) {
orderService.batchRemove(ids);
return R.ok();
}
}

View File

@ -1,32 +0,0 @@
package com.java2nb.test.dao;
import com.java2nb.test.domain.OrderDO;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
/**
* 付呗-订单信息表
* @author xiongxy
* @email 1179705413@qq.com
* @date 2019-11-25 11:57:16
*/
@Mapper
public interface OrderDao {
OrderDO get(Long id);
List<OrderDO> list(Map<String,Object> map);
int count(Map<String,Object> map);
int save(OrderDO order);
int update(OrderDO order);
int remove(Long id);
int batchRemove(Long[] ids);
}

View File

@ -1,475 +0,0 @@
package com.java2nb.test.domain;
import java.io.Serializable;
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.java2nb.common.jsonserializer.LongToStringSerializer;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 付呗-订单信息表
*
* @author xiongxy
* @email 1179705413@qq.com
* @date 2019-11-25 11:57:16
*/
public class OrderDO implements Serializable {
private static final long serialVersionUID = 1L;
//主键
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long id;
//付呗商户号
private String fbMerchantCode;
//第三方商户的订单号
private String merchantOrderSn;
//付呗订单号
private String orderSn;
//平台方订单号
private String platformOrderNo;
//商户单号
private String tradeNo;
//订单状态1未支付2支付成功3支付失败4支付取消
private Integer orderState;
//蜂鸟优惠卷抵扣
private Double fnCoupon;
//红包抵扣
private BigDecimal redPacket;
//实收金额(元)
private BigDecimal totalFee;
//订单金额
private BigDecimal orderPrice;
//手续费(元)
private BigDecimal fee;
//对商品或交易的描述
private String body;
//附加数据
private String attach;
//付呗系统的门店id
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long storeId;
//付呗系统的收银员id
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long cashierId;
//设备终端号
private String deviceNo;
//微信顾客支付授权的“open_id”或者支付宝顾客的“buyer_user_id”
private String userId;
//支付宝顾客的账号
private String userLogonId;
//交易成功的时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date payTime;
//支付通道:1微信、2支付宝、3银联
private Integer payChannel;
//免充值代金券金额(元)
private BigDecimal noCashCouponFee;
//预充值代金券金额(元)
private BigDecimal cashCouponFee;
//顾客实际支付金额(元)
private BigDecimal cashFee;
//签名
private String sign;
//其它选项
private String options;
//创建时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//推送时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date pushTime;
//推送IP
private String pushIp;
//商户id
private BigDecimal mchtId;
//QR编号
private String sn;
/**
* 设置:主键
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取:主键
*/
public Long getId() {
return id;
}
/**
* 设置:付呗商户号
*/
public void setFbMerchantCode(String fbMerchantCode) {
this.fbMerchantCode = fbMerchantCode;
}
/**
* 获取:付呗商户号
*/
public String getFbMerchantCode() {
return fbMerchantCode;
}
/**
* 设置:第三方商户的订单号
*/
public void setMerchantOrderSn(String merchantOrderSn) {
this.merchantOrderSn = merchantOrderSn;
}
/**
* 获取:第三方商户的订单号
*/
public String getMerchantOrderSn() {
return merchantOrderSn;
}
/**
* 设置:付呗订单号
*/
public void setOrderSn(String orderSn) {
this.orderSn = orderSn;
}
/**
* 获取:付呗订单号
*/
public String getOrderSn() {
return orderSn;
}
/**
* 设置:平台方订单号
*/
public void setPlatformOrderNo(String platformOrderNo) {
this.platformOrderNo = platformOrderNo;
}
/**
* 获取:平台方订单号
*/
public String getPlatformOrderNo() {
return platformOrderNo;
}
/**
* 设置:商户单号
*/
public void setTradeNo(String tradeNo) {
this.tradeNo = tradeNo;
}
/**
* 获取:商户单号
*/
public String getTradeNo() {
return tradeNo;
}
/**
* 设置订单状态1未支付2支付成功3支付失败4支付取消
*/
public void setOrderState(Integer orderState) {
this.orderState = orderState;
}
/**
* 获取订单状态1未支付2支付成功3支付失败4支付取消
*/
public Integer getOrderState() {
return orderState;
}
/**
* 设置:蜂鸟优惠卷抵扣
*/
public void setFnCoupon(Double fnCoupon) {
this.fnCoupon = fnCoupon;
}
/**
* 获取:蜂鸟优惠卷抵扣
*/
public Double getFnCoupon() {
return fnCoupon;
}
/**
* 设置:红包抵扣
*/
public void setRedPacket(BigDecimal redPacket) {
this.redPacket = redPacket;
}
/**
* 获取:红包抵扣
*/
public BigDecimal getRedPacket() {
return redPacket;
}
/**
* 设置:实收金额(元)
*/
public void setTotalFee(BigDecimal totalFee) {
this.totalFee = totalFee;
}
/**
* 获取:实收金额(元)
*/
public BigDecimal getTotalFee() {
return totalFee;
}
/**
* 设置:订单金额
*/
public void setOrderPrice(BigDecimal orderPrice) {
this.orderPrice = orderPrice;
}
/**
* 获取:订单金额
*/
public BigDecimal getOrderPrice() {
return orderPrice;
}
/**
* 设置:手续费(元)
*/
public void setFee(BigDecimal fee) {
this.fee = fee;
}
/**
* 获取:手续费(元)
*/
public BigDecimal getFee() {
return fee;
}
/**
* 设置:对商品或交易的描述
*/
public void setBody(String body) {
this.body = body;
}
/**
* 获取:对商品或交易的描述
*/
public String getBody() {
return body;
}
/**
* 设置:附加数据
*/
public void setAttach(String attach) {
this.attach = attach;
}
/**
* 获取:附加数据
*/
public String getAttach() {
return attach;
}
/**
* 设置付呗系统的门店id
*/
public void setStoreId(Long storeId) {
this.storeId = storeId;
}
/**
* 获取付呗系统的门店id
*/
public Long getStoreId() {
return storeId;
}
/**
* 设置付呗系统的收银员id
*/
public void setCashierId(Long cashierId) {
this.cashierId = cashierId;
}
/**
* 获取付呗系统的收银员id
*/
public Long getCashierId() {
return cashierId;
}
/**
* 设置:设备终端号
*/
public void setDeviceNo(String deviceNo) {
this.deviceNo = deviceNo;
}
/**
* 获取:设备终端号
*/
public String getDeviceNo() {
return deviceNo;
}
/**
* 设置微信顾客支付授权的“open_id”或者支付宝顾客的“buyer_user_id”
*/
public void setUserId(String userId) {
this.userId = userId;
}
/**
* 获取微信顾客支付授权的“open_id”或者支付宝顾客的“buyer_user_id”
*/
public String getUserId() {
return userId;
}
/**
* 设置:支付宝顾客的账号
*/
public void setUserLogonId(String userLogonId) {
this.userLogonId = userLogonId;
}
/**
* 获取:支付宝顾客的账号
*/
public String getUserLogonId() {
return userLogonId;
}
/**
* 设置:交易成功的时间
*/
public void setPayTime(Date payTime) {
this.payTime = payTime;
}
/**
* 获取:交易成功的时间
*/
public Date getPayTime() {
return payTime;
}
/**
* 设置:支付通道:1微信、2支付宝、3银联
*/
public void setPayChannel(Integer payChannel) {
this.payChannel = payChannel;
}
/**
* 获取:支付通道:1微信、2支付宝、3银联
*/
public Integer getPayChannel() {
return payChannel;
}
/**
* 设置:免充值代金券金额(元)
*/
public void setNoCashCouponFee(BigDecimal noCashCouponFee) {
this.noCashCouponFee = noCashCouponFee;
}
/**
* 获取:免充值代金券金额(元)
*/
public BigDecimal getNoCashCouponFee() {
return noCashCouponFee;
}
/**
* 设置:预充值代金券金额(元)
*/
public void setCashCouponFee(BigDecimal cashCouponFee) {
this.cashCouponFee = cashCouponFee;
}
/**
* 获取:预充值代金券金额(元)
*/
public BigDecimal getCashCouponFee() {
return cashCouponFee;
}
/**
* 设置:顾客实际支付金额(元)
*/
public void setCashFee(BigDecimal cashFee) {
this.cashFee = cashFee;
}
/**
* 获取:顾客实际支付金额(元)
*/
public BigDecimal getCashFee() {
return cashFee;
}
/**
* 设置:签名
*/
public void setSign(String sign) {
this.sign = sign;
}
/**
* 获取:签名
*/
public String getSign() {
return sign;
}
/**
* 设置:其它选项
*/
public void setOptions(String options) {
this.options = options;
}
/**
* 获取:其它选项
*/
public String getOptions() {
return options;
}
/**
* 设置:创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取:创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 设置:推送时间
*/
public void setPushTime(Date pushTime) {
this.pushTime = pushTime;
}
/**
* 获取:推送时间
*/
public Date getPushTime() {
return pushTime;
}
/**
* 设置推送IP
*/
public void setPushIp(String pushIp) {
this.pushIp = pushIp;
}
/**
* 获取推送IP
*/
public String getPushIp() {
return pushIp;
}
/**
* 设置商户id
*/
public void setMchtId(BigDecimal mchtId) {
this.mchtId = mchtId;
}
/**
* 获取商户id
*/
public BigDecimal getMchtId() {
return mchtId;
}
/**
* 设置QR编号
*/
public void setSn(String sn) {
this.sn = sn;
}
/**
* 获取QR编号
*/
public String getSn() {
return sn;
}
}

View File

@ -1,30 +0,0 @@
package com.java2nb.test.service;
import com.java2nb.test.domain.OrderDO;
import java.util.List;
import java.util.Map;
/**
* 付呗-订单信息表
*
* @author xiongxy
* @email 1179705413@qq.com
* @date 2019-11-25 11:57:16
*/
public interface OrderService {
OrderDO get(Long id);
List<OrderDO> list(Map<String, Object> map);
int count(Map<String, Object> map);
int save(OrderDO order);
int update(OrderDO order);
int remove(Long id);
int batchRemove(Long[] ids);
}

View File

@ -1,55 +0,0 @@
package com.java2nb.test.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import com.java2nb.test.dao.OrderDao;
import com.java2nb.test.domain.OrderDO;
import com.java2nb.test.service.OrderService;
@Service
public class OrderServiceImpl implements OrderService {
@Autowired
private OrderDao orderDao;
@Override
public OrderDO get(Long id){
return orderDao.get(id);
}
@Override
public List<OrderDO> list(Map<String, Object> map){
return orderDao.list(map);
}
@Override
public int count(Map<String, Object> map){
return orderDao.count(map);
}
@Override
public int save(OrderDO order){
return orderDao.save(order);
}
@Override
public int update(OrderDO order){
return orderDao.update(order);
}
@Override
public int remove(Long id){
return orderDao.remove(id);
}
@Override
public int batchRemove(Long[] ids){
return orderDao.batchRemove(ids);
}
}

View File

@ -1,283 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.java2nb.test.dao.OrderDao">
<select id="get" resultType="com.java2nb.test.domain.OrderDO">
select `id`,`fb_merchant_code`,`merchant_order_sn`,`order_sn`,`platform_order_no`,`trade_no`,`order_state`,`fn_coupon`,`red_packet`,`total_fee`,`order_price`,`fee`,`body`,`attach`,`store_id`,`cashier_id`,`device_no`,`user_id`,`user_logon_id`,`pay_time`,`pay_channel`,`no_cash_coupon_fee`,`cash_coupon_fee`,`cash_fee`,`sign`,`options`,`create_time`,`push_time`,`push_ip`,`mcht_id`,`sn` from fb_order where id = #{value}
</select>
<select id="list" resultType="com.java2nb.test.domain.OrderDO">
select `id`,`fb_merchant_code`,`merchant_order_sn`,`order_sn`,`platform_order_no`,`trade_no`,`order_state`,`fn_coupon`,`red_packet`,`total_fee`,`order_price`,`fee`,`body`,`attach`,`store_id`,`cashier_id`,`device_no`,`user_id`,`user_logon_id`,`pay_time`,`pay_channel`,`no_cash_coupon_fee`,`cash_coupon_fee`,`cash_fee`,`sign`,`options`,`create_time`,`push_time`,`push_ip`,`mcht_id`,`sn` from fb_order
<where>
<if test="id != null and id != ''"> and id = #{id} </if>
<if test="fbMerchantCode != null and fbMerchantCode != ''"> and fb_merchant_code = #{fbMerchantCode} </if>
<if test="merchantOrderSn != null and merchantOrderSn != ''"> and merchant_order_sn = #{merchantOrderSn} </if>
<if test="orderSn != null and orderSn != ''"> and order_sn = #{orderSn} </if>
<if test="platformOrderNo != null and platformOrderNo != ''"> and platform_order_no = #{platformOrderNo} </if>
<if test="tradeNo != null and tradeNo != ''"> and trade_no = #{tradeNo} </if>
<if test="orderState != null and orderState != ''"> and order_state = #{orderState} </if>
<if test="fnCoupon != null and fnCoupon != ''"> and fn_coupon = #{fnCoupon} </if>
<if test="redPacket != null and redPacket != ''"> and red_packet = #{redPacket} </if>
<if test="totalFee != null and totalFee != ''"> and total_fee = #{totalFee} </if>
<if test="orderPrice != null and orderPrice != ''"> and order_price = #{orderPrice} </if>
<if test="fee != null and fee != ''"> and fee = #{fee} </if>
<if test="body != null and body != ''"> and body = #{body} </if>
<if test="attach != null and attach != ''"> and attach = #{attach} </if>
<if test="storeId != null and storeId != ''"> and store_id = #{storeId} </if>
<if test="cashierId != null and cashierId != ''"> and cashier_id = #{cashierId} </if>
<if test="deviceNo != null and deviceNo != ''"> and device_no = #{deviceNo} </if>
<if test="userId != null and userId != ''"> and user_id = #{userId} </if>
<if test="userLogonId != null and userLogonId != ''"> and user_logon_id = #{userLogonId} </if>
<if test="payTime != null and payTime != ''"> and pay_time = #{payTime} </if>
<if test="payChannel != null and payChannel != ''"> and pay_channel = #{payChannel} </if>
<if test="noCashCouponFee != null and noCashCouponFee != ''"> and no_cash_coupon_fee = #{noCashCouponFee} </if>
<if test="cashCouponFee != null and cashCouponFee != ''"> and cash_coupon_fee = #{cashCouponFee} </if>
<if test="cashFee != null and cashFee != ''"> and cash_fee = #{cashFee} </if>
<if test="sign != null and sign != ''"> and sign = #{sign} </if>
<if test="options != null and options != ''"> and options = #{options} </if>
<if test="createTime != null and createTime != ''"> and create_time = #{createTime} </if>
<if test="pushTime != null and pushTime != ''"> and push_time = #{pushTime} </if>
<if test="pushIp != null and pushIp != ''"> and push_ip = #{pushIp} </if>
<if test="mchtId != null and mchtId != ''"> and mcht_id = #{mchtId} </if>
<if test="sn != null and sn != ''"> and sn = #{sn} </if>
</where>
<choose>
<when test="sort != null and sort.trim() != ''">
order by ${sort} ${order}
</when>
<otherwise>
order by id desc
</otherwise>
</choose>
<if test="offset != null and limit != null">
limit #{offset}, #{limit}
</if>
</select>
<select id="count" resultType="int">
select count(*) from fb_order
<where>
<if test="id != null and id != ''"> and id = #{id} </if>
<if test="fbMerchantCode != null and fbMerchantCode != ''"> and fb_merchant_code = #{fbMerchantCode} </if>
<if test="merchantOrderSn != null and merchantOrderSn != ''"> and merchant_order_sn = #{merchantOrderSn} </if>
<if test="orderSn != null and orderSn != ''"> and order_sn = #{orderSn} </if>
<if test="platformOrderNo != null and platformOrderNo != ''"> and platform_order_no = #{platformOrderNo} </if>
<if test="tradeNo != null and tradeNo != ''"> and trade_no = #{tradeNo} </if>
<if test="orderState != null and orderState != ''"> and order_state = #{orderState} </if>
<if test="fnCoupon != null and fnCoupon != ''"> and fn_coupon = #{fnCoupon} </if>
<if test="redPacket != null and redPacket != ''"> and red_packet = #{redPacket} </if>
<if test="totalFee != null and totalFee != ''"> and total_fee = #{totalFee} </if>
<if test="orderPrice != null and orderPrice != ''"> and order_price = #{orderPrice} </if>
<if test="fee != null and fee != ''"> and fee = #{fee} </if>
<if test="body != null and body != ''"> and body = #{body} </if>
<if test="attach != null and attach != ''"> and attach = #{attach} </if>
<if test="storeId != null and storeId != ''"> and store_id = #{storeId} </if>
<if test="cashierId != null and cashierId != ''"> and cashier_id = #{cashierId} </if>
<if test="deviceNo != null and deviceNo != ''"> and device_no = #{deviceNo} </if>
<if test="userId != null and userId != ''"> and user_id = #{userId} </if>
<if test="userLogonId != null and userLogonId != ''"> and user_logon_id = #{userLogonId} </if>
<if test="payTime != null and payTime != ''"> and pay_time = #{payTime} </if>
<if test="payChannel != null and payChannel != ''"> and pay_channel = #{payChannel} </if>
<if test="noCashCouponFee != null and noCashCouponFee != ''"> and no_cash_coupon_fee = #{noCashCouponFee} </if>
<if test="cashCouponFee != null and cashCouponFee != ''"> and cash_coupon_fee = #{cashCouponFee} </if>
<if test="cashFee != null and cashFee != ''"> and cash_fee = #{cashFee} </if>
<if test="sign != null and sign != ''"> and sign = #{sign} </if>
<if test="options != null and options != ''"> and options = #{options} </if>
<if test="createTime != null and createTime != ''"> and create_time = #{createTime} </if>
<if test="pushTime != null and pushTime != ''"> and push_time = #{pushTime} </if>
<if test="pushIp != null and pushIp != ''"> and push_ip = #{pushIp} </if>
<if test="mchtId != null and mchtId != ''"> and mcht_id = #{mchtId} </if>
<if test="sn != null and sn != ''"> and sn = #{sn} </if>
</where>
</select>
<insert id="save" parameterType="com.java2nb.test.domain.OrderDO" useGeneratedKeys="true" keyProperty="id">
insert into fb_order
(
`fb_merchant_code`,
`merchant_order_sn`,
`order_sn`,
`platform_order_no`,
`trade_no`,
`order_state`,
`fn_coupon`,
`red_packet`,
`total_fee`,
`order_price`,
`fee`,
`body`,
`attach`,
`store_id`,
`cashier_id`,
`device_no`,
`user_id`,
`user_logon_id`,
`pay_time`,
`pay_channel`,
`no_cash_coupon_fee`,
`cash_coupon_fee`,
`cash_fee`,
`sign`,
`options`,
`create_time`,
`push_time`,
`push_ip`,
`mcht_id`,
`sn`
)
values
(
#{fbMerchantCode},
#{merchantOrderSn},
#{orderSn},
#{platformOrderNo},
#{tradeNo},
#{orderState},
#{fnCoupon},
#{redPacket},
#{totalFee},
#{orderPrice},
#{fee},
#{body},
#{attach},
#{storeId},
#{cashierId},
#{deviceNo},
#{userId},
#{userLogonId},
#{payTime},
#{payChannel},
#{noCashCouponFee},
#{cashCouponFee},
#{cashFee},
#{sign},
#{options},
#{createTime},
#{pushTime},
#{pushIp},
#{mchtId},
#{sn}
)
</insert>
<insert id="saveSelective" parameterType="com.java2nb.test.domain.OrderDO" useGeneratedKeys="true" keyProperty="id">
insert into fb_order
(
<if test="id != null"> `id`, </if>
<if test="fbMerchantCode != null"> `fb_merchant_code`, </if>
<if test="merchantOrderSn != null"> `merchant_order_sn`, </if>
<if test="orderSn != null"> `order_sn`, </if>
<if test="platformOrderNo != null"> `platform_order_no`, </if>
<if test="tradeNo != null"> `trade_no`, </if>
<if test="orderState != null"> `order_state`, </if>
<if test="fnCoupon != null"> `fn_coupon`, </if>
<if test="redPacket != null"> `red_packet`, </if>
<if test="totalFee != null"> `total_fee`, </if>
<if test="orderPrice != null"> `order_price`, </if>
<if test="fee != null"> `fee`, </if>
<if test="body != null"> `body`, </if>
<if test="attach != null"> `attach`, </if>
<if test="storeId != null"> `store_id`, </if>
<if test="cashierId != null"> `cashier_id`, </if>
<if test="deviceNo != null"> `device_no`, </if>
<if test="userId != null"> `user_id`, </if>
<if test="userLogonId != null"> `user_logon_id`, </if>
<if test="payTime != null"> `pay_time`, </if>
<if test="payChannel != null"> `pay_channel`, </if>
<if test="noCashCouponFee != null"> `no_cash_coupon_fee`, </if>
<if test="cashCouponFee != null"> `cash_coupon_fee`, </if>
<if test="cashFee != null"> `cash_fee`, </if>
<if test="sign != null"> `sign`, </if>
<if test="options != null"> `options`, </if>
<if test="createTime != null"> `create_time`, </if>
<if test="pushTime != null"> `push_time`, </if>
<if test="pushIp != null"> `push_ip`, </if>
<if test="mchtId != null"> `mcht_id`, </if>
<if test="sn != null"> `sn` </if>
)
values
(
<if test="id != null"> #{id}, </if>
<if test="fbMerchantCode != null"> #{fbMerchantCode}, </if>
<if test="merchantOrderSn != null"> #{merchantOrderSn}, </if>
<if test="orderSn != null"> #{orderSn}, </if>
<if test="platformOrderNo != null"> #{platformOrderNo}, </if>
<if test="tradeNo != null"> #{tradeNo}, </if>
<if test="orderState != null"> #{orderState}, </if>
<if test="fnCoupon != null"> #{fnCoupon}, </if>
<if test="redPacket != null"> #{redPacket}, </if>
<if test="totalFee != null"> #{totalFee}, </if>
<if test="orderPrice != null"> #{orderPrice}, </if>
<if test="fee != null"> #{fee}, </if>
<if test="body != null"> #{body}, </if>
<if test="attach != null"> #{attach}, </if>
<if test="storeId != null"> #{storeId}, </if>
<if test="cashierId != null"> #{cashierId}, </if>
<if test="deviceNo != null"> #{deviceNo}, </if>
<if test="userId != null"> #{userId}, </if>
<if test="userLogonId != null"> #{userLogonId}, </if>
<if test="payTime != null"> #{payTime}, </if>
<if test="payChannel != null"> #{payChannel}, </if>
<if test="noCashCouponFee != null"> #{noCashCouponFee}, </if>
<if test="cashCouponFee != null"> #{cashCouponFee}, </if>
<if test="cashFee != null"> #{cashFee}, </if>
<if test="sign != null"> #{sign}, </if>
<if test="options != null"> #{options}, </if>
<if test="createTime != null"> #{createTime}, </if>
<if test="pushTime != null"> #{pushTime}, </if>
<if test="pushIp != null"> #{pushIp}, </if>
<if test="mchtId != null"> #{mchtId}, </if>
<if test="sn != null"> #{sn} </if>
)
</insert>
<update id="update" parameterType="com.java2nb.test.domain.OrderDO">
update fb_order
<set>
<if test="fbMerchantCode != null">`fb_merchant_code` = #{fbMerchantCode}, </if>
<if test="merchantOrderSn != null">`merchant_order_sn` = #{merchantOrderSn}, </if>
<if test="orderSn != null">`order_sn` = #{orderSn}, </if>
<if test="platformOrderNo != null">`platform_order_no` = #{platformOrderNo}, </if>
<if test="tradeNo != null">`trade_no` = #{tradeNo}, </if>
<if test="orderState != null">`order_state` = #{orderState}, </if>
<if test="fnCoupon != null">`fn_coupon` = #{fnCoupon}, </if>
<if test="redPacket != null">`red_packet` = #{redPacket}, </if>
<if test="totalFee != null">`total_fee` = #{totalFee}, </if>
<if test="orderPrice != null">`order_price` = #{orderPrice}, </if>
<if test="fee != null">`fee` = #{fee}, </if>
<if test="body != null">`body` = #{body}, </if>
<if test="attach != null">`attach` = #{attach}, </if>
<if test="storeId != null">`store_id` = #{storeId}, </if>
<if test="cashierId != null">`cashier_id` = #{cashierId}, </if>
<if test="deviceNo != null">`device_no` = #{deviceNo}, </if>
<if test="userId != null">`user_id` = #{userId}, </if>
<if test="userLogonId != null">`user_logon_id` = #{userLogonId}, </if>
<if test="payTime != null">`pay_time` = #{payTime}, </if>
<if test="payChannel != null">`pay_channel` = #{payChannel}, </if>
<if test="noCashCouponFee != null">`no_cash_coupon_fee` = #{noCashCouponFee}, </if>
<if test="cashCouponFee != null">`cash_coupon_fee` = #{cashCouponFee}, </if>
<if test="cashFee != null">`cash_fee` = #{cashFee}, </if>
<if test="sign != null">`sign` = #{sign}, </if>
<if test="options != null">`options` = #{options}, </if>
<if test="createTime != null">`create_time` = #{createTime}, </if>
<if test="pushTime != null">`push_time` = #{pushTime}, </if>
<if test="pushIp != null">`push_ip` = #{pushIp}, </if>
<if test="mchtId != null">`mcht_id` = #{mchtId}, </if>
<if test="sn != null">`sn` = #{sn}</if>
</set>
where id = #{id}
</update>
<delete id="remove">
delete from fb_order where id = #{value}
</delete>
<delete id="batchRemove">
delete from fb_order where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -1,18 +0,0 @@
-- 菜单SQL
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
VALUES ('1', '付呗-订单信息表', 'test/order', 'test:order:order', '1', 'fa', '6');
-- 按钮父菜单ID
set @parentId = @@identity;
-- 菜单对应按钮SQL
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
SELECT @parentId, '查看', null, 'test:order:detail', '2', null, '6';
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
SELECT @parentId, '新增', null, 'test:order:add', '2', null, '6';
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
SELECT @parentId, '修改', null, 'test:order:edit', '2', null, '6';
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
SELECT @parentId, '删除', null, 'test:order:remove', '2', null, '6';
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
SELECT @parentId, '批量删除', null, 'test:order:batchRemove', '2', null, '6';

View File

@ -1,25 +0,0 @@
package com.java2nb.testDemo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.bind.annotation.RestController;
@RestController()
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestDemo {
@Autowired
RedisTemplate redisTemplate;
@Test
public void test() {
redisTemplate.opsForValue().set("a", "b");
System.out.println(redisTemplate.opsForValue().get("a"));
}
;
}

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>novel</artifactId>
<groupId>com.java2nb</groupId>
<version>3.5.1</version>
<version>3.5.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>novel</artifactId>
<groupId>com.java2nb</groupId>
<version>3.5.1</version>
<version>3.5.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>novel</artifactId>
<groupId>com.java2nb</groupId>
<version>3.5.1</version>
<version>3.5.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -160,6 +160,17 @@ public class AuthorController extends BaseController{
return ResultBean.ok();
}
/**
* 修改小说封面
*/
@PostMapping("updateBookPic")
public ResultBean updateBookPic(@RequestParam("bookId") Long bookId,@RequestParam("bookPic") String bookPic,HttpServletRequest request) {
Author author = checkAuthor(request);
bookService.updateBookPic(bookId,bookPic, author.getId());
return ResultBean.ok();
}
/**
* 作家日收入统计数据分页列表查询
* */

View File

@ -29,7 +29,7 @@ public class Constants {
/**
* 首页设置的小说数量
* */
public static final int INDEX_BOOK_SETTING_NUM = 32;
public static final int INDEX_BOOK_SETTING_NUM = 31;
/**
* 累积的最大点击量

View File

@ -279,4 +279,12 @@ public interface BookService {
* @param authorId
*/
void updateBookContent( Long indexId, String indexName, String content, Long authorId);
/**
* 修改小说封面
* @param bookId
* @param bookPic
* @param authorId
*/
void updateBookPic(Long bookId, String bookPic, Long authorId);
}

View File

@ -126,9 +126,9 @@ public class BookServiceImpl implements BookService {
type = 0;
} else if (i < 14) {
type = 1;
} else if (i < 20) {
} else if (i < 19) {
type = 2;
} else if (i < 26) {
} else if (i < 25) {
type = 3;
} else {
type = 4;
@ -830,5 +830,18 @@ public class BookServiceImpl implements BookService {
}
}
@Override
public void updateBookPic(Long bookId, String bookPic, Long authorId) {
bookMapper.update(update(book)
.set(picUrl)
.equalTo(bookPic)
.set(updateTime)
.equalTo(new Date())
.where(id, isEqualTo(bookId))
.and(BookDynamicSqlSupport.authorId, isEqualTo(authorId))
.build()
.render(RenderingStrategies.MYBATIS3));
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,180 @@
/*!
* Lazy Load - JavaScript plugin for lazy loading images
*
* Copyright (c) 2007-2019 Mika Tuupola
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/mit-license.php
*
* Project home:
* https://appelsiini.net/projects/lazyload
*
* Version: 2.0.0-rc.2
*
*/
(function (root, factory) {
if (typeof exports === "object") {
module.exports = factory(root);
} else if (typeof define === "function" && define.amd) {
define([], factory);
} else {
root.LazyLoad = factory(root);
}
}) (typeof global !== "undefined" ? global : this.window || this.global, function (root) {
"use strict";
if (typeof define === "function" && define.amd){
root = window;
}
const defaults = {
src: "data-src",
srcset: "data-srcset",
selector: ".lazyload",
root: null,
rootMargin: "0px",
threshold: 0
};
/**
* Merge two or more objects. Returns a new object.
* @private
* @param {Boolean} deep If true, do a deep (or recursive) merge [optional]
* @param {Object} objects The objects to merge together
* @returns {Object} Merged values of defaults and options
*/
const extend = function () {
let extended = {};
let deep = false;
let i = 0;
let length = arguments.length;
/* Check if a deep merge */
if (Object.prototype.toString.call(arguments[0]) === "[object Boolean]") {
deep = arguments[0];
i++;
}
/* Merge the object into the extended object */
let merge = function (obj) {
for (let prop in obj) {
if (Object.prototype.hasOwnProperty.call(obj, prop)) {
/* If deep merge and property is an object, merge properties */
if (deep && Object.prototype.toString.call(obj[prop]) === "[object Object]") {
extended[prop] = extend(true, extended[prop], obj[prop]);
} else {
extended[prop] = obj[prop];
}
}
}
};
/* Loop through each object and conduct a merge */
for (; i < length; i++) {
let obj = arguments[i];
merge(obj);
}
return extended;
};
function LazyLoad(images, options) {
this.settings = extend(defaults, options || {});
this.images = images || document.querySelectorAll(this.settings.selector);
this.observer = null;
this.init();
}
LazyLoad.prototype = {
init: function() {
/* Without observers load everything and bail out early. */
if (!root.IntersectionObserver) {
this.loadImages();
return;
}
let self = this;
let observerConfig = {
root: this.settings.root,
rootMargin: this.settings.rootMargin,
threshold: [this.settings.threshold]
};
this.observer = new IntersectionObserver(function(entries) {
Array.prototype.forEach.call(entries, function (entry) {
if (entry.isIntersecting) {
self.observer.unobserve(entry.target);
let src = entry.target.getAttribute(self.settings.src);
let srcset = entry.target.getAttribute(self.settings.srcset);
if ("img" === entry.target.tagName.toLowerCase()) {
if (src) {
entry.target.src = src;
}
if (srcset) {
entry.target.srcset = srcset;
}
} else {
entry.target.style.backgroundImage = "url(" + src + ")";
}
}
});
}, observerConfig);
Array.prototype.forEach.call(this.images, function (image) {
self.observer.observe(image);
});
},
loadAndDestroy: function () {
if (!this.settings) { return; }
this.loadImages();
this.destroy();
},
loadImages: function () {
if (!this.settings) { return; }
let self = this;
Array.prototype.forEach.call(this.images, function (image) {
let src = image.getAttribute(self.settings.src);
let srcset = image.getAttribute(self.settings.srcset);
if ("img" === image.tagName.toLowerCase()) {
if (src) {
image.src = src;
}
if (srcset) {
image.srcset = srcset;
}
} else {
image.style.backgroundImage = "url('" + src + "')";
}
});
},
destroy: function () {
if (!this.settings) { return; }
this.observer.disconnect();
this.settings = null;
}
};
root.lazyload = function(images, options) {
return new LazyLoad(images, options);
};
if (root.jQuery) {
const $ = root.jQuery;
$.fn.lazyload = function (options) {
options = options || {};
options.attribute = options.attribute || "data-src";
new LazyLoad($.makeArray(this), options);
return this;
};
}
return LazyLoad;
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -6,7 +6,7 @@
<script>
setTimeout(function () {
location.href = '/';
},3000)
},1000)
</script>
</head>

View File

@ -133,6 +133,7 @@
</body>
<script src="/javascript/jquery-1.8.0.min.js" type="text/javascript"></script>
<script src="/javascript/ajaxfileupload.js" type="text/javascript"></script>
<script src="/layui/layui.all.js" type="text/javascript"></script>
<script src="/javascript/header.js" type="text/javascript"></script>
<script src="/javascript/user.js" type="text/javascript"></script>
@ -162,7 +163,12 @@
" ["+(i+1)+"]\n" +
" </td>\n" +*/
" <td class=\"goread\">\n" +
" <td style=\"position: relative\" class=\"goread\">\n" +
"<input class=\"opacity\" onchange=\"picChange('"+book.id+"')\"\n" +
" type=\"file\" id=\"file0\" name=\"file\"\n" +
" title=\"点击上传图片\"\n" +
" style=\"z-index: 100;cursor: pointer;left: 30px; top: 0px; width: 60px; height: 80px; opacity: 0; position: absolute; \"\n" +
" />" +
"<img width='50' height='70' src='"+book.picUrl+"'/><br/>" +
" "+book.bookName+"</td>\n" +
@ -269,6 +275,56 @@
}
function picChange(bookId) {
var file = $("#file0").val(); //文件名称
if (file != "") {
$.ajaxFileUpload({
url : "/file/upload", //用于文件上传的服务器端请求地址
secureuri : false, //是否需要安全协议一般设置为false
fileElementId : "file0", //文件上传域的ID
dataType : "json", //返回值类型 一般设置为json
type : "post",
success : function(data) { //服务器成功响应处理函数
if (data.code == 200) {
$.ajax({
type: "POST",
url: "/author/updateBookPic",
data: {'bookId':bookId,'bookPic':data.data},
dataType: "json",
success: function (data) {
if (data.code == 200) {
location.reload();
} else {
lock = false;
layer.alert(data.msg);
}
},
error: function () {
lock = false;
layer.alert('网络异常');
}
})
}else {
layer.alert('图片上传失败');
}
}
});
} else {
alert("请选择上传文件!");
}
}
</script>
</html>

View File

@ -43,7 +43,7 @@
<li th:class="${navType}==1?'on':''"><a href="/book/bookclass.html">全部作品</a></li>
<li th:class="${navType}==2?'on':''"><a href="/book/book_ranking.html">排行榜</a></li>
<li class=""><a href="/pay/index.html">充值</a></li>
<li><a href="/author/index.html">作家专区</a></li>
<li><a href="/author/index.html" target="_blank">作家专区</a></li>
</ul>
</div>

View File

@ -57,7 +57,6 @@
<div class="picRecommend cf" id="hotRecBooks">
</div>
</div>
<div id="bookrank1_ShowBookRank">
@ -83,7 +82,6 @@
<div class="picRecommend cf" id="classicBooks">
</div>
</div>
<div id="bookrank2_ShowBookRank">
@ -141,7 +139,7 @@
</div>
</div>
<div class="friend_link" >
<div class="friend_link">
<div class="box_center cf" id="friendLink">
<span>友情链接:</span>
</div>
@ -153,6 +151,7 @@
</body>
<div th:replace="common/js :: js"></div>
<script src="/javascript/lazyload.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
$(function () {
//加载首页书籍设置数据
@ -174,7 +173,7 @@
if (i == 0) {
classHtml = "on";
}
carouseBigHtml += ("<dd class=\"" + classHtml + "\"><a href=\"/book/"+carouselBook.bookId+".html\">" +
carouseBigHtml += ("<dd class=\"" + classHtml + "\"><a href=\"/book/" + carouselBook.bookId + ".html\">" +
"<img src=\"" + carouselBook.picUrl + "\" alt=\"" + carouselBook.bookName + "\"/></a></dd>");
carouseSmallHtml += " <li class=\"" + classHtml + "\">" +
@ -231,7 +230,7 @@
} else if (i % 2 == 1) {
topBooks1Html += "<dd>";
}
topBooks1Html += ("<a href=\"book/"+toBook.bookId+".html\">" + toBook.bookName + "</a>");
topBooks1Html += ("<a href=\"book/" + toBook.bookId + ".html\">" + toBook.bookName + "</a>");
if (i == 0) {
topBooks1Html += "</dt>";
} else if (i % 2 == 0) {
@ -244,7 +243,7 @@
} else if (i % 2 == 0) {
topBooks2Html += "<dd>";
}
topBooks2Html += ("<a href=\"book/"+toBook.bookId+".html\">" + toBook.bookName + "</a>");
topBooks2Html += ("<a href=\"book/" + toBook.bookId + ".html\">" + toBook.bookName + "</a>");
if (i == 5) {
topBooks2Html += "</dt>";
} else if (i % 2 == 1) {
@ -262,19 +261,20 @@
for (var i = 0; i < rightListBooks.length; i++) {
var rightListBook = rightListBooks[i];
var classHtml = "";
var imageHtml = "";
if (i == 0) {
classHtml = "on";
imageHtml = "<img src=\"" + rightListBook.picUrl + "\" alt=\"" + rightListBook.bookName + "\"/></a>\n";
}
if (i < 3) {
classHtml += (" num" + (i + 1));
}
rightListBooksHtml += ("<li class=\"" + classHtml + "\">\n" +
" <div class=\"book_name\"><i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/"+rightListBook.bookId+".html\">" + rightListBook.bookName + "</a></div>\n" +
" <div class=\"book_name\"><i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/" + rightListBook.bookId + ".html\">" + rightListBook.bookName + "</a></div>\n" +
" <div class=\"book_intro\">\n" +
" <div class=\"cover\"><a href=\"/book/"+rightListBook.bookId+".html\"><img\n" +
" src=\"" + rightListBook.picUrl + "\" alt=\"" + rightListBook.bookName + "\"/></a>\n" +
" <div class=\"cover\"><a href=\"/book/" + rightListBook.bookId + ".html\">" + imageHtml +
" </div>\n" +
" <a class=\"txt\" href=\"/book/"+rightListBook.bookId+".html\">" + rightListBook.bookDesc + "</a>\n" +
" <a class=\"txt\" href=\"/book/" + rightListBook.bookId + ".html\">" + rightListBook.bookDesc + "</a>\n" +
" </div>\n" +
" </li>");
}
@ -286,13 +286,13 @@
for (var i = 0; i < hotRecBooks.length; i++) {
var hotRecBook = hotRecBooks[i];
hotRecBooksHtml += (" <div class=\"itemsList\">\n" +
" <a class=\"items_img\" href=\"/book/"+hotRecBook.bookId+".html\">\n" +
" <img src=\"" + hotRecBook.picUrl + "\" alt=\"" + hotRecBook.bookName + "\"/>\n" +
" <a class=\"items_img\" href=\"/book/" + hotRecBook.bookId + ".html\">\n" +
" <img class=\"lazyload\" src='/images/default.gif' data-src=\"" + hotRecBook.picUrl + "\" alt=\"" + hotRecBook.bookName + "\"/>\n" +
" </a>\n" +
" <div class=\"items_txt\">\n" +
" <h4><a href=\"/book/"+hotRecBook.bookId+".html\">" + hotRecBook.bookName + "</a></h4>\n" +
" <h4><a href=\"/book/" + hotRecBook.bookId + ".html\">" + hotRecBook.bookName + "</a></h4>\n" +
" <p class=\"author\"><a href=\"javascript:void(0)\">作者:" + hotRecBook.authorName + "</a></p>\n" +
" <p class=\"intro\"><a href=\"/book/"+hotRecBook.bookId+".html\">" + hotRecBook.bookDesc + "</a>\n" +
" <p class=\"intro\"><a href=\"/book/" + hotRecBook.bookId + ".html\">" + hotRecBook.bookDesc + "</a>\n" +
" </p>\n" +
" </div>\n" +
" </div>");
@ -305,13 +305,13 @@
for (var i = 0; i < classicBooks.length; i++) {
var classicBook = classicBooks[i];
classicBooksHtml += (" <div class=\"itemsList\">\n" +
" <a class=\"items_img\" href=\"/book/"+classicBook.bookId+".html\">\n" +
" <img src=\"" + classicBook.picUrl + "\" alt=\"" + classicBook.bookName + "\"/>\n" +
" <a class=\"items_img\" href=\"/book/" + classicBook.bookId + ".html\">\n" +
" <img class=\"lazyload\" src='/images/default.gif' data-src=\"" + classicBook.picUrl + "\" alt=\"" + classicBook.bookName + "\"/>\n" +
" </a>\n" +
" <div class=\"items_txt\">\n" +
" <h4><a href=\"/book/"+classicBook.bookId+".html\">" + classicBook.bookName + "</a></h4>\n" +
" <h4><a href=\"/book/" + classicBook.bookId + ".html\">" + classicBook.bookName + "</a></h4>\n" +
" <p class=\"author\"><a href=\"javascript:void(0)\">作者:" + classicBook.authorName + "</a></p>\n" +
" <p class=\"intro\"><a href=\"/book/"+classicBook.bookId+".html\">" + classicBook.bookDesc + "</a>\n" +
" <p class=\"intro\"><a href=\"/book/" + classicBook.bookId + ".html\">" + classicBook.bookDesc + "</a>\n" +
" </p>\n" +
" </div>\n" +
" </div>");
@ -319,6 +319,7 @@
}
$("#classicBooks").html(classicBooksHtml);
lazyload();
} else {
layer.alert(data.msg);
@ -342,7 +343,7 @@
for (var i = 0; i < indexNewsList.length; i++) {
var indexNews = indexNewsList[i];
indexNewsHtml += ("<dd style=\"text-align:left;\"><span>[" + indexNews.catName + "]</span><a\n" +
" href=\"/about/newsInfo-"+indexNews.id+".html\">" + indexNews.title + "</a>\n" +
" href=\"/about/newsInfo-" + indexNews.id + ".html\">" + indexNews.title + "</a>\n" +
" </dd>");
}
$("#indexNews").html(indexNewsHtml);
@ -368,24 +369,25 @@
var clickRankBooks = data.data;
var clickRankBooksHtml = "";
for (var i = 0; i < clickRankBooks.length; i++) {
var clickRankBook = clickRankBooks[i];
var classHtml = "";
var imageHtml = "";
if (i == 0) {
classHtml = "on";
imageHtml = "<img src=\"" + clickRankBook.picUrl + "\" alt=\"" + clickRankBook.bookName + "\"/>";
}
if (i < 3) {
classHtml += (" num" + (i + 1));
}
var clickRankBook = clickRankBooks[i];
clickRankBooksHtml += ("<li class=\"" + classHtml + "\">\n" +
" <div class=\"book_name\">\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/"+clickRankBook.id+".html\">" + clickRankBook.bookName + "</a>\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/" + clickRankBook.id + ".html\">" + clickRankBook.bookName + "</a>\n" +
" </div>\n" +
" <div class=\"book_intro\">\n" +
" <div class=\"cover\">\n" +
" <a href=\"book/"+clickRankBook.id+".html\"><img src=\"" + clickRankBook.picUrl + "\"\n" +
" alt=\"" + clickRankBook.bookName + "\"/></a>\n" +
" <a href=\"book/" + clickRankBook.id + ".html\">"+ imageHtml +"</a>\n" +
" </div>\n" +
" <a class=\"txt\" href=\"/book/"+clickRankBook.id+".html\">" + clickRankBook.bookDesc + "</a>\n" +
" <a class=\"txt\" href=\"/book/" + clickRankBook.id + ".html\">" + clickRankBook.bookDesc + "</a>\n" +
" </div>\n" +
"\n" +
" </li>");
@ -411,25 +413,25 @@
var newRankBooks = data.data;
var newRankBooksHtml = "";
for (var i = 0; i < newRankBooks.length; i++) {
var newRankBook = newRankBooks[i];
var classHtml = "";
var imageHtml = "";
if (i == 0) {
classHtml = "on";
imageHtml = "<img src=\"" + newRankBook.picUrl + "\" alt=\"" + newRankBook.bookName + "\"/>";
}
if (i < 3) {
classHtml += (" num" + (i + 1));
}
var newRankBook = newRankBooks[i];
newRankBooksHtml += ("<li class=\"" + classHtml + "\">\n" +
" <div class=\"book_name\">\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/"+newRankBook.id+".html\">" + newRankBook.bookName + "</a>\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/" + newRankBook.id + ".html\">" + newRankBook.bookName + "</a>\n" +
" </div>\n" +
" <div class=\"book_intro\">\n" +
" <div class=\"cover\">\n" +
" <a href=\"book/"+newRankBook.id+".html\"><img\n" +
" src=\"" + newRankBook.picUrl + "\"\n" +
" alt=\"" + newRankBook.bookName + "\"/></a>\n" +
" <a href=\"book/" + newRankBook.id + ".html\">" + imageHtml + "</a>\n" +
" </div>\n" +
" <a class=\"txt\" href=\"/book/"+newRankBook.id+".html\">" + newRankBook.bookDesc + "</a>\n" +
" <a class=\"txt\" href=\"/book/" + newRankBook.id + ".html\">" + newRankBook.bookDesc + "</a>\n" +
" </div>\n" +
"\n" +
" </li>");
@ -456,34 +458,34 @@
var updateRankBookHtml = "";
var updateRankBookHtml2 = "";
for (var i = 0; i < updateRankBooks.length; i++) {
var updateRankBook = updateRankBooks[i];
var classHtml = "";
var imageHtml = "";
if (i == 0) {
classHtml = "on";
imageHtml = "<img\ src=\"" + updateRankBook.picUrl + "\" alt=\"" + updateRankBook.bookName + "\"/>";
}
if (i < 3) {
classHtml += (" num" + (i + 1));
}
var updateRankBook = updateRankBooks[i];
if (i < 10) {
updateRankBookHtml += ("<li class=\"" + classHtml + "\">\n" +
" <div class=\"book_name\">\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/"+updateRankBook.id+".html\">" + updateRankBook.bookName + "</a>\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.bookName + "</a>\n" +
" </div>\n" +
" <div class=\"book_intro\">\n" +
" <div class=\"cover\">\n" +
" <a href=\"book/"+updateRankBook.id+".html\"><img\n" +
" src=\"" + updateRankBook.picUrl + "\"\n" +
" alt=\"" + updateRankBook.bookName + "\"/></a>\n" +
" <a href=\"book/" + updateRankBook.id + ".html\">" + imageHtml + "</a>\n" +
" </div>\n" +
" <a class=\"txt\" href=\"/book/"+updateRankBook.id+".html\">" + updateRankBook.bookDesc + "</a>\n" +
" <a class=\"txt\" href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.bookDesc + "</a>\n" +
" </div>\n" +
"\n" +
" </li>");
}
updateRankBookHtml2 += ("<tr>\n" +
" <td class=\"style\"><a href=\"book/bookclass.html?c="+updateRankBook.catId+"\">[" + updateRankBook.catName + "]</a></td>\n" +
" <td class=\"name\"><a href=\"/book/"+updateRankBook.id+".html\">" + updateRankBook.bookName + "</a></td>\n" +
" <td class=\"chapter\"><a href=\"/book/"+updateRankBook.id+".html\">" + updateRankBook.lastIndexName + "</a>\n" +
" <td class=\"style\"><a href=\"book/bookclass.html?c=" + updateRankBook.catId + "\">[" + updateRankBook.catName + "]</a></td>\n" +
" <td class=\"name\"><a href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.bookName + "</a></td>\n" +
" <td class=\"chapter\"><a href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.lastIndexName + "</a>\n" +
" <i class=\"\"></i>\n" +
" </td>\n" +
" <td class=\"author\"><a href=\"javascript:void(0)\">" + updateRankBook.authorName + "</a></td>\n" +
@ -514,7 +516,7 @@
var friendLinkHtml = "";
for (var i = 0; i < friendLinkList.length; i++) {
var friendLink = friendLinkList[i];
friendLinkHtml += ("<a target='_blank' href=\""+friendLink.linkUrl+"\">"+friendLink.linkName+"</a>");
friendLinkHtml += ("<a target='_blank' href=\"" + friendLink.linkUrl + "\">" + friendLink.linkName + "</a>");
}
$("#friendLink").append(friendLinkHtml);
} else {

View File

@ -5,7 +5,7 @@
<groupId>com.java2nb</groupId>
<artifactId>novel</artifactId>
<version>3.5.1</version>
<version>3.5.2</version>
<modules>
<module>novel-common</module>
<module>novel-front</module>

View File

@ -6,7 +6,7 @@
<script>
setTimeout(function () {
location.href = '/';
},3000)
},1000)
</script>
</head>

View File

@ -43,7 +43,7 @@
<li th:class="${navType}==1?'on':''"><a href="/book/bookclass.html">全部作品</a></li>
<li th:class="${navType}==2?'on':''"><a href="/book/book_ranking.html">排行榜</a></li>
<li class=""><a href="/pay/index.html">充值</a></li>
<li><a href="/author/index.html">作家专区</a></li>
<li><a href="/author/index.html" target="_blank">作家专区</a></li>
</ul>
</div>

View File

@ -57,7 +57,6 @@
<div class="picRecommend cf" id="hotRecBooks">
</div>
</div>
<div id="bookrank1_ShowBookRank">
@ -83,7 +82,6 @@
<div class="picRecommend cf" id="classicBooks">
</div>
</div>
<div id="bookrank2_ShowBookRank">
@ -141,7 +139,7 @@
</div>
</div>
<div class="friend_link" >
<div class="friend_link">
<div class="box_center cf" id="friendLink">
<span>友情链接:</span>
</div>
@ -153,6 +151,7 @@
</body>
<div th:replace="common/js :: js"></div>
<script src="/javascript/lazyload.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
$(function () {
//加载首页书籍设置数据
@ -174,7 +173,7 @@
if (i == 0) {
classHtml = "on";
}
carouseBigHtml += ("<dd class=\"" + classHtml + "\"><a href=\"/book/"+carouselBook.bookId+".html\">" +
carouseBigHtml += ("<dd class=\"" + classHtml + "\"><a href=\"/book/" + carouselBook.bookId + ".html\">" +
"<img src=\"" + carouselBook.picUrl + "\" alt=\"" + carouselBook.bookName + "\"/></a></dd>");
carouseSmallHtml += " <li class=\"" + classHtml + "\">" +
@ -231,7 +230,7 @@
} else if (i % 2 == 1) {
topBooks1Html += "<dd>";
}
topBooks1Html += ("<a href=\"book/"+toBook.bookId+".html\">" + toBook.bookName + "</a>");
topBooks1Html += ("<a href=\"book/" + toBook.bookId + ".html\">" + toBook.bookName + "</a>");
if (i == 0) {
topBooks1Html += "</dt>";
} else if (i % 2 == 0) {
@ -244,7 +243,7 @@
} else if (i % 2 == 0) {
topBooks2Html += "<dd>";
}
topBooks2Html += ("<a href=\"book/"+toBook.bookId+".html\">" + toBook.bookName + "</a>");
topBooks2Html += ("<a href=\"book/" + toBook.bookId + ".html\">" + toBook.bookName + "</a>");
if (i == 5) {
topBooks2Html += "</dt>";
} else if (i % 2 == 1) {
@ -262,19 +261,20 @@
for (var i = 0; i < rightListBooks.length; i++) {
var rightListBook = rightListBooks[i];
var classHtml = "";
var imageHtml = "";
if (i == 0) {
classHtml = "on";
imageHtml = "<img src=\"" + rightListBook.picUrl + "\" alt=\"" + rightListBook.bookName + "\"/></a>\n";
}
if (i < 3) {
classHtml += (" num" + (i + 1));
}
rightListBooksHtml += ("<li class=\"" + classHtml + "\">\n" +
" <div class=\"book_name\"><i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/"+rightListBook.bookId+".html\">" + rightListBook.bookName + "</a></div>\n" +
" <div class=\"book_name\"><i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/" + rightListBook.bookId + ".html\">" + rightListBook.bookName + "</a></div>\n" +
" <div class=\"book_intro\">\n" +
" <div class=\"cover\"><a href=\"/book/"+rightListBook.bookId+".html\"><img\n" +
" src=\"" + rightListBook.picUrl + "\" alt=\"" + rightListBook.bookName + "\"/></a>\n" +
" <div class=\"cover\"><a href=\"/book/" + rightListBook.bookId + ".html\">" + imageHtml +
" </div>\n" +
" <a class=\"txt\" href=\"/book/"+rightListBook.bookId+".html\">" + rightListBook.bookDesc + "</a>\n" +
" <a class=\"txt\" href=\"/book/" + rightListBook.bookId + ".html\">" + rightListBook.bookDesc + "</a>\n" +
" </div>\n" +
" </li>");
}
@ -286,13 +286,13 @@
for (var i = 0; i < hotRecBooks.length; i++) {
var hotRecBook = hotRecBooks[i];
hotRecBooksHtml += (" <div class=\"itemsList\">\n" +
" <a class=\"items_img\" href=\"/book/"+hotRecBook.bookId+".html\">\n" +
" <img src=\"" + hotRecBook.picUrl + "\" alt=\"" + hotRecBook.bookName + "\"/>\n" +
" <a class=\"items_img\" href=\"/book/" + hotRecBook.bookId + ".html\">\n" +
" <img class=\"lazyload\" src='/images/default.gif' data-src=\"" + hotRecBook.picUrl + "\" alt=\"" + hotRecBook.bookName + "\"/>\n" +
" </a>\n" +
" <div class=\"items_txt\">\n" +
" <h4><a href=\"/book/"+hotRecBook.bookId+".html\">" + hotRecBook.bookName + "</a></h4>\n" +
" <h4><a href=\"/book/" + hotRecBook.bookId + ".html\">" + hotRecBook.bookName + "</a></h4>\n" +
" <p class=\"author\"><a href=\"javascript:void(0)\">作者:" + hotRecBook.authorName + "</a></p>\n" +
" <p class=\"intro\"><a href=\"/book/"+hotRecBook.bookId+".html\">" + hotRecBook.bookDesc + "</a>\n" +
" <p class=\"intro\"><a href=\"/book/" + hotRecBook.bookId + ".html\">" + hotRecBook.bookDesc + "</a>\n" +
" </p>\n" +
" </div>\n" +
" </div>");
@ -305,13 +305,13 @@
for (var i = 0; i < classicBooks.length; i++) {
var classicBook = classicBooks[i];
classicBooksHtml += (" <div class=\"itemsList\">\n" +
" <a class=\"items_img\" href=\"/book/"+classicBook.bookId+".html\">\n" +
" <img src=\"" + classicBook.picUrl + "\" alt=\"" + classicBook.bookName + "\"/>\n" +
" <a class=\"items_img\" href=\"/book/" + classicBook.bookId + ".html\">\n" +
" <img class=\"lazyload\" src='/images/default.gif' data-src=\"" + classicBook.picUrl + "\" alt=\"" + classicBook.bookName + "\"/>\n" +
" </a>\n" +
" <div class=\"items_txt\">\n" +
" <h4><a href=\"/book/"+classicBook.bookId+".html\">" + classicBook.bookName + "</a></h4>\n" +
" <h4><a href=\"/book/" + classicBook.bookId + ".html\">" + classicBook.bookName + "</a></h4>\n" +
" <p class=\"author\"><a href=\"javascript:void(0)\">作者:" + classicBook.authorName + "</a></p>\n" +
" <p class=\"intro\"><a href=\"/book/"+classicBook.bookId+".html\">" + classicBook.bookDesc + "</a>\n" +
" <p class=\"intro\"><a href=\"/book/" + classicBook.bookId + ".html\">" + classicBook.bookDesc + "</a>\n" +
" </p>\n" +
" </div>\n" +
" </div>");
@ -319,6 +319,7 @@
}
$("#classicBooks").html(classicBooksHtml);
lazyload();
} else {
layer.alert(data.msg);
@ -342,7 +343,7 @@
for (var i = 0; i < indexNewsList.length; i++) {
var indexNews = indexNewsList[i];
indexNewsHtml += ("<dd style=\"text-align:left;\"><span>[" + indexNews.catName + "]</span><a\n" +
" href=\"/about/newsInfo-"+indexNews.id+".html\">" + indexNews.title + "</a>\n" +
" href=\"/about/newsInfo-" + indexNews.id + ".html\">" + indexNews.title + "</a>\n" +
" </dd>");
}
$("#indexNews").html(indexNewsHtml);
@ -368,24 +369,25 @@
var clickRankBooks = data.data;
var clickRankBooksHtml = "";
for (var i = 0; i < clickRankBooks.length; i++) {
var clickRankBook = clickRankBooks[i];
var classHtml = "";
var imageHtml = "";
if (i == 0) {
classHtml = "on";
imageHtml = "<img src=\"" + clickRankBook.picUrl + "\" alt=\"" + clickRankBook.bookName + "\"/>";
}
if (i < 3) {
classHtml += (" num" + (i + 1));
}
var clickRankBook = clickRankBooks[i];
clickRankBooksHtml += ("<li class=\"" + classHtml + "\">\n" +
" <div class=\"book_name\">\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/"+clickRankBook.id+".html\">" + clickRankBook.bookName + "</a>\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/" + clickRankBook.id + ".html\">" + clickRankBook.bookName + "</a>\n" +
" </div>\n" +
" <div class=\"book_intro\">\n" +
" <div class=\"cover\">\n" +
" <a href=\"book/"+clickRankBook.id+".html\"><img src=\"" + clickRankBook.picUrl + "\"\n" +
" alt=\"" + clickRankBook.bookName + "\"/></a>\n" +
" <a href=\"book/" + clickRankBook.id + ".html\">"+ imageHtml +"</a>\n" +
" </div>\n" +
" <a class=\"txt\" href=\"/book/"+clickRankBook.id+".html\">" + clickRankBook.bookDesc + "</a>\n" +
" <a class=\"txt\" href=\"/book/" + clickRankBook.id + ".html\">" + clickRankBook.bookDesc + "</a>\n" +
" </div>\n" +
"\n" +
" </li>");
@ -411,25 +413,25 @@
var newRankBooks = data.data;
var newRankBooksHtml = "";
for (var i = 0; i < newRankBooks.length; i++) {
var newRankBook = newRankBooks[i];
var classHtml = "";
var imageHtml = "";
if (i == 0) {
classHtml = "on";
imageHtml = "<img src=\"" + newRankBook.picUrl + "\" alt=\"" + newRankBook.bookName + "\"/>";
}
if (i < 3) {
classHtml += (" num" + (i + 1));
}
var newRankBook = newRankBooks[i];
newRankBooksHtml += ("<li class=\"" + classHtml + "\">\n" +
" <div class=\"book_name\">\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/"+newRankBook.id+".html\">" + newRankBook.bookName + "</a>\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/" + newRankBook.id + ".html\">" + newRankBook.bookName + "</a>\n" +
" </div>\n" +
" <div class=\"book_intro\">\n" +
" <div class=\"cover\">\n" +
" <a href=\"book/"+newRankBook.id+".html\"><img\n" +
" src=\"" + newRankBook.picUrl + "\"\n" +
" alt=\"" + newRankBook.bookName + "\"/></a>\n" +
" <a href=\"book/" + newRankBook.id + ".html\">" + imageHtml + "</a>\n" +
" </div>\n" +
" <a class=\"txt\" href=\"/book/"+newRankBook.id+".html\">" + newRankBook.bookDesc + "</a>\n" +
" <a class=\"txt\" href=\"/book/" + newRankBook.id + ".html\">" + newRankBook.bookDesc + "</a>\n" +
" </div>\n" +
"\n" +
" </li>");
@ -456,34 +458,34 @@
var updateRankBookHtml = "";
var updateRankBookHtml2 = "";
for (var i = 0; i < updateRankBooks.length; i++) {
var updateRankBook = updateRankBooks[i];
var classHtml = "";
var imageHtml = "";
if (i == 0) {
classHtml = "on";
imageHtml = "<img\ src=\"" + updateRankBook.picUrl + "\" alt=\"" + updateRankBook.bookName + "\"/>";
}
if (i < 3) {
classHtml += (" num" + (i + 1));
}
var updateRankBook = updateRankBooks[i];
if (i < 10) {
updateRankBookHtml += ("<li class=\"" + classHtml + "\">\n" +
" <div class=\"book_name\">\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/"+updateRankBook.id+".html\">" + updateRankBook.bookName + "</a>\n" +
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.bookName + "</a>\n" +
" </div>\n" +
" <div class=\"book_intro\">\n" +
" <div class=\"cover\">\n" +
" <a href=\"book/"+updateRankBook.id+".html\"><img\n" +
" src=\"" + updateRankBook.picUrl + "\"\n" +
" alt=\"" + updateRankBook.bookName + "\"/></a>\n" +
" <a href=\"book/" + updateRankBook.id + ".html\">" + imageHtml + "</a>\n" +
" </div>\n" +
" <a class=\"txt\" href=\"/book/"+updateRankBook.id+".html\">" + updateRankBook.bookDesc + "</a>\n" +
" <a class=\"txt\" href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.bookDesc + "</a>\n" +
" </div>\n" +
"\n" +
" </li>");
}
updateRankBookHtml2 += ("<tr>\n" +
" <td class=\"style\"><a href=\"book/bookclass.html?c="+updateRankBook.catId+"\">[" + updateRankBook.catName + "]</a></td>\n" +
" <td class=\"name\"><a href=\"/book/"+updateRankBook.id+".html\">" + updateRankBook.bookName + "</a></td>\n" +
" <td class=\"chapter\"><a href=\"/book/"+updateRankBook.id+".html\">" + updateRankBook.lastIndexName + "</a>\n" +
" <td class=\"style\"><a href=\"book/bookclass.html?c=" + updateRankBook.catId + "\">[" + updateRankBook.catName + "]</a></td>\n" +
" <td class=\"name\"><a href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.bookName + "</a></td>\n" +
" <td class=\"chapter\"><a href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.lastIndexName + "</a>\n" +
" <i class=\"\"></i>\n" +
" </td>\n" +
" <td class=\"author\"><a href=\"javascript:void(0)\">" + updateRankBook.authorName + "</a></td>\n" +
@ -514,7 +516,7 @@
var friendLinkHtml = "";
for (var i = 0; i < friendLinkList.length; i++) {
var friendLink = friendLinkList[i];
friendLinkHtml += ("<a target='_blank' href=\""+friendLink.linkUrl+"\">"+friendLink.linkName+"</a>");
friendLinkHtml += ("<a target='_blank' href=\"" + friendLink.linkUrl + "\">" + friendLink.linkName + "</a>");
}
$("#friendLink").append(friendLinkHtml);
} else {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,180 @@
/*!
* Lazy Load - JavaScript plugin for lazy loading images
*
* Copyright (c) 2007-2019 Mika Tuupola
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/mit-license.php
*
* Project home:
* https://appelsiini.net/projects/lazyload
*
* Version: 2.0.0-rc.2
*
*/
(function (root, factory) {
if (typeof exports === "object") {
module.exports = factory(root);
} else if (typeof define === "function" && define.amd) {
define([], factory);
} else {
root.LazyLoad = factory(root);
}
}) (typeof global !== "undefined" ? global : this.window || this.global, function (root) {
"use strict";
if (typeof define === "function" && define.amd){
root = window;
}
const defaults = {
src: "data-src",
srcset: "data-srcset",
selector: ".lazyload",
root: null,
rootMargin: "0px",
threshold: 0
};
/**
* Merge two or more objects. Returns a new object.
* @private
* @param {Boolean} deep If true, do a deep (or recursive) merge [optional]
* @param {Object} objects The objects to merge together
* @returns {Object} Merged values of defaults and options
*/
const extend = function () {
let extended = {};
let deep = false;
let i = 0;
let length = arguments.length;
/* Check if a deep merge */
if (Object.prototype.toString.call(arguments[0]) === "[object Boolean]") {
deep = arguments[0];
i++;
}
/* Merge the object into the extended object */
let merge = function (obj) {
for (let prop in obj) {
if (Object.prototype.hasOwnProperty.call(obj, prop)) {
/* If deep merge and property is an object, merge properties */
if (deep && Object.prototype.toString.call(obj[prop]) === "[object Object]") {
extended[prop] = extend(true, extended[prop], obj[prop]);
} else {
extended[prop] = obj[prop];
}
}
}
};
/* Loop through each object and conduct a merge */
for (; i < length; i++) {
let obj = arguments[i];
merge(obj);
}
return extended;
};
function LazyLoad(images, options) {
this.settings = extend(defaults, options || {});
this.images = images || document.querySelectorAll(this.settings.selector);
this.observer = null;
this.init();
}
LazyLoad.prototype = {
init: function() {
/* Without observers load everything and bail out early. */
if (!root.IntersectionObserver) {
this.loadImages();
return;
}
let self = this;
let observerConfig = {
root: this.settings.root,
rootMargin: this.settings.rootMargin,
threshold: [this.settings.threshold]
};
this.observer = new IntersectionObserver(function(entries) {
Array.prototype.forEach.call(entries, function (entry) {
if (entry.isIntersecting) {
self.observer.unobserve(entry.target);
let src = entry.target.getAttribute(self.settings.src);
let srcset = entry.target.getAttribute(self.settings.srcset);
if ("img" === entry.target.tagName.toLowerCase()) {
if (src) {
entry.target.src = src;
}
if (srcset) {
entry.target.srcset = srcset;
}
} else {
entry.target.style.backgroundImage = "url(" + src + ")";
}
}
});
}, observerConfig);
Array.prototype.forEach.call(this.images, function (image) {
self.observer.observe(image);
});
},
loadAndDestroy: function () {
if (!this.settings) { return; }
this.loadImages();
this.destroy();
},
loadImages: function () {
if (!this.settings) { return; }
let self = this;
Array.prototype.forEach.call(this.images, function (image) {
let src = image.getAttribute(self.settings.src);
let srcset = image.getAttribute(self.settings.srcset);
if ("img" === image.tagName.toLowerCase()) {
if (src) {
image.src = src;
}
if (srcset) {
image.srcset = srcset;
}
} else {
image.style.backgroundImage = "url('" + src + "')";
}
});
},
destroy: function () {
if (!this.settings) { return; }
this.observer.disconnect();
this.settings = null;
}
};
root.lazyload = function(images, options) {
return new LazyLoad(images, options);
};
if (root.jQuery) {
const $ = root.jQuery;
$.fn.lazyload = function (options) {
options = options || {};
options.attribute = options.attribute || "data-src";
new LazyLoad($.makeArray(this), options);
return this;
};
}
return LazyLoad;
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long