Commit d5d1fd99 authored by 谢希宇's avatar 谢希宇

Submit by Strive

Submit Date 2021/02/26
parent ffe1e3d0
......@@ -218,7 +218,7 @@
"mData": "expireMonth"
},
{
"mData": "type"
"mData": "expireTwoMonth"
},
{
"mData": "remarks"
......@@ -237,19 +237,6 @@
'visible': false,
'targets': [0]
},
{
"aTargets": [5],
"mData": "type",
"mRender": function (a, b, c, d) {
if (a == '1') {
return '第一张';
} else if (a == '2') {
return '第二张';
} else {
return '';
}
}
},
{
"aTargets": [8],
"mData": "createTime",
......
......@@ -3,6 +3,8 @@ package com.cftech.orderdetail.dao;
import com.cftech.orderdetail.model.OrderDetails;
import com.cftech.core.generic.GenericDao;
import java.util.Map;
/**
* 订单管理Mapper
*
......@@ -11,4 +13,10 @@ import com.cftech.core.generic.GenericDao;
*/
public interface OrderDetailsMapper extends GenericDao<OrderDetails> {
/**
* 通过条件获取用户购买的药品总数
* @param params
* @return
*/
Integer fetchMemberByYearGoodsNum(Map<String, Object> params);
}
\ No newline at end of file
......@@ -134,6 +134,14 @@
<if test="limit>0">limit #{offset},#{limit}</if>
</select>
<select id="fetchMemberByYearGoodsNum" parameterType="java.util.Map" resultType="java.lang.Integer">
SELECT
IFNULL(SUM(d.drugs_num), 0)
FROM t_order_details d
LEFT JOIN t_order o ON o.id = d.order_id
<include refid="sqlWhere"/>
</select>
<update id="update" parameterType="com.cftech.orderdetail.model.OrderDetails">
update t_order
<set>
......
......@@ -25,4 +25,10 @@ public interface OrderDetailsService extends GenericService<OrderDetails> {
* @param iDisplayLength
*/
List<OrderDetails> fetchSearchByPageByUser(String userId, Conds conds, Sort sort, int iDisplayStart, int iDisplayLength,Long idTmp);
/**
* 获取三期患者某年购买药品数量
* @return
*/
Integer fetchMemberByYearGoodsNum(Conds conds);
}
......@@ -17,26 +17,26 @@ import java.util.List;
import java.util.Map;
/**
* 订单管理ServiceImpl
*
* @author Licc
* @date: 2020-10-16 11:26
*/
* 订单管理ServiceImpl
*
* @author Licc
* @date: 2020-10-16 11:26
*/
@Service("orderDetailsService")
public class OrderDetailsServiceImpl extends GenericServiceImpl<OrderDetails> implements OrderDetailsService {
@Autowired
@Qualifier("orderDetailsMapper")
private OrderDetailsMapper orderDetailsMapper;
@Autowired
@Qualifier("orderDetailsMapper")
private OrderDetailsMapper orderDetailsMapper;
@Override
public GenericDao<OrderDetails> getGenericMapper() {
return orderDetailsMapper;
}
@Override
public GenericDao<OrderDetails> getGenericMapper() {
return orderDetailsMapper;
}
@Override
public List<OrderDetails> fetchSearchByPageByUser(String userId, Conds conds, Sort sort, int page, int pageSize,Long idTmp) {
Map<String, Object> params = new HashMap<String, Object>();
public List<OrderDetails> fetchSearchByPageByUser(String userId, Conds conds, Sort sort, int page, int pageSize, Long idTmp) {
Map<String, Object> params = new HashMap<>();
if (!StringUtils.equals(userId, "1")) {
params.put("userId", userId);
}
......@@ -47,4 +47,11 @@ return orderDetailsMapper;
params.put("sort", sort);
return getGenericMapper().fetchSearchByPage(params);
}
@Override
public Integer fetchMemberByYearGoodsNum(Conds conds) {
Map<String, Object> params = new HashMap<>();
params.put("conds", conds);
return orderDetailsMapper.fetchMemberByYearGoodsNum(params);
}
}
\ No newline at end of file
......@@ -607,7 +607,7 @@
console.log(rsp);
if (rsp.errorNo == "0") {
Cfapp.alert({
message: "修改成功",
message: "确认成功",
btntext: "确定",
success: function () {
location.href = "#springUrl('/a/order/list')";
......@@ -615,7 +615,7 @@
});
} else {
Cfapp.alert({
message: "修改失败",
message: "确认失败",
btntext: "确定",
success: function () {
let idTmp = $('input[name="id"]').val();
......
......@@ -42,5 +42,11 @@
<artifactId>couponrecord-module</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.cftech</groupId>
<artifactId>authentication-module</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
......@@ -565,7 +565,7 @@
status = #{status},
</if>
<if test="status != null and status == 2">
pay_time = now(), pay_amount = order_amount * 100, total_amount = order_amount * 100,
pay_time = now(), pay_amount = order_amount * 100,
</if>
<if test="status != null and status == 5 and orderCancel!=null and orderCancel != ''">
cancel_time = now(),
......
......@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cftech.accounts.model.MpAccountsEntity;
import com.cftech.accounts.service.MpAccountsService;
import com.cftech.authentication.service.AuthenticationService;
import com.cftech.base.codingrule.utils.CodingruleUtils;
import com.cftech.base.org.api.QyMsgUtil;
import com.cftech.base.org.model.Qyuser;
......@@ -33,6 +34,8 @@ import com.cftech.core.generic.GenericServiceImpl;
import com.cftech.core.sql.Conds;
import com.cftech.order.utils.InvoiceUtil;
import com.cftech.orderdetail.dao.OrderDetailsMapper;
import com.cftech.orderdetail.service.OrderDetailsService;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TreeTableColumn;
import lombok.extern.slf4j.Slf4j;
......@@ -62,6 +65,9 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
@Qualifier("orderMapper")
private OrderMapper orderMapper;
@Autowired
private OrderDetailsService orderDetailsService;
@Autowired
private MpAccountsService mpAccountsService;
......@@ -89,7 +95,6 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
@Autowired
private CouponrecordService couponrecordService;
@Override
public GenericDao<Order> getGenericMapper() {
return orderMapper;
......@@ -188,7 +193,9 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
orderConds.equal("o.id", id);
order = this.fetchSearchByConds(orderConds);
if (order != null) {
order.setOrderAmount(orderAmount);
calculateAmount(order, orderAmount);
//order.setOrderAmount(orderAmount);
} else {
rtnJson.put("errorNo", "1");
return rtnJson;
......@@ -229,13 +236,40 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
}
} else {
//商户号调用失败抛出异常回滚
//new RuntimeException();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
}
rtnJson.put("errorNo", "1");
return rtnJson;
}
/**
* 计算总金额
* @param order
* @param orderAmount //非三期患者所以购药金额
* 三期患者免费购药,根据身份证号做出限制,每年同一身份证号购买12盒以内的药品,价格自动设为0,如超出12 盒恢复原价。
*/
private void calculateAmount(Order order, Double orderAmount) {
if (isThreeUsers(order.getOpenid()) > 0) {
//三期用户
Conds conds = new Conds();
conds.equal("d.del_flag", Constants.DEL_FLAG_0);
conds.equal("o.del_flag", Constants.DEL_FLAG_0);
conds.equal("d.openid", order.getOpenid());
conds.equal("o.openid", order.getOpenid());
conds.equal("YEAR(d.create_time)", new Date().getYear());
Integer number = orderDetailsService.fetchMemberByYearGoodsNum(conds);
if (number >= 12) {
order.setOrderAmount(orderAmount);
} else {
// todo 计算所需金额
order.setOrderAmount(orderAmount);
}
} else {
//非三期用户
order.setOrderAmount(orderAmount);
}
}
......@@ -393,7 +427,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
unitTax = invoiceDto.getUnitTaxNumber();
}
String str = invoiceUtil.startInvoice(order, order.getNickName(), invoiceDto.getEmail(), invoiceDto.getType(), "0", unitTax);
String str = invoiceUtil.startInvoice(order, order.getNickName(), invoiceDto.getEmail(), invoiceDto.getType(), "0", unitTax, invoiceDto.getInvoiceTitle());
JSONObject json = JSON.parseObject(str);
if (StringUtils.isNotBlank(json.getString("code")) && json.getString("code").equals("E0000")) {
//开票成功 添加一条开票记录
......@@ -475,9 +509,9 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
order.setStatus("2");//待发货
order.setTradeNo(transaction_id);
//订单总金额
if (StringUtils.isNoneBlank(map.get("total_fee"))) {
order.setTotalAmount(Double.parseDouble(map.get("total_fee")));
}
// if (StringUtils.isNoneBlank(map.get("total_fee"))) {
// order.setTotalAmount(Double.parseDouble(map.get("total_fee")));
// }
//现金支付总金额
if (StringUtils.isNoneBlank(map.get("cash_fee"))) {
order.setPayAmount(Double.parseDouble(map.get("cash_fee")));
......
......@@ -48,7 +48,7 @@ public class InvoiceUtil {
* @param unitTax 单位税号 移动端发票抬头为公司需要填写税号
* @return
*/
public String startInvoice(Order orderObj, String clerk, String email, String type, String from, String unitTax){
public String startInvoice(Order orderObj, String clerk, String email, String type, String from, String unitTax, String invoiceTitle){
NNOpenSDK sdk = NNOpenSDK.getIntance();
// 授权企业税号
String taxNum = SystemConfig.p.getProperty("INVOICE_TAX");
......
......@@ -207,6 +207,7 @@ public class OrderController {
Long accountsId = UserUtils.getmpaccounts(request);
JSONObject jsonObject = null;
try {
//是否三期用户,用户购买数量。 计算超出部分金额
jsonObject = orderService.saveOrderDetail(datas, accountsId);
} catch (UnexpectedRollbackException e) {
if (jsonObject == null)
......@@ -226,7 +227,7 @@ public class OrderController {
@RequiresPermissions(value = ORDER_VIEW)
@RequestMapping(value = "/listData")
@ResponseBody
public JSONObject listData(int iDisplayStart, int iDisplayLength, Order order, HttpServletRequest request) throws ParseException {
public JSONObject listData(int iDisplayStart, int iDisplayLength, Order order, HttpServletRequest request) throws ParseException {
User user = UserUtils.getUser();
Long userid = user.getUserid();
Long accountsId = UserUtils.getmpaccounts(request);
......@@ -300,10 +301,10 @@ public class OrderController {
//设置是否可以开票
Date today = new Date();
int longNum = 0;
for (Order obj : list){
for (Order obj : list) {
if (obj.getPayTime() != null && StringUtils.isBlank(obj.getConfirm())) {
longNum = (int)(today.getTime()-obj.getPayTime().getTime()) / (1000*3600*24);
if(longNum >= 7){
longNum = (int) (today.getTime() - obj.getPayTime().getTime()) / (1000 * 3600 * 24);
if (longNum >= 7) {
obj.setIsExceedSevenDay("0");
}
}
......@@ -326,7 +327,7 @@ public class OrderController {
@RequiresPermissions(value = ORDER_EDIT)
@RequestMapping("/invoice")
@ResponseBody
public JSONObject invoice(String id, HttpServletRequest request,String email){
public JSONObject invoice(String id, HttpServletRequest request, String email) {
JSONObject jsonObject = new JSONObject();
Long userid = UserUtils.getUser().getUserid();
Long accountsId = UserUtils.getmpaccounts(request);
......@@ -336,13 +337,13 @@ public class OrderController {
conds.equal("o.del_flag", Constants.DEL_FLAG_0);
conds.equal("o.accounts_id", accountsId);
List<Order> list = orderService.fetchSearchBy(conds, null, 0, 0, userid, "0", "0");
if(list.size() > 0){
for (Order order : list){
if (list.size() > 0) {
for (Order order : list) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
order.setCreateTimeStr(format.format(order.getCreateTime()));
String str = invoiceUtil.startInvoice(order, String.valueOf(userid), email,"0","1",null);
String str = invoiceUtil.startInvoice(order, String.valueOf(userid), email, "0", "1", null, null);
JSONObject json = JSON.parseObject(str);
if (StringUtils.isNotBlank(json.getString("code")) && json.getString("code").equals("E0000")){
if (StringUtils.isNotBlank(json.getString("code")) && json.getString("code").equals("E0000")) {
//开票成功 添加一条开票记录
//流水号
String invoiceSerialNum = json.getJSONObject("result").getString("invoiceSerialNum");
......@@ -361,15 +362,15 @@ public class OrderController {
invoice.setAccountsId(accountsId);
invoice.setOpenId(order.getOpenid());
String userName = userService.fetchAuthById(userid).getWxUserName();
invoice.setOperator(StringUtils.isEmpty(userName) ? "":userName);
invoice.setOperator(StringUtils.isEmpty(userName) ? "" : userName);
invoiceService.save(invoice);
//更新是否开票状态
order.setConfirm(invoiceSerialNum);
orderService.update(order);
}else{
} else {
jsonObject.put("errorNo", 1);
jsonObject.put("errorMsg",StringUtils.isEmpty(json.getString("describe")) ? json.getString("message") : json.getString("describe"));
jsonObject.put("errorMsg", StringUtils.isEmpty(json.getString("describe")) ? json.getString("message") : json.getString("describe"));
return jsonObject;
}
......@@ -508,15 +509,15 @@ public class OrderController {
}
orderVO.setPayStatus(payStatus);
orderVO.setTradeNo(orderObject.getTradeNo());
orderVO.setConfirm(StringUtils.isNotBlank(orderObject.getConfirm()) ? "是":"否");
orderVO.setIsThree(StringUtils.equals(orderObject.getIsThree(), "1") ? "是":"否");
orderVO.setConfirm(StringUtils.isNotBlank(orderObject.getConfirm()) ? "是" : "否");
orderVO.setIsThree(StringUtils.equals(orderObject.getIsThree(), "1") ? "是" : "否");
orderVO.setOpenid(orderObject.getOpenid());
orderVO.setCreateTime(orderObject.getCreateTime() != null ? simpleDateFormat.format(orderObject.getCreateTime()) : "");
orderVO.setOrderTime(orderObject.getOrderTime() != null ? simpleDateFormat.format(orderObject.getOrderTime()) : "");
orderVO.setPayTime(orderObject.getPayTime() != null ? simpleDateFormat.format(orderObject.getPayTime()) : "");
orderVO.setSendTime(orderObject.getSendExpressDateStr());
orderVO.setAcceptTime(orderObject.getAcceptExpressDateStr());
orderVO.setCencalTime(orderObject.getCancelTime()!= null ? simpleDateFormat.format(orderObject.getCancelTime()) : "");
orderVO.setCencalTime(orderObject.getCancelTime() != null ? simpleDateFormat.format(orderObject.getCancelTime()) : "");
orderVOS.add(orderVO);
}
ExcelKit.$Export(OrderVO.class, response).toExcel(orderVOS, "订单管理信息");
......@@ -560,9 +561,9 @@ public class OrderController {
}
@RequestMapping("/findorderDetail")
public String findorderDetail(HttpServletRequest request, Model model,Long id) {
model.addAttribute("isDetail",'y');
return orderDetailsController.list(request,model,id);
public String findorderDetail(HttpServletRequest request, Model model, Long id) {
model.addAttribute("isDetail", 'y');
return orderDetailsController.list(request, model, id);
}
@RequestMapping("/deleteAll")
......@@ -579,7 +580,7 @@ public class OrderController {
JSONObject rtnJson = new JSONObject();
Integer integer = orderService.updateStatus(id, status, orderCancel);
//设置已付款
if (integer > 0){
if (integer > 0) {
//线下付款成功
if (StringUtils.equals(status, "2")) {
orderService.sendQyWechatMassage(id);
......@@ -594,10 +595,10 @@ public class OrderController {
e.printStackTrace();
}
}
rtnJson.put("errorNo","0");
rtnJson.put("errorNo", "0");
return rtnJson;
}
rtnJson.put("errorNo","1");
rtnJson.put("errorNo", "1");
return rtnJson;
}
......@@ -611,12 +612,12 @@ public class OrderController {
orderConds.equal("o.id", orderId);
Order order = orderService.fetchSearchByConds(orderConds);
order.setAddressId(addressId);
if (orderService.update(order)){
rtnJson.put("errorNo","0");
if (orderService.update(order)) {
rtnJson.put("errorNo", "0");
return rtnJson;
}
}
rtnJson.put("errorNo","1");
rtnJson.put("errorNo", "1");
return rtnJson;
}
......@@ -626,12 +627,12 @@ public class OrderController {
JSONObject rtnJson = new JSONObject();
if (id != null && StringUtils.isNoneBlank(option)) {
Integer integer = orderService.updateRemindType(id, option);
if (integer > 0){
rtnJson.put("errorNo","0");
if (integer > 0) {
rtnJson.put("errorNo", "0");
return rtnJson;
}
}
rtnJson.put("errorNo","1");
rtnJson.put("errorNo", "1");
return rtnJson;
}
}
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