Commit 26af6e73 authored by 黎聪聪's avatar 黎聪聪

2020年11月2日 10:05:24

parent b6de9ca9
......@@ -21,4 +21,6 @@ public interface ConsultSheetMapper extends GenericDao<ConsultSheet> {
Integer updateStatus(@Param("consultId") String consultId, @Param("status") String status);
List<ConsultSheet> fetchSearchByPage(Conds conds, Sort sort, int page, int pageSize, Long id);
List<ConsultSheet> consultSheetList(@Param("name") String name,@Param("id")Long id);
}
\ No newline at end of file
......@@ -88,7 +88,23 @@
b.`name` pharmaName,
c.`name` customerName
</sql>
<sql id="sqlCol">
id,
CONVERT(AES_DECRYPT(user_name,'aideakey') USING UTF8) userName,
sex,
CONVERT(AES_DECRYPT(phone,'aideakey') USING UTF8) phone,
past_records,
prescription,
illness,
accounts_id,
STATUS,
create_time,
description,
allergy,
symptom,
open_id
</sql>
<insert id="save" parameterType="com.cftech.consultsheet.model.ConsultSheet" useGeneratedKeys="true"
keyProperty="id">
......@@ -181,6 +197,18 @@
<if test="sort!=null">ORDER BY ${sort.param} ${sort.type}</if>
<if test="limit>0">limit #{offset},#{limit}</if>
</select>
<select id="consultSheetList" resultType="com.cftech.consultsheet.model.ConsultSheet">
SELECT
<include refid="sqlCol"/>
from t_aidea_consult_sheet
where del_flag = 0
<if test="name!=null">
and user_name like concat('%',#{name},'%')
</if>
<if test="id!=null">
and id = #{id}
</if>
</select>
<update id="update" parameterType="com.cftech.consultsheet.model.ConsultSheet">
update t_aidea_consult_sheet
......
......@@ -26,5 +26,12 @@ public interface ConsultSheetService extends GenericService<ConsultSheet> {
* @param consultSheet
*/
JSONObject pollingConsultSheet(ConsultSheet consultSheet);
/**
* @Author Licc
* @Description 咨询单列表
* @Date 13:04 2020/11/1
* @Param
* @return
**/
JSONObject consultSheetList(String name,Long id);
}
......@@ -103,6 +103,26 @@ public class ConsultSheetServiceImpl extends GenericServiceImpl<ConsultSheet> im
return retObj;
}
@Override
public JSONObject consultSheetList(String name,Long id) {
JSONObject rtnJson = new JSONObject();
try {
List<ConsultSheet> consultSheets = consultSheetMapper.consultSheetList(name,id);
if (consultSheets!=null){
rtnJson.put("errerNo", 0);
rtnJson.put("data", consultSheets);
}else{
rtnJson.put("errerNo", 1);
rtnJson.put("errorMsg", "搜索失败");
}
}catch (Exception e){
e.printStackTrace();
rtnJson.put("errrNo", 1);
rtnJson.put("errrMsg", "咨询单列表"+e.getMessage());
}
return rtnJson;
}
/**
* 咨询单分配流程
* 复购/首次分配
......
......@@ -27,4 +27,17 @@ public class MobileConsultSheetController {
public JSONObject submitConsultSheet(@RequestBody ConsultSheet consultSheet) {
return consultSheetService.pollingConsultSheet(consultSheet);
}
/**
* @Author Licc
* @Description 咨询单列表
* @Date 13:01 2020/11/1
* @Param
* @return
**/
@RequestMapping(value = "/consultSheetList",
method = {RequestMethod.GET, RequestMethod.POST},
produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public JSONObject consultSheetList(String name,Long id) {
return consultSheetService.consultSheetList(name,id);
}
}
......@@ -77,7 +77,7 @@
<div class="box">
<div class="box-header">
<form id="seachTableForm" action="#springUrl('/a/orderDetails/list')" method="get">
<input type="hidden" id="id" name="id" value="${id}"/>
<div class="col-xs-2" >
<input type="text" class="form-control "
id="orderCode" name="orderCode" placeholder="订单编码">
......@@ -86,9 +86,10 @@
<input type="text" class="form-control "
id="drugsCode" name="drugsCode" placeholder="商品编码">
</div>
#if($shiro.hasPermission("qy:orderDetails:view"))-->
#if($shiro.hasPermission("qy:orderDetails:view"))
<button type="button" class="search btn btn-primary">搜索</button>
#end-->
#end
<!-- #if($shiro.hasPermission("qy:orderDetails:edit"))-->
<!-- <a href="#springUrl('/a/orderDetails/form')" class="btn btn-primary">新增</a>-->
<!-- <a href="#springUrl('/a/orderDetails/exportExcel')" class="btn btn-primary">导出</a>-->
......@@ -172,7 +173,7 @@
var sSource = "#springUrl('/a/orderDetails/listData')";
var aoData = {
iDisplayStart: 1,
iDosplayLength: 10
iDisplayLength: 10,
}
var retrieveData = function (sSource, aoData, fnCallback) {
......
......@@ -12,4 +12,5 @@
<artifactId>order-detail-module</artifactId>
</project>
\ No newline at end of file
......@@ -130,6 +130,7 @@
<if test="userId!=null"> AND (o.service_id = ${userId} OR o.clerk_id = ${userId} OR o.doctor_id = ${userId}) </if>
<if test="sort!=null">ORDER BY ${sort.param} ${sort.type}</if>
<if test="limit>0">limit #{offset},#{limit}</if>
</select>
<update id="update" parameterType="com.cftech.orderdetail.model.OrderDetails">
......
......@@ -24,5 +24,5 @@ public interface OrderDetailsService extends GenericService<OrderDetails> {
* @param iDisplayStart
* @param iDisplayLength
*/
List<OrderDetails> fetchSearchByPageByUser(String userId, Conds conds, Sort sort, int iDisplayStart, int iDisplayLength);
List<OrderDetails> fetchSearchByPageByUser(String userId, Conds conds, Sort sort, int iDisplayStart, int iDisplayLength,Long id);
}
......@@ -35,11 +35,12 @@ return orderDetailsMapper;
}
@Override
public List<OrderDetails> fetchSearchByPageByUser(String userId, Conds conds, Sort sort, int page, int pageSize) {
public List<OrderDetails> fetchSearchByPageByUser(String userId, Conds conds, Sort sort, int page, int pageSize,Long id) {
Map<String, Object> params = new HashMap<String, Object>();
if (!StringUtils.equals(userId, "1")) {
params.put("userId", userId);
}
params.put("id", id);
params.put("conds", conds);
params.put("offset", page > 0 ? page : 0);
params.put("limit", pageSize > 0 ? pageSize : 0);
......
package com.cftech.orderdetail.utils;
import com.alibaba.fastjson.serializer.ValueFilter;
import java.math.BigDecimal;
public class DoubleJSONFilter implements ValueFilter {
@Override
public Object process(Object value, String s, Object o1) {
if( o1 instanceof Double ){
BigDecimal bg = new BigDecimal((Double) o1);
BigDecimal f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP);
return f1;
}
return o1;
}
}
package com.cftech.orderdetail.web;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.cftech.orderdetail.model.OrderDetails;
import com.cftech.orderdetail.service.OrderDetailsService;
import com.cftech.core.poi.ExcelKit;
......@@ -8,6 +11,7 @@ import com.cftech.core.scope.OrderType;
import com.cftech.core.sql.Conds;
import com.cftech.core.sql.Sort;
import com.cftech.core.util.Constants;
import com.cftech.orderdetail.utils.DoubleJSONFilter;
import com.cftech.sys.security.PermissionSign;
import com.cftech.sys.security.UserUtils;
import lombok.extern.slf4j.Slf4j;
......@@ -44,6 +48,7 @@ public class OrderDetailsController {
public static final String ORDERDETAILS_VIEW = "qy:orderDetails:view";
public static final String ORDERDETAILS_EDIT = "qy:orderDetails:edit";
public static final DoubleJSONFilter DOUBLE_JSON_FILTER = new DoubleJSONFilter();
@Autowired
private OrderDetailsService orderDetailsService;
......@@ -52,9 +57,10 @@ public class OrderDetailsController {
//列表页面
@RequiresPermissions(value = ORDERDETAILS_VIEW)
@RequestMapping("/list")
public String list(HttpServletRequest request, Model model) {
public String list(HttpServletRequest request, Model model,Long id) {
Long accountId = UserUtils.getmpaccounts(request);
model.addAttribute("accountId", accountId);
model.addAttribute("id",id);
return "orderDetails/orderDetailslist";
}
......@@ -101,7 +107,7 @@ public class OrderDetailsController {
@RequiresPermissions(value = ORDERDETAILS_VIEW)
@RequestMapping(value = "/listData")
@ResponseBody
public JSONObject listData(int iDisplayStart, int iDisplayLength, OrderDetails orderDetails, HttpServletRequest request) {
public JSONObject listData(int iDisplayStart, int iDisplayLength, OrderDetails orderDetails,Long id, HttpServletRequest request) {
Long accountsId = UserUtils.getmpaccounts(request);
String userId = String.valueOf(UserUtils.getUser().getId());
......@@ -113,16 +119,19 @@ public class OrderDetailsController {
conds.like("d.drugs_code", orderDetails.getDrugsCode());
if (StringUtils.isNoneBlank(orderDetails.getOrderCode()))
conds.like("d.order_code", orderDetails.getOrderCode());
if (id!=null){
conds.equal("d.order_id",id);
}
Sort sort = new Sort("d.create_time", OrderType.DESC);
List<OrderDetails> list = orderDetailsService.fetchSearchByPageByUser(userId, conds, sort, iDisplayStart, iDisplayLength);
List<OrderDetails> list = orderDetailsService.fetchSearchByPageByUser(userId, conds, sort, iDisplayStart, iDisplayLength,id);
String string = JSON.toJSONString(list, DOUBLE_JSON_FILTER, SerializerFeature.WriteMapNullValue);
Integer counts = orderDetailsService.count(conds);
JSONObject rtnJson = new JSONObject();
rtnJson.put("iTotalRecords", counts);
rtnJson.put("iTotalDisplayRecords", counts);
rtnJson.put("aaData", list);
rtnJson.put("aaData", string);
return rtnJson;
}
......@@ -161,10 +170,10 @@ public class OrderDetailsController {
@RequestMapping("/importExcel")
@RequiresPermissions(value = ORDERDETAILS_EDIT)
public String importExcel(HttpServletRequest request, MultipartFile file, Model model) {
public String importExcel(HttpServletRequest request, MultipartFile file, Model model,Long id) {
Long accountId = UserUtils.getmpaccounts(request);
if (file == null) {
return list(request, model);
return list(request, model,id);
}
// 构造临时路径来存储上传的文件
String uploadPath = System.getProperty("java.io.tmpdir");
......@@ -188,7 +197,7 @@ public class OrderDetailsController {
log.error(e.getMessage());
}
return list(request, model);
return list(request, model,id);
}
}
......@@ -324,7 +324,7 @@
var idHtml = "";
if (id && id != null){
idHtml +=`<input type="hidden" name="idDetail" value="${id}">`
idHtml +=`<input type="hidden" id="idDetail" name="idDetail" value="${id}">`
}else{
idHtml +=`<input type="hidden" name="idDetail" value="">`
}
......@@ -359,7 +359,7 @@
}
let html = `<li id="form-translate" class="list-group-item" style="display:flex ;">
let html = `<li id="form-translate" class="list-group-item translate" style="display:flex ;">
${idHtml}
<select class="form-control select2 releas" name="releas" style="width: 180px;" onchange="getPrice(this)">
${options}
......@@ -414,16 +414,30 @@
}
function deleteSelect(event) {
var url = "#springUrl('/a/order/deleteAll')"
const id = $(event.target).siblings("#idDetail").val();
$.ajax({
url: url,
type: "GET",
data : {
id:id
},
success :function (rsp) {
if (rsp.errorNo==0){
var dom = event.target;
var ret = $(dom);
ret.parent().remove();
toTal()
}
}
});
}
function toTal() {
var count = 0
$('.group [name="htmlAmount"]').each(function(index, item){
$('.translate [name="htmlAmount"]').each(function(index, item){
count += +item.value
})
$("#orderAmount").val(count.toFixed(2));
......@@ -438,7 +452,7 @@
var arr = []
var obj = {}
$('.translate').each((index, item) => {
$(".translate").each((index, item) => {
var txt = $(item).find('[name="releas"]').val()
if (obj[txt]) {
......@@ -460,7 +474,7 @@
var id = $("#id").val()
var orderAmount = $("#orderAmount").val()
var datas = [];
$('.translate').each(function (index,item){
$(".translate").each(function (index,item){
const idDetail = $(item).find('[name="idDetail"]').val()
const productId = $(item).find('[name="releas"]').val()
const drugsNum = $(item).find('[name="listHtml"]').val()
......
......@@ -233,7 +233,6 @@
{
"mData": "payStatus"
}
,
{
"mData": "tradeNo"
......@@ -357,6 +356,7 @@
'</button>\n' +
'<ul class="dropdown-menu" role="menu">\n';
html += '<li><a href="#springUrl("/a/order/form?id=' + a + '")">查看</a></li>';
html += '<li><a href="#springUrl("/a/order/findorderDetail?id=' + a + '")">查看需求清单明细</a></li>';
html += '<li><a href="#springUrl("/a/order/sendOut?id=' + a + '")">订单出库</a></li>';
html += '</ul>';
html += '#end';
......
package com.cftech.order.dao;
import com.alibaba.fastjson.JSONObject;
import com.cftech.core.sql.Conds;
import com.cftech.core.sql.Sort;
import com.cftech.order.model.*;
import com.cftech.core.generic.GenericDao;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
import java.util.List;
......@@ -16,7 +18,8 @@ import java.util.Map;
* @date: 2020-10-10 14:20
*/
public interface OrderMapper extends GenericDao<Order> {
List<Order> fetchSearchBy(Conds conds, Sort sort, int page, int pageSize , Long id);
Integer deleteAll(@Param("id") Long id);
List<ProductOrder> listProduct();
OrderFromVO fetchId(Serializable id);
List<OrderFromVO> fetchProductId(Serializable id);
......@@ -27,5 +30,20 @@ public interface OrderMapper extends GenericDao<Order> {
Order fetchOrder(Long id);
Integer updateOrder(Map<String, Object> params);
/**
* @Author Licc
* @Description 查询所有订单信息
* @Date 15:45 2020/10/30
* @Param
* @return
**/
List<OrderMobile> orderFall(@Param("openid") String openid, @Param("status")Long status, @Param("id")Long id);
/**
* @Author Licc
* @Description 根据订单ID查询订单详情
* @Date 10:46 2020/11/1
* @Param
* @return
**/
List<ProductMobile> orderDetill(@Param("orderId")Long orderId);
}
\ No newline at end of file
......@@ -65,6 +65,7 @@
<result column="product_name" property="productName"/>
<result column="address_id" property="addressId"/>
<result column="courier_number" property="courierNumber"/>
<result column="address" property="address"/>
<collection property="list" ofType="com.cftech.order.model.ProductVO">
<result column="product_name" property="productName"/>
</collection>
......@@ -166,33 +167,33 @@
keyProperty="id">
insert into t_order
(
id,
number,
openid,
pay_status,
pay_amount,
order_amount,
total_amount,
pay_time,
trade_no,
courier_number,
confirm,
order_cancel,
remarks,
accounts_id,
del_flag,
status,
create_time,
update_time,
description,
create_by,
update_by,
consult_id,
address_id,
member_id,
service_id,
doctor_id,
clerk_id
`id`,
`number`,
`openid`,
`pay_status`,
`pay_amount`,
`order_amount`,
`total_amount`,
`pay_time`,
`trade_no`,
`courier_number`,
`confirm`,
`order_cancel`,
`remarks`,
`accounts_id`,
`del_flag`,
`status`,
`create_time`,
`update_time`,
`description`,
`create_by`,
`update_by`,
`consult_id`,
`address_id`,
`member_id`,
`service_id`,
`doctor_id`,
`clerk_id`
)
values
(
......@@ -385,19 +386,15 @@
<update id="delete" parameterType="java.lang.Long">
update t_order set del_flag=1 where id=#{id,jdbcType=BIGINT}
</update>
<select id="fetchProduct" resultType="com.cftech.order.model.ProductDto" parameterType="java.util.Map">
SELECT * FROM t_aidea_product WHERE id = #{productId} AND accounts_id=#{accountsId}
</select>
<update id="updateDetill" parameterType="java.util.Map">
update t_order_details set del_flag=1 where id=#{id,jdbcType=BIGINT}
</update>
<delete id="updateDetill" parameterType="java.util.Map">
delete from t_order_details where order_id = #{id}
</delete>
<select id="fetcheDeta" parameterType="java.util.Map" resultType="java.lang.Integer">
select * from t_order_details where order_id =#{id} and accounts_id=#{accountsId} and drugs_id =#{productId}
</select>
<insert id="saveDetill" parameterType="com.cftech.order.model.OrderDetailDto">
insert into t_order_details
(
......@@ -416,11 +413,9 @@
#{accountsId}
)
</insert>
<select id="fetchOrder" resultType="com.cftech.order.model.Order" parameterType="java.lang.Long">
select * from t_order where id= #{id}
</select>
<update id="updateOrder" parameterType="java.util.Map">
update t_order
<set>
......
......@@ -11,6 +11,7 @@ import lombok.Data;
public class OrderDetailDto {
/* 订单id */
private Long orderId;
private String orderCode;
/* 商品id */
private Long drugsId;
private Long drugsNum;
......
package com.cftech.order.model;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author :licc
* @date :Created in 2020/10/30 16:12
* @description:
*/
@Data
public class OrderMobile {
/*订单id*/
private Long id;
/*订单编码*/
private String number;
/*付款状态*/
private Long payStatus;
/*订单id*/
private Double totalAmount;
/*付款时间*/
private Date payTime;
/*交易号*/
private Long tradeNo;
/*快递单号*/
private String courierNumber;
/*订单取消原因*/
private String orderCancel;
/*状态*/
private Long status;
/*订单创建时间*/
private Date createTime;
/*收货人姓名*/
private String addressName;
/*详细收货地址*/
private String address;
/*手机号*/
private String phone;
/*省份*/
private String province;
/*城市*/
private String city;
/*区县*/
private String area;
private List<ProductMobile> ProductMobile;
}
package com.cftech.order.model;
import lombok.Data;
/**
* @author :licc
* @date :Created in 2020/10/30 16:42
* @description:
*/
@Data
public class ProductMobile {
/*商品名称*/
private String productName;
/*商品价格*/
private String amount;
/*是否是处方药*/
private String isrs;
/*商品图片*/
private String productImg;
/*商品规格*/
private String format;
}
......@@ -6,8 +6,10 @@ import com.cftech.core.sql.Sort;
import com.cftech.order.model.Order;
import com.cftech.core.generic.GenericService;
import com.cftech.order.model.OrderFromVO;
import com.cftech.order.model.ProductMobile;
import com.cftech.order.model.ProductOrder;
import com.qiniu.util.Json;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
import java.util.List;
......@@ -28,4 +30,14 @@ public interface OrderService extends GenericService<Order> {
List<OrderFromVO> fetchProductId(Serializable id);
JSONObject newlyAdded(String datas, Long accountsId);
JSONObject deleteAll(Long id);
/**
* @Author Licc
* @Description 根据订单状态查询订单
* @Date 15:45 2020/10/30
* @Param
* @return
**/
JSONObject confirm(String openid,Long status,Long id);
}
package com.cftech.order.service.impl;
import com.alibaba.fastjson.JSON;
import com.cftech.core.sql.Sort;
import com.cftech.core.util.StringUtils;
import com.cftech.order.model.*;
......@@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.ws.rs.PUT;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
......@@ -74,10 +76,9 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
com.alibaba.fastjson.JSONObject rtnJson = new com.alibaba.fastjson.JSONObject();
OrderDetailDto orderDetailDto = null;
Map<String, Object> params = new HashMap<String, Object>();
;
datas = datas.replaceAll("&quot;", "\"");
JSONArray jsonArray = JSONArray.fromObject(datas);
boolean isAnim = false;
try {
if (jsonArray.size() > 0) {
for (int i = 0; i < jsonArray.size(); i++) {
......@@ -97,14 +98,14 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
params.put("amount", amount);
params.put("orderAmount", orderAmount);
params.put("idDetail", idDetail);
if (!isAnim) {
if(!"".equals(idDetail)){
orderMapper.updateDetill(params);
isAnim = true;
}
rtnJson.put("errorNo","0");
}else {
ProductDto productDtos = orderMapper.fetchProduct(params);
orderDetailDto = new OrderDetailDto();
Order orders = orderMapper.fetchOrder(id);
orderDetailDto.setOrderCode(orders.getNumber());
orderDetailDto.setOrderId(id);
orderDetailDto.setDrugsId(productDtos.getId());
orderDetailDto.setOpenid(orders.getOpenid());
......@@ -115,13 +116,19 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
orderDetailDto.setDrugsSku(productDtos.getFormat());
orderDetailDto.setAccountsId(accountsId);
Integer detill = orderMapper.saveDetill(orderDetailDto);
if (detill<0){
rtnJson.put("errorNo","1");
rtnJson.put("errorNo","修改失败");
}else {
if (detill > 0) {
Integer integer = orderMapper.updateOrder(params);
if (integer > 0) {
rtnJson.put("errorNo", "0");
rtnJson.put("errorMsg", "修改成功");
}
}
}
}
}
}
} catch (Exception e) {
......@@ -132,4 +139,39 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
}
@Override
public com.alibaba.fastjson.JSONObject deleteAll(Long id) {
com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
Integer integer = orderMapper.deleteAll(id);
if (integer<0){
jsonObject.put("errorNo","1");
}
jsonObject.put("errorNo","0");
return jsonObject;
}
@Override
public com.alibaba.fastjson.JSONObject confirm(String openid,Long status,Long id) {
com.alibaba.fastjson.JSONObject rtnJson = new com.alibaba.fastjson.JSONObject();
com.alibaba.fastjson.JSONObject object = new com.alibaba.fastjson.JSONObject();
try {
List<OrderMobile> orderMobiles = orderMapper.orderFall(openid, status, id);
for (OrderMobile orderMobile : orderMobiles) {
Long mobileId = orderMobile.getId();
if (mobileId!=null){
List<ProductMobile> mobiles = orderMapper.orderDetill(mobileId);
orderMobile.setProductMobile(mobiles);
}
}
object.put("orderMobiles",orderMobiles);
rtnJson.put("errorNo","0");
rtnJson.put("data",object);
}catch (Exception e){
e.printStackTrace();
rtnJson.put("errorNo", "1");
}
return rtnJson;
}
}
\ No newline at end of file
package com.cftech.order.web;
import com.alibaba.fastjson.JSONObject;
import com.cftech.order.service.OrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* @author :licc
* @date :Created in 2020/10/30 15:40
* @description:
*/
@Slf4j
@RestController
@CrossOrigin
@RequestMapping("mobile/a/order")
public class MobileOrderController {
@Autowired
private OrderService orderService;
/**
* @Author Licc
* @Description 待确认订单
* @Date 15:43 2020/10/30
* @Param
* @return
**/
@RequestMapping(value = "/confirm",method = {RequestMethod.POST},produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public JSONObject confirm(String openid,Long status,Long id){
return orderService.confirm(openid,status,id);
}
}
......@@ -14,6 +14,8 @@ import com.cftech.core.sql.Conds;
import com.cftech.core.sql.Sort;
import com.cftech.core.util.Constants;
import com.cftech.order.utils.DoubleJSONFilter;
import com.cftech.orderdetail.model.OrderDetails;
import com.cftech.orderdetail.web.OrderDetailsController;
import com.cftech.sys.security.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
......@@ -22,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
......@@ -55,7 +58,8 @@ public class OrderController {
public static final DoubleJSONFilter DOUBLE_JSON_FILTER = new DoubleJSONFilter();
@Autowired
private OrderService orderService;
@Autowired
private OrderDetailsController orderDetailsController;
//列表页面
@RequiresPermissions(value = ORDER_VIEW)
......@@ -126,6 +130,7 @@ public class OrderController {
Long accountsId = UserUtils.getmpaccounts(request);
Conds conds = new Conds();
conds.equal("o.del_flag", Constants.DEL_FLAG_0);
conds.equal("d.del_flag", Constants.DEL_FLAG_0);
conds.equal("o.accounts_id", accountsId);
Sort sort = new Sort("o.create_time", OrderType.DESC);
if (!StringUtils.isEmpty(order.getNumber())) {
......@@ -223,4 +228,15 @@ public class OrderController {
return list(request, model);
}
@RequestMapping("/findorderDetail")
public String findorderDetail(HttpServletRequest request, Model model,Long id) {
return orderDetailsController.list(request,model,id);
}
@RequestMapping("/deleteAll")
@ResponseBody
public JSONObject deleteAll(Long id) {
return orderService.deleteAll(id);
}
}
......@@ -34,4 +34,5 @@ public class MobileProductController {
public JSONObject productMenu(Long ID){
return productService.productId(ID);
}
}
......@@ -80,7 +80,7 @@
</ol>
</section>
<input type="hidden" id="sizetmp" name="sizetmp" value="$!{data.size}"/>
<!-- Main content -->
<section class="content">
<div class="row">
......@@ -110,6 +110,8 @@
value="$!{data.author}">
</div>
<!-- -->
<!-- <div class="form-group form-md-line-input">
<label>文章大图封面(建议360*200)</label>
<div class="input-group">
......@@ -171,6 +173,14 @@
required="required"
>
</div>
<div class="form-group form-md-line-input col-md-12">
<label>是否展示大图文章</label>
<select class="form-control select2 releas" name="size" id="size">
<option id="options" name="options" value="1"></option>
<option id="optiona" name="optiona" value="0"></option>
</select>
</div>
<div class="form-group form-md-line-input col-md-12" id="relationCfArticleDiv">
<label>关联文章</label>
......@@ -326,6 +336,14 @@
};
$().ready(function () {
let val = $("#sizetmp").val();
let options = $("#options").val();
if (val==options){
$("#options").attr("selected","selected")
}else{
$("#optiona").attr("selected","selected")
}
Cfapp.init();
recdTypeAdd.init();
ue = UE.getEditor('ueditor', {
......
......@@ -57,7 +57,8 @@
#QySendMassMyModal label {
font-weight: 400;
}
div[id^="whereSearch"]{
div[id^="whereSearch"] {
display: none;
}
</style>
......@@ -172,7 +173,7 @@
<option value="2"></option>
</select>
</div>
<div class="form-group form-md-line-input" id = "whereSearchOrg">
<div class="form-group form-md-line-input" id="whereSearchOrg">
<div class="input-group">
<input type="text" id="orgId" name="orgId" value=""
class="form-control" style="display: none">
......@@ -183,9 +184,9 @@
</div>
</div>
<p id="orgName" name="orgName" value="" style="width:100%;" >
<p id="orgName" name="orgName" value="" style="width:100%;">
</p>
<div class="form-group form-md-line-input" id = "whereSearchTag">
<div class="form-group form-md-line-input" id="whereSearchTag">
<label>企业标签</label>
<select class="form-control select2" multiple="multiple" data-placeholder="选择企业标签"
style="width: 100%;" id="taglist">
......@@ -204,7 +205,7 @@
</span>
</div>
</div>
<p id="searchName" name="searchName" value="" style="width:100%;" >
<p id="searchName" name="searchName" value="" style="width:100%;">
</p>
<div class="box-footer" style="clear:both;">
<a class="btn btn-primary" id="qyMassSend">发送</a>
......@@ -257,24 +258,29 @@
#end
#if($shiro.hasPermission("mp:article:mass"))
<a href="javascript:void(0)" id="sendMessageMass" class="btn bg-olive">生成微信图文素材</a>
#end
#if($shiro.hasPermission("qy:article:sendMass"))
<a href="javascript:void(0)" id="qysendMessageMass" class="btn bg-olive">企业号发送</a>
#end
</form>
</div><!-- /.box-header -->
<div class="box-body">
<table id="table" class="table table-bordered table-striped">
<thead>
<tr>
<th>选择</th>
<th>文章标题</th>
<th>所属栏目</th>
<th>创建时间</th>
<th>是否推荐文章</th>
<th>是否推荐banner图</th>
<th>操作</th>
</tr>
</thead>
<tbody id="tablebody">
<tbody id="tablebody" class="tablebody">
</tbody>
</table>
......@@ -284,7 +290,24 @@
</div><!-- /.row -->
</section><!-- /.content -->
</div><!-- /.content-wrapper -->
<div class="modal fade" tabindex="-1" role="dialog" id="myModal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
<h4 class="modal-title">操作提示</h4>
</div>
<div class="modal-body">
<p>是否确认</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" onclick="show()">取消</button>
<button type="button" class="btn btn-primary" onclick="save()">确认</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<!-- Add the sidebar's background. This div must be placed
immediately after the control sidebar -->
......@@ -318,8 +341,8 @@
<script src="plugins/ztree/js/jquery.ztree.all.min.js"
type="text/javascript"></script>
<script>
var csrfheader = {name:'_csrf_header',value:'${_csrf.headerName}'};
var csrftoken = {name:'_csrf',value:'${_csrf.token}'};
var csrfheader = {name: '_csrf_header', value: '${_csrf.headerName}'};
var csrftoken = {name: '_csrf', value: '${_csrf.token}'};
</script>
<script src="common/js/cfapp.js"></script>
......@@ -348,9 +371,9 @@
var qySendMassMessageUrl = "#springUrl('/a/qyMessage/sendMessage')";//企业号发送文章
var qyagentListUrl = "#springUrl('/a/qyagent/listData')";
var protocol=window.location.protocol;
var host=window.location.host;
var domain = protocol+'//'+host;
var protocol = window.location.protocol;
var host = window.location.host;
var domain = protocol + '//' + host;
/**
......@@ -416,10 +439,10 @@
title: "绑定微信人员",
btnoktext: "确定",
btncanceltext: "取消",
columns: ['选择', '头像', '姓名','手机号码','职位','所属组织'],
isSearch:'0', //0搜索 1:不搜索
searchColumns:["name","mobile"],//搜索的字段名称
searchColumnsRemarks:["人员姓名","手机号"],//搜索的字段备注
columns: ['选择', '头像', '姓名', '手机号码', '职位', '所属组织'],
isSearch: '0', //0搜索 1:不搜索
searchColumns: ["name", "mobile"],//搜索的字段名称
searchColumnsRemarks: ["人员姓名", "手机号"],//搜索的字段备注
aoColumns: [{
"mData": "id"
}, {
......@@ -451,7 +474,7 @@
}
}],
success: function () {
if($("#wxUserName").val()){
if ($("#wxUserName").val()) {
$("#searchName").html($("#wxUserName").val());
}
}, //确定处理
......@@ -500,7 +523,7 @@
});
$("#qyMassSend").click(function(){//企业号发送
$("#qyMassSend").click(function () {//企业号发送
var qyMassSendData = {};
......@@ -530,7 +553,7 @@
$.ajax({
"type": "POST",
"url": articleTreeUri,
"data": {_csrf_header:csrfheader.value,_csrf:csrftoken.value},
"data": {_csrf_header: csrfheader.value, _csrf: csrftoken.value},
"dataType": "json",
"success": buildOrgTree
});
......@@ -587,7 +610,7 @@
dateformatId = function (a, b, c, d) {
if (a.id) {
if (mpselectedArticles.indexOf(a.id+'') >= 0) {
if (mpselectedArticles.indexOf(a.id + '') >= 0) {
return '<input type="checkbox" onchange="recordingOne(this)" class="checkchild" checked="true" value="' + a.id + '" />';
} else {
return '<input type="checkbox" onchange="recordingOne(this)" class="checkchild" value="' + a.id + '" />';
......@@ -625,7 +648,12 @@
$.ajax({
type: "POST",
url: "#springUrl('/a/cfarticle/mergeArticles')",
data: {articles: mpselectedArticles.toString(),domain:domain,_csrfheader:csrfheader.value,_csrf:csrftoken.value},
data: {
articles: mpselectedArticles.toString(),
domain: domain,
_csrfheader: csrfheader.value,
_csrf: csrftoken.value
},
dataType: "json",
success: function (data) {
warningMsg.destory();
......@@ -734,13 +762,14 @@
"searching": false,
"ordering": false,
"bFiltered": false,
"bStateSave" : true, // save datatable state(pagination, sort, etc) in cookie.
"bStateSave": true, // save datatable state(pagination, sort, etc) in cookie.
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": sSource,
"fnServerData": retrieveData,
"pagingType": "full_numbers",
"aoColumns": [
{
"mData": dateformatId
},
......@@ -752,46 +781,81 @@
},
{
"mData": "createTime"
}
,
{
"mData": "recommended"
}
,
{
"mData": "whetherBanner"
},
{
"mData": "id"
}],
"aoColumnDefs": [
{
"aTargets": [1],
"mData": "title",
"mRender": function (a, b, c, d) {
if(c.type==0){
if (c.type == 0) {
return '<a href="#springUrl("/a/cfarticle/form?id=' + c.id + '")" data-id="' + c.id + '" data-action="view">' + a + '</a>';
}else{
} else {
return '<a href="#springUrl("/a/cfarticle/picform?id=' + c.id + '")" data-id="' + c.id + '" data-action="view">' + a + '</a>';
}
}
},{
}, {
"aTargets": [3],
"mData": "createTime",
"mRender": function (a, b, c, d) {//a表示createtime对应的值,c表示当前记录行对象
return formatDates(a, "yyyy-MM-dd HH:mm:ss");
}
}, {
"aTargets": [4],
"mData": "recommended",
"mRender": function (a, b, c, d) {//a表示createtime对应的值,c表示当前记录行对象
var html = ''
if (a == 1) {
html += '<input type="checkbox" id="recommended" name="recommended" value="' + a + '" checked="true" onchange="onreco(event)">';
} else {
html += '<input type="checkbox" id="recommended" name="recommended" value="' + a + '" onchange="onreco(event)">';
}
return html;
}
}, {
"aTargets": [5],
"mData": "whetherBanner",
"mRender": function (a, b, c, d) {//a表示createtime对应的值,c表示当前记录行对象
var html = ''
if (a == 1) {
html += '<input type="checkbox" id="whetherBanner" name="whetherBanner" value="' + a + '" checked="true" onchange="onBanner(event)">';
} else {
html += '<input type="checkbox" id="whetherBanner" name="whetherBanner" value="' + a + '" onchange="onBanner(event)">';
}
return html;
}
},
{
"aTargets": [4],
"aTargets": [6],
"mData": "id",
"mRender": function (a, b, c, d) {//a表示id对应的值,c表示当前记录行对象
var html = '#if($shiro.hasPermission("qy:cfarticle:edit"))';//
if(c.type==0){
if (c.type == 0) {
html += '<a href="#springUrl("/a/cfarticle/form?id=' + a + '")" data-id="' + a + '" data-action="view" class="btn green">修改</a>';
}else{
} else {
html += '<a href="#springUrl("/a/cfarticle/picform?id=' + a + '")" data-id="' + a + '" data-action="view" class="btn green">修改</a>';
}
html += '<a href="javascript:void(0);" data-id="' + a + '" data-action="remove" onclick="removeData(' + a + ')" class="btn red">删除</a>';
html += '<input type="checkbox" id="id" name="id" value="' + a + '" style="display: none" >';
html += '#end';
html+='#if($shiro.hasPermission("qy:review:view"))';
html += '#if($shiro.hasPermission("qy:review:view"))';
//html+= '<a href="#springUrl("/a/review/list?entityId=' + a + '")" data-id="' + a + '" data-action="view" class="btn green">评论</a>';
html+='#end';
html += '#end';
return html;
}
}
......@@ -800,7 +864,171 @@
});
}
var or = 0;
function onreco(e) {
if (e.target.value == 1){
Cfapp.alert({
message: "是否确认取消推荐",
btntext: "确定",
success: function () {
select(e)
}
});
}else{
f(e)
}
}
function onBanner(e) {
if (e.target.value == 1){
Cfapp.alert({
message: "是否确认取消推荐",
btntext: "确定",
success: function () {
select(e)
}
});
}else{
b(e)
}
}
function select(e) {
if (e.target.value == '0') {
e.target.value = '1'
} else if (e.target.value == '1') {
e.target.value = '0'
}
save()
}
function show() {
$('#myModal').modal('hide')
}
function f(e) {
var url = "#springUrl('/a/cfarticle/selectYes')"
$.ajax({
url: url,
type: "GET",
data: {},
success: function (rsp) {
if (rsp.errorNo == "0") {
if (rsp.data >= 4 ) {
Cfapp.alert({
message: "所选推荐不能超过四个",
btntext: "确定",
success: function () {
location.href = "#springUrl('/a/cfarticle/list')";
}
});
}else {
Cfapp.alert({
message: "是否确认推荐",
btntext: "确定",
success: function () {
select(e)
$('#myModal').modal('show')
}
});
}
}
}
});
}
function b() {
var url = "#springUrl('/a/cfarticle/selectBanner')"
$.ajax({
url: url,
type: "GET",
data: {},
success: function (rsp) {
if (rsp.errorNo == "0") {
if (rsp.data >= 4) {
Cfapp.alert({
message: "所选推荐不能超过四个",
btntext: "确定",
success: function () {
location.href = "#springUrl('/a/cfarticle/list')";
}
});
}else {
Cfapp.alert({
message: "是否确认推荐",
btntext: "确定",
success: function () {
select(e)
$('#myModal').modal('show')
}
});
}
}
}
});
}
function save() {
var datas = [];
var counta = 0;
var countb = 0;
$('.tablebody').children().each(function (index, item) {
const id = $(item).find('[name="id"]').val()
const recommended = $(item).find('[name="recommended"]').val()
const whetherBanner = $(item).find('[name="whetherBanner"]').val()
datas.push({
id: id,
recommended: recommended,
whetherBanner: whetherBanner
})
})
var url = "#springUrl('/a/cfarticle/updatecom')"
$.ajax({
url: url,
type: "GET",
dateType: 'json',
data: {datas: JSON.stringify(datas)},
success: function (rsp) {
console.log(rsp);
if (rsp.errorNo == "0") {
Cfapp.alert({
message: "修改成功",
btntext: "确定",
success: function () {
location.href = "#springUrl('/a/cfarticle/list')";
}
});
}else {
Cfapp.alert({
message: "修改失败",
btntext: "确定",
success: function () {
location.href = "#springUrl('/a/cfarticle/list')";
}
});
}
}
});
}
jQuery(document).ready(function () {
$(".select2").select2();
seachTable();
initMenuTree();
......@@ -818,12 +1046,12 @@
$("#table").dataTable().fnClearTable();
});
$("#QySendMassMyModal input[name='sendType']").change(function(){
if($(this).val()=="1"){
$("#QySendMassMyModal input[name='sendType']").change(function () {
if ($(this).val() == "1") {
$("div[id^='whereSearch']").show();
$("#searchName").show();
$("#orgName").show();
}else{
} else {
$("div[id^='whereSearch']").hide();
$("#searchName").hide();
$("#orgName").hide();
......@@ -835,13 +1063,13 @@
"type": "GET",
"url": qyagentListUrl,
"dataType": "json",
"data": {iDisplayStart:0,iDisplayLength:0}, //以json格式传递
"data": {iDisplayStart: 0, iDisplayLength: 0}, //以json格式传递
"success": function (data) {
if(data && data.aaData){
if (data && data.aaData) {
var list = data.aaData;
var agentHTML = "";
for(var i = 0;i<list.length;i++){
agentHTML+="<option value='"+list[i].agentId+"'>"+list[i].name+"</option>";
for (var i = 0; i < list.length; i++) {
agentHTML += "<option value='" + list[i].agentId + "'>" + list[i].name + "</option>";
}
$("select[name='agent']").append(agentHTML);
}
......@@ -850,6 +1078,7 @@
});
Cfapp.init();
function removeData(data) {
Cfapp.confirm({
message: "确定要删除吗",
......@@ -859,7 +1088,7 @@
$.ajax({
type: "POST",
url: "#springUrl('/a/cfarticle/delete')",
data: {id: data,_csrf_header:csrfheader.value,_csrf:csrftoken.value},
data: {id: data, _csrf_header: csrfheader.value, _csrf: csrftoken.value},
dataType: "json",
success: function (data) {
if (data.errorNo == 0) {
......
package com.cftech.cms.cfarticle.dao;
import com.alibaba.fastjson.JSONObject;
import com.cftech.cms.cfarticle.model.Cfarticle;
import com.cftech.cms.cfarticle.model.CfarticleColumnDto;
import com.cftech.cms.cfarticle.model.CfarticleVO;
import com.cftech.cms.cfarticle.model.columnVO;
import com.cftech.core.generic.GenericDao;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
......@@ -36,4 +40,59 @@ public interface CfarticleMapper extends GenericDao<Cfarticle> {
List<Cfarticle> fetchSearchByPageInOrder(Map<String,Object> params);
int countReview(Map<String,Object> params);
Integer updatecom(@Param("id") Long id, @Param("recommended")Long recommended, @Param("whetherBanner")Long whetherBanner);
/**
* @Author Licc
* @Description 药品库推荐数据回填
* @Date 17:24 2020/10/28
* @Param
* @return
**/
List<CfarticleVO> recommended(Long id);
/**
* @Author Licc
* @Description 阅读量
* @Date 18:33 2020/10/28
* @Param
* @return
**/
Integer reading(@Param("id") Long id,@Param("count") int count);
/**
* @Author Licc
* @Description 阅读量查询
* @Date 18:33 2020/10/28
* @Param
* @return
**/
CfarticleVO saveReading(@Param("id") Long id);
Integer selectcom();
Integer selectBanner();
/**
* @Author Licc
* @Description 门户列表数据回填
* @Date 10:50 2020/10/30
* @Param
* @return
**/
List<Cfarticle> gateway(@Param("title") String title);
/**
* @Author Licc
* @Description 栏目列表数据回填
* @Date 10:50 2020/10/30
* @Param
* @return
**/
List<columnVO> column();
/**
* @Author Licc
* @Description 栏目文章详情
* @Date 10:34 2020/10/30
* @Param
* @return
**/
List<CfarticleVO> columnDetails(@Param("id") Long id);
}
\ No newline at end of file
......@@ -23,6 +23,9 @@
<result column="content_source_url" property="contentSourceUrl"/>
<result column="is_url" property="isUrl"/>
<result column="type" property="type"/>
<result column="recommended" property="recommended"/>
<result column="whether_banner" property="whetherBanner"/>
<result column="size" property="size"/>
</resultMap>
<sql id="sqlWhere">
......@@ -72,7 +75,11 @@
content_source_url,
author,
is_url,
type
type,
recommended,
whether_banner,
reading,
size
</sql>
......@@ -103,7 +110,10 @@
#{contentSourceUrl, jdbcType=VARCHAR},
#{author, jdbcType=VARCHAR},
#{isUrl, jdbcType=TINYINT},
#{type, jdbcType=VARCHAR}
#{recommended, jdbcType=BIGINT},
#{whether_banner, jdbcType=BIGINT},
#{reading, jdbcType=BIGINT},
#{size, jdbcType=BIGINT}
)
</insert>
......@@ -191,6 +201,10 @@
t.is_url,
t.content_source_url,
t.type,
t.recommended,
t.whether_banner,
t.size,
co.remarks,
co.name columnName
FROM wx_cms_cfarticle t
left join wx_cms_column co on co.id = t.`column`
......@@ -232,6 +246,7 @@
</select>
<update id="update" parameterType="com.cftech.cms.cfarticle.model.Cfarticle">
update wx_cms_cfarticle
<set>
......@@ -292,6 +307,18 @@
<if test="type != null">
type = #{type, jdbcType=VARCHAR},
</if>
<if test="recommended != null">
recommended = #{recommended, jdbcType=BIGINT},
</if>
<if test="whetherBanner != null">
whether_banner = #{whetherBanner, jdbcType=BIGINT},
</if>
<if test="reading != null">
reading = #{reading, jdbcType=BIGINT},
</if>
<if test="size != null">
size = #{size, jdbcType=BIGINT}
</if>
</set>
where id=#{id,jdbcType=BIGINT}
......@@ -300,4 +327,127 @@
<update id="delete" parameterType="java.lang.Long">
update wx_cms_cfarticle set del_flag=1 where id=#{id,jdbcType=BIGINT}
</update>
<update id="updatecom">
update wx_cms_cfarticle
<set>
<if test="recommended!=null">
recommended = #{recommended},
</if>
<if test="whetherBanner!=null">
whether_banner = #{whetherBanner}
</if>
</set>
where id = #{id}
</update>
<select id="recommended" resultType="com.cftech.cms.cfarticle.model.CfarticleVO" parameterType="java.lang.Long">
select
a.id,
a.title,
a.author,
a.bigimg,
a.smallimg,
a.content,
a.desc,
a.create_time AS createTime,
a.reading,
b.remarks,
a.recommended,
a.whether_banner AS whetherBanner,
a.size
FROM wx_cms_cfarticle a
LEFT JOIN wx_cms_column b
ON b.id = a.`column`
WHERE a.del_flag = 0
<if test="id!=null">
and a.id = #{id}
</if>
</select>
<update id="reading" parameterType="java.lang.Integer">
update wx_cms_cfarticle
<set>
<if test="count!=null">
reading = #{count}
</if>
</set>
where id =#{id}
</update>
<select id="saveReading" resultType="com.cftech.cms.cfarticle.model.CfarticleVO">
SELECT * FROM wx_cms_cfarticle WHERE id =#{id}
</select>
<select id="selectcom" resultType="java.lang.Integer">
SELECT count(*) FROM wx_cms_cfarticle WHERE recommended= 1
</select>
<select id="selectBanner" resultType="java.lang.Integer">
SELECT count(*) FROM wx_cms_cfarticle WHERE whether_banner= 1
</select>
<select id="gateway" resultType="com.cftech.cms.cfarticle.model.Cfarticle">
SELECT
t.id,
t.title,
t.bigimg,
t.smallimg,
t.content,
t.`desc`,
t.relation_article,
t.`column`,
t.accounts_id,
t.del_flag,
t.status,
t.create_time,
t.update_time,
t.description,
t.create_by,
t.update_by,
t.author,
t.is_url,
t.content_source_url,
t.type,
t.recommended,
t.whether_banner,
t.size,
t.reading,
co.remarks
FROM wx_cms_cfarticle t
left join wx_cms_column co on co.id = t.`column`
where t.del_flag = 0
<if test="title!=null">
and t.title like '%${title}%'
</if>
</select>
<select id="column" resultType="com.cftech.cms.cfarticle.model.columnVO">
SELECT
id,
number,
name,
img,
remarks,
status,
create_time AS createTime,
description
FROM wx_cms_column
WHERE del_flag = 0
</select>
<select id="columnDetails" resultType="com.cftech.cms.cfarticle.model.CfarticleVO" >
select
id,
title,
author,
bigimg,
smallimg,
content,
create_time AS createTime,
reading,
recommended,
whether_banner AS whetherBanner,
size
FROM wx_cms_cfarticle
WHERE del_flag=0
<if test="id!=null">
AND `column`= #{id}
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -53,7 +53,7 @@ public class Cfarticle implements Serializable {
/* 关联的文章 */
@ExportConfig(value = "关联的文章", width = 100)
private String relation_article;
/* 所属栏目 */
/* 分类名称 */
@ExportConfig(value = "所属栏目", width = 100)
private Long column;
/* 所属的账号 */
......@@ -72,11 +72,18 @@ public class Cfarticle implements Serializable {
private Long createBy;
/* 更新人 */
private Long updateBy;
/*是否置顶文章*/
private Long recommended;
/*是否置顶*/
private Long whetherBanner;
/* 封面微信ID */
private String thumbMediaId;
private Long reading;
private Long size;
public Cfarticle() {
this.delFlag = false;
this.status = "0";
......
......@@ -13,5 +13,6 @@ public class CfarticleColumnDto extends Cfarticle {
private String relationCfArticleName; //关联文章
private String remarks;
}
package com.cftech.cms.cfarticle.model;
import com.cftech.core.poi.ExportConfig;
import lombok.Data;
import java.util.Date;
/**
* @author :licc
* @date :Created in 2020/10/28 17:55
* @description:
*/
@Data
public class CfarticleVO {
/* 主键id */
private Long id;
/* 文章标题 */
private String title;
/*文章作者*/
private String author;
/* 文章大图封面 */
private String bigimg;
/* 文章小图封面 */
private String smallimg;
/* 文章内容 */
private String content;
/* 文章描述 */
private String desc;
/* 分类名称 */
private String remarks;
/* 创建时间 */
private Date createTime;
/*阅读量*/
private Long reading;
/*是否置顶文章*/
private Long recommended;
/*是否置顶banner*/
private Long whetherBanner;
private Long size;
}
package com.cftech.cms.cfarticle.model;
import lombok.Data;
/**
* @author :licc
* @date :Created in 2020/10/30 11:50
* @description:
*/
@Data
public class columnVO {
private Long id;
/*栏目编码*/
private String number;
/*栏目名称*/
private String name;
/*栏目图片*/
private String img;
/*分类名称*/
private String remarks;
/*状态*/
private String status;
/*栏目编码*/
private String createTime;
/*备注*/
private String description;
}
package com.cftech.cms.cfarticle.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.cftech.cms.cfarticle.model.Cfarticle;
import com.cftech.cms.cfarticle.model.CfarticleColumnDto;
import com.cftech.core.generic.GenericService;
......@@ -36,8 +39,50 @@ public interface CfarticleService extends GenericService<Cfarticle> {
* @return 条数
*/
int countTemp(Conds conds);
JSONObject selectYes();
JSONObject selectBanner();
List<Cfarticle> fetchSearchByPageInOrder(Conds conds,String articles);
int countReview(Conds conds);
JSONObject updatecom(String datas);
/**
* @Author Licc
* @Description 药品库推荐数据回填
* @Date 17:24 2020/10/28
* @Param
* @return
**/
JSONObject recommended(Long id);
/**
* @Author Licc
* @Description 阅读量
* @Date 18:33 2020/10/28
* @Param
* @return
**/
JSONObject reading(Long id);
/**
* @Author Licc
* @Description 门户列表数据回填
* @Date 10:34 2020/10/30
* @Param
* @return
**/
JSONObject geteway(String title);
/**
* @Author Licc
* @Description 栏目列表列表数据回填
* @Date 10:34 2020/10/30
* @Param
* @return
**/
JSONObject column();
/**
* @Author Licc
* @Description 栏目文章详情
* @Date 10:34 2020/10/30
* @Param
* @return
**/
JSONObject columnDetails(Long id);
}
package com.cftech.cms.cfarticle.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.cftech.cms.cfarticle.dao.CfarticleMapper;
import com.cftech.cms.cfarticle.model.Cfarticle;
import com.cftech.cms.cfarticle.model.CfarticleColumnDto;
import com.cftech.cms.cfarticle.model.CfarticleVO;
import com.cftech.cms.cfarticle.model.columnVO;
import com.cftech.cms.cfarticle.service.CfarticleService;
import com.cftech.core.generic.GenericDao;
import com.cftech.core.generic.GenericServiceImpl;
import com.cftech.core.sql.Conds;
import com.cftech.core.sql.Sort;
import net.sf.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
......@@ -35,13 +40,13 @@ public class CfarticleServiceImpl extends GenericServiceImpl<Cfarticle> implemen
}
@Override
public List<CfarticleColumnDto> fetchSearchByPageTemp(Conds conds, Sort sort, int page, int pageSize,Long specialId) {
public List<CfarticleColumnDto> fetchSearchByPageTemp(Conds conds, Sort sort, int page, int pageSize, Long specialId) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("conds", conds);
params.put("offset", page > 0 ? page : 0);
params.put("limit", pageSize > 0 ? pageSize : 0);
params.put("sort", sort);
params.put("specialId",specialId);
params.put("specialId", specialId);
return cfarticleMapper.fetchSearchByPageTemp(params);
}
......@@ -54,16 +59,168 @@ public class CfarticleServiceImpl extends GenericServiceImpl<Cfarticle> implemen
@Override
public List<Cfarticle> fetchSearchByPageInOrder(Conds conds, String articles) {
Map<String,Object> params = new HashMap<String, Object>();
params.put("conds",conds);
params.put("articles",articles);
Map<String, Object> params = new HashMap<String, Object>();
params.put("conds", conds);
params.put("articles", articles);
return cfarticleMapper.fetchSearchByPageInOrder(params);
}
@Override
public int countReview(Conds conds) {
Map<String,Object> params = new HashMap<String, Object>();
params.put("conds",conds);
Map<String, Object> params = new HashMap<String, Object>();
params.put("conds", conds);
return cfarticleMapper.countReview(params);
}
@Override
public JSONObject updatecom(String datas) {
JSONObject rtnJson = new JSONObject();
datas = datas.replaceAll("&quot;", "\"");
JSONArray jsonArray = JSONArray.fromObject(datas);
if (jsonArray.size() > 0) {
for (int i = 0; i < jsonArray.size(); i++) {
net.sf.json.JSONObject jsonObject = jsonArray.getJSONObject(i);
long id = jsonObject.getLong("id");
long recommended = jsonObject.getLong("recommended");
long whetherBanner = jsonObject.getLong("whetherBanner");
Integer integer = cfarticleMapper.updatecom(id, recommended, whetherBanner);
if (integer > 0) {
rtnJson.put("errorNo", "0");
rtnJson.put("errorMsg", "修改成功");
}
}
}
return rtnJson;
}
@Override
public JSONObject recommended(Long id) {
JSONObject rtnJson = new JSONObject();
try {
List<CfarticleVO> recommended = cfarticleMapper.recommended(id);
if (recommended.size()>0) {
rtnJson.put("errorNo", "0");
rtnJson.put("data", recommended);
}
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "查询失败");
} catch (Exception e) {
e.printStackTrace();
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "系统异常");
}
return rtnJson;
}
@Transactional(rollbackFor = Exception.class)
@Override
public JSONObject reading(Long id) {
JSONObject rtnJson = new JSONObject();
int count = 1;
try {
CfarticleVO reading = cfarticleMapper.saveReading(id);
Long recommended = reading.getRecommended();
Long redings = reading.getReading();
if (redings==null){
count+=0;
}else{
count+=redings;
}
Integer integer = cfarticleMapper.reading(id,count);
if (integer>0){
CfarticleVO saveReading = cfarticleMapper.saveReading(id);
rtnJson.put("errorNo", "0");
rtnJson.put("data", saveReading.getReading());
}
}catch (Exception e){
e.printStackTrace();
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "系统异常");
}
return rtnJson;
}
@Override
public JSONObject geteway(String title) {
JSONObject rtnJson = new JSONObject();
try {
List<Cfarticle> cfarticles = cfarticleMapper.gateway(title);
if (cfarticles==null){
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg","查询失败");
}
rtnJson.put("errorNo", "0");
rtnJson.put("errorMsg",cfarticles);
}catch (Exception e){
e.printStackTrace();
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "系统异常");
}
return rtnJson;
}
@Override
public JSONObject column() {
JSONObject rtnJson = new JSONObject();
try {
List<columnVO> column = cfarticleMapper.column();
if (column==null){
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg","查询失败");
}
rtnJson.put("errorNo", "0");
rtnJson.put("errorMsg",column);
}catch (Exception e){
e.printStackTrace();
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "系统异常");
}
return rtnJson;
}
@Override
public JSONObject columnDetails(Long id) {
JSONObject rtnJson = new JSONObject();
try {
List<CfarticleVO> cfarticleVOS = cfarticleMapper.columnDetails(id);
if (cfarticleVOS==null){
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg","查询失败");
}
rtnJson.put("errorNo", "0");
rtnJson.put("errorMsg",cfarticleVOS);
}catch (Exception e){
e.printStackTrace();
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "系统异常");
}
return rtnJson;
}
@Override
public JSONObject selectYes() {
JSONObject rtnJson = new JSONObject();
Integer integer = cfarticleMapper.selectcom();
rtnJson.put("errorNo", "0");
rtnJson.put("data",integer);
return rtnJson;
}
@Override
public JSONObject selectBanner() {
JSONObject rtnJson = new JSONObject();
Integer banner = cfarticleMapper.selectBanner();
rtnJson.put("errorNo", "0");
rtnJson.put("data",banner);
return rtnJson;
}
}
\ No newline at end of file
......@@ -33,6 +33,7 @@ import org.mp.api.wxsendmsg.JwSendMessageAPI;
import org.mp.api.wxsendmsg.model.WxArticle;
import org.owasp.esapi.ESAPI;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
......@@ -505,5 +506,21 @@ public class CfarticleController {
// }
return content;
}
@RequestMapping(value = "/updatecom")
@ResponseBody
public JSONObject updatecom(String datas){
JSONObject updatecom = cfarticleService.updatecom(datas);
return updatecom;
}
@RequestMapping(value = "/selectYes")
@ResponseBody
public JSONObject selectYes() {
return cfarticleService.selectYes();
}
@RequestMapping(value = "/selectBanner")
@ResponseBody
public JSONObject selectBanner() {
return cfarticleService.selectBanner();
}
}
......@@ -36,88 +36,146 @@ public class MobileCfArticleController {
@Autowired
private CfarticleService cfarticleService;
/**
*获取栏目列表
* 获取栏目列表
*/
@RequestMapping(value = "/getCategoryData", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public String getCategoryData(Long accountsId,int pageNo,int pageSize){
JSONObject rtnJson=new JSONObject();
try{
rtnJson.put("errorNo",0);
public String getCategoryData(Long accountsId, int pageNo, int pageSize) {
JSONObject rtnJson = new JSONObject();
try {
rtnJson.put("errorNo", 0);
Conds conds = new Conds();
conds.equal("del_flag", Constants.DEL_FLAG_0);
conds.equal("accounts_id", accountsId);
Sort sort = new Sort("sort", OrderType.DESC);
List<Column> list = columnService.fetchSearchByPage(conds, sort, pageNo*pageSize, pageSize);
rtnJson.put("data",list);
}catch (Exception e){
rtnJson.put("errorNo","1");
rtnJson.put("errorMsg","服务器异常!");
log.error("获取栏目列表"+e.getMessage());
List<Column> list = columnService.fetchSearchByPage(conds, sort, pageNo * pageSize, pageSize);
rtnJson.put("data", list);
} catch (Exception e) {
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "服务器异常!");
log.error("获取栏目列表" + e.getMessage());
}
return rtnJson.toString();
}
/**
*获取文章列表
* 获取文章列表
*/
@RequestMapping(value = "/getArticleData", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public String getArticleData(Long accountsId,int pageNo,int pageSize,Long categoryId,String name){
JSONObject rtnJson=new JSONObject();
try{
rtnJson.put("errorNo",0);
Conds artConds=new Conds();
if(categoryId==0){
public String getArticleData(Long accountsId, int pageNo, int pageSize, Long categoryId, String name) {
JSONObject rtnJson = new JSONObject();
try {
rtnJson.put("errorNo", 0);
Conds artConds = new Conds();
if (categoryId == 0) {
Conds conds = new Conds();
conds.equal("del_flag", Constants.DEL_FLAG_0);
conds.equal("accounts_id", accountsId);
Sort sort = new Sort("sort", OrderType.DESC);
List<Column> categoryList = columnService.fetchSearchByPage(conds, sort, pageNo*pageSize, pageSize);
rtnJson.put("category",categoryList);
if(categoryList!=null&&categoryList.size()>0){
categoryId=categoryList.get(0).getId();
List<Column> categoryList = columnService.fetchSearchByPage(conds, sort, pageNo * pageSize, pageSize);
rtnJson.put("category", categoryList);
if (categoryList != null && categoryList.size() > 0) {
categoryId = categoryList.get(0).getId();
}
}
artConds.equal("t.column",categoryId);
artConds.equal("t.column", categoryId);
artConds.equal("t.del_flag", Constants.DEL_FLAG_0);
artConds.equal("t.accounts_id", accountsId);
if (!org.springframework.util.StringUtils.isEmpty(name)) {
artConds.like("t.title", name);
}
Sort artSort = new Sort("t.create_time", OrderType.DESC);
List<Cfarticle> list = cfarticleService.fetchSearchByPage(artConds, artSort, pageNo*pageSize, pageSize);
rtnJson.put("article",list);
}catch (Exception e){
rtnJson.put("errorNo","1");
rtnJson.put("errorMsg","服务器异常!");
log.error("获取栏目列表"+e.getMessage());
List<Cfarticle> list = cfarticleService.fetchSearchByPage(artConds, artSort, pageNo * pageSize, pageSize);
rtnJson.put("article", list);
} catch (Exception e) {
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "服务器异常!");
log.error("获取栏目列表" + e.getMessage());
}
return rtnJson.toString();
}
/**
*获取文章详情
* 获取文章详情
*/
@RequestMapping(value = "/getArticleDetail", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public String getArticleDetail(Long id){
JSONObject rtnJson=new JSONObject();
try{
Cfarticle cfarticle=cfarticleService.fetchById(id);
rtnJson.put("errorNo",0);
rtnJson.put("data",cfarticle);
if(cfarticle!=null){
Conds reviewConds =new Conds();
reviewConds.equal("r.accounts_id",cfarticle.getAccountsId());
reviewConds.equal("r.module_type",0);
reviewConds.equal("r.entity_id",cfarticle.getId());
int reviewCount=cfarticleService.countReview(reviewConds);
rtnJson.put("reviewCount",reviewCount);
public String getArticleDetail(Long id) {
JSONObject rtnJson = new JSONObject();
try {
Cfarticle cfarticle = cfarticleService.fetchById(id);
rtnJson.put("errorNo", 0);
rtnJson.put("data", cfarticle);
if (cfarticle != null) {
Conds reviewConds = new Conds();
reviewConds.equal("r.accounts_id", cfarticle.getAccountsId());
reviewConds.equal("r.module_type", 0);
reviewConds.equal("r.entity_id", cfarticle.getId());
int reviewCount = cfarticleService.countReview(reviewConds);
rtnJson.put("reviewCount", reviewCount);
}
}catch (Exception e){
rtnJson.put("errorNo","1");
rtnJson.put("errorMsg","服务器异常!");
log.error("获取栏目列表"+e.getMessage());
} catch (Exception e) {
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "服务器异常!");
log.error("获取栏目列表" + e.getMessage());
}
return rtnJson.toString();
}
/**
* @return
* @Author Licc
* @Description 药品库推荐数据回填
* @Date 17:22 2020/10/28
* @Param
**/
@RequestMapping(value = "/recommended", method = {RequestMethod.GET, RequestMethod.POST}, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public com.alibaba.fastjson.JSONObject recommended(Long id) {
return cfarticleService.recommended(id);
}
/**
* @return
* @Author Licc
* @Description 阅读量
* @Date 17:22 2020/10/28
* @Param
**/
@RequestMapping(value = "/reading", method = {RequestMethod.GET, RequestMethod.POST}, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public com.alibaba.fastjson.JSONObject reading(Long id) {
return cfarticleService.reading(id);
}
/**
* @Author Licc
* @Description 门户列表数据回填
* @Date 10:34 2020/10/30
* @Param
* @return
**/
@RequestMapping(value = "/gateway", method = {RequestMethod.GET, RequestMethod.POST}, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public com.alibaba.fastjson.JSONObject gateway(String title){
return cfarticleService.geteway(title);
}
/**
* @Author Licc
* @Description 栏目列表列表数据回填
* @Date 10:34 2020/10/30
* @Param
* @return
**/
@RequestMapping(value = "/column", method = {RequestMethod.GET, RequestMethod.POST}, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public com.alibaba.fastjson.JSONObject column(){
return cfarticleService.column();
}
/**
* @Author Licc
* @Description 栏目文章详情
* @Date 10:34 2020/10/30
* @Param
* @return
**/
@RequestMapping(value = "/columnDetails", method = {RequestMethod.GET, RequestMethod.POST}, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public com.alibaba.fastjson.JSONObject columnDetails(Long id){
return cfarticleService.columnDetails(id);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment